相关疑难解决方法(0)

"......"令牌是什么意思?即参数包上的双省略运算符

在浏览gcc当前新C++ 11标头的实现时,我偶然发现了"......"令牌.您可以检查,以下代码编译正常 [通过ideone.com].

template <typename T>
struct X
{ /* ... */ };

template <typename T, typename ... U>
struct X<T(U......)> // this line is the important one
{ /* ... */ };
Run Code Online (Sandbox Code Playgroud)

那么,这个令牌的含义是什么?

编辑:看起来如此修剪"......"的问题标题为"......",我的意思是"......".:)

c++ variadic-templates c++11

110
推荐指数
1
解决办法
7513
查看次数

成员职能特征

我正在编写一个模板类,它包含成员函数以减少一些调用 - 如果某些条件为真,则不需要调用成员函数.签名看起来像这样

template <typename MemFuncType, MemFuncType> class MemberWrapper;
Run Code Online (Sandbox Code Playgroud)

我可以专门研究它:

template <typename R, typename T, R T::* MemFunc> class MemberWrapper<R T::*, MemFunc>{};
Run Code Online (Sandbox Code Playgroud)

我还想限制参数的数量R T::*.我该怎么做呢?

我能想到的唯一解决方案是通过提供基于返回类型,函数类型,参数列表和cv限定符的部分特化来实现成员函数特征类.这将导致像当前std::mem_fn 重载一样繁琐的实现.有没有办法做得更好?

编辑:更改RetR.正如评论中指出的那样,它并不是真正的返回类型,并且专业化无效.

c++ templates variadic-templates c++11

5
推荐指数
2
解决办法
2063
查看次数

标签 统计

c++ ×2

c++11 ×2

variadic-templates ×2

templates ×1