tom*_*myk 1 c++ boost stl type-traits
我在我的项目中重构一个序列化库,以便它编译
-std=c++11并想要识别一个对象是否是一个STL容器,例如
is_stl_deque<T>::value
is_stl_list<T>::value
is_stl_vector<T>::value
is_set<T>::value
is_map<T>::value
is_pair<T>::value
is_sequence<T>::value
Run Code Online (Sandbox Code Playgroud)
是否有任何提升特性来检查对象是否是STL容器?
如果没有(我找不到),我该如何实现呢?
我不知道是否有任何提升,但列表中的内容可以通过部分专业化轻松实现:
template<class T>
struct is_vector : std::false_type { };
template<class T, class Alloc>
struct is_vector<std::vector<T, Alloc>> : std::true_type { };
Run Code Online (Sandbox Code Playgroud)