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

102
Генерация случайных чисел в C ++ 11: как генерировать, как это работает? [закрыто]

Трудно сказать, о чем здесь спрашивают. Этот вопрос неоднозначный, расплывчатый, неполный, чрезмерно широкий или риторический, и на него нельзя разумно ответить в его нынешней форме. Чтобы прояснить этот вопрос и снова открыть его, посетите Справочный центр . Закрыт 9 лет назад . Недавно я...

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

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

101
Хеширование строки времени компиляции

Я читал в нескольких разных местах, что, используя новые строковые литералы C ++ 11, можно было бы вычислить хэш строки во время компиляции. Однако, похоже, никто не готов выступить и сказать, что это будет возможно или как это будет сделано. Это возможно? Как бы выглядел оператор? Меня особенно...

101
Могу ли я реализовать на C ++ автономный тип члена self?

В C ++ отсутствует эквивалент ключевого слова PHPself , которое оценивает тип включающего класса. Достаточно легко подделать это для каждого класса: struct Foo { typedef Foo self; }; но мне пришлось писать Fooснова. Возможно, однажды я сделаю это неправильно и вызову тихую ошибку. Могу ли я...

101
Как специализировать std :: hash <Key> :: operator () для пользовательского типа в неупорядоченных контейнерах?

Для поддержки ключевых типов , определяемых пользователем в std::unordered_set<Key>и std::unordered_map<Key, Value> один должен обеспечивать operator==(Key, Key)и хэш - функтор: struct X { int id; /* ... */ }; bool operator==(X a, X b) { return a.id == b.id; } struct MyHash { size_t...

101
Есть ли ошибки в регулярных выражениях в gcc 4.8 или более ранней версии?

Я пытаюсь использовать std :: regex в фрагменте кода C ++ 11, но похоже, что поддержка немного глючна. Пример: #include <regex> #include <iostream> int main (int argc, const char * argv[]) { std::regex r("st|mt|tr"); std::cerr << "st|mt|tr" << " matches st? " <<...

100
Разница между std :: result_of и decltype

У меня проблемы с пониманием необходимости std::result_ofв C ++ 0x. Если я правильно понял, result_ofиспользуется для получения результирующего типа вызова объекта функции с определенными типами параметров. Например: template <typename F, typename Arg> typename...

100
Функция Sequence-zip для с ++ 11?

С новым циклом for на основе диапазона мы можем писать такой код, как for(auto x: Y) {} Какой IMO является огромным улучшением (например) for(std::vector<int>::iterator x=Y.begin(); x!=Y.end(); ++x) {} Можно ли использовать его для перебора двух одновременных циклов, например zipфункции...

100
Медленная реализация gcc std :: unordered_map? Если да, то почему?

Мы разрабатываем высокопроизводительное критически важное программное обеспечение на C ++. Там нам нужна параллельная хеш-карта и реализованная. Итак, мы написали тест, чтобы выяснить, насколько медленнее наша параллельная хэш-карта по сравнению с std::unordered_map. Но, std::unordered_mapкажется,...

100
Разница между спецификатором throw () C ++ 03 C ++ 11 noexcept

Есть ли какая-то разница между throw()и, noexceptкроме проверки во время выполнения и во время компиляции, соответственно? В этой статье Wikipedia C ++ 11 предполагается, что спецификаторы throw C ++ 03 устарели. Почему так, noexceptдостаточно ли для того, чтобы охватить все это во время...

99
Инициализация массива членов в инициализаторе конструктора

class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; Я считаю, что причина в том, что массивы можно инициализировать только с помощью = синтаксиса, а именно: int arr[3] = {1,3,4}; Вопросы Как я могу делать то, что хочу...

99
Как реализован std :: function?

Согласно источникам, которые я нашел, лямбда-выражение по существу реализуется компилятором, создающим класс с перегруженным оператором вызова функции и ссылочными переменными в качестве членов. Это говорит о том, что размер лямбда-выражений варьируется, и при наличии достаточного количества...

98
Современный способ фильтровать контейнер STL?

Возвращаясь к C ++ после многих лет работы с C #, мне было интересно, каким будет современный - читайте: C ++ 11 - способ фильтрации массива, то есть как мы можем достичь чего-то похожего на этот запрос Linq: var filteredElements = elements.Where(elm => elm.filterProperty == true); Чтобы...

98
Почему мы копируем, а затем перемещаем?

Я где-то видел код, в котором кто-то решил скопировать объект и впоследствии переместить его в член данных класса. Это привело меня в замешательство, поскольку я думал, что весь смысл перемещения заключается в том, чтобы избежать копирования. Вот пример: struct S { S(std::string str) :...