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

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

5
Чому NULL не оголошено?
У мене проблема з цим конструктором структури, коли я намагаюся скомпілювати цей код: typedef struct Node { Node( int data ) // { this->data = data; previous = NULL; // Compiler indicates here next = NULL; } int data; Node* previous; Node* next; } NODE; коли я приходжу, виникає ця …
87 c++  syntax  nodes 


4
Чи надійні експериментальні особливості сучасного С ++ для довгострокових проектів?
У мене є проект, який в даний час використовує C ++ 11/14, але для цього потрібно щось на зразок std::filesystem, яке доступне лише в C ++ 17, і, отже, у мене немає можливості використовувати його зараз. Однак я бачу, що він доступний у моєму поточному компіляторі як std::experimental::filesystem. Чи є …

5
Непідписане ключове слово в C ++
Чи не підписане ключовим словом за замовчуванням певний тип даних у C ++? Я намагаюся написати функцію для класу для прототипу: unsigned Rotate(unsigned object, int count) Але я насправді не розумію, що unsignedозначає. Це не повинно бути unsigned intчи щось подібне?
87 c++  unsigned 

3
Конструктор копіювання та = перевантаження оператора в C ++: чи можлива загальна функція?
Так як конструктор копій MyClass(const MyClass&); та перевантаження оператора = MyClass& operator = (const MyClass&); мають майже однаковий код, той самий параметр і різняться лише при поверненні, чи можна мати спільну функцію для обох?

1
Що таке посібники з вирахування шаблонів і коли ми повинні ними користуватися?
Стандарт C ++ 17 вводить "посібники з вирахування шаблонів". Я вважаю, що вони мають щось спільне з новим вирахуванням аргументу шаблону для конструкторів, представленим у цій версії стандарту, але я ще не бачив простого пояснення щодо того, для чого вони потрібні, у стилі поширених запитань. Що таке посібники з вирахування …

12
Як налаштувати googleTest як спільну бібліотеку в Linux
Debian більше не пропонує жодних попередньо скомпільованих пакетів для gTest. Вони пропонують вам інтегрувати фреймворк у файл файлів вашого проекту. Але я хочу, щоб мій makefile був чистим. Як налаштувати gTest як попередні версії (<1.6.0), щоб я міг встановити посилання на бібліотеку?

7
C / C ++: Примусовий порядок і вирівнювання бітового поля
Я читав, що порядок бітових полів у структурі залежить від платформи. Що щодо того, якщо я використовую різні варіанти упаковки для конкретного компілятора, чи зберігатимуться ці гарантійні дані у належному порядку, як вони написані? Наприклад: struct Message { unsigned int version : 3; unsigned int type : 1; unsigned int …


1
C ++ 11: Кількість параметрів функції варіативного шаблону?
Як я можу отримати підрахунок кількості аргументів для функції варіативного шаблону? тобто: template<typename... T> void f(const T&... t) { int n = number_of_args(t); ... } Який найкращий спосіб реалізувати number_of_argsу вищезазначеному?

3
як надати функцію підкачки для мого класу?
Який правильний спосіб увімкнути мої swapалгоритми STL? 1) Член swap. Чи std::swapвикористовує фокус SFINAE для використання учасника swap. 2) Вільне стояння swapв одному просторі імен. 3) Часткова спеціалізація std::swap. 4) Все вищесказане. Дякую. EDIT: Схоже, я не чітко сформулював своє запитання. В основному, у мене є шаблонний клас, і мені …
87 c++  algorithm  stl  swap 

3
C ++ 11 дозволяє ініціалізацію в класі нестатичних та неконстантних членів. Що змінилося?
До C ++ 11 ми могли виконувати ініціалізацію в класі лише для статичних членів const цілого або типу перелічення. Страуструп обговорює це у своїх запитаннях щодо C ++ , наводячи такий приклад: class Y { const int c3 = 7; // error: not static static int c4 = 7; // …


6
Часткова спеціалізація шаблону функції C ++?
Я знаю, що наведений нижче код - це часткова спеціалізація класу: template <typename T1, typename T2> class MyClass { … }; // partial specialization: both template parameters have same type template <typename T> class MyClass<T,T> { … }; Також я знаю, що C ++ не дозволяє часткову спеціалізацію шаблону функцій …

8
C ++ 11 emplace_back на векторі <struct>?
Розглянемо таку програму: #include &lt;string&gt; #include &lt;vector&gt; using namespace std; struct T { int a; double b; string c; }; vector&lt;T&gt; V; int main() { V.emplace_back(42, 3.14, "foo"); } Це не працює: $ g++ -std=gnu++11 ./test.cpp In file included from /usr/include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:34:0, from /usr/include/c++/4.7/bits/allocator.h:48, from /usr/include/c++/4.7/string:43, from ./test.cpp:1: /usr/include/c++/4.7/ext/new_allocator.h: In instantiation …
87 c++  c++11 

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