我正在玩可变参数宏和模板。有没有什么简单的方法可以实现以下目标?
这就像 std::make_tuple。如何实现 make_my_class?我看到我可能需要“std::decay”,但我不太明白。提前非常感谢。
template <typename... Args>
class my_class
{
public:
my_class(Args... args)
: items_(args...)
{
}
private:
std::tuple<Args...> items_;
};
// How to fix this line?
#define CREATE_MY_CLASS(var_name, args...) my_class<decltype(args...)> var_name(args...);
// Usage:
// CREATE_MY_CLASS(xyz, 1, 2, 3)
// Target:
// my_class<decltype(1), decltype(2), decltype(3)> xyz(1, 2, 3);