Сообщение Re[3]: Почему нельзя предварительно объявить дружественную ф от 24.09.2023 19:57
Изменено 24.09.2023 20:25 rg45
Re[3]: Почему нельзя предварительно объявить дружественную ф
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Мне нужно указать в качестве дружественной функцию, которая является членом класса, а не просто пространства имен.
Блин. Ну ты же апеллируешь к тому, что свободные функции, якобы, можно объявлять дружественными без предварительного объявления. Вот я тебе и показываю, что твои апелляции безосновательны, потому что, в общем случае, свободную функцию тоже сначала нужно объявить, прежде чем ее можно будет объявить дружественной:
http://coliru.stacked-crooked.com/a/5da8e14983baa2f4
Исключением являются только функции из того же пространства имен, что и класс. Нужно объяснять, почему подобное исключение невозможно сделать для дружественных функций-членов, или сам напряжешь извилину?
ЕМ>Мне нужно указать в качестве дружественной функцию, которая является членом класса, а не просто пространства имен.
Блин. Ну ты же апеллируешь к тому, что свободные функции, якобы, можно объявлять дружественными без предварительного объявления. Вот я тебе и показываю, что твои апелляции безосновательны, потому что, в общем случае, свободную функцию тоже сначала нужно объявить, прежде чем ее можно будет объявить дружественной:
http://coliru.stacked-crooked.com/a/5da8e14983baa2f4
namespace ns
{
void foo();
} // namespace ns
struct A
{
friend void ns::foo(); // Ok
friend void ns::bar(); // error: 'void ns::bar()' should have been declared inside 'ns'
};
Исключением являются только функции из того же пространства имен, что и класс. Нужно объяснять, почему подобное исключение невозможно сделать для дружественных функций-членов, или сам напряжешь извилину?
Re[3]: Почему нельзя предварительно объявить дружественную ф
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Мне нужно указать в качестве дружественной функцию, которая является членом класса, а не просто пространства имен.
Блин. Ну ты же апеллируешь к тому, что свободные функции, якобы, можно объявлять дружественными без предварительного объявления. Вот я тебе и показываю, что твои апелляции безосновательны, потому что, в общем случае, свободную функцию тоже сначала нужно объявить, прежде чем ее можно будет объявить дружественной:
http://coliru.stacked-crooked.com/a/5da8e14983baa2f4
Исключением являются только дружественные функции из того же пространства имен, что и сам класс. Нужно объяснять, почему подобное исключение невозможно сделать для дружественных функций-членов, или сам напряжешь извилину?
ЕМ>Мне нужно указать в качестве дружественной функцию, которая является членом класса, а не просто пространства имен.
Блин. Ну ты же апеллируешь к тому, что свободные функции, якобы, можно объявлять дружественными без предварительного объявления. Вот я тебе и показываю, что твои апелляции безосновательны, потому что, в общем случае, свободную функцию тоже сначала нужно объявить, прежде чем ее можно будет объявить дружественной:
http://coliru.stacked-crooked.com/a/5da8e14983baa2f4
namespace ns
{
void foo();
} // namespace ns
struct A
{
friend void ns::foo(); // Ok
friend void ns::bar(); // error: 'void ns::bar()' should have been declared inside 'ns'
};
Исключением являются только дружественные функции из того же пространства имен, что и сам класс. Нужно объяснять, почему подобное исключение невозможно сделать для дружественных функций-членов, или сам напряжешь извилину?