This question already has answers here:
Comma in C/C++ macro

(7个答案)


去年关闭。




这是在编译时仅使用某些编译器参数返回的异常错误。

可以使用g++ -std=c++11 -m64 -O3 -DNDEBUG
但是,使用g++ -std=c++11 -m64 -Wall -g,就会发生此问题:



码:
const unsigned int h = htonl(hash::CompileTime<'A', 'S', 't', 'r', 'i', 'n', 'g'>::hash);

我不确定问题是来自htonl调用还是来自我的模板哈希器。

你知道如何解决吗?

其他信息:
template<const char C0,         const char C1 =  '\0', const char C2 =  '\0',
         const char C3  = '\0', const char C4 =  '\0', const char C5 =  '\0',
         const char C6  = '\0', const char C7 =  '\0', const char C8 =  '\0',
         const char C9  = '\0', const char C10 = '\0'>
struct CompileTime
{
    //Do you think this code could help?
};

最佳答案

添加另一对大括号:
htonl((hash::CompileTime<'A', 'S', 't', 'r', 'i', 'n', 'g'>::hash))

10-06 11:24