我想声明几种类型(在模板化的类内部K
并V
提供一些缓存行为):
typedef std::map<
long long,
typename key_to_value_type::iterator // Ooops... not declared yet
> timestamp_to_key_type;
typedef std::map<
K,
std::pair<V,typename timestamp_to_key_type::iterator>
> key_to_value_type;
当然,这是不可能的,因为循环定义。我可以用 破解它void*
,但我想知道是否有一些前向声明魔法或其他技术可以更好地完成这项工作。
(是的,我知道boost::bimap
会回避这个问题)。