variadic-templates

    2热度

    1回答

    使用C++ 14,我试图扩展this实现以支持ObserverCallback方法,该方法将在外部调用。 MyClass容器使用元组向量,其类型由可变参数模板指定。访问矢量然后可以使用访问< T>()完成。 我需要的是实现一个观察者,它应该向矢量添加元素。因为元素的类型可以是任何类型的元组,我已经模板一样好: template <typename ...T> class Wrapper{ pu

    0热度

    1回答

    考虑这个简单的可变参数模板函数,该函数产生一个线程并将该参数转发给线程函数。 为什么我在这里得到线程构造函数的模板替换失败? std::thread t; void test3(int& a) { a = 10; } template<class ...Args> void test(Args&&... args) { t = std::thread(test3

    1热度

    2回答

    当我尝试运行此玩具示例时,出现不一致的参数包编译器错误。有人可以解释为什么'int a'在这里被推断为int &?在下面的例子中,当我用int文字运行下面的'test'函数时,它工作正常。在此先感谢您的解释! class Test { public: Test() {} ~Test() { t.join(); } void prin

    0热度

    2回答

    我(最后)最近听说可变参数模板。我想知道,如果有一种方法可以让一个INT - 多项式编译时间运营商: template <int... coefs> struct polynom {} 哪些coud支持加,一元减号和MUL操作符。 [编辑]:claryfying问题: 甲INT-多项式是基本上一个整数列表(系数): 1 + 2x^2 - 7x^5 <=> (1, 0, 2, 0, 0, -7

    2热度

    1回答

    我正在尝试使用C++ 14元编程来查找lambda函数或自由函数是否为常量。 我目前的策略是在每个参数上使用std::is_reference,std::is_pointer和std::is_const。 (目前,忽略了全局变量...) 使检查对象类型看起来是这样的...... template <typename F> struct is_const_func: public function

    0热度

    2回答

    我有一个可变参数模板类中给出的参数包,并且想要提取第一个类型。 目前我这样做,它工作正常,但有点麻烦。是否有可能做同样的事情更简单?应该将FirstEntityType定义为EntityTs中的第一种类型。请注意,我想保留类模板的签名。我知道有可能写template<typename FirstEntityType, typename... OtherEntityTypes>,但这是我不想做的事情

    2热度

    3回答

    我想检查类型T是否也是参数包Ts的一部分。在C++ 14中有这样做的solutions,但是如果这可以在C++ 17中简化,我就会游荡。如果在Ts中找不到T,则应停止编译器(static_assertion应该失败)。 template<typename... Ts> class A { template<typename T> void action() { /

    2热度

    1回答

    我正在研究可变参数模板,我想知道如果我可以做这样的事情:我会调用任意数量的函数(任意返回类型)与任意数量和类型的参数只需一个电话。我能够使用的代码是这样的: call(f1,f2,f3, 2.2,3); call(f4,f5, 2.2, "Hello", 'a'); 如果函数传递可以接受传递的参数。 我写了一个固定数目的要传递给函数的参数兼容版本: template<typename T,

    0热度

    1回答

    我很长时间在使用此可变参数模板。任何人都可以帮助我吗?我想建立一个能够调用cmath函数并通过向量传递其所有参数的执行程序。请考虑下面的代码: bool execute(const std::string &functionName, const std::vector<double> ¶ms) { if (functionName == "cos") return execu

    3热度

    2回答

    我有一个相当于std::integer_sequence(我们还没有使用C++ 14)。我也有两个助手类,删除或添加一个前导号码。 // Sequence type template <typename Type, Type ... Values> struct Sequence { using