Coder Social home page Coder Social logo

tinystl's People

Contributors

aiitslam avatar jiangtao92 avatar jxd134 avatar zouxiaohang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tinystl's Issues

关于allocate函数的实现与cppreference的冲突

你说你的代码是基于C++新标准的
在cppreference中:Allocates n * sizeof(T) bytes of uninitialized storage by calling ::operator new(std::size_t)
Throws std::bad_alloc if allocation fails.
而在你的代码里你竟然用了malloc
对不起,我是处女座,无法接受

chunk_alloc第二级配置器的问题

if (!start_free){
obj **my_free_list = 0, *p = 0;
for (int i = 0; i <= EMaxBytes::MAXBYTES; i += EAlign::ALIGN){
my_free_list = free_list + FREELIST_INDEX(i);
p = *my_free_list;
if (p != 0){
*my_free_list = p->next;
start_free = (char *)p;
end_free = start_free + i;
return chunk_alloc(bytes, nobjs);
}
}
end_free = 0;
}
heap_size += bytes_to_get;
end_free = start_free + bytes_to_get;

return chunk_alloc(bytes, nobjs);

当第二级配置器无法在free_list中找到空闲内存时,end_free=0,与《STL源码剖析》对比没有
image
这样当无可用内存就不会抛出异常,end_free = start_free + bytes_to_get;,会造成错误的水位标识?

Algorithm.h中快速排序mid3函数的问题

函数mid3进行三点中值的选取,项目中函数代码存在问题

				if (pred(*mid, *first))
				{
					swap(*mid, *first);
				}
				if (pred(*last, *mid))
				{
					swap(*last, *mid);
				}
				if (pred(*last, *first))
				{
					swap(*last, *first);
				}

例如{3,2,1},经过该函数选取的中值是1,不符合期望

分配器问题

Alloc.cpp 的103行开始对malloc分配失败的分支进行处理,遍历所有已有的free obj查看有无可用的free obj,其中for循环应该从i等于bytes开始,因为小于bytes的obj肯定不能满足,然后如果都没有可用的链表,tinystl依然默认其分配成功,并且最后将heap_size加上bytes_to_get和调用chunk_alloc可能导致无限调用

Construct.h中析构元素中有个小疑问?

