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ก็อาจเป็นทางออกที่ใช้ได้
101
c++
metaprogramming
c++11
hash