Специализни шаблонца!

Previous Entry Поделиться Next Entry
Screw Scala
Vash
udpn
Development in C++ seemed OK while I knew nothing about path-dependent types. I've just been writing a parser that would be 10x more simple with PD-types and realized there's no way even to emulate some.

UPD. I've just got terrorized by the fact that I don't even need path-dependent types. There are places where C++ is not type safe through all the sorts of compile-time magic I've put into that program. Java-style child classes would be enough. I don't even see a way child classes are incompatible to "zero overhead" rule. Gosh, there's something in Java that is not disgusting after all.

For all the interested among the readers, here's a description of the use case. Write a PEG-parser combinator language in C++ that is optimized by having primitives implemented via CRTP. Avoid passing end iterator of the parsed range through all the combinators.

  • 1
(Удалённый комментарий)
подробности давай, подробности! по всем заявленным случаям

*иногда* вместо path-dependent types в с++ может прокатить фича с++: параметром шаблона может быть не только целое число или класс, но и любая переменная со статическим классом линковки

Ну тут как раз нужно, чтобы объект наружного класса был параметром замыкания. В джава тривиально делается через outer.new inner(args), а в С++ приходится прыгать через хулахуп с new inner(outer, args), что особенно досаждает, когда этот new inner нужно сделать в operator +, у которого outer просто неоткуда взять. (Впрочем, в позорной джавке нет operator + вообще.)

  • 1
?

Log in

No account? Create an account