如何为有符号整数类型创建用户定义的文字?

qua*_*ant 16 c++ c++11

正如我从已发现此信息是允许用户定义的文本类型的参数类型,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

好吧,我在该列表中看到的唯一有符​​号整数是char,它太小了.如果我想做这样的事情怎么办?

str operator"" _i(int i) {
    return i*2;
}
Run Code Online (Sandbox Code Playgroud)

然后,当我写作时,-1000_i我希望得到-2000.我该怎么做呢?

小智 32

没有负整数文字这样的东西.-1000是一元运算-符在文字中的应用1000.

然后,当我写作时,-1000_i我希望得到-2000.我该怎么做呢?

1000_i以这样的方式定义,即应用一元-给出-2000.例如,您可以1000_i使用自定义重载来创建结构类型operator-.