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

83
имеет ли `const auto` какое-либо значение?

Думаю, вопрос достаточно ясен. Будет ли autoключевое слово автоматически определять константу или всегда возвращать неконстантный тип, даже если есть, например. две версии функции (одна возвращает, constа другая - нет). Для протокола: я использую const auto end = some_container.end()перед циклами...

83
Получить статус std :: future

Можно ли проверить std::future, закончился или нет? Насколько я могу судить, единственный способ сделать это - позвонить wait_forс нулевой продолжительностью и проверить, есть ли статус ready, но есть ли способ лучше?...

82
Что такое субнормальное число с плавающей запятой?

Справочная страница isnormal () сообщает: Определяет, является ли данное число с плавающей запятой arg нормальным, т. Е. Не равно нулю, субнормальному, бесконечному или NaN. Число, равное нулю, бесконечности или NaN, ясно, что это означает. Но это также говорит о субнормальном. Когда число...

82
В чем разница между C ++ 0x и C ++ 11?

Я вижу смешанное использование этих двух терминов здесь, на SO. Википедия говорит C ++ 11, также ранее известный как C ++ 0x ... но я не знаю почему. Почему сначала он был назван C ++ 0x, а затем C ++ 11? Кроме того, что означает x? Моя догадка - как переменная?...

82
Почему новая случайная библиотека лучше, чем std :: rand ()?

Итак, я увидел доклад под названием rand () Считается вредным, и он выступал за использование парадигмы механизма распределения генерации случайных чисел std::rand()вместо парадигмы простого плюс модуля. Однако я хотел увидеть недостатки из std::rand()первых рук, поэтому провел небольшой...

81
Является ли цикл for на основе диапазона устаревшим для многих простых алгоритмов?

Решение алгоритма: std::generate(numbers.begin(), numbers.end(), rand); Решение для цикла на основе диапазона: for (int& x : numbers) x = rand(); Зачем мне использовать более подробные std::generateциклы for на основе диапазона в C ++ 11?...

81
Бьярн ошибается насчет этого примера ADL, или у меня есть ошибка компилятора?

Я читаю язык программирования C ++, 4-е издание ( Бьярна Страуструпа ) оаргумент-зависимый поиск. Вот цитата (26.3.6, Сверхагрессивный ADL): Поиск, зависящий от аргументов (часто называемый ADL), очень полезен, чтобы избежать многословия (14.2.4). Например: #include <iostream> int main() {...

79
Неиспользуемый параметр в c ++ 11

В c ++ 03 и ранее, чтобы отключить предупреждение компилятора о неиспользуемом параметре, я обычно использую такой код: #define UNUSED(expr) do { (void)(expr); } while (0) Например int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } Но макросы - не лучшая практика для C ++,...

71
Использование std :: vector для просмотра сырой памяти

Я использую внешнюю библиотеку, которая в какой-то момент дает мне необработанный указатель на массив целых чисел и размер. Теперь я хотел бы использовать std::vectorдля доступа и изменения этих значений на месте, а не доступ к ним с помощью необработанных указателей. Вот примерный пример, который...

53
Как получить адрес лямбда-функции C ++ внутри самой лямбды?

Я пытаюсь выяснить, как получить адрес лямбда-функции внутри себя. Вот пример кода: []() { std::cout << "Address of this lambda function is => " << ???? }(); Я знаю, что могу перехватить лямбду в переменной и напечатать адрес, но я хочу сделать это на месте, когда эта анонимная...

32
C ++ decltype и круглые скобки - почему?

Тема обсуждалась раньше , но это не дубликат. Когда кто-то спрашивает о разнице между decltype(a)и decltype((a)), обычный ответ - aэто переменная, (a)это выражение. Я считаю этот ответ неудовлетворительным. Во-первых, aэто также выражение. Варианты основного выражения включают, среди прочего:...

26
Как я могу предотвратить угадывание C ++ второго аргумента шаблона?

Я использую библиотеку C ++ ( strf ), которая где-то внутри имеет следующий код: namespace strf { template <typename ForwardIt> inline auto range(ForwardIt begin, ForwardIt end) { /* ... */ } template <typename Range, typename CharT> inline auto range(const Range& range, const...

25
Как проверить, определены ли целые числа фиксированной ширины

В C ++ целые числа фиксированной ширины определены как необязательные , но я не могу найти рекомендуемый способ проверить, действительно ли они определены. Что бы было портативным способом проверить, доступны ли целые числа фиксированной...

22
Отличие поведения изменяемого захвата лямбда-функции от ссылки на глобальную переменную

Я обнаружил, что результаты в разных компиляторах различны, если я использую лямбду для захвата ссылки на глобальную переменную с изменяемым ключевым словом, а затем изменяю значение в лямбда-функции. #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() {...

21
Какой из <случайных> механизмов случайных чисел следует использовать на практике? станд :: mt19937?

Предположим, вы хотите использовать средства C ++ <random>в практической программе (для некоторого определения «практический» - ограничения здесь являются частью этого вопроса). У вас есть код примерно так: int main(int argc, char **argv) { int seed = get_user_provided_seed_value(argc, argv);...

21
Как вызвать правильный конструктор типа шаблона?

В следующем коде, как я могу сделать так, чтобы закомментированная строка работала так же, как строка чуть выше? Я хотел бы сделать его универсальным кодом, который вызывает подходящий конструктор шаблона Type. #include <string> #include <iostream> template <typename Type> struct...

17
Это старый конструктор в стиле C ++?

Здесь кусок кода C ++. В этом примере многие блоки кода выглядят как вызовы конструктора. К сожалению, блочного кода № 3 нет (это можно проверить с помощью https://godbolt.org/z/q3rsxn и https://cppinsights.io ). Я думаю, что это старая нотация C ++, и она может объяснить введение новой нотации...

17
Непрерывное перечисление C ++ 11

Есть ли способ проверить в C ++ 11, является ли перечисление непрерывным ? Полностью допустимо указывать значения enum, которых нет. Есть ли такая особенность, как черта типа в C ++ 14, C ++ 17 или, может быть, C ++ 20, чтобы проверить, является ли enum непрерывным? Это будет использоваться в...