2 May
2013
2 May
'13
2:11 p.m.
Kazutoshi Satoda wrote:
The standard version has 4 member typedef which are conditionally defined: result_type, argument_type, first_argument_type, second_argument_type. If "to update boost::ref to match the standard version" includes addition of these members, it requires the argument type complete to determine the condition to (or not to) define these typedef. If you decide not to define these typedef based on the incompleteness, it will likely cause ODR violation.
Interesting. I've always considered these typedefs redundant, but this is the first time I see them as actively harmful.