variadic-templates

    4热度

    2回答

    我卡具有以下问题: 鉴于Node<>类型的非终端节点和任意的类型,如A,B等的终端节点所表示的树(见下文)。 因为我不想使用运行时多态性我喜欢通过像在下面的例子中立即调用lambda表达式一个constexpr功能树转换成std::tuple。 struct A {}; struct B {}; struct C {}; struct D {}; struct E {}; templa

    3热度

    2回答

    我有一个类Foo需要有可变数量的模板参数,但这些参数需要是某种泛型类型,而不是完全任意的。例如 template < int I, typename T> struct Arg; using type1 = Foo<Arg<3, double>>; using type2 = Foo<Arg<1, int>, Arg<7, float>, Arg<1, int>>; 我想知道什么是最好的方

    2热度

    3回答

    我有一个函数foo,它调用函数bar,并传入foo的可变参数模板的子类型。例如: template <typename... T> void foo() { // ... template <size_t start_idx, typename... T> using param_pack = /*Parameter pack with T[start_idx]..

    1热度

    1回答

    在试图更好地理解可变参数模板时,我自己根据给定的条件(在<type_traits>中定义的选择)编写编译时类型选择器的任务,例如std::is_signed,std::is_floating_point等)。选择器应该选择符合指定为模板参数的条件的第一个类型。 给你举个例子: template<template<typename> class Cond, typename... T> struc

    1热度

    2回答

    我不确定标准允许我尝试什么,甚至可能没有意义,所以通过一切手段随时纠正我。 我试图将一个可变数量的std::function对象传递给接受可变参数的函数,并接受可变参数模板参数。模板参数指定返回类型中进行传递的功能函数的签名看起来像这样: template <typename ... TRets> void DoStuff(std::function<TRets...()> funcs...)

    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提供的例子对我来说不是很有帮助,我

    1热度

    2回答

    我的函数使用一组给定的输入参数(variadic)调用一个Python函数,并返回一个包含该函数输出的变量(可变参数,因为输出因函数调用而变化)。 我正在使用C++ 11通过MinGW-w64编译器的g ++端口编译Windows 10机器。我宣布这个模板可变参数函数(并调用它),如下所示: // Declaration (in PyInterface.h) template <typename