저는이 라이브러리의 API를 (다시) 설계하고 있습니다. 템플릿 화 된 여러 가지 인수를 취할이 함수가 있습니다. 로, 대안가변 템플릿 템플릿을 디자인 할 때 튜플이나 파라미터 팩을 선호해야합니까?
template<typename... Ts>
void foo(bar_t bar, Ts... params);
또는 : 나는 수를 정의 할 수 있습니다
template<typename... Ts>
void foo(bar_t bar, std::tuple<Ts...> params);
을 나는 (양 방향)이 두 교환 알고 :
C++11: I can go from multiple args to tuple, but can I go from tuple to multiple args?
그래서 두 옵션 모두 일반적으로 비슷하지만, 하나의 변형을 다른 변형보다 선호해야합니까 아니면 단순히 맛/개인 스타일의 문제입니까?
필자는 이질적인 초기화 목록'{t1, t2, t3, ...} '이'std :: tuple'유형 * T1, T2 ... (언어의 일부가 아니기 때문에)의 공제 *를 사용하는 경우, 첫 번째 옵션은 여전히 더 일반적입니다 (그러나 다른 이유로 불편 함). 두 번째 옵션은 호출자가 명시 적으로'std :: tuple <...> '또는'std :: make_tuple' 함수에 대해 알도록 강제합니다. –
alfC