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

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

11
Чому uint32_t буде кращим, а не uint_fast32_t?
Здається, uint32_tце набагато більше, ніж uint_fast32_t(я усвідомлюю, що це анекдотичні докази). Однак це здається мені протиречувальним. Майже завжди, коли я бачу використання реалізації uint32_t, все, що йому насправді потрібно, це ціле число, яке може містити значення до 4 294 967 295 (зазвичай набагато нижча межа десь між 65 535 і …
82 c++  c  int 

7
Чи використання непідписаного, а не підписаного int, швидше за все, спричиняє помилки? Чому?
У посібнику стилю Google C ++ на тему "Непідписані цілі числа" пропонується Через історичну аварію стандарт С ++ також використовує цілі числа без підпису для представлення розміру контейнерів - багато членів органу, що відповідає стандартам, вважають, що це помилка, але на даний момент це фактично неможливо виправити. Той факт, що …

6
Виявлення часу компіляції архітектури процесора
Який найнадійніший спосіб з’ясувати архітектуру процесора під час компіляції коду C або C ++? Наскільки я можу судити, різні компілятори мають свій власний набір нестандартні визначення препроцесора ( _M_X86в МСВС, __i386__, __arm__в GCC, і т.д.). Чи існує стандартний спосіб виявити архітектуру, для якої я будую? Якщо ні, чи існує джерело …

4
Чи допускає C ++ 11 вектор <const T>?
Вимоги до контейнерів змінилися з C ++ 03 на C ++ 11. Хоча C ++ 03 мав загальні вимоги (наприклад, конструктивність копіювання та призначення для вектора), C ​​++ 11 визначає дрібні вимоги щодо кожної операції з контейнером (розділ 23.2). Як результат, ви можете, наприклад, зберігати тип, який можна сконструювати, але …
82 c++  vector  c++11  constants 

12
Виявлення переписаного переповнення в C / C ++
На перший погляд, це питання може здатися дублікатом Як виявити переповнення цілих чисел? , проте насправді це суттєво відрізняється. Я виявив, що виявлення переповнення цілого числа без підпису є досить тривіальним, виявляючи підписане переповнення в C / C ++ насправді складніше, ніж думає більшість людей. Найбільш очевидним, але наївним способом …

6
Що станеться, якщо я присвоюю відмінне значення непідписаній змінній?
Мені було цікаво дізнатись, що станеться, якщо я призначу негативне значення непідписаній змінній. Код буде виглядати приблизно так. unsigned int nVal = 0; nVal = -5; Це не дало мені жодної помилки компілятора. Коли я запускав програму, nValїй було присвоєно дивне значення! Чи може бути, що присвоюється значення доповнення деяких …

4
Вирівнювання пам'яті: як використовувати alignof / alignas?
Зараз я працюю із спільною пам’яттю. Я не можу зрозуміти alignofі alignas. cppreference незрозумілий: alignofповертає "вирівнювання", але що таке "вирівнювання"? кількість байт для додавання для наступного вирівняного блоку? м'який розмір? Записи переповнення стека / блоги теж незрозумілі. Хтось може пояснити чітко alignofі alignas?

3
Що таке субнормальне число з плаваючою точкою?
Довідкова сторінка isnormal () повідомляє: Визначає, чи задане число з плаваючою комою arg є нормальним, тобто не є ні нульовим, ні нормальним, нескінченним, ні NaN. Число, яке дорівнює нулю, нескінченному чи NaN, зрозуміло, що воно означає. Але це також говорить про ненормальне. Коли число ненормальне?

4
У чому різниця між C ++ 0x та C ++ 11?
Я бачу неоднозначне використання цих двох термінів тут на SO. Вікіпедія каже C ++ 11, також раніше відомий як C ++ 0x ... але я не впевнений, чому. Чому його спочатку називали C ++ 0x, а потім C ++ 11? Крім того, що означає x? Моє припущення - як змінна?
82 c++  c++11 

4
Чому нова випадкова бібліотека краща за std :: rand ()?
Тож я побачив виступ під назвою rand (), який вважається шкідливим, і він виступав за використання парадигми розподілу двигуна генерації випадкових чисел над простою std::rand()парадигмою плюс модуль. Однак я хотів побачити недоліки з std::rand()перших вуст, тому провів швидкий експеримент: В принципі, я написав 2 функції getRandNum_Old()і , getRandNum_New()що генерується випадкове …
82 c++  c++11  random 

2
Цикл "for", який здається практично нескінченним
На даний момент я налагоджую деякий код і натрапив на цей рядок: for (std::size_t j = M; j &lt;= M; --j) (Написав мій начальник, який у відпустці.) Мені це здається по-справжньому дивним. Що це робить? Для мене це схоже на нескінченну петлю.
82 c++ 

5
Коли я щось `кидаю ', де воно зберігається в пам'яті?
Я розумію, що коли щось має значення thrown, стек `` розмотується '' до точки, де воно потрапляє, і запускаються деструктори екземплярів класів у стеці в кожному контексті функції (саме тому не слід кидати виняток з деструктора - Ви могли б в кінці кинути другий) ... але мені цікаво, де в …

6
Як налаштувати Google C ++ Testing Framework (gtest) за допомогою Visual Studio 2005
Це не задокументовано на веб-сайті, і люди, здається, мають проблеми з налаштуванням фреймворку. Чи може хтось показати покрокове введення для зразка налаштування проекту?

2
Який сенс макросу PROTOTYPE, який просто розширюється до своїх аргументів?
У мене є файл заголовка, який містить #define PROTOTYPE(s) s Який сенс у цьому? Здається, це просто замінило б введення самим собою. Є безліч інших директив навколо нього, але тільки один , який , як видається , є якийсь - або підшипник тільки що перевірив , якщо він визначений: #ifndef …
82 c++  macros 


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