variadic-templates

    0热度

    1回答

    下面的代码会产生一个巨大的编译器错误的列表: /// Uses template recursion to bind all args template<std::size_t N, typename... Args> class Binder { public: Binder(Sqlite3StatementBase &s, std::tuple<Args...> &tup)

    3热度

    1回答

    是否有可能将两个模板类传递到模板类中? 我期待创建一个持有两个不同的类std::tuple<std::vector<>>。 我开始怀疑我想达到的目标无法完成,但是我找不到任何其他的说法。 #include <iostream> #include <vector> #include <tuple> template<typename... Ts> struct Typelist {

    0热度

    1回答

    我需要定义一个具有由模板类组成的元组的结构。 用法: TestStruct<A, float, float, int32_t> test_a = { std::make_tuple(A(1.0), A(2.0), A(3)) }; TestStruct<B, float, float, int32_t> test_b = { std::make_tuple(B(1.0), B(2.0), B(3

    0热度

    2回答

    我想在一个可变参数模板中使用一个函数作为参数,为什么下面不起作用?我如何使它工作? template<typename F, typename... Args> F test(F f, const Args&&... args) { return f(std::forward<Args>(args)...); } int simple(int i) { return i; }

    0热度

    3回答

    我以前这里的问题Variadic template, function as argument 我已经结束了下面一个简单的类,但我怎么使用std ::调用或一些其他方法来调用测试: :用Tester :: simple作为参数测试? http://en.cppreference.com/w/cpp/utility/functional/invoke#Example提供的例子对我来说不是很有帮助,我

    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>,但这是我不想做的事情