Сообщение Perfect forward, как ? от 23.10.2019 7:54
Изменено 23.10.2019 8:48 Videoman
Perfect forward, как ?
Добрый день всем любителям современного С++ 17.
В процессе разработки сложного библиотечного кода возникли вопросы. Код сильно упрощен:
Я в курсе что пока шаблонных лямбд нет, поэтому:
1. Как всегда я туплю на ровном месте?
2. Это косяк стандарта и это не возможно сделать "прямо", так как в С++ опять чего-то не подвезли?
3. Это делается так, как я это исправил сейчас — написал шаблонный объект функтор руками?
В процессе разработки сложного библиотечного кода возникли вопросы. Код сильно упрощен:
template <typename Callable, typename ...Params>
void Func(Params&& ...params)
{
auto Func2 = [](auto&&... params)
{
Callable(params...); // Как тут сделать forward_reference ???
};
Func2(std::forward<Params>(params...));
}
Я в курсе что пока шаблонных лямбд нет, поэтому:
1. Как всегда я туплю на ровном месте?
2. Это косяк стандарта и это не возможно сделать "прямо", так как в С++ опять чего-то не подвезли?
3. Это делается так, как я это исправил сейчас — написал шаблонный объект функтор руками?
Perfect forward, как ?
Добрый день всем любителям современного С++ 17.
В процессе разработки сложного библиотечного кода возникли вопросы. Код сильно упрощен:
Я в курсе что пока шаблонных лямбд нет, поэтому:
1. Как всегда я туплю на ровном месте?
2. Это косяк стандарта и это не возможно сделать "прямо", так как в С++ опять чего-то не подвезли?
3. Это делается так, как я это исправил сейчас — написал шаблонный объект функтор руками?
В процессе разработки сложного библиотечного кода возникли вопросы. Код сильно упрощен:
template <typename Callable, typename ...Params>
void Func(Params&& ...params)
{
auto Func2 = [](auto&&... params)
{
Callable(params...); // Как тут сделать forward_reference ???
};
Func2(std::forward<Params>(params)...);
}
Я в курсе что пока шаблонных лямбд нет, поэтому:
1. Как всегда я туплю на ровном месте?
2. Это косяк стандарта и это не возможно сделать "прямо", так как в С++ опять чего-то не подвезли?
3. Это делается так, как я это исправил сейчас — написал шаблонный объект функтор руками?