rub*_*nvb -1 c++ string inheritance c++11
当然,std::string界面已经膨胀.但它缺少一些(对我而言)关键因素.例如,a std::wstring不能从plain构造const char*(这是从字符串文字创建一个所需的).我还想添加一个 operator/和一个split函数.无论如何,这就是问题的重点.这阻碍了我为项目编写核心类的内容.
我知道我可以私下继承std::(w)string,并"导入"所有成员using.这错过了许多关键的非成员模板功能.
我怎样才能更好地接近这个?我知道公共继承"解决"了这个问题,但它引入了delete一个没有虚析构函数的类的基类指针的问题.请注意,我不打算添加数据成员,所以这真的是一个问题,还是这个角落的案例仍然可以使用公共继承?
请不要说"不要这样做",除非你能提供一种方法:1)做我想要的,2)不要求我自己写,3)不要膨胀我的来电者界面.
Die*_*ühl 11
不要派生std::basic_string<...>而是创建执行适当操作的算法,例如:
template <typename cT>
std::basic_string<cT> construct(char const* str) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
同样的split(),operator/()等等.原则上,大多数成员std::basic_string<...>不应该摆在首位会员...