kontrola argumentów templata

0
template <short length>
class c_sha {

};

Chciałbym, żeby można było stworzyć wyłącznie c_sha<256> lub c_sha<512>. To zrobie za pomocą specjalizacji. Co jednak zrobić kiedy chce, żeby wszystkie inne argumenty do templata powodowały błąd kompilacji?

template <short length>
class c_sha {
public:
	c_sha() { static_assert(length == 256 || length == 512); }
};

to jest dobre rozwiązanie?

4

Tak, ale nie trzeba konstruktora. Po prostu wpisz tego static_asserta w ciało klasy.

http://ideone.com/RZ2foQ

1 użytkowników online, w tym zalogowanych: 0, gości: 1