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

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

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

4
Java в 8 раз быстрее работает с массивами, чем std :: vector в C ++. Что я сделал не так?
У меня есть следующий код Java с несколькими большими массивами, которые никогда не меняют своего размера. На моем компьютере он работает за 1100 мс. Я реализовал тот же код на C ++ и использовал std::vector. Время реализации C ++, которая запускает тот же самый код, составляет 8800 мс на моем …

3
Опыт использования библиотеки логирования Boost.Log? [закрыто]
В настоящее время этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, потребует дебатов, аргументов, опросов или расширенного обсуждения. Если вы считаете, что этот вопрос можно улучшить и, возможно, снова открыть, обратитесь за помощью …
88 c++  boost  logging  boost-log 

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

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

4
Значение int (*) (int *) = 5 (или любое целочисленное значение)
Я не могу понять этого: int main() { int (*) (int *) = 5; return 0; } Приведенное выше назначение компилируется с g ++ c ++ 11. Я знаю, что int (*) (int *)это указатель на функцию, которая принимает (int *)аргумент as и возвращает int, но я не понимаю, как …

6
Почему я не могу создать вектор лямбда-выражений (одного типа) в C ++ 11?
Я пытался создать вектор лямбда, но не смог: auto ignore = [&]() { return 10; }; //1 std::vector<decltype(ignore)> v; //2 v.push_back([&]() { return 100; }); //3 До строки №2 компилируется нормально . Но строка №3 дает ошибку компиляции : ошибка: нет соответствующей функции для вызова 'std :: vector <main () …
88 c++  vector  lambda  c++11 

10
фатальная ошибка LNK1104: невозможно открыть файл libboost_system-vc110-mt-gd-1_51.lib
Кажется, я не могу заставить это работать. Я сделал простое консольное приложение (которое зависит от websocket++библиотеки), которому нужны Boostбиблиотеки ... но когда я пытаюсь скомпилировать, я получаю: фатальная ошибка LNK1104: невозможно открыть файл libboost_system-vc110-mt-gd-1_51.lib Однако я сделал bjam, который создал библиотеку, (boost_root)/stage/libsи связал путь к библиотекам с компилятором C++/Additionnals includes. …
88 c++  boost 


3
По умолчанию, значение и нулевой беспорядок инициализации
Я очень запутался в инициализации значений, значений по умолчанию и нуля. и особенно когда они вступают в силу различных стандартов C ++ 03 и C ++ 11 (и C ++ 14 ). Я цитирую и пытаюсь расширить действительно хороший ответ Value- / Default- / Zero- Init C ++ 98 и …
88 c++  c++11  c++14  c++03  c++98 

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

5
Есть ли неатомарный эквивалент std :: shared_ptr? А почему его нет в <памяти>?
Это вопрос из двух частей, касающихся атомарности std::shared_ptr: 1. Насколько я могу судить, std::shared_ptrэто единственный умный указатель в &lt;memory&gt;этом атомарном. Мне интересно, есть ли std::shared_ptrдоступная неатомарная версия (я ничего не вижу &lt;memory&gt;, поэтому я также открыт для предложений, выходящих за рамки стандарта, например, в Boost). Я знаю, что boost::shared_ptrэто тоже …


2
явная специализация функции-члена класса шаблона
Мне нужно специализировать функцию-член шаблона для некоторого типа (скажем, двойного ). Он отлично работает, пока Xсам класс не является классом-шаблоном, но когда я его делаю, GCC начинает выдавать ошибки времени компиляции. #include &lt;iostream&gt; #include &lt;cmath&gt; template &lt;class C&gt; class X { public: template &lt;class T&gt; void get_as(); }; template &lt;class …

8
Создание пространства имен C ++ в заголовке и источнике (cpp)
Есть ли разница между переносом содержимого файла заголовка и cpp в пространство имен или обертыванием только содержимого заголовка и последующим использованием пространства имен в файле cpp? Под разницей я подразумеваю любое снижение производительности сортировки или немного другую семантику, которая может вызвать проблемы, или все, о чем мне нужно знать. Пример: …
88 c++  namespaces 

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