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

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

6
Термінал C ++ викликається без активного винятку
Я отримую помилку C ++ з потоками: terminate called without an active exception Aborted Ось код: #include <queue> #include <thread> #include <mutex> #include <condition_variable> template<typename TYPE> class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &operator<<(TYPE &other) { std::unique_lock<std::mutex> mtx_lock(mtx); while(buffer.size()>=max_buffer_size) stop_if_full.wait(mtx_lock); buffer.push(std::move(other)); …

8
Як відстежити помилку "подвійний вільний або корупційний"
Коли я запускаю свою програму (C ++), вона виходить з ладу з цією помилкою. * виявлено glibc * ./load: подвійна безкоштовна або корупція (! попередня): 0x0000000000c6ed50 *** Як я можу виявити помилку? Я спробував використовувати std::coutоператори print ( ), але безуспішно. Чи може gdbце полегшити?
94 c++  c  debugging  free 

15
Чи має С ++ 11 властивості стилю C #?
У C # є симпатичний синтаксичний цукор для полів з геттером та сеттером. Більше того, мені подобаються автореалізовані властивості, які дозволяють мені писати public Foo foo { get; private set; } У C ++ я повинен писати private: Foo foo; public: Foo getFoo() { return foo; } Чи є така …
93 c#  c++  class  c++11 

10
Як програмно викликати дамп ядра в C / C ++
Я хотів би примусити дамп ядра в певному місці в моєму додатку C ++. Я знаю, що можу це зробити, виконавши щось на зразок: int * crash = NULL; *crash = 1; Але я хотів би знати, чи існує чистіший спосіб? Я, до речі, використовую Linux.
93 c++  c  linux  coredump  abort 


13
Розв’язування результату std :: type_info :: name
Зараз я працюю над кодом реєстрації, який повинен, серед іншого, друкувати інформацію про функцію виклику. Це має бути відносно просто, у стандартних C ++ є type_infoклас. Він містить назву typeid'd класу / функції / тощо. але це збито. Це не дуже корисно. Тобто typeid(std::vector<int>).name()повертається St6vectorIiSaIiEE. Чи є спосіб зробити щось …
93 c++  gcc  name-mangling 

7
Як побудувати c ++ fstream з дескриптора файлу POSIX?
Я в основному шукаю C ++ версію fdopen (). Я трохи провів дослідження з цього питання, і це одна з тих речей, яка здається, що це має бути легко, але виявляється дуже складною. Чи я щось пропускаю в цій вірі (тобто це дійсно легко)? Якщо ні, чи є там хороша …

12
Як налаштувати тестування блоку для Visual Studio C ++
У мене виникли проблеми , з'ясувати , як отримати основи тестування налаштувати і використовувати в Visual Studio 2008 для C++імовірно з вбудованим блоком тестування пакету. Будь-які посилання чи підручники будуть вдячні.

8
Чому розбиття рядка повільніше на C ++, ніж Python?
Я намагаюсь перетворити якийсь код з Python на C ++, намагаючись набрати трохи швидкості і відточити свої іржаві навички C ++. Вчора я був шокований, коли наївна реалізація рядків читання з stdin була набагато швидшою в Python, ніж C ++ (див. Це ). Сьогодні я нарешті з'ясував, як розділити рядок …

7
Чому люди так багато використовують __ (подвійне підкреслення) в C ++
Я переглядав якийсь код із відкритим кодом C ++ і помічав багато подвійних оцінок, коли вони використовувались у коді, головним чином на початку імен змінних. return __CYGWIN__; Просто цікаво, чи є для цього причина, чи це просто деякі стилі коду людей? Думаю, мені важко читати.

2
Який результат + = в C та C ++?
У мене такий код: #include <stdio.h> int main(int argc, char **argv) { int i = 0; (i+=10)+=10; printf("i = %d\n", i); return 0; } Якщо я спробую скомпілювати його як джерело C за допомогою gcc, я отримаю повідомлення про помилку: error: lvalue required as left operand of assignment Але якщо …
93 c++  c 

6
Що робить екстерн вбудований?
Я розумію, що inlineсам по собі є пропозицією для компілятора, і на свій розсуд він може вбудовувати функцію або не вбудовувати її, а також створюватиме об’єктний код, що зв’язується. Я думаю, що static inlineробить те саме (може, а може і не вбудовано), але не створює прив’язуваний об’єктний код, коли вбудований …

3
Як встановити точки зупинки для майбутніх спільних бібліотек за допомогою прапорця команди
Я намагаюся автоматизувати сеанс gdb, використовуючи --commandпрапор. Я намагаюся встановити точку зупинки для функції у спільній бібліотеці (Unix-еквівалент DLL). Мій cmds.gdb виглядає так: set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r Однак я отримую таке: shlomi: ~ / progs / bugs-external / kde / font-breaking $ gdb --command = cmds.gdb ... GNU …
93 c++  c  linux  unix  gdb 

2
Що означає [=] у C ++?
Я хочу знати, що [=]робить? Ось короткий приклад template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); Як би працював код []замість [=]? Я припускаю, що std::function<T (T)> означає …
93 c++  c++11  lambda 

9
Як вимкнути попередження про невикористану змінну, що виходять із gcc, у сторонній код, який я не хочу редагувати?
Я хотів би знати, який перемикач ви передаєте компілятору gcc, щоб вимкнути невикористані попередження змінних? У мене з’являються помилки з підсилення у Windows, і я не хочу торкатися коду підсилення: C:\boost_1_52_0/boost/system/error_code.hpp: At global scope: C:\boost_1_52_0/boost/system/error_code.hpp:214:36: error: 'boost::system::posix_category' defined but not used [-Werror=unused-variable] C:\boost_1_52_0/boost/system/error_code.hpp:215:36: error: 'boost::system::errno_ecat' defined but not used [-Werror=unused-variable] …

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