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

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

3
Отменить флаги компиляции для отдельных файлов
Я хотел бы использовать глобальный набор флагов для компиляции проекта, что означает, что в моем файле CMakeLists.txt верхнего уровня я указал: ADD_DEFINITIONS ( -Wall -Weffc++ -pedantic -std=c++0x ) Однако для конкретного файла (скажем, «foo.cpp») в подкаталоге я хочу отключить флаги компиляции, чтобы не применять -Weffc ++ (включенная коммерческая библиотека, которую …

12
const char * const против const char *?
Я просматриваю несколько примеров программ, чтобы заново познакомиться с C ++, и столкнулся со следующим вопросом. Во-первых, вот пример кода: void print_string(const char * the_string) { cout << the_string << endl; } int main () { print_string("What's up?"); } В приведенном выше коде вместо параметра print_string мог быть const char …
110 c++  c 


4
Константа C / с ++ NaN (буквальная)?
Возможно ли это , чтобы назначить NaNк doubleили floatв C / C ++? Как и в JavaScript вы: a = NaN. Так что позже вы можете проверить, является ли переменная числом или нет.
110 c++  nan 

4
Что такое uint_fast32_t и почему его следует использовать вместо обычных int и uint32_t?
Таким образом, причина для typedefпримитивных типов данных: ed заключается в том, чтобы абстрагироваться от низкоуровневого представления и облегчить понимание ( uint64_tвместо long longтипа, который составляет 8 байтов). Однако uint_fast32_tесть такой же, typedefкак uint32_t. Сделает ли использование «быстрой» версии программу быстрее?
110 c++  c  types 

9
Почему деление двух int не дает правильного значения при присвоении double?
Как получилось, что в следующем фрагменте int a = 7; int b = 3; double c = 0; c = a / b; cв конечном итоге получает значение 2, а не 2.3333, как можно было бы ожидать. Если aи bявляются двойными, то ответ действительно равен 2,333. Но наверняка, потому что …

5
Использование настраиваемого компаратора std :: set
На этот вопрос есть ответы на Stack Overflow на русском : Компаратор для набора Я пытаюсь изменить порядок элементов по умолчанию в наборе целых чисел, чтобы он был лексикографическим, а не числовым, и я не могу получить следующее для компиляции с g ++: file.cpp: bool lex_compare(const int64_t &a, const int64_t …
110 c++  stl 

8
Инструкции для ОС в CMAKE: Как это сделать?
Я новичок в CMAKE. Ниже приведен простой файл cmake, который хорошо работает в окнах среды mingw. Проблема явно target_link_libraries()связана с функцией CMAKE, где я связываю libwsock32.a. В Windows это работает, и я получаю результаты. Однако, как и ожидалось, в Linux /usr/bin/ldбудет искать то, -lwsock32чего НЕТ в ОС Linux. Моя проблема: …
110 c++  linux  cmake  mingw  portability 

8
Qt: не удается найти ошибку -lGL
Я только что переустановил QtCreator, создал новый проект ( приложение Qt ) и получил это после компиляции: /usr/bin/ld: **cannot find -lGL** collect2: error: ld returned 1 exit status make: *** [untitled1] Error 1 18:07:41: The process "/usr/bin/make" exited with code 2. Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 …

18
Будет ли strlen вычисляться несколько раз при использовании в условии цикла?
Я не уверен, может ли следующий код вызывать избыточные вычисления или это зависит от компилятора? for (int i = 0; i < strlen(ss); ++i) { // blabla } Будет strlen()ли рассчитываться каждый раз при iувеличении?
109 c++  c  gcc  optimization  strlen 

7
Как работают исключения (за кулисами) в c ++
Я все время вижу, как люди говорят, что исключения - это медленно, но я никогда не вижу никаких доказательств. Поэтому вместо того, чтобы спрашивать, есть ли они, я спрошу, как исключения работают за кулисами, чтобы я мог принимать решения о том, когда их использовать и медленные ли они. Насколько я …

4
Какое самое быстрое целочисленное деление поддерживает деление на ноль независимо от результата?
Резюме: Я ищу самый быстрый способ расчета (int) x / (int) y без исключения y==0. Вместо этого я просто хочу произвольный результат. Задний план: При кодировании алгоритмов обработки изображений мне часто приходится делить на (накопленное) альфа-значение. Самый простой вариант - это простой код на C с целочисленной арифметикой. Моя проблема …


17
Как я могу создать дерево каталогов в C ++ / Linux?
Мне нужен простой способ создания нескольких каталогов в C ++ / Linux. Например, я хочу сохранить файл lola.file в каталоге: /tmp/a/b/c но если каталогов нет, я хочу, чтобы они создавались автоматически. Рабочий пример был бы идеальным.
109 c++  linux  directory 

6
Как связать программу C ++ с Boost с помощью CMake
Как должен выглядеть мой файл CMake для связывания моей программы с библиотекой Boost в Ubuntu? Ошибки, отображаемые во время работы make: main.cpp:(.text+0x3b): undefined reference to `boost::program_options::options_description::m_default_line_length' Главный файл действительно прост: #include <boost/program_options/options_description.hpp> #include <boost/program_options/option.hpp> using namespace std; #include <iostream> namespace po = boost::program_options; int main(int argc, char** argv) { po::options_description …
109 c++  boost  cmake 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.