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

89
Каков самый простой способ разобрать файл INI на C ++?

Я пытаюсь разобрать INI-файл с помощью C ++. Какие-нибудь советы о том, как лучше всего этого добиться? Следует ли мне использовать инструменты Windows API для обработки файлов INI (с которыми я совершенно не знаком), решение с открытым исходным кодом или пытаться разобрать его вручную?...

89
Как прочитать значение из реестра Windows

Учитывая ключ для некоторого значения реестра (например, HKEY_LOCAL_MACHINE \ blah \ blah \ blah \ foo), как я могу: Безопасно определите, что такой ключ существует. Программно (т.е. с помощью кода) получить его значение. У меня нет абсолютно никакого намерения записывать что-либо обратно в реестр...

89
Как объявить массив строк в C ++?

Я пытаюсь перебрать все элементы статического массива строк наилучшим образом. Я хочу иметь возможность объявлять его в одной строке и легко добавлять / удалять из него элементы без необходимости отслеживать номер. Звучит очень просто, не правда ли? Возможные нерешения: vector<string> v;...

89
Что такое COM (компонентная объектная модель) в двух словах? [закрыто]

Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 7 лет назад . Уточните этот вопрос Кажется, что COM-объекты - это объекты...

89
Удаление указателя на const (T const *)

У меня основной вопрос относительно константных указателей. Мне не разрешено вызывать какие-либо неконстантные функции-члены с использованием константного указателя. Однако мне разрешено делать это с указателем const: delete p; Это вызовет деструктор класса, который по сути является неконстантным...

89
Почему оператор [] не является константой для карт STL?

Надуманный пример, ради вопроса: void MyClass::MyFunction( int x ) const { std::cout << m_map[x] << std::endl } Это не будет компилироваться, поскольку оператор [] не является константой. Это прискорбно, поскольку синтаксис [] выглядит очень чистым. Вместо этого я должен сделать что-то...

89
Указатель функции на функцию-член

Я хотел бы настроить указатель на функцию как член класса, который является указателем на другую функцию в том же классе. Причины, по которым я это делаю, сложны. В этом примере я хотел бы, чтобы результат был «1» class A { public: int f(); int (*x)(); } int A::f() { return 1; } int main() { A a;...

89
C ++: распечатать значение перечисления как текст

Если у меня есть такое перечисление enum Errors {ErrorA=0, ErrorB, ErrorC}; Затем я хочу распечатать на консоли Errors anError = ErrorA; cout<<anError;/// 0 will be printed но я хочу текст «ErrorA», могу ли я сделать это без использования if / switch? И каково ваше решение для этого?...

89
shared_ptr магия :)

Мы с мистером Лидстремом поссорились :) Г-н Лидстрём утверждает, что конструкция shared_ptr<Base> p(new Derived);не требует наличия виртуального деструктора в Base: Армен Цирунян : «Правда? Будет ли shared_ptr правильно очищаться? Не могли бы вы в этом случае продемонстрировать, как этот...

89
Прекращение поддержки ключевого слова static… не более?

В C ++ можно использовать staticключевое слово в единице перевода, чтобы повлиять на видимость символа (объявление переменной или функции). В n3092 это устарело: Приложение D.2 [depr.static] Использование ключевого слова static не рекомендуется при объявлении объектов в области пространства имен...

89
Почему нет присваивания / конструктора перемещения по умолчанию?

Я простой программист. Переменные-члены моего класса чаще всего состоят из POD-типов и STL-контейнеров. Из-за этого мне редко приходится писать операторы присваивания или конструкторы копирования, поскольку они реализованы по умолчанию. Добавьте к этому, если я использую std::moveдля объектов,...

89
Теперь, когда у нас есть std :: array, что еще остается для массивов в стиле C?

std::arrayзначительно превосходит массивы C. И даже если я хочу взаимодействовать с устаревшим кодом, я могу просто использовать std::array::data(). Есть ли причина, по которой мне когда-либо понадобится массив старой школы?...

89
Является ли это известной ловушкой C ++ 11 для циклов?

Представим, что у нас есть структура для хранения 3 двойников с некоторыми функциями-членами: struct Vector { double x, y, z; // ... Vector &negate() { x = -x; y = -y; z = -z; return *this; } Vector &normalize() { double s = 1./sqrt(x*x+y*y+z*z); x *= s; y *= s; z *= s; return *this; } //...