小编Rob*_*ris的帖子

执行不同的C++模板参数

我尝试使用(仅)STL创建一个BidirectionalMap类(不,boost不是一个选项.)我有99%的工作方式,我想要的方式,但我真正想不到的是如何强制模板需要两种不同的类型,以便可以正确覆盖operator [].就像是...

template < class KeyType, class ValueType >
class BidirectionalMap
{
  public:

  ...

  const ValueType& operator[](const KeyType& _k ) { return( m_keyMap[ _k ] ); }
  const KeyType& operator[](const ValueType& _v ) { return( m_valMap[ _v ] ); }

  private:

  std::map< KeyType > m_keyMap;
  std::map< ValueType > m_valueMap;
};

main()
{
  BidirectionalMap< Foo, Foo > fooMap; // won't work, ambiguous.
  BidirectionalMap< Foo, Bar > fooBarMap; // does work.
} 
Run Code Online (Sandbox Code Playgroud)

思考?-R

c++ templates

6
推荐指数
2
解决办法
176
查看次数

标签 统计

c++ ×1

templates ×1