3
함수 내에서 두 개의 객체를 생성하기 위해 여러 개의 인수를 전달하고 싶습니다. 동일한 방법으로 std::pair<T1, T2>(std::piecewise_construct, ...)
이 작동합니다. std :: forward_as_tuple을 사용하여 2 개의 생성자에 인수 전달
f(std::forward_as_tuple(..., ..., ...), std::forward_as_tuple(..., ...))
를 호출 할 수 있습니다하지만 Object0
및 Object1
을 구성하는 방법을 모른다
template <typename Args0..., typename Args1...>
void f(std::tuple<Arg0> args0, std::tuple<Args1> args1) {
Object0 alpha(...);
Object1 beta(...);
...
}
을 썼다. 내가 표준 라이브러리
std::pair
에 대한 소스 코드를 확인하고 args0과 args1의 색인을 얻기 위해 복잡한 내부 함수를 사용하는 것 같다. 어떻게하는지에 대한 생각이 있습니까?
감사합니다. 불행히도, RHEL 7에서 제공하는 gcc 4.8.5와 호환 될 필요가 있습니다. 그래서 저는 C++ 11에서 make_index_sequence를 구현해야한다고 생각합니다. std :: pair에 대한 표준 라이브러리에서 찾은 것입니다. – InsideLoop
@InsideLoop 멋지다. C++ 11에서 작동하는 라이브 데모를 추가했다. – TartanLlama
차가움. 그것은 gcc 4.8.5와 함께 작동합니다 :-) – InsideLoop