template<class ForwardIterator>
	inline void destroy(ForwardIterator first, ForwardIterator last){
		typedef typename _type_traits<ForwardIterator>::is_POD_type is_POD_type;
		_destroy(first, last, is_POD_type());

我的理解ForwardIterator 应该是表示迭代器? 那萃取的应该是*ForwardIterator,为什么是ForwardIterator?望赐教, Thx。

关于node和iterator实现的问题

你好,最近对照着看sgi_stl源码和你写的tinySTL源码的时候发现一个问题:(就list而言)
sgi_stl源码在实现list 的时候,他的node,和iterator都分别实现了一个node_base, iterator_base,然后node,iterator分别继承node_base, iterator_base.为什么需要这样实现呢?
我的想法是,node_base, iterator_base都是非泛型编程,然后node,iterator都是在node_base, iterator_base的基础上加入了泛型编程。这样能减少泛型编程编译时产生的冗余代码。不知这个想法是否正确。
如能回复,万分感谢。

bug in alloc.hpp

alloc.cpp line 104 should change to

for (size_t i = bytes; i <= EMaxBytes::MAXBYTES; i += EAlign::ALIGN)

运行问题

VS2013需要别的设置吗?问什么运行各种问题,如下等
1>c:\users\administrator\desktop\tinystl-master\tinystl\Detail\Bitmap.impl.h(18): warning C4800: “uint8_t”: 将值强制为布尔值“true”或“false”(性能警告)
1> c:\users\administrator\desktop\tinystl-master\tinystl\Detail\Bitmap.impl.h(16): 编译类 模板 成员函数“void TinySTL::bitmap<8>::setNthInInt8(uint8_t &,size_t,bool)”时
1> c:\users\administrator\desktop\tinystl-master\tinystl\Detail\Bitmap.impl.h(66): 参见对正在编译的函数 模板 实例化“void TinySTL::bitmap<8>::setNthInInt8(uint8_t &,size_t,bool)”的引用
1> c:\users\administrator\desktop\tinystl-master\tinystl\Detail\Bitmap.impl.h(57): 编译类 模板 成员函数“TinySTL::bitmap<8>::bitmap(void)”时
1> Test\BitmapTest.cpp(16): 参见对正在编译的函数 模板 实例化“TinySTL::bitmap<8>::bitmap(void)”的引用
1> Test\BitmapTest.cpp(16): 参见对正在编译的类 模板 实例化“TinySTL::bitmap<8>”的引用

关于Allocator中destroy()函数以及Construct.h中destroy()函数的疑问

Allocator中destroy()函数没有对数据类型做萃取,全都调用了析构函数进行了析构,是不是需要结合Construct.h中destroy()函数对数据类型进行萃取之后再destroy().

还有一个问题就是Construct.h中destroy()函数直接
template <class ForwardIt> inline void destroy(ForwardIt first,ForwardIt last){ typedef typename _type_traits<ForwardIt>::is_POD_type is_POD_type; _destroy(first,last,is_POD_type()); }这样写是不是有点问题,是不是需要先萃取ForwardIt的value_type再_type_traits<>

一点小小的疑问

编译报错:“TinySTL::swap”: 对重载函数的调用不明确

编译报错

D:\Program File\VS\ide\VC\Tools\MSVC\14.35.32215\include\utility(107,5): error C2668: “TinySTL::swap”: 对重载函数的调用不明确
1>D:\study-hard\cpp-project\TinySTL-master\TinySTL\Utility.h(9,7): message : 可能是“void TinySTL::swap<_Ty>(T &,T &)”[通过使用参数相关的查找找到]
1> with
1> [
1> _Ty=std::_Tree_node<const TinySTL::binary_search_tree::node *,std::_Default_allocator_traits<std::allocator<const TinySTL::binary_search_tree::node *>>::void_pointer> *,
1> T=std::_Tree_node<const TinySTL::binary_search_tree::node *,std::_Default_allocator_traits<std::allocator<const TinySTL::binary_search_tree::node *>>::void_pointer> *
1> ]
1>D:\Program File\VS\ide\VC\Tools\MSVC\14.35.32215\include\utility(98,19): message : 或 “void std::swap<_Ty,0>(_Ty &,_Ty &) noexcept()”
1> with
1> [
1> _Ty=std::_Tree_node<const TinySTL::binary_search_tree::node *,std::_Default_allocator_traits<std::allocator<const TinySTL::binary_search_tree::node *>>::void_pointer> *
1> ]

IDE:visual studio2022
系统:window11

是TinySTL::swap跟STL::swap冲突了?还是其它啥问题啊?

内存池中的内存什么时候释放

对于alloc,如果申请了内存池中的内存,用完之后归还给内存池了,这个时候内存池中仍然有申请的内存,在程序结束之前,什么时候释放内存池里面的这些内存呢?

utility.h 编译报错

g++ 4.2.1

../Utility.h:31:19: error: declaration of 'T1' shadows template parameter
template <class T1, class T2>

template<class T1, class T2>
    struct pair{
    public:
        typedef T1 first_type;
        typedef T2 second_type;
    public:
        T1 first;
        T2 second;
    public:
        pair(){}
        template<class U, class V> 
        pair(const pair<U, V>& pr);
        pair(const first_type& a, const second_type& b);
        pair& operator= (const pair& pr);
        void swap(pair& pr);
    public:
        template <class T1, class T2>
        friend bool operator== (const pair<T1, T2>& lhs, const pair<T1, T2>& rhs);
        template <class T1, class T2>
        friend bool operator!= (const pair<T1, T2>& lhs, const pair<T1, T2>& rhs);
        template <class T1, class T2>
        friend bool operator<  (const pair<T1, T2>& lhs, const pair<T1, T2>& rhs);
        template <class T1, class T2>
        friend bool operator<= (const pair<T1, T2>& lhs, const pair<T1, T2>& rhs);
        template <class T1, class T2>
        friend bool operator>  (const pair<T1, T2>& lhs, const pair<T1, T2>& rhs);
        template <class T1, class T2>
        friend bool operator>= (const pair<T1, T2>& lhs, const pair<T1, T2>& rhs);
        template <class T1, class T2>
        friend void swap(pair<T1, T2>& x, pair<T1, T2>& y);

    };

应该是友元函数的模版形参使用T1、T2会屏蔽外层的T1、T2?
Accessing template parameters of the member templates

老哥有兴趣一起合作吗

我在算法这块比较欠缺,我在写c++ 多线程 redis,有1年多时间了,但是有些模块做的不是很好,老哥有兴趣我们一起合作,留个QQ交流下。

VS2019编译不通过

  • 使用VS2019打开工程SLN文件,编译不通过
已启动生成…
1>------ 已启动生成: 项目: TinySTL, 配置: Debug Win32 ------
1>Alloc.cpp
1>String.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,15): error C2039: "ostream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,22): error C2433: “TinySTL::ostream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,41): error C2039: "ostream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,71): error C2238: 意外的标记位于“;”之前
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,15): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,22): error C2433: “TinySTL::istream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,42): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,67): error C2238: 意外的标记位于“;”之前
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,15): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,22): error C2433: “TinySTL::istream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,37): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,74): error C2238: 意外的标记位于“;”之前
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,15): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,22): error C2433: “TinySTL::istream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,37): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,62): error C2238: 意外的标记位于“;”之前
1>TrieTree.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,15): error C2039: "ostream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,22): error C2433: “TinySTL::ostream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,41): error C2039: "ostream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(193,71): error C2238: 意外的标记位于“;”之前
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,15): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,22): error C2433: “TinySTL::istream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,42): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(194,67): error C2238: 意外的标记位于“;”之前
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,15): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,22): error C2433: “TinySTL::istream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,37): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(219,74): error C2238: 意外的标记位于“;”之前
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,15): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,22): error C2143: 语法错误: 缺少“;”(在“&”的前面)
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,22): error C2433: “TinySTL::istream”: 不允许在数据声明中使用“friend”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,22): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,37): error C2039: "istream": 不是 "std" 的成员
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\utility(29): message : 参见“std”的声明
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\String.h(220,62): error C2238: 意外的标记位于“;”之前
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\TrieTree.cpp(84,15): error C2679: 二进制“<<”: 没有找到接受“TinySTL::string”类型的右操作数的运算符(或没有可接受的转换)
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(465,39): message : 可能是“std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::basic_streambuf<char,std::char_traits<char>> *)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(440,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(const void *)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(422,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(long double)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(404,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(double)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(386,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(float)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(368,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned __int64)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(350,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(__int64)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(332,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned long)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(314,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(long)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(295,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned int)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(269,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(int)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(250,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned short)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(216,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(short)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(198,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(bool)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(193,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(188,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::basic_ios<char,std::char_traits<char>> &(__cdecl *)(std::basic_ios<char,std::char_traits<char>> &))”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(183,39): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::basic_ostream<char,std::char_traits<char>> &(__cdecl *)(std::basic_ostream<char,std::char_traits<char>> &))”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(653,32): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const char *)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(697,32): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,char)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(733,31): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const char *)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(778,31): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,char)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(895,31): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const signed char *)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(901,31): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,signed char)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(906,31): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const unsigned char *)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(912,31): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,unsigned char)”
1>E:\VS2019community\VC\Tools\MSVC\14.28.29333\include\ostream(998,32): message : 或    “std::basic_ostream<char,std::char_traits<char>> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,const std::error_code &)”
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\TrieTree.cpp(84,15): message : 尝试匹配参数列表“(std::ostream, TinySTL::string)”时
1>main.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Deque.impl.h(246): warning C5037: TinySTL::deque<T,Alloc>::deque: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(53): warning C5037: TinySTL::list<T>::newNode: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(92): warning C5037: TinySTL::list<T>::list: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\CircularBuffer.impl.h(78): warning C5037: TinySTL::circular_buffer<T,N,Alloc>::circular_buffer: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\COWPtr.impl.h(35): warning C5037: TinySTL::cow_ptr<T>::cow_ptr: 类模板的成员的外部定义不得具有默认参数
1>Profiler.cpp
1>AlgorithmTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Deque.impl.h(246): warning C5037: TinySTL::deque<T,Alloc>::deque: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(53): warning C5037: TinySTL::list<T>::newNode: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(92): warning C5037: TinySTL::list<T>::list: 类模板的成员的外部定义不得具有默认参数
1>AVLTreeTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>BinarySearchTreeTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Deque.impl.h(246): warning C5037: TinySTL::deque<T,Alloc>::deque: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>BitmapTest.cpp
1>CircularBufferTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\CircularBuffer.impl.h(78): warning C5037: TinySTL::circular_buffer<T,N,Alloc>::circular_buffer: 类模板的成员的外部定义不得具有默认参数
1>COWPtrTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\COWPtr.impl.h(35): warning C5037: TinySTL::cow_ptr<T>::cow_ptr: 类模板的成员的外部定义不得具有默认参数
1>DequeTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Deque.impl.h(246): warning C5037: TinySTL::deque<T,Alloc>::deque: 类模板的成员的外部定义不得具有默认参数
1>GraphTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(53): warning C5037: TinySTL::list<T>::newNode: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(92): warning C5037: TinySTL::list<T>::list: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(56,9): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): message : 在编译 类 模板 成员函数“void TinySTL::vector<TinySTL::list<int>,TinySTL::allocator<T>>::resize(TinySTL::vector<T,TinySTL::allocator<T>>::size_type,TinySTL::list<int>)”时
1>        with
1>        [
1>            T=TinySTL::list<int>
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(144): message : 查看对正在编译的函数 模板 实例化“void TinySTL::vector<TinySTL::list<int>,TinySTL::allocator<T>>::resize(TinySTL::vector<T,TinySTL::allocator<T>>::size_type,TinySTL::list<int>)”的引用
1>        with
1>        [
1>            T=TinySTL::list<int>
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(142): message : 在编译 类 模板 成员函数“TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::Unordered_set(size_t)”时
1>        with
1>        [
1>            Index=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Graph.impl.h(95): message : 查看对正在编译的函数 模板 实例化“TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::Unordered_set(size_t)”的引用
1>        with
1>        [
1>            Index=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Graph.impl.h(95): message : 查看对正在编译的 类 模板 实例化“TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>”的引用
1>        with
1>        [
1>            Index=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Graph.impl.h(93): message : 在编译 类 模板 成员函数“void TinySTL::Detail::graph<Index,Value,EqualFunc>::DFS(const Index &,std::function<void (TinySTL::pair<Index,Value> &)>)”时
1>        with
1>        [
1>            Index=int,
1>            Value=int,
1>            EqualFunc=TinySTL::equal_to<int>
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\GraphTest.cpp(76): message : 查看对正在编译的函数 模板 实例化“void TinySTL::Detail::graph<Index,Value,EqualFunc>::DFS(const Index &,std::function<void (TinySTL::pair<Index,Value> &)>)”的引用
1>        with
1>        [
1>            Index=int,
1>            Value=int,
1>            EqualFunc=TinySTL::equal_to<int>
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Graph.h(138): message : 查看对正在编译的 类 模板 实例化“TinySTL::Detail::graph<Index,Value,EqualFunc>”的引用
1>        with
1>        [
1>            Index=int,
1>            Value=int,
1>            EqualFunc=TinySTL::equal_to<int>
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\GraphTest.cpp(9): message : 查看对正在编译的 类 模板 实例化“TinySTL::directed_graph<int,int,TinySTL::equal_to<Index>>”的引用
1>        with
1>        [
1>            Index=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(60,14): warning C4018: “>”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(60,28): warning C4018: “<=”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(64,14): warning C4018: “>”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(256,9): warning C4018: “<=”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(255): message : 在编译 类 模板 成员函数“void TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::rehash(TinySTL::Unordered_set<Key,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::size_type)”时
1>        with
1>        [
1>            Index=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(211): message : 查看对正在编译的函数 模板 实例化“void TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::rehash(TinySTL::Unordered_set<Key,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::size_type)”的引用
1>        with
1>        [
1>            Index=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(202): message : 在编译 类 模板 成员函数“TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::size_type TinySTL::Unordered_set<Key,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::count(const int &)”时
1>        with
1>        [
1>            Index=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Graph.impl.h(88): message : 查看对正在编译的函数 模板 实例化“TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::size_type TinySTL::Unordered_set<Key,std::hash<int>,EqualFunc,TinySTL::allocator<Key>>::count(const int &)”的引用
1>        with
1>        [
1>            Index=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Graph.impl.h(83): message : 在编译 类 模板 成员函数“void TinySTL::Detail::graph<Index,Value,EqualFunc>::_DFS(TinySTL::pair<Index,Value> &,std::function<void (TinySTL::pair<Index,Value> &)>,TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>> &)”时
1>        with
1>        [
1>            Index=int,
1>            Value=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Graph.impl.h(96): message : 查看对正在编译的函数 模板 实例化“void TinySTL::Detail::graph<Index,Value,EqualFunc>::_DFS(TinySTL::pair<Index,Value> &,std::function<void (TinySTL::pair<Index,Value> &)>,TinySTL::Unordered_set<Index,std::hash<int>,EqualFunc,TinySTL::allocator<Key>> &)”的引用
1>        with
1>        [
1>            Index=int,
1>            Value=int,
1>            EqualFunc=TinySTL::equal_to<int>,
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Graph.impl.h(192): message : 在编译 类 模板 成员函数“TinySTL::directed_graph<int,int,TinySTL::equal_to<Index>>::directed_graph(void)”时
1>        with
1>        [
1>            Index=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\GraphTest.cpp(9): message : 查看对正在编译的函数 模板 实例化“TinySTL::directed_graph<int,int,TinySTL::equal_to<Index>>::directed_graph(void)”的引用
1>        with
1>        [
1>            Index=int
1>        ]
1>ListTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(53): warning C5037: TinySTL::list<T>::newNode: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(92): warning C5037: TinySTL::list<T>::list: 类模板的成员的外部定义不得具有默认参数
1>PairTest.cpp
1>PriorityQueueTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Deque.impl.h(246): warning C5037: TinySTL::deque<T,Alloc>::deque: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>QueueTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Deque.impl.h(246): warning C5037: TinySTL::deque<T,Alloc>::deque: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>RefTest.cpp
1>SharedPtrTest.cpp
1>StackTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>正在生成代码...
1>正在编译...
1>StringTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\StringTest.cpp(312,14): warning C4834: 放弃具有 "nodiscard" 属性的函数的返回值
1>SuffixArrayTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(71,17): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(23): message : 查看对正在编译的函数 模板 实例化“void TinySTL::suffix_array::calSuffix<InputIterator>(const InputIterator,size_t,size_t)”的引用
1>        with
1>        [
1>            InputIterator=const char *
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\SuffixArrayTest.cpp(10): message : 查看对正在编译的函数 模板 实例化“TinySTL::suffix_array::suffix_array<const _Elem*>(const InputIterator,size_t,size_t)”的引用
1>        with
1>        [
1>            _Elem=char,
1>            InputIterator=const char *
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(73,17): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(74,17): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(81,24): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(83,31): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(84,18): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(88,18): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(89,18): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(90,18): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(91,18): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\SuffixArray.h(95,71): warning C4018: “<”: 有符号/无符号不匹配
1>TrieTreeTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>TypeTraitsTest.cpp
1>UFSetTest.cpp
1>UniquePtrTest.cpp
1>Unordered_setTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(53): warning C5037: TinySTL::list<T>::newNode: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\List.impl.h(92): warning C5037: TinySTL::list<T>::list: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(56,9): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): message : 在编译 类 模板 成员函数“void TinySTL::vector<TinySTL::list<int>,TinySTL::allocator<T>>::resize(TinySTL::vector<T,TinySTL::allocator<T>>::size_type,TinySTL::list<int>)”时
1>        with
1>        [
1>            T=TinySTL::list<int>
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(144): message : 查看对正在编译的函数 模板 实例化“void TinySTL::vector<TinySTL::list<int>,TinySTL::allocator<T>>::resize(TinySTL::vector<T,TinySTL::allocator<T>>::size_type,TinySTL::list<int>)”的引用
1>        with
1>        [
1>            T=TinySTL::list<int>
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(128): message : 在编译 类 模板 成员函数“TinySTL::Unordered_set<int,std::hash<int>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::Unordered_set(const TinySTL::Unordered_set<Key,std::hash<int>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>> &)”时
1>        with
1>        [
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\Unordered_setTest.cpp(29): message : 查看对正在编译的函数 模板 实例化“TinySTL::Unordered_set<int,std::hash<int>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::Unordered_set(const TinySTL::Unordered_set<Key,std::hash<int>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>> &)”的引用
1>        with
1>        [
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\Unordered_setTest.cpp(20): message : 查看对正在编译的 类 模板 实例化“TinySTL::Unordered_set<int,std::hash<int>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>”的引用
1>        with
1>        [
1>            Key=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(60,14): warning C4018: “>”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(60,28): warning C4018: “<=”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(64,14): warning C4018: “>”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(256,9): warning C4018: “<=”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(255): message : 在编译 类 模板 成员函数“void TinySTL::Unordered_set<std::string,std::hash<Key>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::rehash(TinySTL::Unordered_set<Key,std::hash<Key>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::size_type)”时
1>        with
1>        [
1>            Key=std::string
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(211): message : 查看对正在编译的函数 模板 实例化“void TinySTL::Unordered_set<std::string,std::hash<Key>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::rehash(TinySTL::Unordered_set<Key,std::hash<Key>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::size_type)”的引用
1>        with
1>        [
1>            Key=std::string
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Unordered_set.impl.h(142): message : 在编译 类 模板 成员函数“TinySTL::Unordered_set<std::string,std::hash<Key>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::Unordered_set(size_t)”时
1>        with
1>        [
1>            Key=std::string
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\Unordered_setTest.cpp(47): message : 查看对正在编译的函数 模板 实例化“TinySTL::Unordered_set<std::string,std::hash<Key>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>::Unordered_set(size_t)”的引用
1>        with
1>        [
1>            Key=std::string
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\Unordered_setTest.cpp(47): message : 查看对正在编译的 类 模板 实例化“TinySTL::Unordered_set<std::string,std::hash<Key>,TinySTL::equal_to<Key>,TinySTL::allocator<Key>>”的引用
1>        with
1>        [
1>            Key=std::string
1>        ]
1>VectorTest.cpp
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): warning C5037: TinySTL::vector<T,Alloc>::resize: 类模板的成员的外部定义不得具有默认参数
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(56,9): warning C4018: “<”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(55): message : 在编译 类 模板 成员函数“void TinySTL::vector<int,TinySTL::allocator<T>>::resize(TinySTL::vector<T,TinySTL::allocator<T>>::size_type,int)”时
1>        with
1>        [
1>            T=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\VectorTest.cpp(85): message : 查看对正在编译的函数 模板 实例化“void TinySTL::vector<int,TinySTL::allocator<T>>::resize(TinySTL::vector<T,TinySTL::allocator<T>>::size_type,int)”的引用
1>        with
1>        [
1>            T=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\VectorTest.cpp(22): message : 查看对正在编译的 类 模板 实例化“TinySTL::vector<int,TinySTL::allocator<T>>”的引用
1>        with
1>        [
1>            T=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(60,14): warning C4018: “>”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(60,28): warning C4018: “<=”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(64,14): warning C4018: “>”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(78,9): warning C4018: “<=”: 有符号/无符号不匹配
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Detail\Vector.impl.h(77): message : 在编译 类 模板 成员函数“void TinySTL::vector<int,TinySTL::allocator<T>>::reserve(TinySTL::vector<T,TinySTL::allocator<T>>::size_type)”时
1>        with
1>        [
1>            T=int
1>        ]
1>C:\Users\cz\Desktop\desk\c++\stl\TinySTL-master\TinySTL-master\TinySTL\Test\VectorTest.cpp(93): message : 查看对正在编译的函数 模板 实例化“void TinySTL::vector<int,TinySTL::allocator<T>>::reserve(TinySTL::vector<T,TinySTL::allocator<T>>::size_type)”的引用
1>        with
1>        [
1>            T=int
1>        ]
1>正在生成代码...
1>已完成生成项目“TinySTL.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 =

Vector中的insert函数存在问题

你好
我看过你的insert函数,存在一点问题,下面是我的测试代码

        namespace JJ
        {
#include <iostream>
            using namespace std;
            class TestItem
            {
            public:
                TestItem()
                {
                    ++count;
                    cout << "Construct" << endl;
                }

                TestItem(const TestItem & other)
                {
                    ++count;
                    cout << "Copy Construct" << endl;
                }

                virtual ~TestItem()
                {
                    --count;
                    cout << "Destructor" << endl;
                }

                static int getCount()
                {
                    return count;
                }
            private:
                static int count;
            };

            int TestItem::count = 0;

            void testCase16()
            {
                assert(TestItem::getCount() == 0);
                {
                    typedef TinySTL::vector<TestItem> TVector;
                    //typedef std::vector<TestItem> TVector;
                    TVector t(10);
                    t.push_back(TestItem());
                    t.push_back(TestItem());
                    t.push_back(TestItem());
                    //t.insert(t.begin(), 10, TestItem());
                    cout << t.capacity() << endl;

                    t.insert(t.begin(), t.begin(), t.begin() + 1);
                    cout << t.size() << endl;
                    t.clear();
                }
                assert(TestItem::getCount() == 0);

            }
        }

你的这个函数的实现里面,调用了

void insert_aux(iterator position, InputIterator first, InputIterator last, std::false_type);

Construct.h 中的 void destroy(ForwardIterator, ForwardIterator) 有点疑惑

这个函数是这样的:

1  template<class ForwardIterator>
2  inline void destroy(ForwardIterator first, ForwardIterator last) {
3	typedef typename _type_traits<ForwardIterator>::is_POD_type is_POD_type;
4	_destroy(first, last, is_POD_type());
5  }

第 3 句用了 _type_traits <ForwardIterator>::is_POD_type

这个版本的 destroy 对于 POD 类型不调用析构函数,对于非POD类型则调用析构函数。

假设类型 T 是 一个 ForwardIterator 的 value_type,那么通过这个 ForwardIterator 的类型判断可以决定 T 是 否为 POD 类型吗?

Missing license file

Hello !
Interesting project but there is no mention to the license you want on it.
Can you add a license file ?
Cheers !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.