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

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

Когда я делаю это: std::vector<int> hello; Все отлично работает. Однако, когда я делаю это вектор ссылок вместо этого: std::vector<int &> hello; Я получаю ужасные ошибки, такие как ошибка C2528: указатель: указатель на ссылку недопустим Я хочу поместить несколько ссылок на структуры...

351
Нужно ли явно вызывать базовый виртуальный деструктор?

При переопределении класса в C ++ (с помощью виртуального деструктора) я снова реализую деструктор как виртуальный в классе наследования, но нужно ли вызывать базовый деструктор? Если так, я представляю, что-то вроде этого ... MyChildClass::~MyChildClass() // virtual in header { // Call to base...

350
Как именно работает __attribute __ ((конструктор))?

Кажется, довольно ясно, что он должен все настроить. Когда именно он запускается? Почему есть две скобки? Это __attribute__функция? Макрос? Синтаксис? Это работает в C? C ++? Должна ли функция, с которой она работает, быть статичной? Когда __attribute__((destructor))бежит? Пример в Objective-C :...

350
В чем полезность `enable_shared_from_this`?

Я наткнулся enable_shared_from_thisпри чтении примеров Boost.Asio и после прочтения документации я все еще теряюсь в том, как это следует правильно использовать. Может ли кто-нибудь дать мне пример и объяснение того, когда использование этого класса имеет...

349
std :: unique_lock <std :: mutex> или std :: lock_guard <std :: mutex>?

На этот вопрос есть ответы на Переполнение стека на русском : Чем std :: unique_lock отличается от std :: lock_guard? У меня есть два варианта использования. О. Я хочу синхронизировать доступ двумя потоками к очереди. Б. Я хочу синхронизировать доступ двух потоков к очереди и использовать условную...

344
Какой анализатор XML я должен использовать в C ++? [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 2 года назад . Улучшить этот вопрос У меня есть XML-документы, которые мне...

341
Является ли практика возврата ссылочной переменной C ++ злой?

Это немного субъективно, я думаю; Я не уверен, что мнение будет единодушным (я видел много фрагментов кода, где возвращаются ссылки). В соответствии с комментарием к этому вопросу, который я только что спросил, относительно инициализации ссылок , возврат ссылки может быть злым, потому что,...

337
Когда следует использовать возможность constexpr в C ++ 11?

Мне кажется, что наличие «функции, которая всегда возвращает 5» нарушает или ослабляет значение «вызова функции». Должна быть причина, или необходимость в этой возможности, иначе ее не будет в C ++ 11. Почему это там? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife...

337
Почему C ++ не имеет отражения?

Это несколько странный вопрос. Мои цели - понять решение по проектированию языка и определить возможности отражения в C ++. Почему комитет по языку C ++ не пошел на реализацию рефлексии на языке? Является ли отражение слишком сложным в языке, который не работает на виртуальной машине (например,...

337
Определить, перекрывают ли два прямоугольника друг друга?

Я пытаюсь написать программу на C ++, которая использует следующие входные данные от пользователя для построения прямоугольников (между 2 и 5): высота, ширина, x-pos, y-pos. Все эти прямоугольники будут существовать параллельно осям x и y, то есть все их ребра будут иметь наклон 0 или...

336
Как использовать основанный на диапазоне цикл for () с std :: map?

Типичный пример циклов for (), основанных на диапазоне C ++ 11, всегда выглядит примерно так: std::vector<int> numbers = { 1, 2, 3, 4, 5, 6, 7 }; for ( auto xyz : numbers ) { std::cout << xyz << std::endl; } В каком случае xyzэто int. Но что происходит, когда у нас есть что-то...

335
int a [] = {1,2,}; Странная запятая разрешена. Любая конкретная причина?

Возможно, я не с этой планеты, но мне кажется, что синтаксическая ошибка должна быть следующей: int a[] = {1,2,}; //extra comma in the end Но это не так. Я был удивлен , когда этот код скомпилирован на Visual Studio, но я научился не доверять MSVC компилятор, насколько правила C ++ обеспокоены, так...

335
std :: string to char *

Я хочу преобразовать std :: string в тип данных char * или char [] . std::string str = "string"; char* chr = str; Результат: «ошибка: невозможно преобразовать« std :: string »в« char »...» . Какие методы доступны для...

334
Для чего нужны встроенные пространства имен?

C ++ 11 допускает inline namespaces, все члены которых также автоматически включаются в корпус namespace. Я не могу придумать какое-либо полезное применение этого - может ли кто-нибудь дать краткий, краткий пример ситуации, когда inline namespaceнужен и где это самое идиоматическое решение? (Кроме...

332
Как вывести двойное значение с полной точностью, используя cout?

Итак, я получил ответ на мой последний вопрос (я не знаю, почему я не подумал об этом). Я печатал doubleиспользование, coutкоторое округлилось, когда я не ожидал этого. Как я могу сделать coutпечать с doubleиспользованием полной...