Информация об изменениях

Сообщение Re: Перегрузка operator& от 08.02.2019 23:08

Изменено 08.02.2019 23:12 rg45

Re: Перегрузка operator&
Здравствуйте, Videoman, Вы писали:


V>Хочется спросить у знатоков С++ — что происходит с перегрузкой, почему так и по стандарту ли это? Можно как-то поправить (сделать что бы operator& разрешался только для класса A<uint_t>) ?


Так он и разрешается только для воплощений шаблонного класса A. А для перечислений En не разрешается, поэтому и возникает ошибка компиляции. Я полагаю, это очевидно и без ссылок на конкретные пункты стандарта, не так ли? А вот как должно выглядеть диагностическое сообщение об ошибке — этого в стандарте, конечно же нет, оно может иметь различную форму у разных компиляторов.
Re: Перегрузка operator&
Здравствуйте, Videoman, Вы писали:


V>Хочется спросить у знатоков С++ — что происходит с перегрузкой, почему так и по стандарту ли это? Можно как-то поправить (сделать что бы operator& разрешался только для класса A<uint_t>) ?


Так он и разрешается только для воплощений шаблонного класса A. А для перечислений En не разрешается, поэтому и возникает ошибка компиляции. Я полагаю, это очевидно и без ссылок на конкретные пункты стандарта, не так ли? А вот как должно выглядеть диагностическое сообщение об ошибке — этого в стандарте, конечно же нет, оно может иметь различную форму у разных компиляторов. Понятно, что разработчики компиляторов стараются сделать сделать свои диагностические сообщения максимально полезными и понятными. Ну а получается уже как получается.