Tôi có một lớp đơn giản:Loại bỏ g ++ cảnh báo cho mẫu tham số
template<size_t N, typename T>
class Int
{
bool valid(size_t index) { return index >= N; }
T t;
}
Nếu tôi xác định một thể hiện của lớp này như:
Int<0, Widget> zero;
tôi nhận được một cảnh báo g ++:
warning: comparison is always true due to limited range of data type
Tôi đã cố gắng thực hiện điều này, nhưng tôi không thể tìm ra cách chuyên biệt hóa một phần chức năng với tham số mẫu không phải kiểu. Có vẻ như không thể tắt cảnh báo này trong g ++. Cách thích hợp để ẩn cảnh báo này là gì, hoặc viết phương thức này sao cho nó luôn trả về true nếu N == 0?
Cảm ơn!
trông giống như lỗi gcc –
Bạn có cần đầy đủ 'size_t' hoặc bạn có thể sử dụng loại đã ký không? – Bill
@Bill: Thật không may tôi cần toàn bộ phạm vi :-( – JaredC