正如我从this post发现的那样,用户定义的文字类型允许的参数类型如下:
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
。我该怎么做?
答案 0 :(得分:31)
没有负整数文字这样的东西。 -1000
是将一元-
运算符应用于文字1000
。
然后当我写
-1000_i
时,我希望得到-2000
。我该怎么做?
定义1000_i
,以便应用一元-
提供-2000
。例如,您可以使1000_i
结构类型具有自定义重载operator-
。