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

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

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

4
Компиляция многопоточного кода с помощью g ++
У меня самый простой код: #include <iostream> #include <thread> void worker() { std::cout << "another thread"; } int main() { std::thread t(worker); std::cout << "main thread" << std::endl; t.join(); return 0; } хотя я все еще не могу скомпилировать его g++для запуска. Подробнее: $ g++ --version g++ (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1 …
89 c++  linux  ubuntu  gcc  g++ 

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

4
Является ли определение «изменчивого» таким изменчивым, или у GCC есть некоторые стандартные проблемы совместимости?
Мне нужна функция, которая (например, SecureZeroMemory из WinAPI) всегда обнуляет память и не оптимизируется, даже если компилятор считает, что после этого к памяти больше не будет доступа. Похоже, идеальный кандидат на волатильность. Но у меня возникли проблемы с тем, чтобы заставить это работать с GCC. Вот пример функции: void volatileZeroMemory(volatile …
89 c++  c  gcc  standards 

6
Обратный вызов C ++ с использованием члена класса
Я знаю, что об этом так много раз спрашивали, и из-за этого трудно покопаться в развалинах и найти простой пример того, что работает. У меня есть такая, она простая и работает на MyClass... #include <iostream> using std::cout; using std::endl; class MyClass { public: MyClass(); static void Callback(MyClass* instance, int x); …

5
Удаление указателя на const (T const *)
У меня основной вопрос относительно константных указателей. Мне не разрешено вызывать какие-либо неконстантные функции-члены с использованием константного указателя. Однако мне разрешено делать это с указателем const: delete p; Это вызовет деструктор класса, который по сути является неконстантным «методом». Почему это разрешено? Просто чтобы поддержать это: delete this; Или есть какая-то …

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

3
Что такое const void?
В описании std::is_voidговорится, что: Предоставляет значение константы члена, равное true, если T является типом void, const void, volatile void или const volatile void. Тогда что могло быть const void, или volatile void? В этом ответе указано, что const voidтип возвращаемого значения будет недопустимым (однако компилируется на VC ++ 2015). const …
89 c++  c++11  c++14 

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

4
Как хранить аргументы вариативного шаблона?
Можно ли как-нибудь сохранить пакет параметров для последующего использования? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible } } Потом позже: void …




1
Как работает гарантированное копирование?
На собрании стандартов ISO C ++ в Оулу в 2016 году комитет по стандартам проголосовал за предложение под названием « Гарантированное исключение копий с помощью упрощенных категорий значений» . Как именно работает гарантированное копирование? Охватывает ли он некоторые случаи, когда исключение копирования уже было разрешено, или необходимы ли изменения кода, …

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

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