我需要使用一个字符串作为ID以获得一些对象。在运行时执行此操作,并且运行良好。但是这使得静态类型检查不可能,原因很明显。编译时串散列
我GOOGLE的算法计算在编译时字符串的哈希总和:C++ compile-time string hashing with Boost.MPL。
这似乎是我的问题的完美解决方案,除了算法所必需的sring应该由4个字符或字符逐个字符分割为碎片以外,原因很明显。
即,而不是ID的通常的当前记录,我得写这样:
hash_cstring<boost::mpl::string<'obje', 'ct.m', 'etho', 'd'>>::value
这是绝对不能使用的。
的问题是,如何正确传递字符串,如"object.method"
这个算法?
谢谢大家。
可以使用结构直接与静态字符串,而不是字符串?也许是一个宏也可以产生它们? – Anycorn 2011-02-12 04:19:24
@aaa:宏不分割标记,它们可以串联或连接它们,但不能分割它们。 – 2011-02-12 10:26:19