2013-06-16 1 views
2

이 문제를 미리 해결할 수 없습니다. 각 요소가 동일한 매개 변수를 사용하는 튜플을 초기화하는 방법이 있습니까? 예를 들어 ...동일한 매개 변수를 사용하여 튜플을 초기화하십시오.

template <class... args> 
std::tuple<args...> tuplemaker(int n) 
{ 
    // What goes here? 
} 

auto my_tuple = tuplemaker<int, int, int>(42); 

확실한 실례입니다. 내가 정말로하고 싶은 것은 반복적으로 동일한 튜토리얼 요소의 생성자에 동일한 파라미터를 전달하는 것입니다. 누구에게 조언이 있습니까? 이 같은

답변

4

뭔가 :

template <class... args> 
    std::tuple<args...> tuplemaker(int n) 
{ 
    return std::make_tuple(args(n)...); 
} 

Live example here.

+0

암시 적 캐스트를 원할 경우'template T implicit_cast (U && u) {return std :: forward (u);을 작성하십시오. }''''tuplemaker'에서 하나의 인자를 명시 적으로 함수형으로 변환하면 지나치게 공격적 일 수있는'reinterpret_cast'를 끝낼 수 있습니다. .. (당신의'args' 중 하나를 포인터로 사용하면 포인터에'int'를 자동으로 캐스팅 할 것입니다.) – Yakk

+0

예기치 않게 간단합니다. 고맙습니다! – Sentient

관련 문제