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

16
Есть ли какое-то преимущество в манипулировании битами в стиле c по сравнению с std :: bitset?

Я работаю почти исключительно в C ++ 11/14, и обычно сжимаюсь, когда вижу такой код: std::int64_t mArray; mArray |= someMask << 1; Это всего лишь пример; Я говорю о побитовой манипуляции в целом. В C ++ есть ли смысл? Вышесказанное искажает сознание и подвержено ошибкам, а использование...

15
Кто виноват в этом диапазоне, основанном на ссылке на временный?

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

15
Можно ли достичь модели владения Rust с помощью универсальной оболочки C ++?

Просматривая эту статью о безопасности параллелизма Rust: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html Мне было интересно, сколько из этих идей может быть реализовано в C ++ 11 (или новее). В частности, я могу создать класс владельца, который передает владение любому методу,...

15
Закрытый метод модульного тестирования в c ++ с использованием класса друга

Я знаю, что это спорная практика, но давайте предположим, что это лучший вариант для меня. Мне интересно, какова реальная техника, чтобы сделать это. Подход, который я вижу, заключается в следующем: 1) Сделайте класс друга из класса, метод которого я хочу проверить. 2) В другом классе создайте...

14
Это хороший шаблон: заменить длинную функцию серией лямбд?

Я недавно столкнулся со следующей ситуацией. class A{ public: void calculate(T inputs); } Во-первых, Aпредставляет объект в физическом мире, что является веским аргументом для того, чтобы не разделять класс. Теперь calculate()оказывается довольно долгая и сложная функция. Я воспринимаю три...

13
Инварианты времени жизни объекта и семантика перемещения

Когда я давно изучал C ++, мне было настоятельно подчеркнуто, что отчасти C ++ состоит в том, что, как и у циклов, есть «инварианты цикла», у классов также есть инварианты, связанные с временем жизни объекта - вещи, которые должны быть истинными. пока объект жив. Вещи, которые должны быть...

13
Поддержка C ++ 11 для функций списка высшего порядка

Большинство функциональных языков программирования (например , Common Lisp, Scheme / ракетки, Clojure, Haskell, Scala, Ocaml, SML) поддерживают некоторые общие функции высшего порядка в списках, такие как map, filter, takeWhile, dropWhile, foldl, foldr(см , например , Common Lisp, Scheme / Ракетка,...

12
Будет ли разрушение большого списка переполнять мой стек?

Рассмотрим следующую реализацию односвязного списка: struct node { std::unique_ptr<node> next; ComplicatedDestructorClass data; } Теперь предположим, что я перестал использовать некоторый std::unique_ptr<node> headэкземпляр, который затем выходит из области видимости, вызывая вызов его...

12
Достижение прямой совместимости с C ++ 11

Я работаю над большим программным приложением, которое должно работать на нескольких платформах. Некоторые из этих платформ поддерживают некоторые функции C ++ 11 (например, MSVS 2010), а некоторые не поддерживают какие-либо (например, GCC 4.3.x). Я ожидаю, что эта ситуация будет продолжаться в...

12
Можно ли скомпилировать библиотеку C ++ 11 (lib, dll и т. Д.) В более старых компиляторах C ++?

Могут ли старые компиляторы C ++ (например, VS2008 и gcc3.4) связываться с внешними библиотеками, написанными на C ++ 11? Я думаю, что файлы .lib C ++ 11 на данном этапе являются просто байтовым кодом, и он не должен беспокоить старые компиляторы, как он был сгенерирован, если он каким-то образом...

11
Что такое использование универсальных имен символов в идентификаторах в C ++

C ++ стандарта (я заметил это в новом, но он уже существует в C ++ 03) определяет универсальные имена символов, написанные , как \uNNNNи \UNNNNNNNNи представляющие символы с Юникодом кодовыми NNNN/ NNNNNNNN. Это полезно для строковых литералов, тем более что явно определены строковые литералы...

10
Перемещение семантики в C ++ - Перемещение-возврат локальных переменных

Насколько я понимаю, в C ++ 11, когда вы возвращаете локальную переменную из функции по значению, компилятору разрешается обрабатывать эту переменную как ссылку на r-значение и «перемещать» ее из функции для ее возврата (если RVO / NRVO не происходит вместо этого, конечно). Мой вопрос, не может ли...

10
Очередь сообщений для RTOS для микроконтроллеров

Я сейчас пишу ОСРВ для микроконтроллеров. Все написано на C ++ 11 - если кому-то интересно, а ссылка на репозиторий находится внизу. В настоящее время я пишу класс, который представляет собой простую очередь данных для передачи объектов между потоками (или между обработчиками прерываний и потоками...

10
C ++: метапрограммирование с помощью API компилятора, а не с функциями C ++

Это началось как вопрос SO, но я понял, что это довольно нетрадиционно и, исходя из фактического описания на веб-сайтах, он может быть более подходящим для программистов. Так как вопрос имеет большой концептуальный вес. Я изучал clang LibTooling, и это очень мощный инструмент, способный разоблачить...

10
Что является хорошим способом представить отношения многих ко многим между двумя классами?

Допустим, у меня есть два типа объектов, A и B. Отношения между ними многие-ко-многим, но ни один из них не является владельцем другого. И экземпляры A и B должны знать о соединении; это не только один путь. Итак, мы можем сделать это: class A { ... private: std::vector<B *> Bs; } class B {...

9
Разработка хранилища Key / Value с портированием на современный C ++

Я разрабатываю сервер базы данных, похожий на Cassandra. Разработка была начата в C, но все стало очень сложно без классов. В настоящее время я перенес все на C ++ 11, но я все еще изучаю "современный" C ++ и у меня есть сомнения по поводу многих вещей. База данных будет работать с парами ключ /...

9
Обзор дизайна сериализации C ++

Я пишу приложение на C ++. Большинству приложений требуется чтение и запись данных, и это не исключение. Я создал дизайн высокого уровня для модели данных и логики сериализации. Этот вопрос требует пересмотра моего дизайна с учетом этих конкретных целей: Иметь простой и гибкий способ чтения и...

9
Является ли это хорошим подходом для иерархии классов на основе pImpl в C ++?

У меня есть иерархия классов, для которой я хотел бы отделить интерфейс от реализации. Мое решение состоит в том, чтобы иметь две иерархии: иерархию дескрипторов классов для интерфейса и иерархию закрытых классов для реализации. Базовый класс дескриптора имеет указатель на реализацию, которую...