Явный вызов boost::noncopyable() в конструкторе наследника.
От: PPA Россия http://flylinkdc.blogspot.com/
Дата: 06.03.13 07:06
Оценка: 5 (1)
Привет.
Мержил код и наступил на конфликт
авторы зачем-то добавили явный вызов boost::noncopyable()
http://bazaar.launchpad.net/~dcplusplus-team/dcplusplus/trunk/revision/3212/dcpp/DirectoryListing.h

Кто знает зачем так может быть сделано?
и странно что коммит зовется "build fixes"
новый gcc это стал требовать?
Re: Явный вызов boost::noncopyable() в конструкторе наследника.
От: Evgeny.Panasyuk Россия  
Дата: 06.03.13 08:21
Оценка: 4 (1) +2
Здравствуйте, PPA, Вы писали:

PPA>Кто знает зачем так может быть сделано?

PPA>и странно что коммит зовется "build fixes"
PPA>новый gcc это стал требовать?

Возможно это что-то типа -Weffc++ -Werror:
struct A{};

struct B
{
   A x,y;
   B() : y() {}
};

int main(){}

Compilation finished with errors:
source.cpp: In constructor 'B::B()':
source.cpp:6:4: error: 'B::x' should be initialized in the member initialization list [-Werror=effc++]
cc1plus: all warnings being treated as errors

Re: Явный вызов boost::noncopyable() в конструкторе наследника.
От: rg45 СССР  
Дата: 06.03.13 08:29
Оценка: 1 (1) +5
Здравствуйте, PPA, Вы писали:

PPA>Привет.

PPA>Мержил код и наступил на конфликт
PPA>авторы зачем-то добавили явный вызов boost::noncopyable()
PPA>http://bazaar.launchpad.net/~dcplusplus-team/dcplusplus/trunk/revision/3212/dcpp/DirectoryListing.h

PPA>Кто знает зачем так может быть сделано?

PPA>и странно что коммит зовется "build fixes"
PPA>новый gcc это стал требовать?

Мне на ум приходит только две возможные причины: 1) чудаковатые соглашения о кодировании (либо их непонимание); 2) использование какого-то чудаковатого компилятора со своими особенностями.

С точки зрения стандарта явный вызов конструктора по умолчанию базового класса лишен смысла.
--
Не можешь достичь желаемого — пожелай достигнутого.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.