2010-01-23 15 views

Odpowiedz

15

Nie można tego rozwiązać za pomocą cech typu, ponieważ trzeba by określić, czy dla każdej możliwej nazwy.

Here są wymienione wspólne rozwiązania, które mają jednak jeden problem: wiele implementacji STL umieszcza wspólny kod w klasach bazowych, a ta metoda nie sprawdza dziedziczonych nazw.

Jeśli chcesz sprawdzić także dziedziczone elementy, zobacz here. Odpowiedź zapewnia rozwiązanie, które sprawdza, czy dana klasa ma członka o tej nazwie, a także może sprawdzić, czy liczba i liczba argumentów są stałe. Nie sprawdza jednak pełnego podpisu, w tym argumentów i typów zwrotu, a widoczność członków nie ma znaczenia. Powinieneś być w stanie rozwiązać to częściowo, używając połączonego is_call_possible<> (jeszcze nie miałem czasu na to popatrzeć).

+4

Za każdym razem, gdy widzę ten wątek 'is_call_possible', trochę mnie przestraszy. – GManNickG

+0

mój rosyjski się opłaca, dzięki – Anycorn

+0

@GMan: Będę musiał wziąć serce i zaatakować, że w przyszłym miesiącu;) –

Powiązane problemy