Впрочем, с Instance всё равно нихуя не работает. VS2008 удачно компилирует, но Comeau какбы говорит нам:
"ComeauTest.c", line 8: error: "Fail::InstanceType" is ambiguous template TrueType InstanceChecker(typename T::InstanceType const*); ^ detected during: instantiation of "InstanceChecker" based on template argument at line 18 instantiation of "bool Checker(F) [with F=Fail]" at line 28
Может, я чего не понимаю, но не должно ли там быть instance ? нет конечно, Base* уже унаследованы от Instance. Ссаными, блять, тряпками, блять, бить! подумаю над этим на досуге, но менять старые привычки тяжело =)
а вот то, что comeau выдал ошибку вместо того чтобы скомпилить для меня нипанятно (но это спасло бы пятницу), я думал что у нас тут именно sibstitution failirue из-за которой и используется вторая перегрузка InstanceChecker, придется ещё раз пересмотреть взгляды на гцц =)
http://udpn.livejournal.com/45982.html - гцц (который на codepad.org) выдал 0 0, что как бы намекает что поиск имен или криво сделан в гцц или криво описан в стандарте =) Есть подозрение что гцц считает check::type зависящим от параметра шаблона, и не ищет его без явного указания typename T::abc_type.
>> нет конечно, Base* уже унаследованы от Instance. Что-то я после беглого просмотра не уловил этой CRTPшной нотки, мда.
>> подумаю над этим на досуге, но менять старые привычки тяжело =) Уж сколько лет назад исчезла необходимость компилить под VS6/2003. Давно бы пора.
>> гцц (который на codepad.org) выдал 0 0, что как бы намекает что поиск имен или криво сделан в гцц или криво описан в стандарте =) или несмотря на отсутствие ошибки компиляции в Comeau, 0 0 является правильным результатом, а я пишу говнокод, зависимый от глюков поиска имен VS. *paranoid mode*
Comments 9
Reply
Reply
Может, я чего не понимаю, но не должно ли там быть instance ?
>> return 0;
Ссаными, блять, тряпками, блять, бить!
Reply
"ComeauTest.c", line 8: error: "Fail::InstanceType" is ambiguous
template TrueType InstanceChecker(typename T::InstanceType const*);
^
detected during:
instantiation of "InstanceChecker" based on template argument
at line 18
instantiation of "bool Checker(F) [with F=Fail]" at line 28
Кстати, не мог не запостить.
Reply
нет конечно, Base* уже унаследованы от Instance.
Ссаными, блять, тряпками, блять, бить!
подумаю над этим на досуге, но менять старые привычки тяжело =)
а вот то, что comeau выдал ошибку вместо того чтобы скомпилить для меня нипанятно (но это спасло бы пятницу), я думал что у нас тут именно sibstitution failirue из-за которой и используется вторая перегрузка InstanceChecker, придется ещё раз пересмотреть взгляды на гцц =)
http://udpn.livejournal.com/45982.html - гцц (который на codepad.org) выдал 0 0, что как бы намекает что поиск имен или криво сделан в гцц или криво описан в стандарте =)
Есть подозрение что гцц считает check::type зависящим от параметра шаблона, и не ищет его без явного указания typename T::abc_type.
Reply
Что-то я после беглого просмотра не уловил этой CRTPшной нотки, мда.
>> подумаю над этим на досуге, но менять старые привычки тяжело =)
Уж сколько лет назад исчезла необходимость компилить под VS6/2003. Давно бы пора.
>> гцц (который на codepad.org) выдал 0 0, что как бы намекает что поиск имен или криво сделан в гцц или криво описан в стандарте =)
или несмотря на отсутствие ошибки компиляции в Comeau, 0 0 является правильным результатом, а я пишу говнокод, зависимый от глюков поиска имен VS. *paranoid mode*
Reply
Leave a comment