Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919

C++17 изменение не работает в VS2019

26.09.2024, 19:45. Показов 2557. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изучаю С++17 по документу:

https://ru.cppreference.com/w/... support/17

Заметил одну особенность - не пойму это баг VS2019 или что?

В статье по ссылке выше есть пункт - Разрешено константное вычисление для всех аргументов шаблона, не являющихся типом.

Я разобрался с этим пунктом. Но взял пример кода с темы которая описывалась - запустил код на VS2019 - и код не компилируется. Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
template<double Value>
constexpr double getFactorial()
{
    return Value * getFactorial<Value - 1.0>();
}
 
template<>
constexpr double getFactorial<0.0>() { return 1.0; }
 
int main()
{
    std::cout << getFactorial<4.0>() << '\n';
}
Смысл изменения С++17 в том что double до С++17 не разрешалось как не тип значение в параметрах шаблона (коротко про изменение).

Я пробовал и этот код не компилируется в VS2019.

Потом перешел на онлайн компиляторы - сайт https://godbolt.org/

На сайте выбрал компилятор x64 msvs v19.latest - в списке следующий после x64 msvs v19.40 - это версия компилятора VS2022 сайт godbolt использует _MSC_VER для указания версии в списке - пробовал этот код выше- все отлично компилируется.

Потом на этом же сайте выбрал свою студию VS2019 для godbolt это версия v19.22 - вставил тот же код - не компилируется.

То есть вопрос- почему это изменение С++17 не реализовано в VS2019? Это какой то баг, ошибка или что? Тем более что заголовок таблицы по ссылке С++17 выше - пишет что это изменение поддерживается в VS2019.

Как тут понимать- ошибка, баг, специально не реализовано? Но почему есть в списке изменений если не реализовано?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2024, 19:45
Ответы с готовыми решениями:

Функция gets не работает в VS2019
функция gets не работает в vs 2019, это можно как-то исправить?

Установка libcurl в VS2019, не работает nmake
Всем привет! Хочу ознакомиться и потыкаться с библиотекой libcurl c++. Устанавливаю на Visual Studio 2019 по этому гайду . Однако на...

Не работает изменение css и изменение текста
Не понимаю почему этот js код не работает: function load(){ var output = $('#pt').text('Загрузка'), i = 0; var timer =...

5
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
26.09.2024, 20:41
kurlyak, В 2019 поддерживается начиная с release version 16.7.

Добавлено через 7 минут
Цитата Сообщение от kurlyak Посмотреть сообщение
свою студию VS2019 для godbolt это версия v19.22
Это release version 16.2.
У тебя старая студия, обнови.

Добавлено через 2 минуты
Цитата Сообщение от kurlyak Посмотреть сообщение
почему это изменение С++17 не реализовано в VS2019?
2019 - понятие растяжимое. Там была туча апдейтов.
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
26.09.2024, 21:41
Цитата Сообщение от ablex Посмотреть сообщение
2019 - понятие растяжимое. Там была туча апдейтов.
Даже для 2015 как минимум три апдейт пака было. С которым я работал.
А 2019 да, косячили не по детски : Visual Studio 2019 version 16.11 Release Notes
И это только 16.11...

Ужас какой ...

Добавлено через 1 минуту
Visual Studio 2019 version 16.7 Release Notes
Тоже самое ...
1
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919
27.09.2024, 19:58  [ТС]
Цитата Сообщение от ablex Посмотреть сообщение
В 2019 поддерживается начиная с release version 16.7.
А можно самому почитать, где это указано что поддерживается с 16.7?

Добавлено через 51 минуту
Я обновил VS2019 до версии 16.11.40 все равно пример из первого сообщения не компилируется.

Может настройки проекта надо изменить? Например я выбирал project settings->general->C++ language support->ISO C++ 17 не компилируется, но выбрал ->general->C++ language supprot->ISO C++20 и все заработало. Но я так понял включил С++ 20 в настройках проекта, а мне надо С++ 17. там еще есть какой то пункт ->general->C++ language supprot->preview draft не понятно что это.

Вобщим под vs2019 вер. 16.11.40 с настройками языка С++17 не компилируется пример из первого сообщения. А если переключить на С++ 20 работает, но мне не надо С++20 мне надо С++17.
0
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919
27.09.2024, 20:09  [ТС]
Например вот нашел документ

Microsoft C/C++ language conformance by Visual Studio version



Пишет в таблице (на скриншоте) что поддерживает VS 2017 15.5 именно это изменение. Но у меня в VS2019 не хочет компилироваться.
0
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
03.10.2024, 10:18
Цитата Сообщение от kurlyak Посмотреть сообщение
Пишет в таблице (на скриншоте) что поддерживает VS 2017 15.5 именно это изменение. Но у меня в VS2019 не хочет компилироваться.
Я ж не говорил, что 2017 не поддерживает. Это же отдельный продукт, у него своя линейка обновлений.
А 2019 поддерживает с 16.7 (В режиме С++20). Сложно сказать почему так. Что-то поломали видимо, а потом чинили на протяжении нескольких версий.

Цитата Сообщение от kurlyak Посмотреть сообщение
мне не надо С++20 мне надо С++17
Тогда надо переходить с 2019 на более свежие версии.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2024, 10:18
Помогаю со студенческими работами здесь

Не работает изменение, не могу понять почему, Update не работает, ошибку выдает
Помогите, изменение с помощью button string u = заявкиDataGridView.CurrentRow.Cells.Value.ToString(); ...

Не работает выход в главное меню в 193 строке; не работает изменение баланса при победе, выигрыше или поражении
import os import telebot import time import random from telebot import types # Импортируем классы для инлайн клавиатуры from...

SharpGL и VS2019
Всем привет, интересует возможность подключения sharpgl к vs2019 для WinForms, ибо не выходит подключить базовые контролы для винформ из...

VS2019 и noexcept
имеется вот такой код. Вижуал студия 2019 жужжит на строку 27, я не понимаю, почему C++17 https://onlinegdb.com/C9LxFbe-e #include...

ifstream VS2019
Добрый день ув. форумчане. Написал код для чтения данных в бинарном виде. После попадания на байт в файле 0х00 - начинает читать не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru