问题标签 [variadic-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何从尾部而不是头部拉出可变参数模板参数?
出于愚蠢的原因,我不会在这里讨论,我需要注释掉的行才能工作,而它上面的行不能工作:
我尝试_Arg
与交换_Args...
,但这不会编译(至少在 GCC 4.6 中):
如何从尾部而不是头部拉出物品?
c++ - 带有可变参数的元组内容的部分特化
目前,我正在尝试让一些代码对不同的类型做出不同的反应。这不是确切的代码,但它传达了信息。
我已经尝试了比此代码显示的更多内容,但到目前为止没有任何效果,并且我遇到了在非命名空间范围内显式专业化的问题。作为参考,我正在开发 gcc 4.6(oneiric 服务器附带的那个),我相信它具有完整的可变参数模板支持。如果实现可以检测参数包的最后一个参数以及其他类型,我不在乎它有多难看。有什么建议么?
编辑:我想根据答案分享我使用的解决方案(这是一个例子)。
c# - 在 C# 中模拟可变参数模板
有没有一种众所周知的方法可以在 C# 中模拟可变参数模板功能?
例如,我想编写一个方法,它采用带有任意参数集的 lambda。这是我想要的伪代码:
c++ - 如何使用可变参数模板获得默认参数的效果
我现在遇到这个问题有一段时间了,我不知道如何解决它。上下文是 C++ 中的反射系统。这个问题的一个瘦身解释是这样的。我有这两个结构。一种是表示 ClassType 类型的多个父类,另一种是表示孤儿类(ClassType 类型且没有父类的类)
然后在我要反映的类的声明中,我使用这个宏,类 ReflectionHelper::Parents 是上面的类
孤儿类的用法是:
现在的问题是 __VA_ARGS__ 是空的,而
因此无效。
我想解决这个问题的一种方法是使用默认模板参数,但它不允许使用可变参数模板。
有人有解决这个问题的技术吗?
非常感谢
c++11 - 用于函数调用的可变参数模板参数包扩展
我正在寻找类似的东西:
如果参数包扩展是在另一个函数调用中完成的,它可以工作:
参数包扩展也适用于基类初始化器列表。
是否有任何解决方案也适用于返回“void”的函数。上面的解决方法不会,而在参数列表中使用返回 void 的函数调用永远不会起作用。
有任何想法吗?
c++11 - 具有可变数量参数的函数调用
是否可以根据模板参数的数量构造具有可变数量参数的函数调用(在函数模板内)?就像是:
c++ - make_unique 和完美的转发
std::make_unique
为什么标准 C++11 库中没有函数模板?我发现
有点冗长。下面的不是更好吗?
这new
很好地隐藏了类型,并且只提到了一次类型。
无论如何,这是我尝试实现的make_unique
:
我花了很std::forward
长时间来编译这些东西,但我不确定它是否正确。是吗?究竟是什么std::forward<Args>(args)...
意思?编译器对此有何看法?
c++ - 元运算符的优先级是什么...?
...
解压模板类型参数包的元操作符的优先级是多少?我想它相当低,但它有多低?C++ 标准说:
运算符的优先级不是直接指定的,但可以从语法中得出。
有人愿意挑战吗?当然,...
不会出现在 C++03 运算符优先级表中。
好吧,如果...
不是运算符,那么究竟是什么决定了它std::forward<Args>(args)...
适用于整个序列std::forward<Args>(args)
而不只是(args)
,例如?
c++ - 使用 C++11 initializer_list 实现类似 std::array 的容器
唯一且 imo 非常不方便的警告std::array
是,它不能像内置 C 数组那样从初始化列表中推断出它的大小,它的大小必须作为模板传递。
是否可以使用 initializer_list 实现类似 std::array 的容器(内置 C 数组的薄包装器)C++11
?
我问是因为,与 std::array 不同,它会自动从初始化列表中推断出数组的大小,这更方便。例如:
如果没有提供初始化列表,我们还想提供一个构造函数来指定大小。例如:
这也将使容器与其他标准容器(例如向量、双端队列和列表)更加一致。
据我所知,这是不可能的,因为包装的 C 数组,例如 T elems [size],必须具有恒定的大小,并且 initializer_list 的 size() 成员函数不是恒定的。
另外,我想知道是否可以使用可变参数模板来实现这样的容器,尽管从我读过的内容来看,我认为这是不可能的。
c++ - 可变参数模板多维数组容器
在 C++0x Variadic Templates Proposal 论文链接中,有一个支持任意维数的类的示例。我在下面复制了它:
遗憾的是没有提供实现。由于我对可变参数模板相对较新,我很想看看这个容器的实现。
感谢任何可以提供简单实现的人。