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

131
Когда использовать volatile с многопоточностью?

Если есть два потока, обращающихся к глобальной переменной, то во многих руководствах говорится, что переменная должна быть изменчивой, чтобы компилятор не кэшировал переменную в регистре и, таким образом, не обновлялся правильно. Однако два потока, оба обращающиеся к общей переменной, - это то,...

131
Является ли main () действительно началом программы на C ++?

Раздел $ 3.6.1 / 1 стандарта C ++ гласит: Программа должна содержать глобальную функцию с именем main , которая является назначенным запуском программы. Теперь рассмотрим этот код, int square(int i) { return i*i; } int user_main() { for ( int i = 0 ; i < 10 ; ++i ) std::cout << square(i)...

131
Какие каталоги GCC включают по умолчанию?

Когда я компилирую очень простой исходный файл с помощью gcc, мне не нужно указывать путь к стандартным включаемым файлам, таким как stdio или stdlib. Откуда GCC знает, как найти эти файлы? Есть ли /usr/includeвнутри него путь, или он получит пути от других компонентов...

131
преобразование bool в int

Насколько портативно это преобразование. Могу ли я быть уверен, что оба утверждения верны? int x = 4<5; assert(x==1); x = 4>5; assert(x==0); Не спрашивайте почему. Я знаю, что это некрасиво....

131
ошибка LNK2038: обнаружено несоответствие для '_ITERATOR_DEBUG_LEVEL': значение '0' не соответствует значению '2' в main.obj

Я прочитал много решений моей проблемы, но ни одно из них не помогло. Я пробовал почистить, пересобрать. Переустановил Visual 2010 и сменил профессиональный на окончательный. Но все же я не знаю, почему у меня эта ошибка. Мой проект выглядит так: 1 Exe Решение для тестирования моей статической...

131
Почему использование «нового» вызывает утечку памяти?

Сначала я выучил C #, а теперь начинаю с C ++. Насколько я понимаю, оператор newв C ++ не похож на оператор в C #. Можете ли вы объяснить причину утечки памяти в этом примере кода? class A { ... }; struct B { ... }; A *object1 = new A(); B object2 = *(new...

131
Как установить начальный размер std :: vector?

У меня есть, vector<CustomClass*>и я помещаю много элементов в вектор, и мне нужен быстрый доступ, поэтому я не использую список. Как установить начальный размер вектора (например, 20 000 разрядов, чтобы не копировать при вставке...

131
Что означает thread_local в C ++ 11?

Меня смущает описание thread_localв C ++ 11. Насколько я понимаю, каждый поток имеет уникальную копию локальных переменных в функции. К глобальным / статическим переменным могут получить доступ все потоки (возможно, синхронный доступ с использованием блокировок). И thread_localпеременные видны всем...

131
Пул потоков в C ++ 11

Актуальные вопросы : О C ++ 11: С ++ 11: пул std :: thread? Будет ли async (launch :: async) в C ++ 11 делать пулы потоков устаревшими, чтобы избежать создания дорогостоящих потоков? О Boost: C ++ boost thread повторное использование потоков boost :: thread и создание их пула! Как получить пул...

131
Почему компиляторы C и C ++ допускают длину массивов в сигнатурах функций, когда они никогда не применяются?

Вот что я обнаружил в период обучения: #include<iostream> using namespace std; int dis(char a[1]) { int length = strlen(a); char c = a[2]; return length; } int main() { char b[4] = "abc"; int c = dis(b); cout << c; return 0; } Таким образом , в переменной int dis(char a[1]), то ,...

131
В режиме выпуска поведение кода не такое, как ожидалось

Следующий код генерирует разные результаты в режиме отладки и в режиме выпуска (с использованием Visual Studio 2008): int _tmain(int argc, _TCHAR* argv[]) { for( int i = 0; i < 17; i++ ) { int result = i * 16; if( result > 255 ) { result = 255; } printf("i:%2d, result = %3d\n", i, result) ; }...

130
Общие рекомендации по предотвращению утечек памяти в C ++ [закрыто]

В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно...

130
Передача ссылок на указатели в C ++

Насколько я могу судить, нет никаких причин, по которым мне нельзя разрешать передавать ссылку на указатель в C ++. Однако мои попытки сделать это терпят неудачу, и я не знаю почему. Вот что я делаю: void myfunc(string*& val) { // Do stuff to the string pointer } // sometime later { // ......

130
Как установить путь к файлу DLL в Visual Studio?

Я разработал приложение, которое зависит от файла DLL. Когда я отлаживаю свое приложение, оно жаловалось, что: «Это приложение не удалось запустить, потому что xxx.dll не найден». Поэтому мне нужно скопировать файл DLL в тот же каталог, что и мой файл .vcproj. Есть ли способ настроить проект на...

130
Добавить пользовательские сообщения в assert?

Есть ли способ добавить или отредактировать сообщение, созданное assert? Я бы хотел использовать что-то вроде assert(a == b, "A must be equal to B"); Затем компилятор добавляет строку , время и так далее ... Является ли это...