Вопросы с тегом «c++»

104
В чем разница между cout, cerr, clog заголовка iostream в с ++? Когда использовать какой?

Я пытался исследовать разницу между cout, cerrи clogв Интернете , но не мог найти идеальный ответ. Я до сих пор не понимаю, когда использовать. Может ли кто-нибудь объяснить мне с помощью простых программ и проиллюстрировать идеальную ситуацию, когда использовать какую? Я посетил этот сайт,...

104
Почему невозможно создать компилятор, который может определить, изменит ли функция C ++ значение определенной переменной?

Я прочитал эту строчку в книге: Доказано, что невозможно создать компилятор, который действительно может определить, изменит ли функция C ++ значение определенной переменной. В абзаце говорилось о том, почему компилятор консервативен при проверке константности. Почему невозможно построить такой...

104
Почему argc не является константой?

int main( const int argc , const char[] const argv) Поскольку в пункте № 3 эффективного C ++ сказано: «По возможности используйте const», я начинаю думать: «Почему бы не сделать эти« постоянные »параметры const?». Есть ли какой-нибудь сценарий, при котором значение argcизменяется в...

104
Что такое модуль рендеринга SDL?

Я начинаю с SDL2 и не могу понять, что такое SDL_Renderer. Что это? Что оно делает? В чем разница между SDL_Renderer, SDL_Window, SDL_Surface и SDL_Texture и как они связаны? У меня были проблемы с этим, когда я пытался понять этот вводный код: #include <iostream> #include <SDL2/SDL.h>...

104
boost :: flat_map и его производительность по сравнению с map и unordered_map

В программировании общеизвестно, что расположение памяти значительно улучшает производительность из-за попаданий в кеш. Недавно я узнал, boost::flat_mapкакая реализация карты является векторной. Кажется, он не так популярен, как ваш типичный map/ unordered_mapпоэтому мне не удалось найти никаких...

104
Каков механизм оптимизации коротких строк в libc ++?

Этот ответ дает хороший общий обзор оптимизации коротких строк (SSO). Однако хотелось бы подробнее узнать, как это работает на практике, в частности в реализации libc ++: Насколько короткой должна быть строка, чтобы иметь право на SSO? Это зависит от целевой архитектуры? Как реализация различает...

104
Определение того, кратно ли число десяти или находится в пределах определенного набора диапазонов

У меня есть несколько циклов, которые мне нужны в моей программе. Я могу написать псевдокод, но я не совсем уверен, как писать их логически. Я нуждаюсь - 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 } else { do this } //this part is for...

104
Законно ли индексировать структуру?

Независимо от того, насколько «плохой» код и если предположить, что выравнивание и т. Д. Не является проблемой для компилятора / платформы, является ли это неопределенным или неправильным поведением? Если у меня есть такая структура: - struct data { int a, b, c; }; struct data thing; Является ли...

104
Что такое сопрограммы в C ++ 20?

Что такое сопрограммы в c ++ 20? Чем он отличается от «Parallelism2» и / или «Concurrency2» (посмотрите на изображение ниже)? Изображение ниже взято из ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png...

104
Были ли когда-нибудь изменения в тихом поведении C ++ с новыми стандартными версиями?

(Я ищу пару примеров, чтобы доказать свою точку зрения, а не список.) Было ли когда-нибудь изменение стандарта C ++ (например, с 98 на 11, с 11 на 14 и т. Д.) Изменяло поведение существующего, правильно сформированного пользовательского кода с определенным поведением - незаметно? т.е. без...

103
Использование библиотеки C ++ в коде C

У меня есть библиотека C ++, которая предоставляет различные классы для управления данными. У меня есть исходный код библиотеки. Я хочу расширить API C ++ для поддержки вызовов функций C, чтобы библиотеку можно было использовать с кодом C и кодом C ++ одновременно. Я использую цепочку инструментов...

103
Для чего нужен __gxx_personality_v0?

Это вопрос из вторых рук с сайта разработки ОС, но он вызвал у меня любопытство, так как я нигде не мог найти достойного объяснения. При компиляции и компоновке автономной программы на C ++ с использованием gcc иногда возникает такая ошибка компоновщика: out/kernel.o:(.eh_frame+0x11): undefined...

103
Почему символьные литералы C представляют собой целые числа вместо символов?

В C ++ sizeof('a') == sizeof(char) == 1. Это имеет интуитивный смысл, поскольку 'a'является символьным литералом и sizeof(char) == 1определено стандартом. В C однако sizeof('a') == sizeof(int). То есть, похоже, что символьные литералы C на самом деле являются целыми числами. Кто-нибудь знает...

103
Гарантированное время жизни временного в C ++?

Предоставляет ли C ++ гарантию на время жизни временной переменной, которая создается при вызове функции, но не используется в качестве параметра? Вот пример класса: class StringBuffer { public: StringBuffer(std::string & str) : m_str(str) { m_buffer.push_back(0); } ~StringBuffer() { m_str =...

103
Почему бы не вывести параметр шаблона из конструктора?

мой вопрос сегодня довольно прост: почему компилятор не может вывести параметры шаблона из конструкторов классов, так же как он может сделать из параметров функции? Например, почему следующий код не может быть действительным: template<typename obj> class Variable { obj data; public:...

103
Преобразование shared_ptr <Base> в shared_ptr <Derived>?

Обновление: shared_ptr в этом примере аналогичен таковому в Boost, но он не поддерживает shared_polymorphic_downcast (или dynamic_pointer_cast или static_pointer_cast в этом отношении)! Я пытаюсь инициализировать общий указатель на производный класс без потери счетчика ссылок: struct Base { };...

103
C ++ 0x лямбда-захват по значению всегда const?

Есть ли способ захватить по значению и сделать захваченное значение неконстантным? У меня есть функтор библиотеки, который я хотел бы захватить и вызвать метод, который не является константой, но должен быть. Следующее не компилируется, но создание foo :: operator () const исправляет его. struct...

103
Где shared_ptr?

Я так расстроен прямо сейчас, после нескольких часов попыток найти, где находится shared_ptr. Ни в одном из примеров, которые я вижу, не показан полный код, включающий заголовки shared_ptr(и работающий). Просто констатировать std, tr1а <memory>совсем не помогает! Я скачал бусты и все такое,...

103
В C ++ все еще является плохой практикой возвращать вектор из функции?

Краткая версия: во многих языках программирования обычно возвращаются большие объекты, такие как векторы / массивы. Допустим ли этот стиль в C ++ 0x, если в классе есть конструктор перемещения, или программисты на C ++ считают его странным / уродливым / мерзким? Расширенная версия: в C ++ 0x это...

103
C ++ Лучший способ получить целочисленное деление и остаток

Мне просто интересно, если я хочу разделить a на b и меня интересует как результат c, так и остаток (например, скажем, у меня есть количество секунд и я хочу разделить его на минуты и секунды), каков наилучший способ пойти об этом? Будет ли это int c = (int)a / b; int d = a % b; или int c = (int)a...