Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2005-06-27 07:01:54


> Synopsis:

Mostly look good to me!

> namespace boost
> {
> namespace function_type
> {
> // Result: bool, Concept: MPL-Integral Constant
> template<typename T, typename QueryTag = undecorated>
> struct is_function_;

I don't like the trailing underscore much, but I see why it's there :-)

On the other hand, since we're in a separate namespace from type_traits we
could just drop the underscore... might lead to confusion though. Come to
that having the underscore will lead to confusion as well IMO.

I understand why you dropped the trailing "_type" suffix, but
"is_function_type" was the only obvious alternative I could think of.

Hmmm, how about "is_function_kind" ? Not pretty, but it kind of sums up
what the meta-function does.

Any other ideas anyone?

>
> // Result: bool, Concept: MPL-Integral Constant
> template<typename T> struct is_function_pointer;
> template<typename T> struct is_function_reference;
> template<typename T> struct is_member_function_pointer_;

I think the trailing underscore has to go from there as well IMO. Ideally
this one and the type traits one should be the same template. They have the
same semantics don't they?

While we're at it, can the traits inherit from
boost::integral_constant<bool, true/false> please? They will still be MPL
friendly, and they'll follow the type_traits and TR1 conceptual framework as
well then.

The rest of the synopsis looks good to me.

John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk