Std :: Применить на заказ, похожий на кортежую типC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std :: Применить на заказ, похожий на кортежую тип

Сообщение Anonymous »

Эта проблема была столкнулась при обновлении Codebase C ++ 17 до C ++ 23. Размер кода является значительным (100K+), он довольно технический и довольно тяжелый шаблон. макет , который соответствует » протоколу кортежа « (и также много используется в структурированных привязках). Для контекста мы используем закрытие частичной функции для «частично закрытия» некоторых из этих аргументов, в то время как другие аргументы будут представлены поздно после динамической диспетчеры времени выполнения.

Код: Выделить всё

error: no matching function for call to 'apply(......'
note: candidate: 'template  requires  __tuple_like constexpr decltype(auto) std::apply(_Fn&&, _Tuple&&)'

note: template argument deduction/substitution failed:
note: constraints not satisfied

In substitution of template ..... requires  __tuple_like ... apply(
note: the expression '__is_tuple_like_v' evaluated to 'false'
Вопросы

Как может выполнять индивидуальный тип, который соответствует концепции tuple , выполнять это только , которое реализовано в GNU libstdc ++
не была идея с классами типов или концепциями (которые намеренно направляются в одном и том же направлении, в то время как существуют прекрасные различия): что данный фрагмент кода работает с любым типом, который соответствует некоторым отношениям и ограничениям ...? < /p>
И теперь я, кажется, только нахожу код в стандартной библиотеке, где мне говорят: «Вот нам, что мы говорим вам, что они есть, что мы говорим вам, что мы говорим вам, что они есть, что они говорят вам, что они говорят вам. ОК ". Разве реализация еще не до игры? Этот вопрос. Я довольно опытен, но довольно новичок в концепциях (но знаю Хаскелл и Скала), поэтому я смогу справиться с этим. звучит как плохая идея?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -like-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»