Следует ли найти дружественную функцию в пространстве имен, отличном от класса, с помощью поиска, зависящего от аргументC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Следует ли найти дружественную функцию в пространстве имен, отличном от класса, с помощью поиска, зависящего от аргумент

Сообщение Anonymous »

Подумайте

Код: Выделить всё

struct A;
namespace ns { int f(A&&); }
struct A {
friend int ns::f(A&&);
};

int x = f(A{});
Транк GCC преобразует последнюю строку в вызов ns::f(A&&) в C++20 и более поздних версиях. Clang, MSVC, EDG, GCC 15.2 (независимо от языкового стандарта), магистраль GCC в C++17 отклоняют вызов, утверждая, что они не могут найти объявление f.
демо: https://godbolt.org/z/59Pdzcc9G
Какой компилятор правильный?

Подробнее здесь: https://stackoverflow.com/questions/798 ... und-by-arg
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»