Я играю с вариационным макросом и шаблоном. Есть ли простой способ добиться следующего?C++ variadic macro and template
Это как 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);
Это может быть хорошей идеей использовать совершенную пересылку здесь. – juanchopanza
@juanchopanza, да, конечно, исправлено, что – SirGuy