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

C ++ 11 - это название стандарта C ++, утвержденного в 2011 году. Он заменяет предыдущий стандарт C ++ 03, добавляя различные изменения и исправления в базовом языке, а также улучшенную и расширенную стандартную библиотеку.

2
Разве когда-нибудь плохо отмечать C ++ функцию constexpr?
Учитывая очень тривиальную функцию, int transform(int val) { return (val + 7) / 8; } Должно быть совершенно очевидно, что эту функцию легко превратить в constexprфункцию, что позволяет мне использовать ее при определении constexprпеременных, например: constexpr int transform(int val) { return (val + 7) / 8; } Мое предположение состоит …
26 c++  c++11 

1
Мотивация и подводные камни (?) Ключевого слова auto в C ++ 11
Недавно я задавался вопросом, почему ключевое слово autoбыло выбрано в C ++ 11 для обозначения переменной, тип которой должен выводиться компилятором, как в auto x = 1; поскольку var кажется более распространенным в других языках программирования (например, C #, Scala, JavaScript), и Насколько я понимаю, новая семантика autoобратной совместимости разрывов …

6
Должен ли я использовать новую функцию auto в C ++ 11, особенно в циклах?
Каковы плюсы / минусы использования autoключевого слова, особенно в циклах for? for(std::vector<T>::iterator it = x.begin(); it != x.end(); it++ ) { it->something(); } for(std::map<T>::iterator it = x.begin(); it != x.end(); it++ ) { it->second->something(); } for(auto it = x.begin(); it != x.end(); it++ ) { it->?? } Похоже, если вы …
20 c++  c++11 

5
Передача аргументов как ссылок на const преждевременная оптимизация?
«Преждевременная оптимизация - корень всего зла» Я думаю, что с этим мы все можем согласиться. И я очень стараюсь избегать этого. Но в последнее время меня интересует практика передачи параметров по константной ссылке, а не по значению . Меня учили / учили, что аргументы нетривиальных функций (то есть большинство не …

2
Лучший обзор современных парадигм C ++? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 4 года назад . Я часто писал на C ++ от 8 до 10 лет назад. С тех пор я перешел …

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

2
Кто виноват в этом диапазоне, основанном на ссылке на временный?
Следующий код выглядит довольно безобидным на первый взгляд. Пользователь использует функцию bar()для взаимодействия с некоторыми функциями библиотеки. (Это могло работать даже долгое время, так как bar()возвращало ссылку на временное значение или подобное.) Однако теперь оно просто возвращает новый экземпляр B. Bснова имеет функцию, a()которая возвращает ссылку на объект повторяемого типа …
15 c++11 

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

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

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

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

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

2
Как обрабатывать изменения дизайна для устаревания auto_ptr в C ++ 11?
Мы тестируем библиотеку под C ++ 11 (т.е. -std=c++11). Библиотека использует auto_ptrи этот шаблон: Foo* GetFoo() { autoptr<Foo> ptr(new Foo); // Initialize Foo ptr->Initialize(...); // Now configure remaining attributes ptr->SomeSetting(...); return ptr.release(); } C ++ 11 устарел auto_ptr, поэтому мы хотим от него отойти. Тем не менее, код поддерживает как …
12 design  c++  c++11 

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

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

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