Здравствуйте, CEMb, Вы писали:
CEM>Напиши хотя бы псевдокодом, как ты себе это видишь?
Да фиг знает, чёто такое, но это не сработает
template <typename T>
struct ToArg
{
static if IsConst(T)
{
typedef const T& type;
} else
{
typedef T& type;
}
};
// ...
template <typename A1>
Derived (ToArg<A1>::type a1) : Base(a1) {}
А в идеале так:
static for (int i=0; i<static_reflexion<Base>::constructors::size; ++i)
{
Derived(static_reflexion<Base>::constructors[i]::Args... args) : Base(args...) {}
}
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте