Consider this snippet:
struct A {
template <typename T> void bar(const T &) {
/*
I would like to write something like:
if constexpr(type T already processed/T is already present in typelist)
...do something fancy
else if constexpr(type T not processed/T is not present in typelist)
*/
}
};
struct Msg1 {};
struct Msg2 {};
int main() {
A a;
a.bar(Msg1{});
a.bar(Msg1{});
}
Is it possible to see at compile time for which types the method bar
was already instantiated?
Ideally, there would be some kind of growing typelist
, where one can check at compile time for which types bar
is already instantiated.
No. It is not possible to do so at compile time. However, it would be possible to do the following at runtime: