希望 vector<あるタイプ> とその要素に適用する関数やラムダ式を与えたら、 vector<別のタイプ> を返す関数があったら便利だと思いませんか? 下の Apply がこの記事の成果物なんですが、こんなの C++ の仕様を隅々まで知っていてもなかなか思いつかないですよね。 どうやってこの関数に辿り着いたかというと、ChatGPT にヒントを教えてもらいました。すごいなChatGPT。 #include <iostream> using namespace std; template < typename T, typename F > auto Apply( const vector< T >& _, F f ) { vector< decltype( f( *_.begin() ) ) > $; for ( auto& _: _ ) $.emplace_back( f( _ ) )