From 16fe2265b8af0474a5e78aaee8b7b6e0a26e69c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=93=E8=88=AA?= <1210603696@qq.com> Date: Tue, 17 Mar 2015 09:23:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- TinySTL/COWPtr.h | 1 + TinySTL/Test/COWPtrTest.cpp | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1c71c05..59b47a3 100644 --- a/README.md +++ b/README.md @@ -574,7 +574,8 @@ TinySTL assert(cp1 == cp2 && cp2 == cp3); assert(*cp1 == *cp2 && *cp2 == *cp3 && *cp3 == "zouxiaohang"); - *cp2;//read + string s = *cp2;//read + assert(s == "zouxiaohang"); assert(cp1 == cp2 && cp2 == cp3); assert(*cp1 == *cp2 && *cp2 == *cp3 && *cp3 == "zouxiaohang"); diff --git a/TinySTL/COWPtr.h b/TinySTL/COWPtr.h index 9b22626..d758e1b 100644 --- a/TinySTL/COWPtr.h +++ b/TinySTL/COWPtr.h @@ -24,6 +24,7 @@ namespace TinySTL{ cow_ptr *cp_; }; } + //未能完全模拟原生指针操作,只供参考,详情见单元测试 template class cow_ptr{ public: diff --git a/TinySTL/Test/COWPtrTest.cpp b/TinySTL/Test/COWPtrTest.cpp index 4b711de..41bc178 100644 --- a/TinySTL/Test/COWPtrTest.cpp +++ b/TinySTL/Test/COWPtrTest.cpp @@ -33,7 +33,9 @@ namespace TinySTL{ assert(cp1 == cp2 && cp2 == cp3); assert(*cp1 == *cp2 && *cp2 == *cp3 && *cp3 == "zouxiaohang"); - *cp2;//read + //cp2->capacity(); change the cow_ptr -> 由于代理类代理的类型未知(T)造成的 + string s = *cp2;//read + assert(s == "zouxiaohang"); assert(cp1 == cp2 && cp2 == cp3); assert(*cp1 == *cp2 && *cp2 == *cp3 && *cp3 == "zouxiaohang"); -- GitLab