C ++ 11 allows you to inherit constructors that avoid a lot of patterns, especially with something like a wrapper class. However, it seems that you can already achieve this functionality with the help of variable templates.
class B
{
public:
B(int){
B(int, char){
};
Using inheriting constructors:
class D : public B
{
public:
using B::B;
};
Using variable templates and transitions:
class D : public B
{
public:
template <typename...Args>
D(Args&&... args) : B(std::forward<Args>(args)...)
{
}
};
( using) - , , ? CWG (N1890 N1898) , :
, , -. "ctor" "", , , . .