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

88
Опыт использования библиотеки логирования Boost.Log? [закрыто]

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

88
Как работает библиотека импорта? Детали?

Я знаю, что фанатам это может показаться довольно простым. Но я хочу прояснить это. Когда я хочу использовать Win32 DLL, обычно я просто вызываю API, такие как LoadLibrary () и GetProcAdderss (). Но в последнее время я работаю с DirectX9, и мне нужно добавить файлы d3d9.lib , d3dx9.lib и т. Д. Я...

88
Почему я могу получить доступ к закрытым переменным в конструкторе копирования?

Я узнал, что никогда не могу получить доступ к частной переменной, только с помощью функции get в классе. Но тогда почему я могу получить к нему доступ в конструкторе копирования? Пример: Field::Field(const Field& f) { pFirst = new T[f.capacity()]; pLast = pFirst + (f.pLast - f.pFirst); pEnd =...

88
Функция, возвращающая лямбда-выражение

Интересно, можно ли написать функцию, возвращающую лямбда-функцию на C ++ 11. Конечно, одна проблема - как объявить такую ​​функцию. У каждой лямбды есть тип, но этот тип нельзя выразить в C ++. Я не думаю, что это сработает: auto retFun() -> decltype ([](int x) -> int) { return [](int x) {...

88
явная специализация функции-члена класса шаблона

Мне нужно специализировать функцию-член шаблона для некоторого типа (скажем, двойного ). Он отлично работает, пока Xсам класс не является классом-шаблоном, но когда я его делаю, GCC начинает выдавать ошибки времени компиляции. #include <iostream> #include <cmath> template <class...

88
Как получить целочисленный идентификатор потока в c ++ 11

c ++ 11 имеет возможность получить текущий идентификатор потока, но он не может быть приведен к целочисленному типу: cout<<std::this_thread::get_id()<<endl; вывод: 139918771783456 cout<<(uint64_t)std::this_thread::get_id()<<endl; ошибка: недопустимое приведение из типа 'std...

88
Почему я не могу создать вектор лямбда-выражений (одного типа) в C ++ 11?

Я пытался создать вектор лямбда, но не смог: auto ignore = [&]() { return 10; }; //1 std::vector<decltype(ignore)> v; //2 v.push_back([&]() { return 100; }); //3 До строки №2 компилируется нормально . Но строка №3 дает ошибку компиляции : ошибка: нет соответствующей функции для...

88
Создание пространства имен C ++ в заголовке и источнике (cpp)

Есть ли разница между переносом содержимого файла заголовка и cpp в пространство имен или обертыванием только содержимого заголовка и последующим использованием пространства имен в файле cpp? Под разницей я подразумеваю любое снижение производительности сортировки или немного другую семантику,...

88
Динамически загружать функцию из DLL

Я немного посмотрел на файлы .dll, я понимаю их использование и пытаюсь понять, как их использовать. Я создал файл .dll, содержащий функцию, которая возвращает целое число с именем funci (). используя этот код, я (думаю) импортировал в проект файл .dll (претензий нет): #include <windows.h>...

88
Как сравнить указатели?

Предположим, у меня есть 2 указателя: int *a = something; int *b = something; Если я хочу сравнить их и посмотреть, указывают ли они на одно и то же место, работает ли (a == b)?

88
преобразование из производного * в базовое * существует, но недоступно

Почему следующий код вызывает эту ошибку, хотя c является структурой и по умолчанию имеет публичное наследование? struct c { protected: int i; public: c(int ii=0):i(ii){} virtual c *fun(); }; c* c::fun(){ cout<<"in c"; return &c(); } class d : c { public: d(){} d* fun() { i = 9;...

88
C ++: Пространства имен - как правильно использовать в заголовочных и исходных файлах?

Рассмотрим пару из двух исходных файлов: файл объявления интерфейса ( *.hили *.hpp) и файл его реализации ( *.cpp). Пусть *.hфайл будет таким: namespace MyNamespace { class MyClass { public: int foo(); }; } Я видел две разные практики использования пространств имен в исходных файлах: *.cpp...

88
фатальная ошибка LNK1104: невозможно открыть файл libboost_system-vc110-mt-gd-1_51.lib

Кажется, я не могу заставить это работать. Я сделал простое консольное приложение (которое зависит от websocket++библиотеки), которому нужны Boostбиблиотеки ... но когда я пытаюсь скомпилировать, я получаю: фатальная ошибка LNK1104: невозможно открыть файл libboost_system-vc110-mt-gd-1_51.lib...

88
Есть ли неатомарный эквивалент std :: shared_ptr? А почему его нет в <памяти>?

Это вопрос из двух частей, касающихся атомарности std::shared_ptr: 1. Насколько я могу судить, std::shared_ptrэто единственный умный указатель в <memory>этом атомарном. Мне интересно, есть ли std::shared_ptrдоступная неатомарная версия (я ничего не вижу <memory>, поэтому я также открыт...

88
Запутался, когда метод запуска boost :: asio :: io_service блокирует / разблокирует

Поскольку я новичок в Boost.Asio, я смущен io_service::run(). Я был бы признателен, если бы кто-нибудь мог объяснить мне, когда этот метод блокирует / разблокирует. В документации говорится: Эти run()функциональные блоки , пока вся работа не будет закончена , и больше нет обработчиков быть...

88
объявление priority_queue в c ++ с помощью настраиваемого компаратора

Я пытаюсь объявить a priority_queue of nodes, используя bool Compare(Node a, Node b)функцию компаратора (которая находится за пределами класса узла). В настоящее время у меня есть: priority_queue<Node, vector<Node>, Compare> openSet; По какой-то причине я получаю Error: "Compare" is...

88
Как void * a = & a законно?

Рассмотрим следующий код C ++: void* a = &a; Почему компилятор не жалуется на использование необъявленного идентификатора? Кроме того, что компилятор считает переменной a? Это указатель на объект void или указатель на void*указатель?...

88
Можно ли считать ветки с неопределенным поведением недоступными и оптимизировать их как мертвый код?

Рассмотрим следующее утверждение: *((char*)NULL) = 0; //undefined behavior Он явно вызывает неопределенное поведение. Означает ли существование такого оператора в данной программе, что вся программа не определена или что поведение становится неопределенным только после того, как поток управления...