Leave a comment

Comments 9

_oxpa_ February 18 2011, 18:49:12 UTC
вот только сейчас я понял, что программировать на плюсах не умею.

Reply

x1m1k February 18 2011, 19:50:52 UTC
ты слишком впечатлительный =)

Reply


udpn March 29 2011, 22:13:42 UTC
>> struct Fail : public Base1, public Base2 {};
Может, я чего не понимаю, но не должно ли там быть instance ?

>> return 0;
Ссаными, блять, тряпками, блять, бить!

Reply

udpn March 29 2011, 22:37:35 UTC
Впрочем, с 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

Кстати, не мог не запостить.

Reply

x1m1k March 31 2011, 09:11:43 UTC
Может, я чего не понимаю, но не должно ли там быть instance ?
нет конечно, Base* уже унаследованы от Instance.
Ссаными, блять, тряпками, блять, бить!
подумаю над этим на досуге, но менять старые привычки тяжело =)

а вот то, что comeau выдал ошибку вместо того чтобы скомпилить для меня нипанятно (но это спасло бы пятницу), я думал что у нас тут именно sibstitution failirue из-за которой и используется вторая перегрузка InstanceChecker, придется ещё раз пересмотреть взгляды на гцц =)

http://udpn.livejournal.com/45982.html - гцц (который на codepad.org) выдал 0 0, что как бы намекает что поиск имен или криво сделан в гцц или криво описан в стандарте =)
Есть подозрение что гцц считает check::type зависящим от параметра шаблона, и не ищет его без явного указания typename T::abc_type.

Reply

udpn March 31 2011, 15:44:43 UTC
>> нет конечно, Base* уже унаследованы от Instance.
Что-то я после беглого просмотра не уловил этой CRTPшной нотки, мда.

>> подумаю над этим на досуге, но менять старые привычки тяжело =)
Уж сколько лет назад исчезла необходимость компилить под VS6/2003. Давно бы пора.

>> гцц (который на codepad.org) выдал 0 0, что как бы намекает что поиск имен или криво сделан в гцц или криво описан в стандарте =)
или несмотря на отсутствие ошибки компиляции в Comeau, 0 0 является правильным результатом, а я пишу говнокод, зависимый от глюков поиска имен VS. *paranoid mode*

Reply


Leave a comment

Up