Информация об изменениях

Сообщение Re[2]: Анализ списка параметров лямбды от 07.02.2025 10:13

Изменено 07.02.2025 10:55 rg45

Re[2]: Анализ списка параметров лямбды
Здравствуйте, Великий Реверс, Вы писали:

ВР>рефлексия еще не заехала

ВР>можно вытянуть все как то так
ВР>https://functionalcpp.wordpress.com/2013/08/05/function-traits/
ВР>можно наверное концептами обложить и выкрутиться в каких то случаях
ВР>получив допустим на хвосте и вариадики
ВР>как авто вылавливать хз

ВР>ну или по старинке

ВР>как делают сейчас многие либы и та выше что посоветовали

ВР>
ВР>#include <iostream>
ВР>#include <vector>

ВР>template<typename T>
ВР>static constexpr auto get_type()
ВР>{
ВР>    return std::string(__PRETTY_FUNCTION__);
ВР>}

ВР>int main()
ВР>{
ВР>    auto f = [](int, std::vector<int>&&, const std::string&, std::ranges::range auto&&, auto, const auto&, auto&&...){};
ВР>    using F = decltype(f);
ВР>    std::cout << get_type<F>() << std::endl;
ВР>}
ВР>


ВР>

ВР>constexpr auto get_type() [with T = main()::<lambda(int, std::vector<int>&&, const std::string&, auto:6&&, auto:7, const auto:8&, auto:9&& ...)>]


Мне же нужны сущности времени компиляции, которые я смогу использовать для параметризации и инстанцирования шаблонов. А на что мне этот текст?
Re[2]: Анализ списка параметров лямбды
Здравствуйте, Великий Реверс, Вы писали:

ВР>рефлексия еще не заехала

ВР>можно вытянуть все как то так
ВР>https://functionalcpp.wordpress.com/2013/08/05/function-traits/
ВР>можно наверное концептами обложить и выкрутиться в каких то случаях
ВР>получив допустим на хвосте и вариадики
ВР>как авто вылавливать хз

ВР>ну или по старинке

ВР>как делают сейчас многие либы и та выше что посоветовали

ВР>
ВР>#include <iostream>
ВР>#include <vector>

ВР>template<typename T>
ВР>static constexpr auto get_type()
ВР>{
ВР>    return std::string(__PRETTY_FUNCTION__);
ВР>}

ВР>int main()
ВР>{
ВР>    auto f = [](int, std::vector<int>&&, const std::string&, std::ranges::range auto&&, auto, const auto&, auto&&...){};
ВР>    using F = decltype(f);
ВР>    std::cout << get_type<F>() << std::endl;
ВР>}
ВР>


ВР>

ВР>constexpr auto get_type() [with T = main()::<lambda(int, std::vector<int>&&, const std::string&, auto:6&&, auto:7, const auto:8&, auto:9&& ...)>]


Мне же нужны сущности времени компиляции, которые я смогу использовать для параметризации и инстанцирования шаблонов. А начто мне этот текст?