Запитання з тегом «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 

7
Коли статичні змінні на рівні функції розподіляються / ініціалізуються?
Я цілком впевнений, що глобально оголошені змінні розподіляються (і ініціалізуються, якщо це можливо) під час запуску програми. int globalgarbage; unsigned int anumber = 42; Але як щодо статичних, визначених у функції? void doSomething() { static bool globalish = true; // ... } Коли globalishвиділяється місце? Я здогадуюсь, коли програма почнеться. …
89 c++  variables 


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 Copyright …
89 c++  linux  ubuntu  gcc  g++ 

3
Зняття статичного ключового слова ... не більше?
У 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 void* …
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); private: int …

5
Видалення покажчика на const (T const *)
У мене є основне питання стосовно покажчиків const. Мені не дозволено викликати будь-які функції, що не є учасниками const, за допомогою вказівника const. Однак мені дозволено це робити на покажчику const: delete p; Це викличе деструктор класу, який по суті є неконстентним 'методом'. Чому це дозволено? Чи просто для підтримки …

6
Чому оператор [] не є const для карт STL?
Надуманий приклад для питання: void MyClass::MyFunction( int x ) const { std::cout << m_map[x] << std::endl } Це не компілюється, оскільки оператор [] не є const. Це прикро, оскільки синтаксис [] виглядає дуже чисто. Натомість я маю зробити щось подібне: void MyClass::MyFunction( int x ) const { MyMap iter = …
89 c++  const 

3
Що таке const void?
В описі std::is_voidзазначено, що: Забезпечує значення константи члена, яке дорівнює істині, якщо T - тип void, const void, volatile void або const volatile void. Тоді що може бути const void, або a volatile void? У цій відповіді зазначено, що const voidтип повернення буде недійсним (однак компілюється у VC ++ 2015) …
89 c++  c++11  c++14 

3
shared_ptr magic :)
Ми з паном Лідстремом посварились :) Твердження пана Лідстрема полягає в тому, що конструкція shared_ptr<Base> p(new Derived);не вимагає від Base наявності віртуального деструктора: Армен Цирунян : "Дійсно? Чи правильно буде очищати 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 …


8
Як прочитати значення з реєстру Windows
Враховуючи ключ для деякого значення реєстру (наприклад, HKEY_LOCAL_MACHINE \ blah \ blah \ blah \ foo), як я можу: Безпечно визначте, що такий ключ існує. Програмно (тобто за допомогою коду) отримують його значення. Я абсолютно не маю наміру писати що-небудь назад до реєстру (на час своєї кар'єри, якщо можу допомогти). …
89 c++  windows  winapi  registry 

7
Покажчик функції на функцію-член
Я хотів би встановити вказівник на функцію як член класу, який є вказівником на іншу функцію в тому ж класі. Причини, чому я це роблю, складні. У цьому прикладі я хотів би, щоб результат був "1" class A { public: int f(); int (*x)(); } int A::f() { return 1; …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.