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

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

2
Як std :: move () передає значення в RValues?
Я просто виявив, що не повністю розумію логіку std::move(). Спочатку я погуглив це, але здається, що є лише документи про те, як користуватися std::move(), а не як працює його структура. Я маю на увазі, я знаю, що таке функція члена шаблону, але коли я std::move()вивчаю визначення у VS2010, воно все …

9
Чи були коли-небудь тихі зміни поведінки в C ++ з новими стандартними версіями?
(Я шукаю приклад чи два, щоб довести суть справи, а не список.) Чи траплялося коли-небудь, що зміна стандарту С ++ (наприклад, з 98 на 11, 11 на 14 тощо) змінювала поведінку існуючого, чітко сформованого коду користувача з визначеною поведінкою - мовчки? тобто без попередження або помилок при компіляції з новою …

3
Чи додає C ++ 14 нові ключові слова до C ++?
Комітет зі стандартів C ++, як правило, ухиляється від додавання нових ключових слів до мови, але це стосується C ++ 11. Деякі приклади: constexpr decltype thread_local auto // New usage noexcept nullptr static_assert alignof alignas Чи є нові ключові слова, введені за допомогою C ++ 14?
103 c++  c++11  keyword  c++14 

13
Визначення того, чи є число кратним десяти, або в межах певного набору діапазонів
У мене є кілька циклів, які мені потрібні у своїй програмі. Я можу виписати псевдо-код, але я не зовсім впевнений, як їх записати логічно. Мені потрібно - if (num is a multiple of 10) { do this } if (num is within 11-20, 31-40, 51-60, 71-80, 91-100) { do this …

4
Де поділяється_ptr?
Я так засмучений зараз через кілька годин, намагаючись знайти місце, де знаходиться спільний_ptr. Жоден із прикладів, які я бачу, не містить повного коду, щоб включити заголовки для shared_ptr(та працюючих). Просто констатуючи std, tr1і <memory>зовсім не допомагає! Я завантажив прискорення, і все, але все ще не відображається! Чи може хтось мені …

2
Компілятор із помилкою відображає символ "pi"
Я тестував якийсь код на Coliru , і отримав дивний вихід. Я спустив код і міг відтворити його за допомогою цього простого фрагмента коду : int main() { π } Вихід на g ++: стук: Наприклад, використання просто pi(без адреси) показує очікуваний результат: main.cpp:3:5: error: 'pi' was not declared in …
103 c++  coliru 

4
Чому всі набирають тип порівняно зі стандартними типами С?
Якщо ви хочете використовувати Qt , ви повинні прийняти quint8, quint16і так далі. Якщо ви хочете використовувати GLib , ви повинні вітати guint8, guint16і так далі. У Linux є u32, s16і так далі. УНЦ / OS визначає SINT32, UINT16і так далі. І якщо вам доведеться використовувати якесь поєднання цих речей, …
103 c++  c  stdint 

5
Гарантійний термін служби тимчасово в C ++?
Чи надає C ++ гарантію на час дії тимчасової змінної, яка створюється в межах виклику функції, але не використовується як параметр? Ось приклад класу: class StringBuffer { public: StringBuffer(std::string & str) : m_str(str) { m_buffer.push_back(0); } ~StringBuffer() { m_str = &m_buffer[0]; } char * Size(int maxlength) { m_buffer.resize(maxlength + 1, …
103 c++ 

6
Для чого __gxx_personality_v0?
Це б / у питання з веб-сайту розробки ОС, але мене викликало цікавість, оскільки я ніде не міг знайти гідного пояснення. Під час компіляції та зв’язування стоячої програми C ++ за допомогою gcc іноді виникає помилка лінкера на зразок цього: out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' Це, мабуть, тому, що цей …
103 c++  gcc  linker  kernel 

12
Чому буквені букви символів С замість знаків?
У C ++ sizeof('a') == sizeof(char) == 1. Це має інтуїтивний сенс, оскільки 'a'є символом буквальним, і sizeof(char) == 1як визначено стандартом. У C однак sizeof('a') == sizeof(int). Тобто, виявляється, що буквалі символів C - це фактично цілі числа. Хтось знає, чому? Я можу знайти багато згадок про цю вигадку …
103 c++  c  char  sizeof 

10
Чому std :: set не має функції "містить" член?
Я активно використовую std::set<int>і часто мені просто потрібно перевірити, чи містить такий набір число чи ні. Мені було б природно писати: if (myset.contains(number)) ... Але через відсутність containsчлена мені потрібно написати громіздкий: if (myset.find(number) != myset.end()) .. або не так очевидно: if (myset.count(element) > 0) .. Чи є причина такого …
103 c++  stl  stdset 

2
boost :: flat_map та його ефективність порівняно з картою та unororder_map
Загальновідомо в програмуванні, що локальність пам'яті значно покращує продуктивність завдяки хітам кешу. Нещодавно я дізнався про те, boost::flat_mapщо є векторною реалізацією карти. Здається, він не такий популярний, як ваш типовий map/, unordered_mapтому я не зміг знайти порівняння продуктивності. Як вона порівнює та які найкращі випадки використання для цього? Дякую!
103 c++  boost  map 

7
У C ++ все-таки погана практика повертати вектор з функції?
Коротка версія: великі об'єкти (наприклад, вектори / масиви) зазвичай повертаються багатьма мовами програмування. Чи прийнятний цей стиль в C ++ 0x, якщо в класі є конструктор ходу, чи програмісти C ++ вважають це дивним / потворним / гидотою? Довга версія: У C ++ 0x це все ще вважається поганою формою? …

7
Кома в макросі C / C ++
Скажімо, у нас є такий макрос #define FOO(type,name) type name Якими ми могли б користуватися FOO(int, int_var); Але не завжди так просто: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Звичайно, ми могли б зробити: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK що …
103 c++  c  macros  c-preprocessor 

8
C ++ Найкращий спосіб отримати ціле ділення та залишок
Мені просто цікаво, чи хочу я розділити на b, і мене цікавить як результат c, так і залишок (наприклад, скажіть, що у мене є кількість секунд і я хочу розділити це на хвилини і секунди), який найкращий спосіб піти про це? Було б int c = (int)a / b; int …
103 c++  division 

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