相关疑难解决方法(0)

检测类型是否为std :: tuple?

目前我有两个功能:

template<typename Type> bool f(Type* x);
template<typename... List> bool f(std::tuple<List...>* x);
Run Code Online (Sandbox Code Playgroud)

有没有办法将这两个函数与一个额外的模板参数合并,该参数指示传递的类型是否为元组?

template<typename Type, bool IsTuple = /* SOMETHING */> bool f(Type* x);
Run Code Online (Sandbox Code Playgroud)

c++ templates tuples type-traits c++11

13
推荐指数
4
解决办法
4200
查看次数

获取可变参数模板的所有参数

我有一个演员这样声明:

template<typename... Coords>
MyClass<T>(vector<T> values, Coords... coords) { /* code */ }
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

template<typename... Coords>
MyClass<T>(Coords... coords, vector<T> values) { /* code */ }
Run Code Online (Sandbox Code Playgroud)

但标准要求可变参数是最后一个。如果我写类似的东西

template<typename... Args>
MyClass<T>(Args... coordsThenValues) { /* code */ }
Run Code Online (Sandbox Code Playgroud)

我将如何拆分coordsThenValues为最后一个参数包Coords... coords和最后一个参数vector<T> values

c++ variadic-templates c++11

4
推荐指数
1
解决办法
1102
查看次数

标签 统计

c++ ×2

c++11 ×2

templates ×1

tuples ×1

type-traits ×1

variadic-templates ×1