Вопросы с тегом 'c++14'

С++ 14 - это название стандарта С++, утвержденного в 2014 году. Он основывается на предыдущем стандарте С++ 11, улучшении основного языка и стандартной библиотеки и добавлении некоторых функций.
2

Как реализовать классические алгоритмы сортировки в современном С++?

Алгоритм std::sort (и его кузены std::partial_sort и std::nth_element) из стандартной библиотеки С++ находится в большинстве реализаций сложное и гибридное объединение более элементарных алгоритмов сортировки, такие как сортировка выбора, сортировка...
09 июл. '14 в 9:59
29

перечисление в строку в современном С++ 11/С++ 14/С++ 17 и будущем С++ 20

Вопреки всем другим подобным вопросам, этот вопрос касается использования новых функций C++. 2008 c Есть ли простой способ преобразовать перечисление C++ в строку? 2008 c Простой способ использовать переменные перечислимых типов в виде строки в C?...
03 мар. '15 в 10:05
2

Может ли современный С++ получить вам производительность бесплатно?

Иногда утверждается, что С++ 11/14 может повысить производительность даже при компиляции кода на С++ 98. Обоснование обычно выполняется в соответствии с семантикой перемещения, так как в некоторых случаях конструкторы rvalue автоматически генерируютс...
22 дек. '14 в 1:03
5

Почему я не должен #include <bits/stdС++. H>?

Я отправил вопрос с моим кодом, единственной директивой #include было следующее: #include <bits/stdc++.h> Мой учитель сказал мне сделать это, но в разделе комментариев мне сообщили, что я не должен. Почему?
04 авг. '15 в 17:57
6

Имеет ли С++ 11, 14, 17 или 20 стандартную константу для pi?

Существует довольно глупая проблема с числом pi в C и C++. Насколько я знаю, M_PI определенный в math.h, не требуется никаким стандартом. Новые C++ стандарты внесли в стандартную библиотеку множество сложной математики - гиперболические функции, st...
11 апр. '18 в 14:49
1

Скопировать/переместить назначение в std::vector:: erase() и std:: deque:: erase()

В процессе ответа на еще один вопрос я наткнулся на несколько разные формулировки для std::vector::erase() и std::deque::erase(). Вот что говорит С++ 14 о std::deque::erase ([deque.modifiers]/4-6, мой удар): Эффекты:... Сложность: количество выз...
02 февр. '15 в 12:40
7

Лямбда-захват как const-ссылка?

Можно ли зафиксировать константную ссылку в выражении лямбда? Я хочу, чтобы присваивание, помеченное ниже, завершилось неудачей, например: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using nam...
22 сент. '10 в 19:23
2

Как работает `void_t`

Я смотрел, как Уолтер Браун говорил на Cppcon14 о современном программировании шаблонов (Часть I, Часть II), где он представил свою технику void_t SFINAE. Пример: Учитывая простой шаблон переменной, который оценивается как void, если все аргумент...
29 дек. '15 в 10:47
6

Когда следует использовать автоматический возврат типа С++ 14?

С выпуском GCC 4.8.0 у нас есть компилятор, который поддерживает автоматический вывод типа возвращаемого типа, часть С++ 14. С помощью -std=c++1y я могу сделать это: auto foo() { //deduced to be int return 5; } Мой вопрос: когда следует испол...
01 апр. '13 в 3:23
2

Является ли #pragma когда-то частью стандарта С++ 11?

Традиционно стандартный и переносимый способ избежать включения нескольких заголовков в С++ заключался в использовании схемы директив #ifndef - #define - #endif pre-compiler, также называемой схемой макро-защиты (см. фрагмент кода ниже). #ifndef MY...
16 мая '14 в 13:20
3

Как работает общая лямбда в С++ 14?

Как работает общая лямбда (auto ключевое слово как тип аргумента) в стандарте С++ 14? Является ли он основан на шаблонах С++, где для каждого другого компилятора типа аргумента генерируется новая функция с одним и тем же телом, но с заменой типов (п...
21 июн. '13 в 10:57
11

Как я могу избежать циклов "для" с условием "if" внутри них с помощью С++?

С почти всем кодом, который я пишу, я часто сталкиваюсь с задачами набора сокращений в коллекциях, которые в конечном итоге заканчиваются наивными условиями "если" внутри них. Вот простой пример: for(int i=0; i<myCollection.size(); i++) { if...
15 июл. '16 в 14:59
3

Является ли С++ 14 добавлением новых ключевых слов в С++?

Комитет по стандартам С++ стремится уклониться от добавления новых ключевых слов на язык, но с С++ 11 это не так. Некоторые примеры: constexpr decltype thread_local auto // New usage noexcept nullptr static_assert alignof alignas Есть ли новые к...
19 авг. '14 в 10:00
3

Различия между std :: make_unique и std :: unique_ptr с новым

Есть ли у std::make_unique какие-либо преимущества в эффективности, такие как std::make_shared? По сравнению с созданием вручную std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new int(1));
21 мар. '14 в 23:20
5

Почему лямбда имеет размер 1 байт?

Я работаю с памятью некоторых lambdas в С++, но я немного озадачен их размером. Вот мой тестовый код: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std:...
27 мая '16 в 11:00