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

Сообщение Re: Zero-cost метод вызвать функцию для каждого шаблонного п от 15.10.2020 7:16

Изменено 15.10.2020 7:47 K13

Re: Zero-cost метод вызвать функцию для каждого шаблонного парам
#include <iostream>

template< typename FN, typename... Args >
void ForEach( FN&& fn, Args... args )
{
    (fn(args),...);
}

int main()
{
    ForEach( [](auto x){ std::cout << x << std::endl; }, "aaa", 14, 0.34 );
    
    return 0;
}
Re: Zero-cost метод вызвать функцию для каждого шаблонного п
#include <iostream>

template< typename FN, typename... Args >
void ForEach( FN&& fn, Args... args )
{
    (fn(std::forward<Args>(args)),...);
}

// шаблонный не функтор, а метод
struct Print { 
    template <typename Arg>
    void operator()( Arg arg ) { std::cout << std::forward<Arg>(arg)<<std::endl; }
};


int main()
{
    ForEach( [](auto x){ std::cout << x << std::endl; }, "aaa", 14, 0.34 );
    ForEach( Print{}, "bbb", 13, 0.24 );
    
    return 0;
}