나는 함수 포인터를 원하는 코드를 가지고 있지만, 에서 "new T (x, y, z)"라고하는 코드를 호출해야합니다.새로운 T (x, y, z) 함수로
나는의 라인을 따라 함수 작성할 수 있습니다
template<T, X, Y, Z>
T* Construct(X x, Y y, Z z) {
return new T(x, y, z);
}
을하지만 난 궁금 그런 일이 STL에 이미 존재하는 경우, 내가 인수의 변수 번호를이 작업을 수행 할 필요가 있기 때문에 이것은 위의 반복이 필요합니다 , 말하자면, 각 인수의 수에 대해 한 번씩 10 번, 헤더 파일에 너무 많은 상용구를 추가하는 것을 피하고 싶습니다.
C++ 11에서
을 그리고,'표준 :으로 make_ <고유 반환/샤르 ed> (std :: forward (args) ...); ' –
chris
감사합니다, 그런 종류의 작품이긴하지만, 내가 예상했던대로는 아닙니다. 이 정확한 함수가 STL에 이미 존재한다면 나는 여전히 궁금하다. 왜 당신의 솔루션이 나를 위해 잘 작동하지 않는가하는 이유는 (아직) 코드베이스에서 가변적 인 템플릿을 사용할 수 없다는 것입니다. 이 함수가 이미 STL에 있으면 사용할 수 있습니다. – user2557021
@ user2557021 : 그런 다음 Kerrek의 솔루션을 고려해야 할 것입니다. –