相关疑难解决方法(0)

带有双参数的C++ 11运算符""

考虑:

struct str {};

str operator"" _X(long double d) {
    return str();
}
Run Code Online (Sandbox Code Playgroud)

用g ++ 4.7.2 Wall std = c ++ 11编译好

但现在如果我给双倍:

str operator"" _X(double d) {
    return str();
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:main.cpp | 3 | error:'str operator""_ X(double)'具有无效的参数列表

问题是什么 ?这与"不可能重新定义内置文字后缀的含义"(Stroustrup FAQ)有关吗?你能想到一个解决方法吗?

c++ literals c++11

29
推荐指数
2
解决办法
5943
查看次数

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

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

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.我该怎么做呢?

c++ c++11

16
推荐指数
1
解决办法
992
查看次数

标签 统计

c++ ×2

c++11 ×2

literals ×1