Запитання з тегом «c++11»

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

2
Чи коли-небудь погано відзначати конспект функції C ++?
Враховуючи дуже тривіальну функцію, int transform(int val) { return (val + 7) / 8; } Це повинно бути дуже очевидним, що легко перетворити цю функцію на constexprфункцію, що дозволяє мені використовувати її під час визначення constexprзмінних, наприклад: constexpr int transform(int val) { return (val + 7) / 8; } Моє …
26 c++  c++11 

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

6
Чи варто використовувати нову функцію "авто" C ++ 11, особливо в циклі?
Які плюси та мінуси використання autoключового слова, особливо для циклів? 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 передчасна оптимізація?
"Передчасна оптимізація - корінь усього зла" Я думаю, що з цим ми можемо домовитись усіх. І я дуже намагаюся уникати цього. Але останнім часом мене цікавить практика передачі параметрів через const Reference замість Value . Мене вчили / дізналися, що нетривіальні аргументи функцій (тобто більшість непримітивних типів) бажано передавати через …

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

2
Найкращий огляд сучасних парадигм C ++? [зачинено]
Зачинено. Це питання поза темою . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для обміну стеками програмного забезпечення. Закрито 4 роки тому . Я писав на C ++ широко між 8 і 10 роками тому. З тих пір я перейшов на C # …

2
Хто винен у цьому діапазоні на основі надсилання посилань на тимчасові?
Наступний код на перший погляд виглядає досить нешкідливим. Користувач використовує функцію bar()для взаємодії з деякими функціями бібліотеки. (Це, можливо, навіть давно працювало, оскільки bar()повернуло посилання на тимчасове значення чи подібне.) Однак це просто повернення нового екземпляра B. Bзнову має функцію, a()яка повертає посилання на об'єкт ітеративного типу A. Користувач хоче …
15 c++11 

6
Блок тестування приватного методу в c ++, використовуючи клас друзів
Я знаю, що це є дискусійною практикою, але припустимо, що це найкращий варіант для мене. Мені цікаво, що є власне технікою цього робити. Я бачу такий підхід: 1) Складіть клас друзів з класу, чий метод я хочу перевірити. 2) У класі друзів створіть загальнодоступні методи, які викликають приватні методи тестового …

1
можна досягти моделі власності Руста за допомогою загальної оболонки C ++?
Переглядаючи цю статтю про безпеку паралельних ресурсів Руста: 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 , OCaml …

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, тому ми хочемо відійти від нього. Однак код підтримує як C ++ 03, …
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? Думаю, що на цьому етапі файли C ++ 11 .lib є лише байтовим кодом, і це не повинно заважати старшим компіляторам про те, як він був створений, доки він якимось чином …
12 c++  c++11 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.