(ошибка объявления). Разным компиляторам разрешено разбирать код по-разному, поэтому им разрешено выдавать разные сообщения об ошибках. Я не нахожу ничего плохого в этом сообщении об ошибке.
ние неизвестного друга
template<typename T>
class List
{
protected:
class a {
int x;
int y;
private:
friend class b; // <------------ Why this is not an error?
};
template <typename U > class b { //If that is not a error this should be an error
int z;
U y;
};
public:
List() {
a* ptr = (a *)new unsigned char[sizeof(a)];
}
};
int main() {
List<int> mylist;
}
Пожалуйста, перейдите по этой ссылке, у меня есть мои вопросы в виде комментариев в коде. Я пытаюсь сделать другого класса другом моего класса. Но этот класс не знаю, когда заводить друзей. Что такое правило C ++, которое допускает это? Позже я определю этот класс таким образом, чтобы он был несовместим с объявлением друга. Почему это не выдает ошибку. Спасибо