Сообщение Re[3]: хочуфичу - функции-конструкторы от 29.12.2023 10:40
Изменено 29.12.2023 10:45 rg45
Re[3]: хочуфичу - функции-конструкторы
Здравствуйте, Кодт, Вы писали:
К>Но clang и msvc так в принципе не умеют. Ну false и false.
msvc очень даже умеет! Если взять вот такой пример:
и скомпилировать его в Visual Studio (не в godbolt), то компилятор формирует вот такую диагностику:
В этой диагностике присутствуют интересующие нас строки:
К>Но clang и msvc так в принципе не умеют. Ну false и false.
msvc очень даже умеет! Если взять вот такой пример:
код примера | |
| |
и скомпилировать его в Visual Studio (не в godbolt), то компилятор формирует вот такую диагностику:
диагностика msvc-14.3 | |
| |
В этой диагностике присутствуют интересующие нас строки:
1> the associated constraints are not satisfied
. . .
1> the concept 'Constructible<Foo,int,int>' evaluated to false
. . .
1> '<function-style-cast>': cannot convert from 'initializer list' to 'Foo'
. . .
1> 'Foo::Foo': no overloaded function could convert all the argument types
. . .
1> could be 'Foo::Foo(const char *,const char *)'
. . .
1> or 'Foo::Foo(const char *,int)'
. . .
1> or 'Foo::Foo(int,const char *)'
Re[3]: хочуфичу - функции-конструкторы
Здравствуйте, Кодт, Вы писали:
К>Но clang и msvc так в принципе не умеют. Ну false и false.
msvc очень даже умеет! Если взять вот такой пример:
и скомпилировать его в Visual Studio (не в godbolt), то компилятор формирует вот такую диагностику:
В этой диагностике присутствуют интересующие нас строки:
К>Но clang и msvc так в принципе не умеют. Ну false и false.
msvc очень даже умеет! Если взять вот такой пример:
код примера | |
| |
и скомпилировать его в Visual Studio (не в godbolt), то компилятор формирует вот такую диагностику:
диагностика msvc-14.3 | |
| |
В этой диагностике присутствуют интересующие нас строки:
1> the associated constraints are not satisfied
. . .
1> the concept 'Constructible<Foo,int,int>' evaluated to false
. . .
1> '<function-style-cast>': cannot convert from 'initializer list' to 'Foo'
. . .
1> 'Foo::Foo': no overloaded function could convert all the argument types
. . .
1> could be 'Foo::Foo(const char *,const char *)'
. . .
1> or 'Foo::Foo(const char *,int)'
. . .
1> or 'Foo::Foo(int,const char *)'