我在几个不同的地方读过,使用C ++ 11的新字符串文字,可以在编译时计算字符串的哈希值。然而,似乎没有人准备出来说它将是可能的或如何完成。
这可能吗?
操作员会是什么样子?
我特别感兴趣的是这样的用例。
void foo( const std::string& value )
{
switch( std::hash(value) )
{
case "one"_hash: one(); break;
case "two"_hash: two(); break;
/*many more cases*/
default: other(); break;
}
}
注意:编译时哈希函数不必像我编写的那样完全。我尽力猜测最终解决方案的样子,但meta_hash<"string"_meta>::value也可能是一个可行的解决方案。
杨魅力
相关分类