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

Використовуйте цей тег для коду, який повинен скласти як C ++ 11 (не використовуючи жодних функцій, введених у C ++ 14 або новіших версіях).


5
Наскільки добре підтримується Unicode в C ++ 11?
Я читав і чув, що C ++ 11 підтримує Unicode. Кілька питань з цього приводу: Наскільки добре стандартна бібліотека C ++ підтримує Unicode? Робить std::stringте, що повинно? Як я ним користуюся? Де можливі проблеми?
183 c++  unicode  c++11 

2
Чи застаріла ідіома безпечного була в C ++ 11?
Ця відповідь @R. Мартінхо Фернандес показує, що ідіома безпечного булінгу в C ++ 11 суттєво застаріла, оскільки її можна замінити простим explicit operator bool() const; згідно зі стандартною цитатою у відповіді §4 [conv] p3: Вираз e може бути неявно перетворений у тип, Tякщо і лише якщо декларація T t=e;добре сформована, …


4
Чи можна використовувати std :: string в constexpr?
Використовуючи C ++ 11, Ubuntu 14.04, GCC за замовчуванням . Цей код не вдається: constexpr std::string constString = "constString"; помилка: тип 'const string {aka const std :: basic_string}' змінної constexpr 'constString' не є буквальним ... тому що ... 'std :: basic_string' має нетривіальний деструктор Чи можливо використовувати std::stringв constexpr? (мабуть, …

3
Що саме є std :: atomic?
Я розумію, що std::atomic<>це атомний об’єкт. Але атомний в якій мірі? Наскільки я розумію, операція може бути атомною. Що саме мається на увазі, роблячи об’єкт атомним? Наприклад, якщо одночасно є два потоки, виконуючи такий код: a = a + 12; Тоді ціла операція (скажімо add_twelve_to(int)) атомна? Або вносяться зміни в …

2
shared_ptr до масиву: чи його слід використовувати?
Лише невеликий запит щодо shared_ptr. Чи корисно використовувати shared_ptrвказівку на масив? Наприклад, shared_ptr<int> sp(new int[10]); Якщо ні, то чому б ні? Однією з причин, про яку я вже знаю, є не можна збільшувати / зменшувати shared_ptr. Отже, його не можна використовувати як звичайний вказівник на масив.
172 c++  c++11  shared-ptr 

2
Чому лямбди можуть бути оптимізовані компілятором, ніж звичайні функції?
У своїй книзі The C++ Standard Library (Second Edition)Ніколай Йосуттіс зазначає, що лямбди можна краще оптимізувати компілятором, ніж звичайні функції. Крім того, компілятори C ++ оптимізують лямбдаси краще, ніж вони виконують звичайні функції. (Сторінка 213) Чому так? Я думав, що якщо мова йде про вкладиші, то більше не повинно бути …


5
Як я можу надійно отримати адресу об’єкта, коли оператор & перевантажений?
Розглянемо наступну програму: struct ghost { // ghosts like to pretend that they don't exist ghost* operator&() const volatile { return 0; } }; int main() { ghost clyde; ghost* clydes_address = &clyde; // darn; that's not clyde's address :'( } Як мені отримати clydeадресу? Я шукаю рішення, яке буде …

6
Чи вводить C ++ 11, 14, 17 або 20 стандартну константу для pi?
Існує досить нерозумна проблема з числом pi в C і C ++. Наскільки я знаю, M_PIвизначений в math.hне вимагається жодним стандартом. Нові стандарти C ++ ввели в складну бібліотеку багато складної математики - гіперболічні функції, std::hermiteа також std::cyl_bessel_iрізні генератори випадкових чисел тощо і так далі. Чи вводив якийсь із "нових" …

2
функція члена публічного обміну товаришами
У гарній відповіді на ідіому copy-and-swap є фрагмент коду, мені потрібна трохи допомога: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray, second.mArray); } // ... }; і він додає записку Є й інші твердження, що ми повинні спеціалізуватися …

6
Використання загальних об’єктів std :: function з функціями-членами в одному класі
Для одного класу я хочу зберегти деякі покажчики функцій на функції-членів одного класу в одному об'єкті, що mapзберігає std::function. Але я не вдається відразу на цей код: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Я отримую error C2064: term …

3
Чим "= default" відрізняється від "{}" для конструктора та деструктора за замовчуванням?
Спочатку я розміщував це як питання лише про деструктори, але тепер додаю розгляд конструктора за замовчуванням. Ось оригінальне запитання: Якщо я хочу дати своєму класу деструктор, який є віртуальним, але інакше такий же, як і генерував компілятор, я можу використовувати =default: class Widget { public: virtual ~Widget() = default; }; …


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