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

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

10
Правильное использование стека и кучи в C ++?
Я занимаюсь программированием некоторое время, но в основном это были Java и C #. На самом деле мне никогда не приходилось управлять памятью самостоятельно. Я недавно начал программировать на C ++, и я немного не понимаю, когда мне следует хранить вещи в стеке, а когда - в куче. Я понимаю, …

7
Использовать C ++ с какао вместо Objective-C?
Я хотел бы писать приложения, использующие C ++ и фреймворки Cocoa, потому что Apple не поддерживает 64-разрядную версию Carbon. С ++ кажется довольно ванильным в своей реализации в Linux и Windows, но в Mac OS X кажется, что требуются дополнительные части кода, специфичные для Apple (например, оболочка Obj-C). Также кажется, …

3
Использование этого указателя вызывает странную деоптимизацию в горячем цикле
Недавно я столкнулся со странной деоптимизацией (точнее, упущенной возможностью оптимизации). Рассмотрим эту функцию для эффективной распаковки массивов 3-битных целых чисел в 8-битные целые числа. На каждой итерации цикла он распаковывает 16 int: void unpack3bit(uint8_t* target, char* source, int size) { while(size > 0){ uint64_t t = *reinterpret_cast<uint64_t*>(source); target[0] = t …

5
Флаги для включения подробных и подробных предупреждений g ++
Часто, работая с C ниже gcc, я начинаю со следующего набора предупреждающих флагов (с трудом собранных из нескольких источников): -Wall -Wextra -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast \ -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef \ -Wnested-externs -Wcast-qual -Wshadow -Wwrite-strings -Wno-unused-parameter \ -Wfloat-equal -pedantic -ansi Я буду собирать (по крайней мере, мои отладочные версии) …
122 c++  g++  warnings 

8
Как выбросить std :: exceptions с переменными сообщениями?
Это пример того, что я часто делаю, когда хочу добавить некоторую информацию к исключению: std::stringstream errMsg; errMsg << "Could not load config file '" << configfile << "'"; throw std::exception(errMsg.str().c_str()); Есть способ сделать это лучше?

6
ошибка: использование удаленной функции
Я работал над некоторым кодом C ++, который написал мой друг, и при компиляции с gcc4.6 получаю следующую ошибку, которую никогда раньше не видел: error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be ill-formed: uninitialized non-static const member ‘const h_t FlopPokerGameFSM_<std::array<C, 2ul> …

18
Как рассчитать время выполнения фрагмента кода в C ++
Мне нужно вычислить время выполнения фрагмента кода C ++ в секундах. Он должен работать либо на машинах Windows, либо на Unix. Для этого я использую следующий код. (импорт раньше) clock_t startTime = clock(); // some code here // to compute its execution duration in runtime cout << double( clock() - …
121 c++  benchmarking 

4
Что делает разрешающий флаг?
Мне просто интересно, что -fpermissiveделает флаг в компиляторе g ++? Я получаю: ошибка: взятие адреса временного [-fpermissive] что я могу решить, передав -fpermissiveфлаг компилятору. РЕДАКТИРОВАТЬ : Я только что обнаружил, что вызывало временную ошибку адреса! Я собираюсь исправить эту часть прямо сейчас.

2
C ++ преобразовать из 1 символа в строку? [закрыто]
Этот вопрос вряд ли поможет будущим посетителям; это актуально только для небольшой географической области, определенного момента времени или чрезвычайно узкой ситуации, которая обычно не применима к всемирной аудитории Интернета. Чтобы сделать этот вопрос более применимым, посетите Справочный центр . Закрыт 7 лет назад . Мне нужно использовать только 1 charк …
121 c++  casting 

21
Почему нулевой адрес используется для нулевого указателя?
В C (или C ++, если на то пошло) указатели являются особенными, если они имеют нулевое значение: я советую устанавливать указатели на ноль после освобождения их памяти, потому что это означает, что освобождение указателя снова не опасно; когда я вызываю malloc, он возвращает указатель с нулевым значением, если не может …
121 c++  c  memory  pointers 


6
Объедините два строковых литерала
Я читаю Accelerated C ++ от Koenig. Он пишет, что «новая идея состоит в том, что мы можем использовать + для объединения строки и строкового литерала - или, если на то пошло, двух строк (но не двух строковых литералов). Хорошо, я полагаю, это имеет смысл. Теперь о двух отдельных упражнениях, …

4
Что означает template <unsigned int N>?
При объявлении шаблона я привык иметь такой код: template &lt;class T&gt; Но в этом вопросе они использовали: template &lt;unsigned int N&gt; Проверил, компилируется. Но что это значит? Это не типовой параметр? И если да, то как мы можем иметь шаблон без какого-либо параметра типа?
121 c++  templates 

5
Почему C ++ 11 не поддерживает списки назначенных инициализаторов как C99? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить фактами и цитатами, отредактировав этот пост . Закрыт 2 года назад . Уточните этот вопрос Рассматривать: struct Person { int height; int weight; …
121 c++  c  c++11  initialization  c99 

2
Перегрузка оператора: функция-член или функция-не-член?
Я читал, что перегруженный оператор, объявленный как функция-член, является асимметричным, потому что он может иметь только один параметр, а другой параметр, передаваемый автоматически, является thisуказателем. Так что не существует стандарта для их сравнения. С другой стороны, перегруженный оператор, объявленный как a, friendявляется симметричным, потому что мы передаем два аргумента одного …

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