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

111
Как с помощью C ++ избежать циклов for с условием «if» внутри них?

Почти со всем кодом, который я пишу, я часто сталкиваюсь с проблемами сокращения наборов в коллекциях, которые в конечном итоге заканчиваются наивными условиями «если» внутри них. Вот простой пример: for(int i=0; i<myCollection.size(); i++) { if (myCollection[i] == SOMETHING) { DoStuff(); } } С...

110
Модули C ++ - почему они были удалены из C ++ 0x? Вернутся ли они позже?

Я только что обнаружил этот старый черновик C ++ 0x о модулях в C ++ 0x. Идея заключалась в том, чтобы выйти из текущей системы .h / .cpp, написав только файлы .cpp, которые затем будут генерировать файлы модулей во время компиляции, которые затем, в свою очередь, будут использоваться другими...

110
Что означает токен «……»? т.е. оператор двойного многоточия в пакете параметров

Просматривая текущую реализацию новых заголовков C ++ 11 в gcc, я наткнулся на токен «......». Вы можете проверить, что следующий код компилируется нормально [через ideone.com]. template <typename T> struct X { /* ... */ }; template <typename T, typename ... U> struct...

110
std :: next_permutation Объяснение реализации

Мне было любопытно, как это std:next_permutationбыло реализовано, поэтому я извлек gnu libstdc++ 4.7версию и обработал идентификаторы и форматирование, чтобы создать следующую демонстрацию ... #include <vector> #include <iostream> #include <algorithm> using namespace std;...

108
Как правильно передавать параметры?

Я новичок в C ++, но не новичок в программировании. Я пытаюсь изучить C ++ (c ++ 11), и мне непонятно самое главное: передача параметров. Я рассмотрел эти простые примеры: Класс, в котором все члены примитивные типы: CreditCard(std::string number, int expMonth, int expYear,int pin):number(number),...

106
std :: shared_ptr безопасность потока объяснил

Я читаю http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html, и мне все еще не понятны некоторые проблемы с безопасностью потоков: Стандарт гарантирует, что подсчет ссылок является потокобезопасным и независимым от платформы, верно? Аналогичная проблема - стандартные гарантии, что только...

105
Как std :: move () передает значения в RValues?

Я просто обнаружил, что не до конца понимаю логику std::move(). Сначала я погуглил, но похоже, что есть только документы о том, как использовать std::move(), а не о том , как работает его структура. Я имею в виду, что я знаю, что такое функция-член шаблона, но когда я смотрю на...

104
Как проверить поддержку C ++ 11?

Есть ли способ определить во время компиляции, поддерживает ли компилятор определенные функции C ++ 11? Например, примерно так: #ifndef VARIADIC_TEMPLATES_SUPPORTED #error "Your compiler doesn't support variadic templates. :(" #else template <typename... DatatypeList> class Tuple { // ... }...

104
Инициализация по умолчанию std :: array?

В C ++ 11 std::arrayесть ли у меня гарантия, что синтаксис std::array<T, N> x;инициализирует все элементы массива по умолчанию? РЕДАКТИРОВАТЬ : если нет, существует ли синтаксис, который будет работать со всеми массивами (включая массивы нулевого размера) для инициализации всех элементов их...

103
Безопасно ли связывать объекты C ++ 17, C ++ 14 и C ++ 11

Предположим, у меня есть три скомпилированных объекта, созданных одним и тем же компилятором / версией : A был скомпилирован со стандартом C ++ 11 B был скомпилирован по стандарту C ++ 14 C был скомпилирован со стандартом C ++ 17 Для простоты предположим, что все заголовки были написаны на C ++ 11...

103
C ++ 0x лямбда-захват по значению всегда const?

Есть ли способ захватить по значению и сделать захваченное значение неконстантным? У меня есть функтор библиотеки, который я хотел бы захватить и вызвать метод, который не является константой, но должен быть. Следующее не компилируется, но создание foo :: operator () const исправляет его. struct...

103
Где shared_ptr?

Я так расстроен прямо сейчас, после нескольких часов попыток найти, где находится shared_ptr. Ни в одном из примеров, которые я вижу, не показан полный код, включающий заголовки shared_ptr(и работающий). Просто констатировать std, tr1а <memory>совсем не помогает! Я скачал бусты и все такое,...

103
В C ++ все еще является плохой практикой возвращать вектор из функции?

Краткая версия: во многих языках программирования обычно возвращаются большие объекты, такие как векторы / массивы. Допустим ли этот стиль в C ++ 0x, если в классе есть конструктор перемещения, или программисты на C ++ считают его странным / уродливым / мерзким? Расширенная версия: в C ++ 0x это...

103
Добавляет ли C ++ 14 новые ключевые слова в C ++?

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

102
Поддержка Visual Studio новых стандартов C / C ++?

Я продолжаю читать о C99 и C ++ 11 и обо всех этих совершенно приятных вещах, которые добавляются к языковому стандарту и которые когда-нибудь могут быть полезны. Однако в настоящее время мы томимся в стране написания C ++ в Visual Studio. Будет ли когда-либо добавлено что-либо из нового стандарта...

102
Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++?

Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++ 11? Другими словами, будет ли мой код медленнее, если я использую интеллектуальные указатели, и если да, то насколько медленнее? В частности, я спрашиваю о C ++ 11 std::shared_ptrи std::unique_ptr....