Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/47: Рейтинг темы: голосов - 47, средняя оценка - 4.64
 Аватар для BaredJJ
19 / 18 / 7
Регистрация: 16.05.2017
Сообщений: 447

Включение std:c++17

30.06.2020, 15:05. Показов 10574. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Изучаю шаблоны и сейчас остановился на вариативных шаблонах. При попытке скомпилировать код в VS 2019 получаю следующие ошибки

1. Error C7518 fold expressions require at least '/std:c++17'
2. Error C7530 applying a pack-expansion to a using-declaration requires at least '/std:c++17'
3. Error C7530 applying a pack-expansion to a using-declaration requires at least '/std:c++17'

Естественно, я полез в google и он сказал, что нужно включить поддержку с++ 17 в ProjectProperties->C/C++ -> Language->C++ Language Standart. Пробовал как /std:c++17, так и /std:c++latest, не помогает. Ошибки так и остаются.Что я упустил, подскажите пожалуйста?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2020, 15:05
Ответы с готовыми решениями:

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

STL std::set, std::pair, std::make_pair
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

57
30.06.2020, 20:39
Студворк — интернет-сервис помощи студентам

Не по теме:

Для целых есть to_string() хотя конечно не в тех случаях кода нужно выводить в hex.

0
30.06.2020, 20:39

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Для целых есть to_string()
Оно дергает локали, может уйти в динамическую аллокацию, ну и дружит только с десятичной системой.
С чуть более лучшим успехом можно применить sprintf.

0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.06.2020, 20:45
Цитата Сообщение от Super-Hacker Посмотреть сообщение
Нет, это уже со скачанной IDE
Чего? Говорю сам компилятор будет меньше весить, думаю там основной вес IDE

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
ну и дружит только с десятичной системой.
Я как раз про это, но hex не так часто нужно как указывать точность и формат для float-ов.

А вообще по нормальному ф-ци преобразования должны принимать параметром локаль или другой объект для задания decimal separator-а
0
 Аватар для Super-Hacker
342 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
30.06.2020, 20:57
Цитата Сообщение от Avazart Посмотреть сообщение
А вообще в С++ преобразования между типами вида число в строку и обратно это дикий зашквар которому нет конца
АХАХхахаХХАХАХАХаххахаХХАХАХахахХХахахха хХХАХАХАХАХХАХАхаххХАХ, а в чем проблема, если вам так трудно написать что-то свое, юзайте to_string, stoi, atof
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
30.06.2020, 21:07
Цитата Сообщение от Super-Hacker Посмотреть сообщение
если вам так трудно написать что-то свое
тебе не трудно?
а то может покажешь, как ты гоняешь double <===> std::string ?

хочется что бы работало быстро (поддержка компалтайм приветствуется),
и без всяких грёбанных локалей.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.06.2020, 21:10
А с фига в 2020 году программист должен юзать свое для такой частой задачи?
Цитата Сообщение от Super-Hacker Посмотреть сообщение
юзайте to_string, stoi, atof
К тому что сказано было выше. Эти ф-ции не позволяют менять формат, задавать точноcть, локаль(для смены запятой на точку и обратно)
0
 Аватар для Super-Hacker
342 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
30.06.2020, 22:08
Цитата Сообщение от Avazart Посмотреть сообщение
А с фига в 2020 году программист должен юзать свое для такой частой задачи?
Эм... го то тъе пейтон

Кстати, хотите прэкол с ним
Если на плюсах написать массив через if'ы таким способом
C++
1
2
3
4
5
6
7
8
9
10
int a0, a1, a2, a3, a4;
int& get(int x)
{
   if(x == 0){int* tmp = &a0;return *tmp;}
   if(x == 1){int* tmp = &a1;return *tmp;}
   if(x == 2){int* tmp = &a2;return *tmp;}
   if(x == 3){int* tmp = &a3;return *tmp;}
   if(x == 4){int* tmp = &a4;return *tmp;}
   if(x >= 5){return -19353434534;}
}
На 1е5 элементов, то он будет весить и работать меньше, чем массив на пейтоне

Добавлено через 2 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
а то может покажешь, как ты гоняешь double <===> std::string ?
Эм, самый простой и логичный вариант, просто идти по строке до запятой(точки), прибавляя к целой части, и, если встретим ее, начать прибавлять к дробной
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.06.2020, 22:12
Да при чем тут питон блин вообще ...

Добавлено через 3 минуты
Цитата Сообщение от Super-Hacker Посмотреть сообщение
чем массив на пейтоне
Чем array.array ли numpy? И даже если так чем, такое сравнение должно удивить?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 22:16
Цитата Сообщение от Super-Hacker Посмотреть сообщение
Эм, самый простой и логичный вариант, просто идти по строке до запятой(точки), прибавляя к целой части, и, если встретим ее, начать прибавлять к дробной
Продемонстрируешь?
0
 Аватар для Super-Hacker
342 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
30.06.2020, 22:41
Croessmah, Продемонстрирую

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
чем, такое сравнение должно удивить?
Зачем тут запятая?
Тем, что ваш код будет весить в 228100500 раз больше, но работать быстрее и тратить памяти меньше
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
30.06.2020, 23:07
Цитата Сообщение от Super-Hacker Посмотреть сообщение
Эм, самый простой и логичный вариант, просто идти по строке до запятой(точки), прибавляя к целой части, и, если встретим ее, начать прибавлять к дробной
голословное "бла бла бла" не интересно.
0
 Аватар для Super-Hacker
