问题描述
#define MY_TYPES void,float,int,vector<long>,.....
我正在寻找在编译时以通用方式在 c++17/20 中生成这些类型定义的方法,例如
#define to_tuple(MY_TYPES) ==> std::tuple<future<void>,future<float>,future<int>....>
using tupleType = decltype(to_tuple<ALL_TYPES>); // this can be then used in struct as a member.
struct foo {
...
...
tupleType tups;
}
或者,如果这可以使用模板元编程来完成?
感谢您的帮助。
解决方法
template <typename ...P>
using tuple_of_futures_t = std::tuple<std::future<P>...>;
using X = tuple_of_futures_t<void,float,int,std::vector<long>>;