11
コンパイル時の文字列ハッシュ
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が、実行可能なソリューションになる可能性もあります。
100
c++
metaprogramming
c++11
hash