If boost::type_traits includes the following converter from compile-time to run-time "is_foo" , we don't need consider such naming problem
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
::type::value; } } type; }; Oh, so then what do you need the runtime foo one for? :)
When
- getting at(N) from boost.fusion.list