C++17 – вопросы и ответы

162
голоса
1
ответ
У меня есть функция-член (метод), который использует std::enable_shared_from_this::weak_from_this() Короче говоря: weak_from_this возвращает weak_ptr к этому . Одно предостережение: его нельзя испо...
2 дня, 22 часа назад Korri
53
голоса
1
ответ
Я пишу класс в С++ 17, который я хотел бы оператор преобразования перегрузки для плавающих типов, а также для некоторых пользовательских типов. Вот воспроизводимый пример. Есть еще много преобразов...
2 дня, 23 часа назад Imran
82
голоса
1
ответ
С++ 17 будет включать std::byte , тип для одной атомно-адресной единицы памяти, имеющей 8 бит на типичных компьютерах. Перед этой стандартизацией уже существует небольшая дилемма при указании на "с...
3 дня назад einpoklum
62
голоса
1
ответ
У меня есть следующий фрагмент: #include <iostream> using namespace std; class IA { public: virtual void printA() = 0; virtual ~IA(){}; }; class IB { public: virtual void printB() = 0; virtua...
3 дня, 3 часа назад van con Nguyen
51
голос
1
ответ
У меня есть файл test.yml, test1: test1_file: 'test.yml' Я хочу загрузить этот файл yaml в код C++ и извлечь данные из него. Для моего варианта использования есть дополнительные файлы, которые необ...
3 дня, 7 часов назад inetknght
80
голосов
1
ответ
Я хотел бы использовать static unsigned char массив static unsigned char для компиляции ZIP файла, содержащего файлы ресурсов (например, значки,...) в свой исполняемый файл. Я прочитал здесь о SO, ...
3 дня, 11 часов назад user1095108
74
голоса
1
ответ
Я пытаюсь написать простой протокол сериализации. send для типа контейнера должна вызывать send по каждому из элементов (которые сами могут быть типами контейнеров). Однако я не могу понять, как эт...
4 дня назад charmoniumQ
51
голос
1
ответ
Существует много способов инициализации переменной члена класса в C++. Является ли хорошей практикой кодирования инициализировать переменную члена класса, как показано ниже? class Practice { int te...
4 дня, 1 час назад shingote
-4
голоса
1
ответ
Я обнаружил, что мой класс compressed_tuple<T1, T2> не компилируется, когда T1 или T2 не имеют конструктора копирования и/или перемещения с ошибкой "попытка ссылки на удаленную функцию" . Эта...
4 дня, 2 часа назад Koby Duck
90
голосов
1
ответ
Можно ли сделать const& истинно непреложным? int* side_effect; void function(int const& i){ *side_effect = 123; } int main(){ int i = 0; side_effect = &i; //based on the function signat...
4 дня, 5 часов назад Trevor Hickey
79
голосов
1
ответ
Рассмотрим следующий код: #include <iostream> struct Thing { Thing(void) {std::cout << __PRETTY_FUNCTION__ << std::endl;} Thing(Thing const &) = delete; Thing(Thing &&...
4 дня, 6 часов назад VTT
52
голоса
1
ответ
Как объединить несколько типов в одну функцию, например template < typename T1 > template < typename T2 > T2 average( T1 v1, T1 v2, T1 v3 ) { T averageValue; cout<<"after averageV...
4 дня, 23 часа назад AsmM
72
голоса
1
ответ
Рассмотрим это: template <typename Pack, template <typename...> class = std::tuple> struct foo; template <template <typename...> class P, typename... Ts, template <typename....
5 дней назад prestokeys
71
голос
1
ответ
Можно ли вывести из перечисления, если да, то как? Например: enum eStandardTypes { Type1 = 0, Type2, Unknown, Count, }; enum eExtendedTypes : eStandardTypes { Type3 = eStandardTypes::Count, Unknown...
5 дней назад Tim
80
голосов
1
ответ
У меня есть класс шаблонов Foo который поставляется в двух вариантах: у одного есть дополнительный параметр типа шаблона. Я хочу, чтобы класс имел некоторые дополнительные функции, когда этот парам...
5 дней, 3 часа назад Joald
54
голоса
1
ответ
Скажем, у нас есть структура, где мне нужно проверить типы параметров шаблона (wchar_t - это просто пример): template <typename T> struct Foo { static_assert(std::is_same<T, wchar_t>::v...
5 дней, 8 часов назад Michał
51
голос
1
ответ
В конце этого видео (начиная с 15:57) есть советы о том, как использовать почти единообразную инициализацию в C++ 17: видео здесь Суть такова: используйте всегда прямую инициализацию auto a{...}; и...
5 дней, 21 час назад Germán Diago
89
голосов
1
ответ
Я изменил свой подход с моего первоначального вопроса, чтобы вместо этого шаблонизировать весь класс и поместить его в переменный кортеж. Теперь я могу использовать методы получения и установки так...
5 дней, 22 часа назад Sailanarmo
96
голосов
1
ответ
следующая программа пытается создать дерево узлов, состоящее из ссылок на элементы std::deque . #include <deque> struct Node; using Pool = std::deque<Node>; struct Node { Node(int d, Po...
6 дней назад wally
129
голосов
1
ответ
Рассмотрим следующий код: template <typename F, typename X0, typename X1, typename... Xs> auto fold_left(F&& f, X0&& x0, X1&& x1, Xs&&... xs) { auto acc = f(x0...
6 дней, 1 час назад Vittorio Romeo
72
голоса
1
ответ
Я разработал объект, который принимает функцию и ее параметры и удерживает возвращаемое значение функции внутри объекта, который будет получен позже. Моя цель здесь состоит в том, чтобы создать рук...
6 дней, 2 часа назад J. Willus
61
голос
1
ответ
Я использую С++ 14, и у меня есть прецедент, где я должен эффективно это делать: template <typename F> void foo (F&& fun) { auto l = []()->int { return 20; }; fun(l); } int main ()...
6 дней, 2 часа назад MGH
72
голоса
1
ответ
Я хотел бы больше использовать стандартные алгоритмы, но у меня есть довольно жесткие требования для управления распределением памяти. Есть ли исчерпывающий список алгоритмов выделения? Кроме того,...
6 дней, 2 часа назад BigSandwich
64
голоса
1
ответ
Я пытался понять, как использовать constexpr из разных источников. Но у меня есть проблема, что я хочу преобразовать программу ниже, чтобы использовать constexpr вместо const. Эта программа являетс...
6 дней, 3 часа назад Ravinder Singh
-9
голосов
1
ответ
#Python code user = input("Please enter your name \n") print ("Your name is,", user) Как это сделать в C++?
6 дней, 3 часа назад DRUBOXM
115
голосов
1
ответ
Я хотел отсортировать std :: vector типа std :: option с двумя пользовательскими классами по их возвращаемому значению члена. Смотрите код ниже. Теперь, используя std::sort(std::begin(shapes), std:...
6 дней, 3 часа назад Jonas B.
80
голосов
1
ответ
Я кодировал сервер/клиентское приложение, которое запускал сначала локально, а затем через Интернет. Поэтому я настроил мой маршрутизатор так, чтобы он принимал данные через порт xxxx и пересылал е...
6 дней, 4 часа назад MaestroD
76
голосов
1
ответ
У меня есть код ниже для преобразования всех аргументов, переданных функции в csv: void Parse(ostream& os) { } template <typename T, typename... Args> void Parse(ostream& os, T t, Arg...
6 дней, 4 часа назад ARaj
79
голосов
1
ответ
Возьмем следующий пример constexpr: #include <iostream> constexpr int fib(const int i) { if (i == 0) return 0; if (i == 1) return 1; return fib(i-1) + fib(i-2); } int main(){ std::cout <&l...
6 дней, 5 часов назад Trevor Hickey
51
голос
1
ответ
Я наблюдал за Джейсоном Тернером C++ Weekly - Ep 64 - C++ 11 std :: min (и моя версия) И теперь я начал делать goose-chase здесь, чтобы сделать расширение пакета параметров для работы для нескольки...
6 дней, 20 часов назад P0W
73
голоса
1
ответ
Что мне здесь не хватает? Почему я не могу использовать decltype для определения значения_имя итератора? Код ниже получает непостижимые ошибки времени компиляции, когда я использую decltype, а не i...
6 дней, 22 часа назад Jive Dadson
72
голоса
1
ответ
Я пытаюсь использовать std :: вариант с перечислением как часть возможных типов. У меня ошибка компиляции, и я не могу найти причину. Если я использую любой другой тип вместо enum, код работает. Во...
6 дней, 22 часа назад Jonathan
82
голоса
1
ответ
Я работаю с Vulkan, и я пытаюсь передать свой уровень проверки как vector<string> . Но поле ppEnabledLayerNames из VkInstanceCreateInfo принимает только const char* const* . Я не понимаю тип ...
6 дней, 23 часа назад Bl4ckb0ne
71
голос
1
ответ
Я хочу использовать #include <cstddef> и std::byte из C++ 17 на eclipse photon. Я сконфигурировал проект для компиляции с использованием C++ 17 >> project >> properties >> C...
6 дней, 23 часа назад Felipe Oliveira Gutierrez
124
голоса
1
ответ
My std::variant может быть пустым ( std::monostate ), содержать int , a std::string или bool . Когда я хочу передать его строкой, заданной как var = "this is my string" , она преобразуется в bool ,...
6 дней, 23 часа назад dani
95
голосов
1
ответ
Почему сопрограммы (на данный момент в новейших черновиках для С++ 1z) будут реализованы как функция основного языка (причудливые ключевые слова и все) в отличие от расширения библиотеки? Уже сущес...
1 неделя назад Lazarus535
97
голосов
1
ответ
(См. конец вопроса для информации о конкретных версиях Boost и Clang, которые я использую) Компиляция в Clang из master/HEAD с использованием новой экспериментальной функции -fmodules , я получаю о...
1 неделя назад Anthony Hall
71
голос
1
ответ
Во время игры с std::variant и std::visit возник следующий вопрос: Рассмотрим следующий код: using Variant = std::variant<int, float, double>; auto lambda = [](auto&& variant) { std::...
1 неделя назад datell
79
голосов
1
ответ
Я хотел бы сбросить вложенные std::future , например void foo(std::future<int>) { } foo(fold(std::declval<std::future<std::future<std::shared_future<int>>>>()); Это то...
1 неделя назад ronag
62
голоса
1
ответ
Я хотел бы включить преобразование моего класса в двойное значение. Это может быть достигнуто путем перегрузки operator double() но это позволяет использовать неявное преобразование, которое в идеа...
1 неделя назад Arc
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема