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

99
Почему C ++ требует, чтобы конструктор по умолчанию, предоставляемый пользователем, по умолчанию создавал константный объект?

Стандарт C ++ (раздел 8.5) гласит: Если программа вызывает инициализацию по умолчанию объекта типа T с определением const, T должен быть типом класса с конструктором по умолчанию, предоставляемым пользователем. Зачем? Я не могу придумать ни одной причины, по которой в этом случае требуется...

99
Ошибка компиляции: «g ++: ошибка при попытке выполнить exec '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=""; while...

99
Как реализован std :: function?

Согласно источникам, которые я нашел, лямбда-выражение по существу реализуется компилятором, создающим класс с перегруженным оператором вызова функции и ссылочными переменными в качестве членов. Это говорит о том, что размер лямбда-выражений варьируется, и при наличии достаточного количества...

99
Зачем нужны лямбда-выражения шаблона, представленные в C ++ 20, если в C ++ 14 уже есть общая лямбда-выражение?

c ++ 14 представили общие лямбды, которые позволили написать следующее: auto func = [](auto a, auto b){ return a + b; }; auto Foo = func(2, 5); auto Bar = func("hello", "world"); Совершенно очевидно, что эта общая лямбда funcработает так же, как и шаблонная функция func. Почему комитет C ++ решил...

98
Программа вылетает только при сборке релиза - как отлаживать?

У меня здесь проблема типа «Кот Шредингера» - моя программа (на самом деле набор тестов для моей программы, но, тем не менее, программа) дает сбой, но только при сборке в режиме выпуска и только при запуске из командной строки . Посредством отладки пещерного человека (т.е. повсюду неприятных...

98
Не удается найти Dumpbin.exe

Я не вижу dumpbin.exe в моей системе. В моей системе установлена ​​Visual Studio 2005. Когда я набираю dumpbin в командной строке, появляется неузнаваемая команда. Поставляется ли он с Visual Studio по умолчанию, или мне нужно явно добавить этот инструмент?...

98
std :: back_inserter для std :: set?

Думаю, это простой вопрос. Мне нужно сделать что-то вроде этого: std::set<int> s1, s2; s1 = getAnExcitingSet(); std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor()); Конечно, std::back_inserterне работает, раз нет push_back. std::inserterтоже нужен итератор? Я...

98
std :: string для float или double

Я пытаюсь преобразовать std::stringв float/double. Я попытался: std::string num = "0.6"; double temp = (double)atof(num.c_str()); Но всегда возвращает ноль. Любые другие способы?

98
Что такое дескриптор в C ++?

Мне сказали, что дескриптор является своего рода указателем, но не указателем, и что он позволяет вам сохранять ссылку на объект, а не на сам объект. Какое более подробное объяснение?...

98
Как выполнить печать в окне вывода отладки в приложении Win32?

У меня есть проект win32, который я загрузил в Visual Studio 2005. Я хотел бы иметь возможность печатать что-либо в окне вывода Visual Studio, но я не могу понять, как это сделать. Я пытался «Printf» и «<<» COUT но мои сообщения остаются упорно без надписей. Есть ли какой-то особый способ...

98
Должен ли я унаследовать от std :: exception?

Я видел по крайней мере один надежный источник (класс C ++, который я взял) рекомендовал, чтобы классы исключений для конкретного приложения в C ++ наследовали от std::exception . Я не совсем понимаю преимущества этого подхода. В C # причины наследования от ApplicationExceptionочевидны: вы...

98
(Как) я могу подсчитать элементы в перечислении?

Этот вопрос пришел мне в голову, когда у меня было что-то вроде enum Folders {FA, FB, FC}; и хотел создать массив контейнеров для каждой папки: ContainerClass*m_containers[3]; .... m_containers[FA] = ...; // etc. (Использование карты это гораздо элегантнее использования: std::map<Folders,...

98
Реализация операторов сравнения через «кортеж» и «галстук» - хорошая идея?

(Примечание: tupleи tieможет быть взято из Boost или C ++ 11.) При написании небольших структур только с двумя элементами я иногда склоняюсь к выбору a std::pair, поскольку все важные вещи уже сделаны для этого типа данных, например, operator<для строгого-слабого упорядочения . Минусами...

98
Как мне скомпилировать C ++ с Clang?

Я установил Clang с помощью apt-get в Ubuntu, и я могу успешно компилировать файлы C, используя его. Однако я понятия не имею, как через него скомпилировать C ++. Что мне нужно сделать для компиляции C ++?...