下面的代碼片段在Visual Studio和g ++中都可以正常工作。多參數模板不能很好地與朋友聲明一起玩
template<typename T> class BST;
template<typename T>
class BSTNode
{
friend class BST<T>;
...
,而這個片段中正常工作在VS,但不是G ++
template<typename K, typename V> class Map;
template<typename K, typename V>
class MapPair
{
friend class Map<typename K, typename V>;
...
什麼是錯的代碼?我得到的錯誤是無益的,但在這裏他們是
error: wrong number of template arguments (1, should be 2)
error: provided for ‘template<class K, class V> struct Map’
error: friend declaration does not name a class or function
任何想法?
從'K'和'V'之前刪除'typename'# – 2012-02-11 18:27:08