A (B|C) D
D (A|B) C
函数template<class _Fn,
enable_if_t<!_Pass_functor_by_value_v<_Fn>, int> = 0>
constexpr _Ref_fn<_Fn> _Pass_fn(_Fn& _Val)
{ // pass functor by "reference"
return {_Val};
}
返回对象_Pass_fn
,但是_Ref_fn<_Fn>
没有接受一个参数的构造函数。
_Ref_fn
这是如何工作的?
答案 0 :(得分:1)
这是Aggregate initialization的变体。
不用成员构造函数就可以用成员值初始化简单的结构是可以的:
struct Point {
int x;
int y;
};
...
Point p{1,2};