mam szablondzielenie przez zero z szablonu argumentu
template<size_t N>
class Foo {
int bar(int a) {
if (N == 0)
return 0;
return a/N;
}
}
kiedy instancję tego z 0
Foo<0> bar;
gcc jest zbyt inteligentny i raporty dzielenie przez zero w czasie kompilacji
Wypróbowałem
class Foo<size_t N> {
template<size_t M>
int bar(int a) {
return a/N;
}
template<>
int bar<0>(int a) {
return 0;
}
};
ale to daje mi błąd:
błąd: wyraźnej specjalizacji w zakresie non-namespace 'class Foo' error: template-id 'bar < 0>' w deklaracji pierwotnej matrycy
jakieś pomysły jak mogłem rozwiązać/obejść to?
to tylko przykład - moja klasa jest o wiele większe niż tylko ten jeden sposób – gsf
@gsf Następnie Specjalizujemy METODY sposób Jaord zrobił. – 0x499602D2
tak, dziękuję, to właśnie próbuję wykonać. – gsf