00001 #ifndef CVD_IS_POD_H 00002 #define CVD_IS_POD_H 00003 #include <limits> 00004 00005 namespace CVD{ 00006 namespace Internal{ 00007 00008 //Define is_POD for all builtin data types, all pointer types and 00009 //arrays. 00010 template<class C> struct is_POD 00011 { 00012 enum { is_pod = std::numeric_limits<C>::is_specialized }; 00013 }; 00014 00015 template<class C> struct is_POD<C*> 00016 { 00017 enum { is_pod = true }; 00018 }; 00019 00020 template<class C, int i> struct is_POD<C[i]> 00021 { 00022 enum { is_pod = is_POD<C>::is_pod }; 00023 }; 00024 00025 } 00026 } 00027 00028 #endif