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

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


6
Чому std :: initializer_list не є вбудованою мовою?
Чому не std::initializer_listвбудована основна мова? Мені здається, що це досить важлива особливість C ++ 11, і все ж він не має власного зарезервованого ключового слова (або чогось іншого). Натомість initializer_listце просто клас шаблону зі стандартної бібліотеки, який має спеціальне, неявне зіставлення з нового синтаксису дужок-init-list, {...} що обробляється компілятором. На …

4
багаторазове визначення спеціалізації шаблону при використанні різних об'єктів
Коли я використовую спеціалізований шаблон у різних об’єктних файлах, під час зв’язування з’являється помилка «множинного визначення». Єдине рішення, яке я знайшов, полягає у використанні функції "вбудована", але це, здається, якесь обхідне рішення. Як це вирішити, не використовуючи ключове слово "inline"? Якщо це неможливо, чому? Ось приклад коду: paulo@aeris:~/teste/cpp/redef$ cat hello.h …
95 c++  templates 


3
Що означає змивання буфера?
Я вивчаю C ++ і знайшов щось, чого не можу зрозуміти: Вихідні буфери можна явно змити, щоб примусити буфер записати. За замовчуванням зчитування cinзмивається cout; coutтакож змивається, коли програма закінчується нормально. Отже, очищення буфера (наприклад, вихідного буфера): чи очищає це буфер, видаляючи все в ньому, чи очищає буфер, виводячи все, …
95 c++  input  buffer  output  flush 

5
Чи можу я перерахувати-ініціалізувати вектор типу лише для переміщення?
Якщо я передаю наступний код через свій знімок GCC 4.7, він намагається скопіювати unique_ptrs у вектор. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Очевидно, що це не може працювати, оскільки std::unique_ptrне можна скопіювати: помилка: використання видаленої функції 'std …

5
Як віртуальне успадкування вирішує неоднозначність “діаманта” (багаторазового успадкування)?
class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } Я …

1
помилка: аргумент за замовчуванням вказаний для параметра 1
Я отримую це повідомлення про помилку з кодом нижче: class Money { public: Money(float amount, int moneyType); string asString(bool shortVersion=true); private: float amount; int moneyType; }; Спочатку я подумав, що параметри за замовчуванням не дозволяються як перший параметр у C ++, але це дозволено.

6
Оператор тильди в С
Я бачив оператор tilde, який використовується в алгоритмі хешування ELF, і мені цікаво, що він робить. (Код від Вічно Плутати .) unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = 0; i < len; …
95 c++  c  operators 

9
Помилка компіляції: “g ++: помилка при спробі виконати 'cc1plus': execvp: Немає такого файлу чи каталогу”
Коли я компілюю програму C / C ++ з popenin php..., я отримав цю помилку: g++: error trying to exec 'cc1plus': execvp: No such file or directory але якщо я запускаю php-код в оболонці .. він працює нормально .. в Arch Linux .. Код PHP: <?php function rfile($fp) { $out=""; …
95 php  c++  c  linux  gcc 

3
Що таке "тупання пам'яті"?
Я щойно натрапив на цю публікацію в блозі, де згадується «тупання пам’яті»: програма C ++, яка легко здатна заглушити пам'ять (те, про що ви, мабуть, ніколи не чули, якщо ви народилися в світі керованого коду.) А насправді я ніколи про це не чув! Отже, що це, пам’ять тупотить, тупає пам’ять? …

3
<cstdint> проти <stdint.h>
У чому різниця між stdint.hі cstdint? Обидва вони доступні в MSVC (Visual Studio 2010) та gcc-4.5.1. Також обидва визначають типи intX_t/ uintX_t(де X- розмір у байтах типу). Якщо обґрунтування обох заголовків однакове (портативні типи), які рішення я повинен приймати, щоб прийняти рішення щодо того чи іншого? stdint.hВизначає кожен тип без …
95 c++  stdint  cstdint 

13
Як розрахувати різницю в часі в C ++
Який найкращий спосіб розрахувати різницю в часі в C ++? Я приурочую швидкість виконання програми, тому мене цікавлять мілісекунди. А ще краще, секунди мілісекунди .. Прийнята відповідь працює, але має включати ctime або time.h, як зазначено в коментарях.
95 c++ 

27
Програма виходить з ладу лише під час побудови випуску - як налагодити?
У мене тут проблема типу "кота Шредінгера" - моя програма (насправді тестовий пакет для моєї програми, але програма тим не менше) аварійно завершує роботу, але лише при побудові в режимі випуску і лише при запуску з командного рядка . За допомогою налагодження печерної людини (тобто неприємних повідомлень printf () всюди), …
95 c++  debugging 

8
vector :: at vs. vector :: operator []
Я знаю, що at()це повільніше, ніж []через перевірку меж, що також обговорюється в подібних питаннях, таких як C ++ Vector at / [] оператор швидкість або :: std :: vector :: at () vs operator [] &lt;&lt; дивовижні результати !! У 5-10 разів повільніше / швидше! . Я просто не …
95 c++  stl  stdvector 

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