Вопросы с тегом «c++11»

Используйте этот тег для кода, который должен компилироваться как C ++ 11 (без использования каких-либо функций, представленных в C ++ 14 или более поздних версиях).

13
Вводит ли ключевое слово volatile в C ++ забор памяти?
Я это понимаю volatile информирует компилятор о том, что значение может быть изменено, но должен ли компилятор для выполнения этой функции вводить забор памяти, чтобы заставить его работать? Насколько я понимаю, последовательность операций с изменчивыми объектами не может быть переупорядочена и должна быть сохранена. Похоже, это подразумевает, что некоторые ограждения …

13
Можно ли определить количество элементов класса перечисления c ++?
Можно ли определить количество элементов c ++ enum class: enum class Example { A, B, C, D, E }; Я пробовал использовать sizeof, но возвращает размер элемента перечисления. sizeof(Example); // Returns 4 (on my architecture) Есть ли стандартный способ получить мощность (5 в моем примере)?

8
Сужающие преобразования в C ++ 0x. Это только у меня, или это похоже на переломную ситуацию?
C ++ 0x сделает следующий код и аналогичный код некорректным, поскольку он требует так называемого сужающего преобразования a doubleв a int. int a[] = { 1.0 }; Мне интересно, часто ли этот вид инициализации используется в реальном коде. Сколько кода будет нарушено этим изменением? Сложно ли исправить это в вашем …

6
Необходим итератор при использовании циклов for на основе диапазона
В настоящее время я могу делать только циклы на основе дальности с этим: for (auto& value : values) Но иногда мне нужен итератор для значения вместо ссылки (по какой-то причине). Есть ли какой-либо метод без необходимости проходить через весь вектор, сравнивая значения?
85 c++  c++11  for-loop  iterator 

1
C ++ 11 make_pair с указанными параметрами шаблона не компилируется
Я просто играл с g ++ 4.7 (один из более поздних снимков) с включенным -std = c ++ 11. Я пытался скомпилировать часть существующего кода, и один неудачный случай меня несколько смущает. Буду признателен, если кто-нибудь сможет объяснить, что происходит. Вот код: #include <utility> #include <iostream> #include <vector> #include <string> …

3
Повторное использование перемещенного контейнера?
Как правильно повторно использовать перемещенный контейнер? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3: Reinitialize container.push_back(2); assert(container.size() == 1 && container.front() == 2); Из того, что я прочитал в стандартном проекте C ++ 0x; ver3 кажется правильным, поскольку …

9
Как я могу одинаково отсортировать два вектора, используя критерий, который использует только один из векторов?
Как я могу одинаково отсортировать два вектора, используя критерий, который использует только один из векторов? Например, предположим, что у меня есть два вектора одинакового размера: vector<MyObject> vectorA; vector<int> vectorB; Затем я сортирую, vectorAиспользуя некоторую функцию сравнения. Порядок сортировки изменился vectorA. Как я могу применить такое же изменение порядка vectorB? Один …
85 c++  c++11 

4
Как передать std :: unique_ptr?
У меня первая попытка использовать C ++ 11 unique_ptr; Я заменяю полиморфный необработанный указатель внутри своего проекта, который принадлежит одному классу, но передается довольно часто. Раньше у меня были такие функции, как: bool func(BaseClass* ptr, int other_arg) { bool val; // plain ordinary function that does something... return val; } …
85 c++  c++11  unique-ptr 

4
С ++ 11 переменные thread_local автоматически статичны?
Есть ли разница между этими двумя сегментами кода: void f() { thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } и void f() { static thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } Предыстория: изначально у меня был статический вектор V …

1
Кодировка Unicode для строковых литералов в C ++ 11
В ответ на связанный с этим вопрос я хотел бы задать вопрос о новых типах символьных и строковых литералов в C ++ 11. Кажется, что теперь у нас есть четыре вида символов и пять видов строковых литералов. Типы персонажей: char a = '\x30'; // character, no semantics wchar_t b = …

4
c ++ 0x: правильный способ получить лямбда в качестве параметра по ссылке
Как правильно определить функцию, которая получает int->intпараметр лямбда по ссылке? void f(std::function< int(int) >& lambda); или же void f(auto& lambda); Я не уверен, что последняя форма является допустимым синтаксисом. Есть ли другие способы определения лямбда-параметра?

5
Enum против строго типизированного перечисления
Я новичок в программировании на C ++. Сегодня наткнулся на новую тему: строго типизированный enum. Я немного исследовал это, но до сих пор не могу понять, зачем нам это нужно и что от этого нужно? Например, если у нас есть: enum xyz{a, b, c}; /*a = 0, b = 1, …
84 c++  c++11  enums 

6
Оператор if vs оператор if-else, что быстрее? [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 3 года назад . Уточните этот вопрос На днях я спорил с другом по поводу этих …

3
Является ли подписанное целочисленное переполнение неопределенным поведением в C ++?
Как известно, целочисленное переполнение со знаком - это неопределенное поведение . Но в cstdintдокументации по C ++ 11 есть кое-что интересное : целочисленный тип со знаком шириной ровно 8, 16, 32 и 64 бита соответственно без битов заполнения и с использованием дополнения до 2 для отрицательных значений (предоставляется только в …

3
Как объявить функцию, принимающую лямбду?
Я прочитал в Интернете множество руководств, в которых объяснялось, как использовать лямбды со стандартной библиотекой (например, std::find ), и все они были очень интересными, но я не мог найти ни одного, объясняющего, как я могу использовать лямбда-выражения для моих собственных функций. Например: int main() { int test = 5; LambdaTest([&](int …
83 c++  lambda  c++11 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.