Мой вопрос о новой функции C++ 11 Делегирующие конструкторы. Поэтому у меня есть два похожих ctors в моем классе, и я хотел бы упростить их реализацию. Проблема, что они оба имеют структуры в качестве параметра, и когда я попытался передать их, ошибка компиляции произошла:Как делегировать конструктор с помощью struct paramators?
error: type ‘MyClass’ is not a direct base of ‘MyClass’
Так вот перед:
MyClass::MyClass (const timeval & TV) :
Seconds (TV.tv_sec),
USeconds (TV.tv_usec),
{
}
MyClass::MyClass (const timespec & TS) :
Seconds (TS.tv_sec),
USeconds (TS.tv_nsec * 1000),
{
}
После:
MyClass::MyClass (const timeval & TV) :
MyClass (timeval { TV.tv_sec, TV.tv_usec/1000 })
{
}
MyClass::MyClass (const timespec & TS) :
Seconds (TS.tv_sec),
USeconds (TS.tv_nsec * 1000),
{
}
Кто-нибудь знает, как я могу правильно назвать второй ctor из первого?
Не делегируете конструктор 'timeval' конструктору' timeval', создавая то, что было бы бесконечной рекурсией, если это разрешено? –
какой компилятор? вы уверены, что ваш компилятор поддерживает делегирование ctors? – Naveen