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

595
Почему iostream :: eof внутри условия цикла (т.е. `while (! Stream.eof ())`) считается неправильным?

Я только что нашел комментарий в этом ответе о том, что использование iostream::eofв условии цикла «почти наверняка неправильно». Я обычно использую что-то вроде while(cin>>n)- что, я думаю, неявно проверяет EOF. Почему проверка на eof явно использует while (!cin.eof())неправильно? Чем он...

593
Как определить потребление ресурсов процессора и памяти внутри процесса?

Однажды у меня была задача определить следующие параметры производительности внутри работающего приложения: Общая доступная виртуальная память Виртуальная память в настоящее время используется Виртуальная память, используемая в настоящее время моим процессом Всего доступной оперативной памяти RAM в...

590
Как автоматически генерировать трассировку стека при сбое моей программы

Я работаю над Linux с компилятором GCC. Когда моя программа на C ++ падает, я бы хотел, чтобы она автоматически генерировала трассировку стека. Моя программа запускается многими разными пользователями, а также работает на Linux, Windows и Macintosh (все версии скомпилированы с использованием gcc)....

570
Что именно является nullptr?

Теперь у нас есть C ++ 11 со многими новыми функциями. Интересным и запутанным (по крайней мере для меня) является новое nullptr. Ну, не надо больше для мерзкого макроса NULL. int* x = nullptr; myclass* obj = nullptr; Тем не менее, я не понимаю, как nullptrработает. Например, статья в Википедии...

569
C ++: «std :: endl» против «\ n»

Многие книги C ++ содержат пример кода, подобного этому ... std::cout << "Test line" << std::endl; ... так что я всегда так делал. Но я видел много кода от таких разработчиков: std::cout << "Test line\n"; Есть ли техническая причина, чтобы отдавать предпочтение одному над другим,...

564
Когда мне следует написать ключевое слово «inline» для функции / метода?

На этот вопрос есть ответы на Stack Overflow на русском : Когда следует использовать встроенный для функции / метода? Когда я должен написать ключевое слово inlineдля функции / метода в C ++? Увидев некоторые ответы, некоторые связанные вопросы: Когда я должен не написать ключевое слово...

555
* .h или * .hpp для ваших определений классов

Я всегда использовал *.hфайл для своих определений классов, но, прочитав некоторый код расширенной библиотеки, я понял, что все они используют *.hpp. У меня всегда было отвращение к этому расширению файла, я думаю, главным образом потому, что я к этому не привык. Каковы преимущества и недостатки...

543
Правила аннулирования итераторов

Каковы правила аннулирования итераторов для контейнеров C ++? Желательно в формате сводного списка. (Примечание. Предполагается, что это будет вход в FAQ по C ++ в Stack Overflow . Если вы хотите критиковать идею предоставления FAQ в этой форме, то публикация в meta, с которой все это началось,...

540
Почему компиляция C ++ занимает так много времени?

Компиляция файла C ++ занимает очень много времени по сравнению с C # и Java. Компиляция файла C ++ занимает значительно больше времени, чем запуск скрипта Python нормального размера. В настоящее время я использую VC ++, но то же самое с любым компилятором. Почему это? Две причины, по которым я мог...

527
Имеет ли ключевое слово mutable какую-либо цель, кроме возможности изменения переменной с помощью функции const?

Некоторое время назад я наткнулся на некоторый код, который помечал переменную-член класса mutableключевым словом. Насколько я вижу, это просто позволяет вам изменить переменную в constметоде: class Foo { private: mutable bool done_; public: void doSomething() const { ...; done_ = true; } }; Это...

526
Хранение определений функций шаблона C ++ в файле .CPP

У меня есть некоторый шаблон кода, который я бы предпочел сохранить в файле CPP вместо встроенного в заголовке. Я знаю, что это можно сделать, если вы знаете, какие типы шаблонов будут использоваться. Например: .h файл class foo { public: template <typename T> void do(const T& t); }; файл...