您好,我想就我做一个字符串类(如std::string
)的想法向公众进行调查,该类具有能够处理客户端提供的缓冲区的功能。
你预见到的危险是什么?是经典的味道吗?等等
我的意思是这样的:
char ext[64] = {0};
my::string s(ext, my::string::acquire_RW);
size_t len = s.size();
size_t pos = s.find("zboub");
my::string s2(s); // uses true (alloc+)copy semantic here.
所以我预见了两种策略:这将允许修改acquire_RW
或不修改字符。在任何非常量方法的情况下,以及必须扩展缓冲区的方法的情况下;它只会在此时分配和复制。acquire_RO
ext
RO
RW
在某种程度上,my::string
类型变成了类型的装饰器char*
。
当然要小心不要在装饰器作为客户要求留下之前释放外部缓冲区。
感谢您分享您的担忧