Tôi cần (muốn) chuyên một phương thức bên trong một lớp mẫu, để chỉ cho phép một số kiểu nguyên thủy nhất định. (Đây không phải là một câu hỏi trùng lặp của this)chuyên môn về phương pháp mẫu bên trong lớp mẫu
Vâng tôi đã có lớp học này:
template<typename TYPE, size_t NB>
class X
{
public:
template<typename arg_type>
X& get(const arg_type var);
}
Tôi muốn chuyên arg_type để cho phép số nguyên chỉ unsigned, một cái gì đó như thế này:
template<typename TYPE, size_t NB> template<unsigned long> X& X::get(const unsigned long val);
Nhưng chắc chắn, những điều trên không hoạt động, không phải trên msvc2011 cũng như trên gcc
Cụ thể hơn, những gì tôi cố gắng làm là viết mã dựa trên khuôn mẫu gõ ở trên, và viết chuyên môn để bất cứ ai sử dụng lớp X này không thể sử dụng phương pháp này với một cái gì đó khác hơn những gì tôi chuyên ngành.
Điều đó có thể thực hiện được không? và nếu nó là, nó là xấu để làm điều đó như vậy?
Cảm ơn trước, jav974
Tại sao bạn nghĩ rằng có mẫu lồng nhau là cách tiếp cận tốt nhất? Trong khi bạn có thể thực hiện công việc này, có thể có các giải pháp đơn giản hơn, chẳng hạn như không có mẫu lồng nhau và không quá tải mẫu ... –