Mam proste klasy:Usuwanie g ++ ostrzeżenie dla parametru szablonu
template<size_t N, typename T>
class Int
{
bool valid(size_t index) { return index >= N; }
T t;
}
Gdybym określić instancję tej klasy jako:
Int<0, Widget> zero;
dostaję g ++ ostrzeżenie:
warning: comparison is always true due to limited range of data type
Próbowałem to zrobić, ale nie mogłem wymyślić, jak częściowo specjalizować funkcję z parametrem szablonu non-type. Wygląda na to, że wyłączenie tego ostrzeżenia w g ++ może nie być możliwe. Jaki jest właściwy sposób ukrywania tego ostrzeżenia lub pisania tej metody, która zawsze zwraca wartość true, jeśli N == 0?
Dzięki!
wygląda jak gcc bug –
Czy potrzebujesz pełnego zakresu 'size_t', czy możesz iść z podpisem typu? – Bill
@Bill: Niestety potrzebuję całego zakresu :-( – JaredC