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

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

4
Як реалізовано середовище обробки винятків C ++?
Мене цікавить, як працює механізм обробки винятків C ++. Зокрема, де зберігається об’єкт винятку і як він поширюється через декілька областей, поки не буде схоплений? Чи зберігається це в якійсь глобальній області? Оскільки це може бути специфічним для компілятора, хтось може пояснити це в контексті набору компілятора g ++?

10
Надшвидка хеш-карта C / C ++ (таблиця, словник) [закрито]
Зачинено. Це питання не відповідає вимогам щодо переповнення стека . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб воно було актуальним для переповнення стека. Закрито 5 років тому . Удосконалюйте це питання Мені потрібно зіставити примітивні ключі (int, можливо, довгі) для структурування значень у високопродуктивній структурі даних …


11
Як отримати цілочисельний ідентифікатор потоку в c ++ 11
c ++ 11 має можливість отримати поточний ідентифікатор потоку, але його не можна передати цілочисельному типу: cout<<std::this_thread::get_id()<<endl; вихід: 139918771783456 cout<<(uint64_t)std::this_thread::get_id()<<endl; помилка: недійсне приведення з типу 'std :: thread :: id' до типу 'uint64_t' те саме для інших типів: недійсне приведення з типу 'std :: thread :: id' до типу 'uint32_t' …

2
Чому C ++ дозволяє нам оголошувати ім'я змінної в дужках при оголошенні змінної?
Наприклад декларація типу: int (x) = 0; Або навіть це: int (((x))) = 0; Я натрапив на це, тому що в моєму коді у мене трапився фрагмент, подібний до наступного: struct B { }; struct C { C (B *) {} void f () {}; }; int main() { B …

3
Повторне використання переміщеного контейнера?
Який правильний спосіб повторного використання переміщеного контейнера? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3: Reinitialize container.push_back(2); assert(container.size() == 1 && container.front() == 2); З того, що я прочитав у стандартному проекті C ++ 0x; ver3 здається правильним …

3
Чи завжди покажчик із правильною адресою та типом завжди є дійсним покажчиком з C ++ 17?
(Стосовно цього питання та відповіді .) До стандарту C ++ 17 у [basic.compound] / 3 було включено таке речення : Якщо об’єкт типу T знаходиться за адресою A, вказівник типу cv T *, значення якого є адресою A, вказує на цей об’єкт, незалежно від того, як було отримано значення. Але …


3
Чи можна вкладати директиви попереднього процесора в C ++?
У мене запитання про директиви попереднього процесора в C ++: Наприклад: #ifndef QUESTION //some code here #ifndef QUESTION //some code here #endif #endif Можемо чи ми використовувати його таким чином, і може компілятор C ++ відповідати ifndefі endifв правильному напрямку?

2
Чи все ще безпечно видаляти nullptr у c ++ 0x?
Тут c++03цілком зрозуміло, що видалення нульового вказівника ніяк не впливає. Справді, прямо зазначено, §5.3.5/2що: В будь-якому варіанті, якщо значення операнда delete є нульовим покажчиком, операція не впливає. Тим НЕ менше, в поточному проекті для c++0xцієї пропозиції , здається, відсутня. В решті чернетки я міг знайти лише речення, що вказують, що …

7
Компіляція програми C ++ за допомогою gcc
Питання: Як скомпілювати програму C ++ за допомогою компілятора gcc? info.c: #include<iostream> using std::cout; using std::endl; int main() { #ifdef __cplusplus cout << "C++ compiler in use and version is " << __cplusplus << endl; #endif cout <<"Version is " << __STDC_VERSION__ << endl; cout << "Hi" << __FILE__ << …
84 c++  gcc  g++  gnu 

4
Як працює std :: flush?
Хтось може пояснити (бажано, використовуючи звичайну англійську), як це std::flushпрацює? Що це? Коли б ви промивали потік? Чому це важливо? Дякую.
84 c++  stream 

6
Як перенаправити вихід qDebug, qWarning, qCritical тощо?
Я використовую багато qDebug() <<операторів для виведення налагодження. Чи існує якийсь крос-платформенний спосіб перенаправлення результатів налагодження у файл, не вдаючись до сценаріїв оболонки? Я здогадуюсь, що open () і dup2 () зроблять роботу в Linux, але чи буде вона працювати, скомпільована з MinGW в Windows? І, можливо, існує спосіб Qt …
84 c++  debugging  qt  mingw  qdebug 

3
__cdecl або __stdcall у Windows?
Зараз я розробляю бібліотеку C ++ для Windows, яка буде поширюватися як DLL. Моя мета - максимізувати бінарну сумісність; точніше, функції в моїй DLL повинні використовуватися з коду, скомпільованого з декількома версіями MSVC ++ та MinGW, без необхідності перекомпілювати DLL. Однак мене бентежить, який згодний дзвінок найкращий, cdeclабо stdcall. Іноді …


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