이전에 질문을 받았다면 사과드립니다. 확실한 답변이 없으므로 수색이 가능합니다. 가능한지 궁금해지기 시작했습니다. 나는 C++ 11을 배우려고 노력하고 있으며 가변성 템플릿에 문제가있다. 나는 variadic 함수 매개 변수의 개념을 이해하고, 왜/재귀가 unwrap과 처리에 사용되는지를 생각하지만, 클래스 생성자에서 비슷한 개념을 가진 문제를 겪고있다.C++ 11 가변 클래스 생성자에서 완전히 임의의 private 멤버 튜플을 생성 할 수 있습니까?
혼합 유형 컨테이너 (터플이라고 가정)가 개인 구성원으로있는 가변적 템플릿 클래스를 만들고 싶다고 가정 해 보겠습니다. 클래스 객체가 생성 될 때 다양한 유형의 객체 중 임의의 수를 해당 튜플에 푸시 할 수 있습니까? 뭔가 같이 :
#include <tuple>
// forward declaration - is this needed?
template <class ... args>
class myClass;
template <class H, class ... T>
class myClass <H, T ...>
{
private:
std::tuple<anything can go here> mycontainer;
public:
myClass(const H& head, const T& ... tail)
{
push head into mycontainer;
do some sort of recursion with tail;
}
}
나는 표준 : tuple_cat 및 표준 : : make_tuple과 함께 주위에 나사없는 나는 잠시 동안 뭔가에 있던 것을 생각했지만, 운이 있었어요.
저는 C++과 관련이있어서 오랜 시간이 걸렸습니다. 그렇다면 사과해야합니다. 이제 막 C++ 11 기능에 대한 정보를 읽은 후이를 살펴보기 시작했습니다.
편집 : 그냥 내가 GCC의 4.8.x 및/또는 Visual Studio 2012
VS2012의 릴리스 버전은 가변 템플릿을 지원하지 않습니다. VS에 가변성을 원하면 2012 년 11 월 CTP 컴파일러 릴리스 또는 VS2013 미리보기가 필요합니다. – Casey
@Casey : 고마워요. 2013 미리보기가 표시됩니다. – thekamz