私は次のようなものを構築したい、
template<class Ostream, int N>
class StreamPrinter{
public:
StreamPrinter(Ostream& out, std::string tail = "\n", std::string head = "", std::string middle = "\t")
: out(out)
, tail(tail)
, head(head) {}
template<class... Data>
void operator()(const Data&... dat){
//if N = 3,
//out << head << dat1 << middle << dat2 << middle << dat3 << tail;
//where dat# means the #'s argument of dat...
}
private:
Ostream& out;
std::string tail;
std::string head;
std::string middle;
};
operator()
テンプレートパラメータに応じて動作が異なるものを構築したいN
。の動作N=3
は上記のコードで説明されています。と仮定しsizeof...(dat) >= N
ます。
しばらくやってみた。しかし、私はそれを達成できませんでした。アドバイスをお願いします。:)