가변 매크로 및 템플릿을 가지고 놀고 있습니다. 다음을 달성하기위한 간단한 방법이 있습니까?C++ 가변 매크로 및 템플릿
std :: make_tuple과 같습니다. make_my_class를 구현하는 방법? 나는 아마도 "std :: 붕괴"가 필요하다는 것을 알았지 만 나는 그것을 이해하지 못했다. 많은 감사드립니다.
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