tôi có lớp học với các phương pháp mẫu mà nhìn này:boost :: enable_if lớp mẫu phương pháp
struct undefined {};
template<typename T> struct is_undefined : mpl::false_ {};
template<> struct is_undefined<undefined> : mpl::true_ {};
template<class C>
struct foo {
template<class F, class V>
typename boost::disable_if<is_undefined<C> >::type
apply(const F &f, const V &variables) {
}
template<class F, class V>
typename boost::enable_if<is_undefined<C> >::type
apply(const F &f, const V &variables) {
}
};
rõ ràng, cả hai mẫu được khởi tạo, kết quả là lỗi thời gian biên dịch. là sự khởi tạo của các phương thức mẫu khác với việc khởi tạo các hàm miễn phí? Tôi đã sửa lỗi này theo cách khác, nhưng tôi muốn biết điều gì đang xảy ra. điều duy nhất tôi có thể nghĩ rằng có thể gây ra hành vi này, tạo điều kiện cho tình trạng không phụ thuộc tham số mẫu ngay lập tức, nhưng lập luận mẫu chứ không phải lớp
Cảm ơn bạn
cảm ơn bạn một lần nữa. – Anycorn