sea*_*553 3 c++ syntax emulation
我一直在尝试从MAME项目中编译部分代码,我遇到了编译本节的问题attotime.h:
// core components of the attotime structure
typedef s64 attoseconds_t;
typedef s32 seconds_t;
// core definitions
constexpr attoseconds_t ATTOSECONDS_PER_SECOND_SQRT = 1'000'000'000;
constexpr attoseconds_t ATTOSECONDS_PER_SECOND = ATTOSECONDS_PER_SECOND_SQRT * ATTOSECONDS_PER_SECOND_SQRT;
constexpr attoseconds_t ATTOSECONDS_PER_MILLISECOND = ATTOSECONDS_PER_SECOND / 1'000;
constexpr attoseconds_t ATTOSECONDS_PER_MICROSECOND = ATTOSECONDS_PER_SECOND / 1'000'000;
constexpr attoseconds_t ATTOSECONDS_PER_NANOSECOND = ATTOSECONDS_PER_SECOND / 1'000'000'000;
constexpr seconds_t ATTOTIME_MAX_SECONDS = 1'000'000'000;
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
In file included from ~/git/mame/src/emu/emu.h:32,
from main.cpp:1:
~/git/mame/src/emu/attotime.h:54:56: warning: multi-character character constant [-Wmultichar]
constexpr attoseconds_t ATTOSECONDS_PER_SECOND_SQRT = 1'000'000'000;
^~~~~
~/git/mame/src/emu/attotime.h:54:64: warning: missing terminating ' character
constexpr attoseconds_t ATTOSECONDS_PER_SECOND_SQRT = 1'000'000'000;
^
~/git/mame/src/emu/attotime.h:54:64: error: missing terminating ' character
constexpr attoseconds_t ATTOSECONDS_PER_SECOND_SQRT = 1'000'000'000;
^~~~~
compilation terminated due to -Wfatal-errors.
make: *** [<builtin>: main.o] Error 1
Run Code Online (Sandbox Code Playgroud)
我没有修改代码或包含,但我正在编译它自己的Makefile.我从未见过这种语法,也无法在网上找到任何关于它的信息.
是否有g ++标志启用此功能?我知道我可以-Wno-multichar用来摆脱那个警告,但仍然有missing terminating ' character错误.
使用-std=c++14,作为分隔符是C++ 14的功能.请参阅:https://en.cppreference.com/w/cpp/language/integer_literal
可选的单引号(')可以作为分隔符插入数字之间.它们被编译器忽略.[自C++ 14]
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |