최근에 gcc-trunk 소스에서 "사용자 정의 리터럴"이 구현되었습니다. 제발 말해줘, 나는 variadic char 템플릿에 대해 "사용자 정의 리터럴"을 정의 할 수 없다는 것을 정확히 이해합니까?variadic char 템플릿에 대한 사용자 정의 리터럴
template<char... chars>
int operator"" _call() { return sizeof...(chars); }
...
std::cout << "method"_call;
up. 이 표현이 허용되는 이유를 이해 돈`t
:이 하나가 허용되지template<char... chars>
int operator"" _call() { return sizeof...(chars); }
...
std::cout << 12345566_call;
을 :
template<char... chars>
int operator"" _call() { return sizeof...(chars); }
...
std::cout << method_call;
?
무엇이 요점입니까?
업. 이것은 모호성 때문입니까?
감사합니다.
이 변형에 대해 알고 있습니다. 하지만 난 variadic char 템플릿을 기대했다. – niXman
@niXman : "변형"이 아닙니다. 그것이 표준에 의해 정의되는 방법입니다. 사용자 정의 적분과 부동 소수점 리터럴 만'template'형식을 사용할 수 있습니다 (그래서 첫 번째 코드 조각에서'12_call'이 작동합니다). –