diff --git a/TinySTL/TinySTL.vcxproj b/TinySTL/TinySTL.vcxproj
index 0a45209..d5e4188 100644
--- a/TinySTL/TinySTL.vcxproj
+++ b/TinySTL/TinySTL.vcxproj
@@ -78,6 +78,9 @@
+
+
+
diff --git a/TinySTL/TinySTL.vcxproj.filters b/TinySTL/TinySTL.vcxproj.filters
index 333f5a9..cf09af5 100644
--- a/TinySTL/TinySTL.vcxproj.filters
+++ b/TinySTL/TinySTL.vcxproj.filters
@@ -19,4 +19,9 @@
源文件
+
+
+ 头文件
+
+
\ No newline at end of file
diff --git a/TinySTL/TypeTraits.h b/TinySTL/TypeTraits.h
index 342f59a..701ab79 100644
--- a/TinySTL/TypeTraits.h
+++ b/TinySTL/TypeTraits.h
@@ -2,241 +2,240 @@
#define _TYPE_TRAITS_H_
namespace TinySTL{
- namespace zstd
+
+ struct _true_type { };
+ struct _false_type { };
+
+ /*
+ ** ȡT͵
+ */
+ template
+ struct _type_traits
{
- struct _true_type { };
- struct _false_type { };
+ typedef _false_type has_trivial_default_constructor;
+ typedef _false_type has_trivial_copy_constructor;
+ typedef _false_type has_trivial_assignment_operator;
+ typedef _false_type has_trivial_destructor;
+ typedef _false_type is_POD_type;
+ };
- /*
- ** ȡT͵
- */
- template
- struct _type_traits
- {
- typedef _false_type has_trivial_default_constructor;
- typedef _false_type has_trivial_copy_constructor;
- typedef _false_type has_trivial_assignment_operator;
- typedef _false_type has_trivial_destructor;
- typedef _false_type is_POD_type;
- };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
-
- template
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
- template<>
- struct _type_traits
- {
- typedef _true_type has_trivial_default_constructor;
- typedef _true_type has_trivial_copy_constructor;
- typedef _true_type has_trivial_assignment_operator;
- typedef _true_type has_trivial_destructor;
- typedef _true_type is_POD_type;
- };
+ template
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
+ template<>
+ struct _type_traits
+ {
+ typedef _true_type has_trivial_default_constructor;
+ typedef _true_type has_trivial_copy_constructor;
+ typedef _true_type has_trivial_assignment_operator;
+ typedef _true_type has_trivial_destructor;
+ typedef _true_type is_POD_type;
+ };
}
#endif
\ No newline at end of file