Следующий фрагмент прекрасно работает как в 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
Есть идеи?