template<typename T>
class CConstraint
{
public:
CConstraint()
{
}
virtual ~CConstraint()
{
}
template <typename TL>
void Verify(int position, int constraints[])
{
}
template <>
void Verify<int>(int, int[])
{
}
};
Biên dịch này dưới g ++ cung cấp cho các lỗi sau:chuyên môn Explicit trong phạm vi không gian tên
chuyên môn Explicit trong không gian tên phạm vi 'lớp CConstraint'
Trong VC, nó biên dịch tốt. Bất cứ ai có thể vui lòng cho tôi biết cách giải quyết không?
* không hoàn toàn trong trường hợp này *: như thường lệ :)? Các mẫu và VC++ không kết hợp tốt như thế:/ –
Cảm ơn rất nhiều :) – Mark
Nó không tuân theo ý nghĩa rằng nó sẽ cho phép bạn làm điều gì đó mà Standard bình thường không cho phép - đó không phải là vấn đề đối với mã là phù hợp để bắt đầu (bạn viết mã như vậy, phải không? ~). Các vấn đề tuân thủ thực sự là khi nó không biên dịch một cái gì đó mà Standard yêu cầu biên dịch, hoặc sẽ hoạt động khác với những gì được chỉ định. –