Как я узнал из этого сообщения, типы параметров, разрешенные для определенного пользователем типа литерала, следующие:
const char*
unsigned long long int
long double
char
wchar_t
char16_t
char32_t
const char*, std::size_t
const wchar_t*, std::size_t
const char16_t*, std::size_t
const char32_t*, std::size_t
Ну, единственное целое число, которое я вижу в этом списке, char
, которое слишком мало. Что делать, если я хотел сделать что-то вроде этого:
str operator"" _i(int i) {
return i*2;
}
Тогда, когда я пишу -1000_i
, я ожидаю получить -2000
. Как это сделать?