#include #include BOOST_PARAMETER_NAME(tag_1) struct A { A() = default; A(const A&) = delete; A(A&&) = delete; }; struct constructor_impl { template constructor_impl(ArgumentPack const&) { } }; struct B : private constructor_impl { BOOST_PARAMETER_CONSTRUCTOR( B, (constructor_impl), tag, (required (in_out(tag_1), (A)) ) ) }; int main() { A a; B b(a); }