我想在现有类中添加一个新的构造函数(扩展
boost::dynamic_bitset
容许
const char*
作为论据)。
boost::dynamic_bitset_plus
相反,它允许我添加新的构造函数。但是,这个类还有一大堆其他构造函数,我想保留它们。有没有一种方法可以做到这一点,而不用明确地实现其中的每一项?
基本上我可以这样做:
namespace boost
{
template <typename Block, typename Allocator>
class dynamic_bitset_plus<Block, Allocator> : public boost::dynamic_bitset<Block, Allocator>
{
public:
explicit dynamic_bitset_plus(const char* s) : boost::dynamic_bitset<Block, Allocator>(std::string(s)) {}
template <typename CharT, typename Traits, typename Alloc>
explicit dynamic_bitset_plus(const std::basic_string<CharT, Traits, Alloc>& s,
typename std::basic_string<CharT, Traits, Alloc>::size_type pos = 0,
typename std::basic_string<CharT, Traits, Alloc>::size_type n = std::basic_string<CharT, Traits, Alloc>::npos,
const Allocator& alloc = Allocator()) : boost::dynamic_bitset<Block, Allocator>(s, pos, n, alloc) {}
};
}
我知道你可以简单地写一个函数
并返回一个
boost::动态位集
std::string(...)
每当创建一个新的
boost::动态位集
,但这确实会变得单调乏味,在我看来有点难看。