模板方法的专业化 - 我的代码出了什么问题?

yeg*_*256 2 c++

这段代码出了什么问题?

class School {
public:
    template<typename T> size_t count() const;
private:
    vector<Boy*> boys;
    vector<Girl*> girls;
};
template<> size_t School::count<Boy>() const {
    return boys.size();
}
Run Code Online (Sandbox Code Playgroud)

我的编译说

error: specialization of ‘size_t School::count() [with T = Boy]’
after instantiation
Run Code Online (Sandbox Code Playgroud)

能否请你帮忙?

PS.这就是我以后要用它的方法:

School s;
size_t c = s.count<Boy>();
Run Code Online (Sandbox Code Playgroud)

CB *_*ley 6

你错过了一个分号.

class School {
public:
    template<typename T> size_t count() const;
private:
    vector<Boy*> boys;
    vector<Girl*> girls;
};                           // <-- Missing semi-colon
template<> size_t School::count<Boy>() const {
    return boys.size();
}
Run Code Online (Sandbox Code Playgroud)