Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用模板类的参数定义模板函数_C++_Templates - Fatal编程技术网

C++ 使用模板类的参数定义模板函数

C++ 使用模板类的参数定义模板函数,c++,templates,C++,Templates,有一个模板类 template//许多模板参数 类Foo{……} 如何定义一个模板函数来接受带有任何模板参数的Foo 函数可以是运算符您可以定义如下函数模板: template <typename ...Args> void f(Foo<Args...> foo) { // ... } 模板 无效f(富富) { // ... } 您可以这样定义函数模板: template <typename ...Args> void f(Foo<Args.

有一个模板类

template//许多模板参数
类Foo{……}
如何定义一个模板函数来接受带有任何模板参数的
Foo


函数可以是
运算符您可以定义如下函数模板:

template <typename ...Args>
void f(Foo<Args...> foo)
{
    // ...
}
模板
无效f(富富)
{
// ...
}

您可以这样定义函数模板:

template <typename ...Args>
void f(Foo<Args...> foo)
{
    // ...
}
模板
无效f(富富)
{
// ...
}

最明显的方法是

template <typename... T>
std::ostream& operator<< (std::ostream& out, Foo<T...> const& value) {
    return out << "Foo(...)";
}
模板

std::ostream&operator最明显的方法是

template <typename... T>
std::ostream& operator<< (std::ostream& out, Foo<T...> const& value) {
    return out << "Foo(...)";
}
模板

std::ostream&operator您使用省略号(
)有点不幸。你是说
Foo
是一个可变的
模板
还是一个具有任意但固定数量参数的模板?@5gon12eder编辑。。。谢谢请贴出更接近实际的代码,你尝试了什么,出了什么问题,你的抽象目标是什么。伪代码是个糟糕的主意。您使用省略号(
)有点不幸。你是说
Foo
是一个可变的
模板
还是一个具有任意但固定数量参数的模板?@5gon12eder编辑。。。谢谢请贴出更接近实际的代码,你尝试了什么,出了什么问题,你的抽象目标是什么。伪代码是个糟糕的主意。如果这是OP想要问的,我认为这是正确的答案。如果这是OP想要问的,我认为这是正确的答案。