C++は C++11で追加された「可変長引数テンプレート」というのを用いると
引数の数だけ連結ができます。
以下にサンプルプログラムを示します。
cpp
1#include <iostream>
2#include <string>
3#include <sstream>
4
5using namespace std;
6
7inline void concat_internal(stringstream& sout) {}
8
9template <class Head, class... Tail>
10void concat_internal(stringstream& sout, const Head& head, const Tail&... tail)
11{
12 sout << head;
13 concat_internal(sout, tail...);
14}
15
16template <class... Args>
17std::string concat(const Args... args)
18{
19 stringstream sout;
20 concat_internal(sout, args...);
21 return sout.str();
22}
23
24
25int main(int argc, char* argv[])
26{
27 cout << concat("Hello,", " ", "World!") << endl;
28}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。