또 다른 질문에 답하면서 정수 또는 부동 리터럴이 발견 될 때만 리터럴 연산자 템플릿이 선언 집합에서 선택된다는 사실을 잊어 버렸습니다. 예를 들어리터럴 연산자 템플릿 : 왜 문자열이 아니겠습니까?
:
template <char... C>
constexpr int operator "" _x() {
return 0;
}
그것은 10_x
로 사용할 수 있지만이 foo_x
으로도 "foo는"_x로도 사용할 수 없습니다.
because the standard says that 외에도, 문자열 리터럴을 처리 할 때 고려하지 않은 기술적 인 이유는 무엇입니까?
나는 (정확히 똑같은 것은 아니지만 아이디어를 제공합니다) 그러나 proposal을 발견했지만 여전히 옵션은 아닙니다.
문자열로 사용할 수없는 이유는 무엇입니까?
''foo "_x'를 원하셨습니까? –
@SebastianRedl 감사합니다. – skypjack
가치가있는 'foo_x'는 식별자이므로 결코 udl을 호출하지 않습니다. – Barry