Boost logo

Boost Users :

Subject: Re: [Boost-users] is_foo_type naming rule
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2013-03-08 12:24:55


On Thu, Mar 7, 2013 at 8:57 PM, Niitsuma Hirotaka <
hirotaka.niitsuma_at_[hidden]> wrote:

> There are two type is_foo_type functor
> For example
> is_double
> can be
>
> ---------
> template<typename T>
> struct is_double_template : boost::is_same<T,double>
> {};
> ---------
>
> or
>
> ---------
> struct is_double_runtime
> {
> template<typename T>
> bool operator()(T x){return false;}
> bool operator()(double x){return true;}
> };
> ---------
>
> Are there any standard naming rule distinguish these functor?
>

I don't think so, but reasonable alternatives are:
- Name them the same thing (union the above definitions).
- Name the structs the same, but put them in different namespaces (e.g.,
mpl and functional).
- Name them static_foo and foo (this is the convention used by Boost.Math,
I think, for integer functions).

is_foo_runtime
> is_foo_compiletime ?
>
>
>
> The compile-time functor can convert to runtime factor using :
>
> ---------
> template<typename IsTemplateMplLambda>
> struct is_templated_type_to_runtime
> {
> typedef
> struct is_templated_type_runtime {
> template<typename T>
> bool operator()(T)
> {
> return boost::mpl::apply<IsTemplateMplLambda,T>::type::value;
> }
> } type;
> };
>

Oh, so then what do you need the runtime foo one for? :)

- Jeff



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net