|
Boost Users : |
Subject: Re: [Boost-users] How to test if a type is of some form?
From: Roman Perepelitsa (roman.perepelitsa_at_[hidden])
Date: 2008-09-24 02:43:55
2008/9/24 Peng Yu <pengyu.ut_at_[hidden]>
> Hi,
>
> I want to test if template argument is of some form like in the
> following code. I could define some helper class to do such test. But
> I'm wondering if there is any easy to do it with boost? The
> type_traits's is_same does not work in this case. I'm wondering if
> there could be some generalization of it.
>
> template <T>
> void f() {
> //For example, I want to test if T is of the
> // form of std::complex<S>
>
> }
>
> Thanks,
> Peng
Take a look at boost::lambda::is_instance_of
(boost/lambda/detail/is_instance_of.hpp).
template <class T>
void f() {
if (boost::lambda::is_instance_of<T, std::complex>::value)
std::cout << "T is an instance of std::complex" << std::endl;
else
std::cout << "T is not an instance of std::complex" << std::endl;
}
Note: code resides in the detail directory meaning that it's not part of the
public interface.
Roman Perepelitsa.
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