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

120
Почему в заголовке указаны встроенные функции C ++?

NB. Это не вопрос о том, как использовать встроенные функции или как они работают, а скорее о том, почему они сделаны такими, какие есть. Объявление функции-члена класса не требует определения функции, поскольку inlineэто только фактическая реализация функции. Например, в заголовочном файле: struct...

120
Как преобразовать число в строку и наоборот в C ++

Поскольку этот вопрос задают каждую неделю, этот FAQ может помочь многим пользователям. Как преобразовать целое число в строку в C ++ как преобразовать строку в целое число в C ++ как преобразовать число с плавающей запятой в строку в C ++ как преобразовать строку в число с плавающей запятой в C ++...

120
дополнительная ошибка квалификации в C ++

У меня есть функция-член, которая определяется следующим образом: Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString); Когда я компилирую исходник, я получаю: ошибка: дополнительная квалификация 'JSONDeserializer ::' для члена 'ParseValue' Что это? Как мне удалить эту...

120
Каким идиоматическим способом в CMAKE добавить параметр компилятора -fPIC?

Я нашел как минимум 3 способа сделать это, и мне интересно, какой из них идиоматический. Это необходимо сделать почти повсеместно для любой статической библиотеки. Я удивлен, что генератор Makefile в CMake не добавляет это автоматически в статические библиотеки. (если я чего-то не упускаю?)...

120
Как работает std :: tie?

Я использовал, std::tieне особо задумываясь об этом. Это работает, поэтому я только что принял это: auto test() { int a, b; std::tie(a, b) = std::make_tuple(2, 3); // a is now 2, b is now 3 return a + b; // 5 } Но как работает эта черная магия ? Как временное, созданное std::tieизменением aи b? Мне...

119
Производительность C ++ по сравнению с Java / C #

Заблокировано . Этот вопрос и ответы на него заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. Насколько я понимаю, C / C ++ создает собственный код для работы на конкретной архитектуре компьютера. И...

119
Как легко сопоставить перечисления c ++ со строками

У меня есть несколько типов перечислений в некоторых файлах заголовков библиотек, которые я использую, и я хочу иметь способ преобразования значений перечисления в пользовательские строки - и наоборот. RTTI не сделает этого за меня, потому что «пользовательские строки» должны быть немного более...

119
Как скомпилировать для Windows в Linux с помощью gcc / g ++?

Я написал некоторые эффекты на C ++ (g ++), используя freeglut в Linux, и компилирую их с помощью g++ -Wall -lglut part8.cpp -o part8 Поэтому мне было интересно, можно ли сделать так, чтобы g ++ создавал статические скомпилированные исполняемые файлы Windows, содержащие все необходимое? У меня нет...

119
«Using namespace» в заголовках C ++

На всех наших курсах по C ++ все учителя всегда ставят using namespace std;сразу после #includes в своих .hфайлах. Мне это кажется опасным, поскольку с тех пор, включив этот заголовок в другую программу, я получу пространство имен, импортированное в мою программу, возможно, не осознавая, не...

119
Имеет ли смысл использовать встроенные ключевые слова в шаблонах?

Поскольку шаблоны определены в заголовках, и компилятор может определить, выгодно ли встраивание функции, имеет ли это смысл? Я слышал, что современные компиляторы лучше знают, когда встраивать функцию, и игнорируют inlineподсказки. изменить: я хотел бы принять оба ответа, но это невозможно. Чтобы...

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

В настоящее время я изучаю C ++ с помощью книги C ++ Primer, и одно из упражнений в книге: Объясните, что делает следующее выражение: someValue ? ++x, ++y : --x, --y Что мы знаем? Мы знаем, что тернарный оператор имеет более высокий приоритет, чем оператор запятой. С бинарными операторами это было...

118
Visual C ++: как отключить определенные предупреждения компоновщика?

Я использую библиотеку из CGAL, которая на этапе компоновки моего кода компиляции выдает множество предупреждений о компоновке в этой форме: warning LNK4099: PDB 'vc80.pdb' was not found with 'gmp-vc80-mt-sgd.lib' or at 'vc80.pdb'; linking object as if no debug info Как отключить это предупреждение...

118
remove_if эквивалент для std :: map

Я пытался стереть ряд элементов с карты в зависимости от определенных условий. Как это сделать с помощью алгоритмов STL? Сначала я думал об использовании, remove_ifно это невозможно, поскольку remove_if не работает для ассоциативного контейнера. Есть ли какой-либо эквивалентный алгоритм remove_if,...

118
Идиома Pimpl против интерфейса виртуального класса Pure

Мне было интересно, что заставит программиста выбрать либо идиому Pimpl, либо чистый виртуальный класс и наследование. Я понимаю, что идиома pimpl включает одну явную дополнительную косвенность для каждого общедоступного метода и накладные расходы на создание объекта. С другой стороны, виртуальный...