인수에 대한 const 참조가있는 가변 템플릿 함수를 특수화하는 방법은 무엇입니까?const 레퍼런스를 사용한 Variadic 템플릿 전문
는예 :
error: use of deleted function ‘T foo(Args ...) [with T = int; Args = {int, const char*, Test}]’
auto i = foo<int>(10, "test string!", t);
위의 코드를 컴파일 :
template<typename T, typename... Args>
T foo(Args... args) = delete;
template<> int foo(int a, const char* str, const Test& t) { .... } // Fails to compile
//template<> int foo(int a, const char* str, Test) { .... } // Ok
int main() {
auto i = foo<int>(10, "test string!", t);
return 0;
}
선언 const Test&
인수와 함께 함수 foo를 호출, 컴파일러는 삭제 기능에 특화된 기능과 폴백을보고 실패 인수에서 const 참조를 제거하면됩니다. 내가 도대체 뭘 잘못하고있는 겁니까?
코드는 here
는 물론, 난 완전히에 대한 명시 적 인스턴스화를 잊어 버렸습니다. 귀하의 답변 주셔서 감사합니다! – Bected