https://stackoverflow.com/questions/50273336/noexcept-specifier-with-default-arguments-construction
Question:
function should be mark 'noexcept' base on it's own block expressions or function's argument(including default argument)
Answer:
It's own block expressions.
The function argument(default argument) evaluation should be happened on the caller's expression.
If it fails, it will fail before function being called(stack pile up and run).
ISO:
Question:
function should be mark 'noexcept' base on it's own block expressions or function's argument(including default argument)
Answer:
It's own block expressions.
The function argument(default argument) evaluation should be happened on the caller's expression.
If it fails, it will fail before function being called(stack pile up and run).
ISO:
Note (in [intro.execution] Program execution):If an initializer-clause is specified in a parameter-declaration this initializer-clause is used as a default argument. Default arguments will be used in calls where trailing arguments are missing.Example: the declarationvoid point(int = 3, int = 4);declares a function that can be called with zero, one, or two arguments of type int. It can be called in any of these ways:point(1,2);point(1);point();The last two calls are equivalent topoint(1,4)andpoint(3,4), respectively.
Subexpressions involved in evaluating default arguments (8.3.6) are considered to be created in the expression that calls the function, not the expression that defines the default argument
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.