Boost logo

Boost Users :

From: Ben Hutchings (ben.hutchings_at_[hidden])
Date: 2004-06-07 06:46:59

Agoston Bejo <gusz1_at_[hidden]>:
> Hi,
> I have took a look at some parts of the boost library, but I couldn't
> find what I want, and that is something like this: How can I determine
> if a type T has such and such member? It would look like something
> like this:
> has_member<T, paint>::result (true if T::paint() exists)
> has_member<T, m_size>::result (true if T::m_size exists)
> The closest to this I could find is boost::type_traits but that does
> not provide this functionality.

Unfortunately that is impossible because templates can only manipulate
constants, types and templates, not names. There is a technique that
can be used to detect the definition of most operators, but it
requires a separate template for each operator and it depends on being
able to overload the operators through non-member functions. There may
be a way to detect member functions but it cannot be done generically.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at