Как вы отмечаете шаблон структуры как друга?

У меня такой код:

template <typename T, typename U> struct MyStruct {
    T aType;
    U anotherType;
};

class IWantToBeFriendsWithMyStruct
{
    friend struct MyStruct; //what is the correct syntax here ?
};

Каков правильный синтаксис, дающий дружбу с шаблоном?

Ответ 1

class IWantToBeFriendsWithMyStruct
{
    template <typename T, typename U>
    friend struct MyStruct;
};

Работает в VS2008 и позволяет MyStruct обращаться к классу.

Ответ 2

Согласно этот сайт, правильный синтаксис будет

class IWantToBeFriendsWithMyStruct
{
    template <typename T, typename U> friend struct MyStruct; 
}