我有一个像
这样的宏 #define ascii_to_3bit(c) c & 0x60 - 1
我试图将其替换为:
constexpr const std::uint8_t ascii_to_3bit(char c)
{
return c & 0x60 - 1;
}
我正在使用它:
enum class Column
{
A = ascii_to_3bit('a'),
B = ascii_to_3bit('b'),
C = ascii_to_3bit('c'),
D = ascii_to_3bit('d'),
E = ascii_to_3bit('e'),
F = ascii_to_3bit('f'),
G = ascii_to_3bit('g'),
H = ascii_to_3bit('h')
};
它可以作为一个宏工作正常但是死掉了#34;函数调用必须有一个带常量表达式的常量值"当它是一个功能。
有可能吗?编译器是VS2015发布的任何东西。