Я написал следующую программу на C++23. Здесь я перегрузил функции-члены. Но во всех случаях разные компиляторы дают разные результаты, как показано ниже в комментарии. Как вы можете видеть, ниже у меня есть три случая. Демо.
struct C {
void j(this const C);
void j() const ; //#1: Clang:Nope while gcc and msvc:Ok
// void f(this C );
// void f(C); //#2: EDG: Nope while Clang,gcc and msvc:OK
// void k(this const C&);
// void k() const ; //#3: EDG: OK while Clang, gcc and msvc:Nope
};
Я хочу знать, каково стандартное соответствующее поведение для этих трех случаев.
#1 принимается gcc и msvc, но отклоняется clang, говоря:
:3:10: error: class member cannot be redeclared
3 | void j() const ; //#1: Clang:Nope while gcc and msvc:Ok
| ^
:2:10: note: previous declaration is here
2 | void j(this const C);
|
Подробнее здесь: https://stackoverflow.com/questions/787 ... -compilers
Явные несоответствия функций-членов объекта между разными компиляторами ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Можно ли вызвать явные функции элемента объекта по указанию на выделенное хранилище?
Anonymous » » в форуме C++ - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-