如何格式化我的函数来调用模板化的类?

时间:2017-10-04 04:24:23

标签: c++ function templates reference

我确信有一个非常简单的答案,但我无法弄清楚。我编写了一个模板化的类,但我希望通过引用在未模板化的类函数中传递该类。继承人我所拥有的。我收到一堆错误。我需要做的就是如何格式化将模板化的类插入函数的方式,但我很遗憾。谢谢你,如果代码没有真正帮助你,那就很抱歉。

#include <iostream>
using namespace std;

template <typename T>
class Foo {
public:
    Foo();
    insert(const T& Item)
    //And other function, just examples
};

class noFoo(){
void test(Foo <T>& foo);
int i;
int j;
int k
};

template <typename T>
void noFoo::test(Food <T>& foo)}
cout << "hi";
}
int main() {
    Foo<char> wr;
    test(wr);
    return 0;
}

1 个答案:

答案 0 :(得分:2)

使test成为一个功能模板。我还为您纠正了大量语法错误(class noFoo()?),删除了不必要的代码,并运行clang-format进行缩进。

#include <iostream>

template <typename T>
class Foo {};

class noFoo
{
public:
    template <typename T>
    void test(Foo<T> &);
};

template <typename T>
void noFoo::test(Foo<T> &)
{
    std::cout << "hi\n";
}

int main()
{
    Foo<char> wr;
    noFoo{}.test(wr);
}

由于您的问题已标记为,因此D中的代码相同。

import std.stdio;

class Foo(T) {};

class noFoo
{
public:
    void test(T)(Foo!(T))
    {
        writeln("hi");
    }
};

void main()
{
    auto wr = new Foo!char;
    (new noFoo).test(wr);
}