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

C ++ - мова програмування загального призначення. Спочатку він був розроблений як розширення до C і має подібний синтаксис, але зараз це зовсім інша мова. Використовуйте цей тег для запитань про код (який потрібно) зібрати за допомогою компілятора C ++. Використовуйте тег, що стосується версії, для питань, пов’язаних із конкретною стандартною редакцією [C ++ 11], [C ++ 14], [C ++ 17] або [C ++ 20] тощо.

13
Ти не спадкуєш від std :: vector
Гаразд, це визнати насправді важко, але у мене зараз сильна спокуса успадкувати std::vector. Мені потрібно близько 10 налаштованих алгоритмів для вектора, і я хочу, щоб вони були безпосередньо членами вектора. Але, природно, я хочу також мати інший std::vectorінтерфейс. Ну, моя перша ідея як законослухняного громадянина полягала в тому, щоб мати …
189 c++  oop  inheritance  stl  vector 

5
У чому сенс норетурну?
[dcl.attr.noreturn] надає такий приклад: [[ noreturn ]] void f() { throw "error"; // OK } але я не розумію, в чому сенс [[noreturn]], тому що тип повернення функції вже є void. Отже, в чому сенс noreturnатрибута? Як це слід використовувати?

8
Який найкращий спосіб об'єднати два вектори?
Я використовую багатопотокове запитання і хочу об'єднати результати. Наприклад: std::vector<int> A; std::vector<int> B; std::vector<int> AB; Я хочу, щоб AB містив вміст A і вміст B у такому порядку. Який найефективніший спосіб зробити щось подібне?
189 c++  vector 

4
Чому можна використовувати вкладені класи в C ++?
Чи може хтось, будь ласка, вказати мені на деякі приємні ресурси для розуміння та використання вкладених класів? У мене є такий матеріал, як Принципи програмування та такі речі, як цей Центр знань IBM - Вкладені класи Але у мене все ще виникають проблеми з розумінням їхнього призначення. Може хтось, будь …


10
Який ефект від замовлення, якщо… інше, якщо твердження ймовірні?
Зокрема, якщо у мене є серія if... else ifтверджень, і я якось заздалегідь знаю відносну ймовірність, яку оцінюватиме кожне твердження true, скільки різниці у часі виконання має сортувати їх у порядку ймовірності? Наприклад, чи варто віддати перевагу цьому: if (highly_likely) //do something else if (somewhat_likely) //do something else if (unlikely) …

5
Аргументи шаблону за замовчуванням для шаблонів функцій
Чому аргументи шаблону за замовчуванням дозволені лише на шаблонах класів? Чому ми не можемо визначити тип за замовчуванням у шаблоні функції члена? Наприклад: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Натомість C ++ примушує аргументи шаблону за замовчуванням дозволені лише на шаблоні класу.
187 c++  templates 


9
Як зробити так, щоб CMake виводив у "bin" dir?
Зараз я будую проект із структурою плагінів. Я використовую CMake для складання проекту. Плагіни складені в окремих каталогах. Моя проблема полягає в тому, що CMake збирає та зберігає бінарні файли та плагіни, динамічні бібліотеки, в структурі каталогів джерела. Як змусити CMake зберігати файли у щось на зразок каталогу ./bin ?
187 c++  plugins  cmake 


21
Як використовувати переписки як прапори в C ++?
Трактування enums як прапорів чудово працює в C # через [Flags]атрибут, але який найкращий спосіб зробити це в C ++? Наприклад, я хотів би написати: enum AnimalFlags { HasClaws = 1, CanFly =2, EatsFish = 4, Endangered = 8 }; seahawk.flags = CanFly | EatsFish | Endangered; Однак я отримую …
187 c++  enums 

14
Непотрібні фігурні брекети в C ++?
Сьогодні, роблячи огляд коду для колеги, я побачив особливу річ. Він оточив свій новий код такими фігурними дужками: Constructor::Constructor() { existing code { New code: do some new fancy stuff here } existing code } Який результат, якщо такий є, від цього? Що може бути причиною цього? Звідки береться ця …

16
Як мені зателефонувати :: std :: make_shared для класу із захищеними або приватними конструкторами?
У мене цей код не працює, але я думаю, що намір зрозумілий: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); } Але …
187 c++  c++11  shared-ptr 

3
fork () гілки більше, ніж очікувалося?
Розглянемо наступний фрагмент коду: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Ця програма виводить 8 крапок. Як це можливо? Чи не повинно бути замість цього 6 точок?
186 c++  c  fork 


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