|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
|
|||||||||||||||||
bug msvc2015? trailing syntaxis for auto (since C++11)08.02.2021, 17:04. Показов 1660. Ответов 1
Всем привет!
Поведение msvc2015 - это баг? Или это - корректное поведение с++11, которое изменилось начиная с с++14? ----- trailing syntaxis for auto - это синтаксис вида: auto foo() -> intТип возвращаемого значения указывается в конце объявления функции, а не в начале. Благодаря чему, становится возможным определить тип возвращаемого значения через имя аргумента:
Если использовать совместно с SFINAE, то можно изготавливать "концепты". Концепт - это способ ввести ограничения для параметра шаблона. Благодаря чему становится возможным реализовать различную логику в зависимости от свойств типов. Например: https://rextester.com/ZKWZ68876
Но вот незадача: данный подход не работает в msvc2015
template<class t> auto concept(t&& v) И видит два одинаковых шаблона. Тип возвращаемого значения не входит в сигнатуру функции. Поэтому, во что бы в итоге ни раскрылся бы auto, с точки зрения компилятора - это всё равно две одинаковые сигнатуры. А двух одинаковых сигнатур быть не должно. То, что одна из этих перегрузок отвалится по SFINAE, об этом компилятор не думает. Можно было бы решить, что компилятор прав, вот только для шаблонов функций, тип возвращаемого значения входит в сигнатуру:
Более современные компиляторы (clang/gcc и Visual Studio более поздних версий) адекватно реагируют. И код успешно компилируется. Вопросы: Поведение msvc2015 - это баг? Или это - корректное поведение с++11, которое изменилось начиная с с++14?
0
|
|||||||||||||||||
| 08.02.2021, 17:04 | |
|
Ответы с готовыми решениями:
1
Streaming cluster replication bug or ne bug [Eclipse] Trailing Spaces |
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 08.02.2021, 23:28 | |
|
0
|
|
| 08.02.2021, 23:28 | |
|
Помогаю со студенческими работами здесь
2
Компилятор MSVC2015 не компилирует проекты
Где взять дебагер для msvc2015 Samsung R40 проклят? Древний ноутбук и Qt (с MSVC2015) Msvc2015 специализация шаблона для массива нулевого размера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|