所以如果我有這樣的事情重載輸出運算符<<一類打印裏面的元組
template<typename... Args >
class tuple_class
{
public:
std::tuple<Args...> tup;
/*I left out the other functions */
};
我想重載操作< <,這樣它會遞歸打印元組時呼籲班上。
ex。
auto a = tuple_class(1, 2 ,3);
std::cout << a << endl;
將有希望打印「123」
我見過的元組打印機的其它例子,但我不能,而無需一堆麻煩把它應用到我的課
我想我應該開始成員函數這樣
template<typename... Args>
friend std::ostream& operator<<(std::ostream& os, const my_tuple<Args...> &m);
,然後將類外的實際功能
template<typename... Args>
std::ostream& operator<<(std::ostream& os, const my_tuple<Args...> &m)
{
os << "SOMETHING" << std::endl;
return os;
}
實際上,當我在我的班級撥打< <運營商時,它確實有效。但我不知道如何使它實際打印元組。
任何幫助,將不勝感激
您需要通過部分特化遞歸展開可變參數模板。見[這個問題](http://stackoverflow.com/questions/7124969/recursive-variadic-template-to-print-out-the-contents-of-a-parameter-pack)。 – denniskb