342 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
30.06.2020, 23:11
Так ребятки, простите за ожидание
Вот ваш то дабл в сравнении со стандартом
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 23:13
Super-Hacker, код-то своей stoD продемонстрируешь?
Картинки ничего не показывающего кода никому не интересны.
Даже замеры сделаны неверно.
0
 Аватар для Super-Hacker
342 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
30.06.2020, 23:21
Croessmah, Предложите свои варианты замеров

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
double stoD(string s)
{
    double d[2] = {0, 0};
    double r = 10.0;
    int pos;
    for(int i = 0; i < s.size(); i++)
    {
        char it = s[i];
        if(it == '.')
        {
            d[0] /= 10;
            pos = i;
            r = 0.1;
            break;
        }
        d[0] = (d[0] + (it - '0')) * r;
    }
    for(int i = s.size() - 1; i > pos; i--)
    {
        char it = s[i];
        d[1] = (d[1] + (it - '0')) * r;
    }
    return d[0] + d[1];
}
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.06.2020, 23:24
Цитата Сообщение от Super-Hacker Посмотреть сообщение
Тем, что ваш код будет весить в 228100500 раз больше, но работать быстрее и тратить памяти меньше
Код на С++ ? Еще раз при чем тут питон?

Цитата Сообщение от Super-Hacker Посмотреть сообщение
Предложите свои варианты замеров
C++
1
2
3
4
double  d = stoD("-1,5e-6"s);
// Так случилось что числа бывают отрицательными 
// в экспонентной форме 
// и русской локали
Менять незачем, на этом примере код идет в топку.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 23:28
Super-Hacker, stoD("-3") - беда.
Оно не умеет читать в шестнадцатеричном виде. Не умеет читать в научном (экспоненциальном) формате. Не умеет читать отрицательный числа. И даже не умеет читать целые числа.
Ну, т.е. всё то, что умеет from_chars твоя функция не умеет.
Так что
Цитата Сообщение от Super-Hacker Посмотреть сообщение
АХАХхахаХХАХАХАХаххахаХХАХАХахахХХахахха хХХАХАХАХАХХАХАхаххХ АХ, а в чем проблема, если вам так трудно написать что-то свое
ты свое пока не написал.
0
 Аватар для Super-Hacker
342 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
30.06.2020, 23:34
Цитата Сообщение от Croessmah Посмотреть сообщение
Оно не умеет читать в шестнадцатеричном виде. Не умеет читать в научном (экспоненциальном) формате. Не умеет читать отрицательный числа.
Обычно, если вы используете что-то такое, вам не нужно хранить это в строках
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.06.2020, 23:37
Цитата Сообщение от Super-Hacker Посмотреть сообщение
Обычно, если вы используете что-то такое, вам не нужно хранить это в строках
А поступающие данные обрабатывать кто будет?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.06.2020, 23:58
Цитата Сообщение от Super-Hacker Посмотреть сообщение
Обычно, если вы используете что-то такое, вам не нужно хранить это в строках
Что-то такое это что велосипед? Не все таки нужно например если мы пишем какой нибудь hex кодер/декодер
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
01.07.2020, 00:52
Цитата Сообщение от Super-Hacker Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double stoD(string s)
{
    double r = 10.0;
...
            d[0] /= 10;
...
            r = 0.1;
            break;
        }
        d[0] = (d[0] + (it - '0')) * r;
    }
...
}
Дичь-то какая! В цикле умножали на r, а для того, чтобы откатить лишнее умножение делим на 10? Зачем тогда вообще было заводить r?

Но пусть это будет стилистика.

А практика такова, что правильно написанная функция stoD обязана выполнять точный перевод любого представимого значения, а непредставимые значения должна представлять максимально точно. Уже одно циклическое умножение на r = 0.1; - это трэш, который летит сразу в ффтопку.

Написание правильного перевода даже обычной десятичной строки с точкой в плавающее число - не высшая математика. Но мозги все таки придется включить.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.07.2020, 00:52

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Std::bind, std::mem_fun, std::mem_fn
В чем разница между функциями std::bind, std::mem_fun, std::mem_fn?

Std::begin() ,std::end(),std::copy
...// int main() { std::vector&lt;double&gt; data;//Работает cout &lt;&lt; std::begin(data); double *data=new double; ...

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

Включение пункта меню после включение чекбокса
Как правильно сделать, чтобы наличие галочки screenTimeOutTile пункта настроек включало неактивный следующего typeScreenTimeOut правильно? ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
сукцессия 5
anaschu 26.06.2026
ПЛАН РАЗРАБОТКИ математической модели сукцессии микоризных систем Переход AM → EcM (Endo + ErM) · Шумилов А. С. · ИФХиБПП РАН · Пущино · 2026 . . .
сукцессия 4
anaschu 25.06.2026
Более детализированный план разработки План доработки модели динамики микоризных симбиозов (EcM с гистерезисом) Цель: Реализовать логику переключения между эрикоидным (ErM) и эктомикоризным. . .
сукцессия 3
anaschu 25.06.2026
Примерный план работ по модели
сукцессия 2
anaschu 25.06.2026
параметризировочная калибровочная таблица будущей модели
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru