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

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

2
GNU GCC (g ++): Чому він генерує кілька dtors?
Розвиваюче середовище: GNU GCC (g ++) 4.1.2 Поки я намагаюся дослідити, як збільшити "охоплення коду - зокрема, функціональне покриття" в модульному тестуванні, я виявив, що частина класу dtor, здається, генерується кілька разів. Хтось із вас уявляє, чому, будь ласка? Я спробував і спостерігав те, що я згадав вище, використовуючи наступний …
90 c++  g++  destructor 

2
Помилка під час використання в класі ініціалізації нестатичного члена даних та конструктора вкладеного класу
Наступний код досить тривіальний, і я очікував, що він повинен скомпілюватись добре. struct A { struct B { int i = 0; }; B b; A(const B& _b = B()) : b(_b) {} }; Я протестував цей код за допомогою g ++ версії 4.7.2, 4.8.1, clang ++ 3.2 та 3.3. …

6
Як використовувати doxygen для створення діаграм класів UML із джерела C ++
Я шукав якийсь матеріал, який описує, як створити прості діаграми класів за допомогою доксигену, але не зміг знайти. Хто-небудь може допомогти? Мені потрібно створити схеми, як показано нижче, з набору файлів C ++. Якщо є кращі інструменти, щоб досягти цього простіше, повідомте мене про це.

2
Чи дозволена ця оптимізація з плаваючою точкою?
Я спробував перевірити, де floatвтрачає здатність точно представляти великі цілі числа. Тож я написав цей маленький фрагмент: int main() { for (int i=0; ; i++) { if ((float)i!=i) { return i; } } } Здається, цей код працює з усіма компіляторами, крім clang. Clang генерує простий нескінченний цикл. Годболт . …




4
Виклик функції C із коду C ++
У мене є функція C, яку я хотів би викликати з C ++. Я не міг використати " extern "C" void foo()" підхід, оскільки "" функцію C не вдалося скомпілювати за допомогою g ++. Але він чудово компілюється за допомогою gcc. Будь-які ідеї, як викликати функцію з C ++?
90 c++  c  linux  extern-c 

5
Посилання на libstdc ++ статично: є якісь проблеми?
Мені потрібно розгорнути програму C ++, побудовану на Ubuntu 12.10, з libstdc ++ GCC 4.7 на системах під управлінням Ubuntu 10.04, яка постачається зі значно старшою версією libstdc ++. Наразі я складаю -static-libstdc++ -static-libgcc, як пропонується в цьому дописі в блозі: Посилання на libstdc ++ статично . Автор застерігає від …

6
Початкова ємність вектора в C ++
Що таке capacity()a, std::vectorякий створений за допомогою конструктора за замовчуванням? Я знаю, що size()нуль. Чи можемо ми стверджувати, що сконструйований за замовчуванням вектор не викликає виділення купи пам'яті? Таким чином можна було б створити масив з довільним резервом, використовуючи єдине виділення, наприклад std::vector<int> iv; iv.reserve(2345);. Скажімо, з якихось причин я …

6
Чи потрібно отримувати блокування перед викликом condition_variable.notify_one ()?
Я трохи заплутаний щодо використання std::condition_variable. Я розумію , що я повинен створити unique_lockна mutexперед викликом condition_variable.wait(). Я не можу знайти, чи слід мені також придбати унікальний замок перед дзвінком notify_one()або notify_all(). Приклади на cppreference.com суперечливі. Наприклад, на сторінці notify_one подано такий приклад: #include <iostream> #include <condition_variable> #include <thread> #include …

8
Як використовувати CCache з CMake?
Я хотів би зробити наступне: Якщо CCache присутній у PATH, використовуйте "ccache g ++" для компіляції, інакше використовуйте g ++. Я спробував написати невеликий скрипт my-cmake, що містить CC="ccache gcc" CXX="ccache g++" cmake $* але це, здається, не працює (запущений make все ще не використовує кеш; я перевірив це за …
90 c++  unix  cmake  ccache 

1
Array [n] vs Array [10] - Ініціалізація масиву зі змінною проти реального числа
У мене така проблема з моїм кодом: int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; Повертає таку помилку: error: variable-sized object 'tenorData' may not be initialized Тоді як використання double tenorData[10]працює. Хтось знає чому?

6
Як оновити std :: map після використання методу find?
Як оновити значення ключа в std::mapпісля використання findметоду? У мене є декларація карти та ітератора, така: map <char, int> m1; map <char, int>::iterator m1_it; typedef pair <char, int> count_pair; Я використовую карту, щоб зберігати кількість повторень символу. Я використовую Visual C ++ 2010.
90 c++  map  stl  stdmap 

11
Як отримати використання пам'яті під час виконання за допомогою C ++?
Мені потрібно отримати пам’ять VIRT та RES під час роботи моєї програми та відобразити їх. Що я намагався до цього часу: getrusage ( http://linux.die.net/man/2/getrusage ) int who = RUSAGE_SELF; struct rusage usage; int ret; ret=getrusage(who,&usage); cout<<usage.ru_maxrss; але я завжди отримую 0.

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