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

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

6
Чи "new" в "new int;" вважається оператором?
Вираз new int;типу in int * x = new int;є новим виразом . Термін "новий оператор", схоже, використовується як взаємозамінний із "новим виразом", наприклад у цьому питанні: Різниця між "новим оператором" та "оператором новим"? Чи правильно говорити, що ключове слово newв новому виразі є оператором? Чому чи чому б ні? …

7
Що станеться, якщо я прочитаю значення карти там, де ключа не існує?
map<string, string> dada; dada["dummy"] = "papy"; cout << dada["pootoo"]; Я спантеличений, бо не знаю, вважається це невизначеною поведінкою чи ні, як дізнатися, коли я запитую ключ, якого не існує, чи просто використовувати замість цього find?
84 c++  map 

5
Як виявити помилку сегментації в Linux?
Мені потрібно виявити помилку сегментації в операціях очищення бібліотеки сторонніх виробників. Це трапляється іноді безпосередньо перед виходом моєї програми, і я не можу визначити справжню причину цього. У програмуванні Windows я міг зробити це за допомогою __try - __catch. Чи існує крос-платформенний або специфічний для платформи спосіб зробити те саме? …

4
Різна поведінка оператора коми у C ++ з поверненням?
Це (зверніть увагу на оператор коми ): #include <iostream> int main() { int x; x = 2, 3; std::cout << x << "\n"; return 0; } виходи 2 . Однак, якщо ви використовуєте returnз оператором-комою, це: #include <iostream> int f() { return 2, 3; } int main() { int x; …

11
Чи доречно * не * використовувати вільний () у виділеній пам'яті?
Я вивчаю комп’ютерну техніку і маю кілька курсів електроніки. Я чув від двох моїх професорів (з цих курсів) , що можна уникнути з допомогою free()функції (після того, як malloc(), calloc()і т.д.) , так як простору пам'яті , виділені , ймовірно , не використовуватиметься знову , щоб виділити іншу пам'ять. Тобто, …

11
Насичуючи віднімання / додавання для непідписаних байтів
Уявіть, у мене є два байти без знака bі x. Мені потрібно обчислити bsubяк b - xі baddяк b + x. Однак я не хочу, щоб під час цих операцій відбувався заниження / переповнення. Наприклад (псевдокод): b = 3; x = 5; bsub = b - x; // bsub must …

4
Дивний перелік у деструкторі
На даний момент я читаю вихідний код Protocol Bufferі знайшов один дивний enumкод, визначений тут ~scoped_ptr() { enum { type_must_be_complete = sizeof(C) }; delete ptr_; } void reset(C* p = NULL) { if (p != ptr_) { enum { type_must_be_complete = sizeof(C) }; delete ptr_; ptr_ = p; } } …
83 c++  enums 

9
Перехід від C ++ до C
Після кількох років кодування на C ++ мені нещодавно запропонували роботу з кодуванням на C, у вбудованому полі. Покинувши в стороні питання, правильно чи неправильно відхиляти С ++ у вбудованому полі, в С ++ є деякі особливості / ідіоми, я б багато чого пропустив. Просто назвемо декілька: Загальні, безпечні для …
83 c++  c 

5
Звідки походить слово "прагма"?
Тож я знаю, що таке прагма і для чого вона використовується, але яке значення має саме слово? Я багато разів використовував його в коді, але ніколи не знав, що це слово насправді означає чи означає.
83 c++  c  terminology  pragma 

1
як працює boost :: function і boost :: bind
Мені не подобається, що магічні коробки розкидані по всьому моєму коді ... як саме працюють ці два класи, щоб дозволити в основному будь-яку функцію бути зіставленою з об'єктом функції, навіть якщо функція <> має зовсім інший параметр, встановлений на той, який їм передається boost::bind Він навіть працює з різними конвенціями …

9
Що швидше: x << 1 або x << 10?
Я не хочу нічого оптимізувати, клянусь, я просто хочу поставити це питання з цікавості. Я знаю, що на більшості апаратних засобів існує команда збірки бітового зсуву (наприклад shl, shr), яка є однією командою. Але чи має значення (наносекундно, або тактово процесор), скільки бітів ви зміщуєте. Іншими словами, чи є щось …
83 c++  c  performance  cpu  low-level 

4
Як пройти std :: unique_ptr?
У мене перша спроба використовувати C ++ 11 unique_ptr; Я замінюю поліморфний сирий вказівник всередині мого проекту, який належить одному класу, але передається досить часто. Раніше у мене були такі функції, як: bool func(BaseClass* ptr, int other_arg) { bool val; // plain ordinary function that does something... return val; } …
83 c++  c++11  unique-ptr 

3
Виклик pthread_cond_signal без блокування mutex
Я десь читав, що нам слід заблокувати мьютекс перед викликом pthread_cond_signal і розблокувати мьютекс після його виклику: Підпрограма pthread_cond_signal () використовується для сигналізації (або пробудження) чергового потоку, який очікує на змінну умови. Його слід викликати після того, як mutex заблоковано, і він повинен розблокувати мьютекс, щоб завершити процедуру pthread_cond_wait (). …

3
Чому CUDA закріплює пам’ять так швидко?
Я спостерігаю значні прискорення передачі даних, коли використовую закріплену пам’ять для передачі даних CUDA. У Linux основним системним викликом для досягнення цього є mlock. На сторінці користувача mlock зазначено, що блокування сторінки не дозволяє її замінити: mlock () блокує сторінки в діапазоні адрес, починаючи з addr і продовжуючи довгий байт. …
83 c++  c  linux  cuda 

4
Чому ADL не знаходить шаблонів функцій?
Яка частина специфікації C ++ обмежує пошук, залежний від аргументу, від пошуку шаблонів функцій у наборі пов’язаних просторів імен? Іншими словами, чому останній виклик mainнижче не вдається скомпілювати? namespace ns { struct foo {}; template&lt;int i&gt; void frob(foo const&amp;) {} void non_template(foo const&amp;) {} } int main() { ns::foo f; …

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