variadic-templates

    3热度

    2回答

    我有一个可变参数模板类,可以在构造函数中的任何数量的变量,也是一个std::tuple/std::pair等等。 我想用这种包装的功能具有不同的返回类型。 例如: class f1 { using output = double; output operator() { do_smth }; } class f2 { using output = std::t

    19热度

    6回答

    我不明白为什么这不起作用。能理解模板和可变表达式折叠的人能解释发生了什么,并给出可行的解决方案吗? #include <iostream> #include <string> template <typename... Args> void print(Args... args) { std::string sep = " "; std::string end = "

    4热度

    4回答

    我试图创建一个名为Sink的类,它将创建一个指向您传入的类的指针,这是在RAII中包装api。 在此代码的完整版本中,自定义类也从另一个类继承,并且有静态资产来检查它。指针也传递给api。 但为了保持简单,我已将其删除。 这是我从cpp.sh In function 'int main()': 43:30: error: no matching function for call to 'Sin

    1热度

    4回答

    我有一个问题,我所定义的模板类,以应付不同尺寸的系统作为如下: template <std::size_t N> class system { std::array<cv::Mat, N> matrices; ... }; 然后我需要定义不同函数,它根据不同的参数系统的大小。类似的东西: template <> template<typename T> voi

    0热度

    3回答

    我尝试传递给variadic模板函数一个引用列表并将它传递给另一个函数。我写的代码如下: template <typename T> void fun(cv::Point_<T> & pt) { pt.x++; pt.y++; } template <class ... args> void caller(args & ... list) { typedef typename

    2热度

    1回答

    常量参数我明白为什么下面的代码不编译很困惑: template <typename T, typename... Ts> void TEST(T&& t, Ts&&... ts) { if constexpr(sizeof...(ts) > 0) { TEST(std::forward<Ts>(ts)...); static_assert(t == 2 , "par

    5热度

    1回答

    有一个清晰和易于理解的上下文列表,其中数据包扩展可以在cppreference.com上发生。我试图做的是从标准中获得相同的信息,部分是为了获得使用标准的经验。但是,我无法从标准中获取cppreference.com上列出的所有包扩展上下文。 cppreference.com列出了以下四个上下文:函数参数列表,模板参数列表,函数参数列表和模板参数列表。 在另一方面,标准说(14.5.3.4): 一

    2热度

    2回答

    On C++ weekly ep. 48 by Jason Turner有下面的代码: template<typename ... B> struct Merged : B... { template <typename ... T> Merged(T && ... t) : B(std::forward<T>(t))... { } using B::

    3热度

    4回答

    我想写一个泛型函数,它连接两个函数,可以用同一组参数调用,但我有点麻烦。这是迄今为止我所拥有的。 (不编译) //A functor to store the input functions and call them template <typename LEFT, typename RIGHT> struct combine_functions { combine_functio

    3热度

    2回答

    我有一些的3rdParty库这样的方法: bool Invoke(const char* method, Value* args, size_t nargs) 它需要其内类型的数组(可转换至任何原语C++类型)和Arg计数作为其内PARAMS。 在我的代码,我写了一些通用的辅助,以避免每个调用手动创建和类型的皈依: template<class ... Args> bool WrappedV