Вопросы по теме 'c++14'

Будет ли работать автоматический вывод возвращаемого типа для main?
Смогу ли я сделать следующее для основной функции в С++ 1y (С++ 14): auto main() { // ... } Так будет ли возвращаемый тип автоматически int , даже если нам не нужно использовать явный return 0; ?
903 просмотров
schedule 08.11.2022

init-capture для ссылки на rvalue в Visual Studio 2013
Я хочу использовать System.Threading.Tasks.Task.ContinueWith .net в C++, поэтому я пишу следующую функцию. #include <iostream> #include <functional> #include <future> template <typename Func, typename Ret> auto...
979 просмотров
schedule 30.01.2024

В чем разница между оператором запятой и разделителем запятой?
В C++ маркер запятой (т. е. , ) интерпретируется либо как оператор-запятая , либо как разделитель-запятая . Однако при поиске в сети я понял, что не совсем понятно, в каких случаях токен , интерпретируется как оператор двоичной запятой, а...
858 просмотров
schedule 01.12.2022

Следует ли избегать main с завершающим возвращаемым типом?
В приведенном ниже примере кода функция main написана с нотацией замыкающего возвращаемого типа C++11: auto main() -> int { //... return 0; } Вопрос: Есть ли причины, по которым следует избегать main с конечным типом возврата...
957 просмотров
schedule 27.04.2024

С++ 11 вариативное программирование, как определить башню векторов
Как (если возможно) я могу использовать вариативное программирование С++ 11 для определения серии vector в теле функции (или, другими словами, последовательности N -мерных массивов с уменьшением N до 0), как переменные ниже?...
1393 просмотров
schedule 15.12.2023

Неизменный характер initializer_list приводит к чрезмерному копированию
Почему доступ к std::initializer_list не позволяет нам изменять его содержимое? Это большой недостаток std::initializer_list при использовании его по его основному назначению (для инициализации контейнера), поскольку его использование приводит к...
350 просмотров

Нужно ли сочетать std::move с std::forward при использовании ссылок переадресации?
Нужно ли объединять std::move с std::forward при использовании универсальных ссылок? Например, какой из следующих двух фрагментов кода правильный? void bar(auto && x) { auto y(std::move(std::forward<decltype(x)>(x))); } or...
162 просмотров
schedule 17.09.2022

Наследование конструктора и предоставление новой перегрузки: базовый конструктор без аргументов, похоже, не участвует в разрешении перегрузки
Тесты показывают странное поведение ( c++14 , g++ 4.9.1 , clang 3.5.5 ): Подвести итог: если B не предоставляет других конструкторов, он может использовать A::A() если B предоставляет другие конструкторы, он не может использовать...
79 просмотров

Создание неинициализированного массива элементов с конструкторами по умолчанию?
Учитывая класс Foo , который имеет некоторый конструктор по умолчанию, инициализирующий значение: class Foo { private: uint32_t x; public: constexpr Foo() : x { 3 } {} // ... and some other constructors }; Мне нужно...
1059 просмотров

Переключение между массивом структур (AoS) и структурой массивов (SoA)
Одна особенность, которая играет заметную роль во многих работах по проектированию, ориентированному на данные, заключается в том, что во многих случаях вместо AoS (массива структур): struct C_AoS { int foo; double bar; };...
1219 просмотров
schedule 27.11.2023

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

Ошибка компоновщика с шаблонами переменных
Рассмотрим код ниже: #include <iostream> template<typename T> T n; int main() { n<int> = 42; std::cout << n<int> << std::endl; } Он компилирует и связывает с g++5.1 и отображает 42 . Однако...
175 просмотров

constexpr конструктор и функции
У меня есть класс encrypted_string, который должен шифровать строки во время компиляции. Проблема, с которой я столкнулся, заключается в том, что я не могу вызвать функцию-член encrypt в конструкторе, но если я помещаю шифрование в сам конструктор,...
3897 просмотров
schedule 07.10.2022

конструкция объекта: параметр по умолчанию против делегирования
Рассмотрим следующий код, в котором я пытаюсь ввести конструктор по умолчанию, а также параметризованный конструктор для class A . Этот способ был представлен в недавних улучшениях С++. class A { private: unsigned int count;...
818 просмотров
schedule 24.04.2024

Использование оператора noexcept для цепочки объявлений noexcept
Почему оператор noexcept принимает выражение, а не сигнатуру/декларацию функции? Рассмотрим следующий фиктивный пример: #include <string> void strProcessor(const std::string& str) noexcept(true) { }; struct Type{ void method1()...
574 просмотров
schedule 21.09.2022

Объединение несовпадающих строк РАБОТАЕТ в VC2015 — как?
Когда у нас есть что-то из этого: auto city1 = "New " L"Delhi"; auto city2 = L"New " "York"; Любой компилятор до VS2015 вызовет ошибку: ошибка C2308: объединение несовпадающих строк Но с компилятором VC2015 он хорошо...
1547 просмотров
schedule 05.03.2024

Создать контекст OpenGL только с помощью XCB
Я хочу создать контекст OpenGL только с XCB без GLX и Xlib. Не могли бы вы сказать мне, что могло бы случиться. Большое спасибо.
1925 просмотров
schedule 05.01.2024

Каковы хорошие способы избежать копирования, если вызывающая сторона метода не нуждается в владении данными?
Вот проблема, о которой я думал в последнее время. Допустим, наш интерфейс является функцией-членом, которая возвращает объект, который дорого копировать и дешево перемещать (std::string, std::vector и так далее). Некоторые реализации могут...
193 просмотров
schedule 02.12.2022

Типобезопасный метод для получения данных неизвестного типа через интерфейс
Версия TL;DR: Я разрабатываю класс на С++ 14, чтобы он был универсальным. Ниже я описываю проблему дизайна, и я был бы признателен за решение для реализации того, что я пытаюсь, или предложение по редизайну. Скажем, класс, который я...
425 просмотров
schedule 10.02.2024

В чем причина сноски 37 в 3.7.4.2 [basic.stc.dynamic.deallocation]/2 в С++ 14?
§3.7.4.2/2 содержит следующие предложения: Глобальная operator delete ровно с двумя параметрами, второй из которых имеет тип std::size_t , является обычной функцией освобождения памяти. Точно так же глобальная operator delete[] с ровно...
155 просмотров