Tôi có một lớp mẫu mà tôi có một số chuyên môn cho.
Nhưng chuyên môn tiếp theo là bản thân mẫu. Làm cách nào để bạn xác định điều này:Chuyên môn bản thân nó là một mẫu
template<typename T>
class Action
{
public: void doStuff() { std::cout << "Generic\n"; }
}
// A specialization for a person
template<>
class Action<Person>
{
public: void doStuff() { std::cout << "A Person\n";}
}
// I can easily specialize for vectors of a particular type.
// But how do I change the following so that it works with all types of vector.
// Not just `int`
template<>
class Action<std::vector<int> >
{
public: void doStuff() { std::cout << "A Generic Vector\n";}
}
Tôi chỉ tự hỏi rằng bạn không biết điều này! – Nawaz
@Nawaz: suy nghĩ của tôi nữa, một đêm khuya có lẽ? –
Bây giờ tôi thấy câu trả lời là hiển nhiên, nhưng tôi vẫn tiếp tục thêm một dòng mẫu khác trong đó. –