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

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

1
Почему нельзя использовать диапазоны для функциональности библиотеки каналов?
Джонатан Боккара (автор Fluent C ++ ) написал библиотеку под названием pipe . Эта «труба», как гласит главная страница репозитория, не похожа на использование диапазонов, даже если она выглядит одинаково: она не основана на ленивом вытягивании, а скорее на энергичном толчке. Но заявлено, что нельзя использовать библиотеку диапазонов для выполнения …

3
Можно ли преобразовать nullptr в uintptr_t? Разные компиляторы не согласны
Рассмотрим эту программу: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Не удалось скомпилировать с msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an …
10 c++  c++11  gcc  visual-c++  clang 

1
Проверка концепции TS игнорирует модификатор частного доступа
Я хочу написать концепцию Indexable, означающую, что последовательность либо имеет начало / конец, которые возвращают RandomAccessIterator, либо определен operator [] и возвращает значение не типа void. Я использовал идеи из статьи Страуструпа для концепции Sequence и дополнил ее: template <class T> concept bool Indexable = Sequence<T> || requires(T t, size_t …
10 c++  c++-concepts 

1
Проблема в GCC / C ++ 17 с шаблоном шаблона класса
Рассмотрим 2 следующие перегрузки template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } Первый работает для обычных классов, второй - для шаблонов, которые не создаются. Например: std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields 0 Теперь рассмотрим следующую функцию шаблона: template<typename …
10 c++  templates  gcc  clang  c++17 

4
Зачем возвращать NULL из main ()?
Я иногда вижу кодеров, которые используют в NULLкачестве возвращаемого значения в программах main()на C и C ++, например что-то вроде этого: #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } Когда я компилирую этот код с помощью gcc, я получаю предупреждение: предупреждение: возвращение делает целое число из указателя без приведения …
10 c++  c  null  return  return-value 

2
Вывод аргумента шаблона для аргумента типа функции
Рассмотрим следующую программу. #include <iostream> template <typename T> void f( void ( *fn )( T ) ) { fn( 42 ); } void g( int x ) { std::cout << "g( " << x << " );\n"; } int main() { f( g ); } Программа успешно компилируется, и ее …

1
Сможем ли мы создавать контейнеры с представлениями в C ++ 20?
Диапазоны идут к C ++ со стандартной версией C ++ 20. Мой вопрос: сможем ли мы создать (существующие) контейнеры стандартной библиотеки с любым диапазоном? И что еще важнее, с диапазоном просмотров? Например, будет ли это: #include <vector> #include <iostream> #include <ranges> int main() { auto sq = [](int x) { …
10 c++  c++20  range-v3 

1
Утечка памяти во время исключения unordered_map :: insert KeyEqual с GCC - нарушение строгой гарантии безопасности исключения?
Я использую GCC 7.3.1, но также протестирован на coliru, который я считаю версией 9.2.0. Сборка со следующим: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Вот rai.cpp: #include <iostream> #include <unordered_map> int main() { try { struct MyComp { bool operator()(const std::string&, const std::string&) const { throw std::runtime_error("Nonono"); } }; std::unordered_map<std::string, std::string, std::hash<std::string>, MyComp> …


1
Что означают ^ () {} и ^ {} в C ++?
Я недавно прочитал некоторый код C ++, как это: setData(total, &user, ^() { struct dst_t to = {ip, port}; sendData(to, data); }); getData(total, ^{ recvData(data, NULL); }); Я никогда не видел ^() {}ни ^{}. Что они имеют в виду? Какая-то анонимная функция?
10 c++ 

5
Почему я не могу получить индекс варианта и использовать его для получения его содержимого?
Я пытаюсь получить доступ к содержанию варианта. Я не знаю, что там, но, к счастью, вариант делает. Поэтому я подумал, что просто спрошу у варианта, в каком индексе он находится, а затем использую этот индекс для std::getсвоего содержимого. Но это не компилируется: #include <variant> int main() { std::variant<int, float, char> …
10 c++  c++17  variant 

2
Когда вам нужна строка с нулевым окончанием в сценарии только для чтения?
Я играл с std::string_viewбиблиотекой и обдумывал изменение кодовой базы, над которой я работал, чтобы использовать std::string_viewкак можно больше. Тем не менее, во многих темах, которые я прочитал на тему, когда и где использовать std::string_viewвместо const std::string &. Я видел много ответов: «Когда вам не нужна строка с нулевым символом в …

1
Можно ли ограничить количество потоков для C ++ 17 параллельно `for_each`?
Я использую std::for_eachс std::execution::parдля выполнения сложных вычислений на огромном входе представлен в виде вектора структур. Вычисления не требуют каких-либо задержек, связанных с аппаратным обеспечением (например, сетевой или дисковый ввод-вывод), это просто вычисления процессора. Для меня это выглядит логичным, что нет смысла создавать больше потоков ОС, чем у нас аппаратных; тем …

2
Несоответствующий вывод авто типов между различными компиляторами c ++
Итак, я пытаюсь реализовать точечный продукт ( https://en.wikipedia.org/wiki/Dot_product ) в какой-то разновидности современного C ++ и придумал следующий код: #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); auto v2 = {brgs...}, …

2
VCRUNTIME140_1.dll отсутствует после сборки решения с помощью c ++
Я создал небольшое текстовое приключение. Я построил решение с помощью Visual Studio Community 2019, используя настройки Release и x64. Я заархивировал файл * .exe вместе с другими сгенерированными файлами и отправил их на другой компьютер, на котором не установлена ​​VS, и появилась ошибка, которую вы видите на изображении. Я искал …
10 c++  dll 

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