次のスニペットは、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'を削除してください –