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

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

4
Як використовувати аргумент Macro як рядковий літерал?
Я намагаюся зрозуміти, як написати макрос, який передаватиме як функцію рядкового літерального подання імені змінної разом із самою змінною. Наприклад, задана наступна функція. void do_something(string name, int val) { cout << name << ": " << val << endl; } Я хотів би написати макрос, щоб я міг зробити це: …

1
Що робить ## (подвійний хеш) у директиві препроцесора?
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; Наведений вище рядок взятий з Unreal 4, і я знаю, що міг би задати його на нереальних форумах, але я думаю, що це загальне запитання на C ++, яке вимагає тут. Я розумію, що перший рядок визначає макрос, однак я погано розбираюся в попередніх …

4
Невизначене посилання на статичний член
Я використовую крос-компілятор. Мій код: class WindowsTimer{ public: WindowsTimer(){ _frequency.QuadPart = 0ull; } private: static LARGE_INTEGER _frequency; }; Я отримую таку помилку: невизначене посилання на `WindowsTimer :: _ частота ' Я також намагався змінити його на LARGE_INTEGER _frequency.QuadPart = 0ull; або static LARGE_INTEGER _frequency.QuadPart = 0ull; але я все ще …

6
Чому я можу визначити структури та класи всередині функції в C ++?
Я просто помилково зробив щось подібне в C ++, і це працює. Чому я можу це зробити? int main(int argc, char** argv) { struct MyStruct { int somevalue; }; MyStruct s; s.somevalue = 5; } Тепер, зробивши це, я якось згадав, як колись давно читав про цей трюк як свого …

9
Навіщо розробляти мову з унікальними анонімними типами?
Це те, що мене завжди хвилювало як особливість лямбда-виразів на C ++: Тип лямбда-виразу на C ++ є унікальним та анонімним, я просто не можу записати його. Навіть якщо я створюю дві лямбди, які синтаксично абсолютно однакові, отримані типи визначаються як різні. Наслідком цього є те, що а) лямбди можуть …

8
Чи швидший і легший Python, ніж C ++? [зачинено]
В даний час це питання не підходить для нашого формату запитань та відповідей. Ми очікуємо, що відповіді будуть підтверджені фактами, посиланнями чи експертизою, але це питання, швидше за все, вимагатиме дебатів, аргументів, опитування чи розширеного обговорення. Якщо ви вважаєте, що це питання можна покращити і, можливо, знову відкрити, відвідайте довідковий …

10
якщо твердження - оцінка короткого замикання проти читабельності
Іноді ifвисловлювання може бути досить складним або довгим, тому для читабельності краще витягувати складні дзвінки перед if. наприклад це: if (SomeComplicatedFunctionCall() || OtherComplicatedFunctionCall()) { // do stuff } в це bool b1 = SomeComplicatedFunctionCall(); bool b2 = OtherComplicatedFunctionCall(); if (b1 || b2) { //do stuff } ( При умови , …


12
У цьому конкретному випадку, чи є різниця між використанням списку ініціалізаторів членів та призначенням значень у конструкторі?
Внутрішньо та щодо сформованого коду, чи справді існує різниця між: MyClass::MyClass(): _capacity(15), _data(NULL), _len(0) { } і MyClass::MyClass() { _capacity=15; _data=NULL; _len=0 } Дякую...


2
Що це (( ))?
Під час перегляду вихідного коду компілятора gcc (gcc / c-family / c-pragma.c) я бачу: typedef struct GTY(()) align_stack { int alignment; tree id; struct align_stack * prev; } align_stack; і незалежно від того, що у мене за плечима багато років програмування на С, ці біти: (())для мене поки абсолютно невідомі. …
90 c++  c 

16
Я чув, що i ++ не є потокобезпечним, чи є я безпечним для потоків?
Я чув, що i ++ не є потокозахищеним твердженням, оскільки при складанні він зводиться до зберігання вихідного значення десь як тимчасового, збільшуючи його, а потім замінюючи, що може бути перервано контекстним перемикачем. Однак мені цікаво про ++ i. Наскільки я можу зрозуміти, це призведе до однієї інструкції збірки, наприклад, "додати …
90 c++  c  multithreading 

9
std :: map insert або std :: map find?
Припустимо карту, де ви хочете зберегти існуючі записи. 20% випадків запис, який ви вставляєте, - це нові дані. Чи є перевага робити std :: map :: find, а потім std :: map :: insert, використовуючи цей повернутий ітератор? Або швидше зробити спробу вставки, а потім діяти, виходячи з того, вказує …
90 c++  optimization  stl  stdmap 

3
<random> генерує таке саме число в Linux, але не в Windows
Наведений нижче код призначений для створення списку з п’яти псевдовипадкових чисел в інтервалі [1100]. Я Насіння default_random_engineз time(0), яка повертає системний час в UNIX час . Коли я компілюю та запускаю цю програму в Windows 7 за допомогою Microsoft Visual Studio 2013, вона працює належним чином (див. Нижче). Однак, коли …

6
Помилка: безкоштовно (): недійсний наступний розмір (швидко):
Що це за дивна помилка, яку я отримую? Я компілюю C ++ за допомогою g ++ на Ubuntu 10.10. Він вискакує випадковим чином, коли я запускаю виконуваний файл (можливо, 2 рази за 8 годин, при 10 компіляціях на годину). Однак, якщо я роблю чистку та перекомпілюю, це зникає більшість часу. …
90 c++  g++ 

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