This is a very fundamental question, there is a benefit in using boost :: option in the following scenario:
int Any action (boost :: optional & lt; const para & gt; value = getDefaultParam ()) {return value- & gt; do something(); } or
int any action (boost: optional & lt; const absolute & gt; value) {if (! Value) Value = getDefaultParam (); Return value- & gt; Dosomething (); } Contrary to doing so:
int Any action (const param and value = getDefaultParam ()) {return value.dosomething (); } This is for a specific case, where I know that I'm starting a param object with a default value. Promotion for the ultimate for the API or the API client: can there be any advantage of using alternative?
First of all, it is bad:
int Any action (boost: optional & lt; const Para & gt; value = getDefaultParam ()) {return value-> Dosomething (); } some functions can be called from boost :: none , in which case an attempt to use it is an exception Will throw. / P>
Second, if you have boost :: optional
boost :: optional & lt; Const param & amp; & Gt; Value = ...; . Value.value_or (getDefaultParam ()) DoSomething (); Edit: On this simple case, can not be worth bringing in optional . If you do something like this:
int someFunc (const param and amp; value = getDefaultParam ()) {return value.doSomething (); } // somewhere else ... int x = some circumstance? SomeFunc (ABC): someFunc (); There really is not a point for alternative Of course, there is not a need for something simple, such as someFunc Can:
int x = (someCondition? Abc: getDefaultParam ()) doSomething (); However, if you have a value available or not, then now the long term storage / tracking required for the Promotion: Alternate may be appropriate or not is required.
No comments:
Post a Comment