Powiedzmy mam pewne arbitralne skomplikowanych funkcji przeciążony:Ustalenie które przeciążać został wybrany
template <class T> void foo(T&&);
template <class T> void foo(T*);
void foo(int);
chcę wiedzieć, dla danego słowa, któryfoo()
zostanie wywołany. Na przykład, biorąc pod uwagę pewne makro WHICH_OVERLOAD
:
using T = WHICH_OVERLOAD(foo, 0); // T is void(*)(int);
using U = WHICH_OVERLOAD(foo, "hello"); // U is void(*)(const char*);
// etc.
nie wiem gdzie chciałbym użyć czegoś takiego - Jestem tylko ciekaw, czy jest to możliwe.
uwagę, że typ nie jest wystarczająca dla odróżnienia przeciążenie btw. – Jarod42
Nie sądzę, że to możliwe. Jest to bardzo podobne do cech biblioteki wywoływania cech wywoływania TS, a ta druga wymaga magii kompilatora do implementacji. –
@ T.C. Ach, tak, właśnie tak myślałem. [This one] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3866.html)? – Barry