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

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

6
Чому присвоєння значення бітовому полю не повертає однакове значення?
Я бачив наведений нижче код у цій публікації Quora : #include <stdio.h> struct mystruct { int enabled:1; }; int main() { struct mystruct s; s.enabled = 1; if(s.enabled == 1) printf("Is enabled\n"); // --> we think this to be printed else printf("Is disabled !!\n"); } В обох C & C …



8
Не знайдено оператора == під час порівняння структур у C ++
Порівнюючи два екземпляри такої структури, я отримую повідомлення про помилку: struct MyStruct1 { MyStruct1(const MyStruct2 &_my_struct_2, const int _an_int = -1) : my_struct_2(_my_struct_2), an_int(_an_int) {} std::string toString() const; MyStruct2 my_struct_2; int an_int; }; Помилка: помилка C2678: двійковий '==': не знайдено оператора, який приймає лівий операнд типу 'myproj :: MyStruct1' (або …

10
ACE проти Boost проти POCO [закрито]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 2 роки тому . Удосконалюйте це питання Я вже давно працюю з бібліотеками Boost C ++ . Мені …


2
Як визначити кілька шляхів включення в Makefile
Новачок C ++; Базове розуміння включень, бібліотек та процесу компіляції. Ще зробив кілька простих графічних файлів. Мій поточний проект передбачає використання apix DB api, і мені потрібно включати файли заголовків у більш ніж один нестандартний dir. Як це написати? Гавент знайшов щось у мережі, ймовірно, тому, що я не використовував …
96 c++  include  makefile 

11
Фатальна помилка: "Без цільової архітектури" у Visual Studio
Коли я намагаюся скомпілювати проект c ++ за допомогою Visual Studio 2010 в режимі Win32 або x64, я отримую таку помилку: >C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture" Мої визначення препроцесора кажуть: WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions) Що спричиняє цю помилку та як її виправити? // …

1
Ініціалізація члена при використанні делегованого конструктора
Я почав випробовувати стандарт C ++ 11, і я знайшов це питання, в якому описано, як викликати ваш ctor з іншого ctor того ж класу, щоб уникнути використання методу init тощо. Зараз я намагаюся те ж саме з кодом, який виглядає приблизно так: hpp: class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream …

6
Навіщо використовувати std :: make_unique в C ++ 17?
Наскільки я розумію, C ++ 14 запроваджено std::make_unique, оскільки в результаті невказаного порядку оцінки параметрів це було небезпечно: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Пояснення: якщо оцінка спочатку виділяє пам’ять для необробленого вказівника, тоді виклики g()та виняток видаються перед std::unique_ptrпобудовою, тоді пам’ять витікає.) Виклик std::make_uniqueбув способом обмежити порядок дзвінків, роблячи …
96 c++  c++17  unique-ptr 


3
Як правильно перевірити, чи функція std :: порожня в C ++ 11?
Мені було цікаво, як правильно перевірити, чи не std::functionє порожнім. Розглянемо цей приклад: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Цей код чудово компілюється в MSVC, але якщо я дзвоню doSomething()без ініціалізації, eventFuncкод, очевидно, виходить …


2
Використовує malloc для невизначеної поведінки int до C ++ 20
Мені сказали, що наступний код має невизначену поведінку до С ++ 20: int *p = (int*)malloc(sizeof(int)); *p = 10; Це правда? Аргументом було те, що час життя intоб’єкта не починається до присвоєння йому значення ( P0593R6 ). Щоб вирішити проблему, newслід використовувати розміщення: int *p = (int*)malloc(sizeof(int)); new (p) int; …

4
Буде замінити '::' на '. 'створювати двозначності в C ++?
У C ++ оператор ::використовується для доступу до класів, функцій та змінних у просторі імен чи класу. Якщо мовна специфікація, яка використовується .замість ::таких випадків, як і при зверненні до змінних екземплярів / методів об'єкта, це спричинило б можливі двозначності, яких немає ::? Зважаючи на те, що C ++ не …

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