News for hackers. Stuff that matters.
Re:Show HN: Crown – A flexible game engine written from scra... by typon on Thursday June 22, 2017 @09:28AM (#14612053)
What's wrong with using templates vigorously?
Re:Show HN: Crown – A flexible game engine written from scra... by Matthias247 on Thursday June 22, 2017 @10:14AM (#14612352)
Some things that are not so nice about templates:

- dozens to hundreds of compiler error lines for a single error, where it's hard to find out what the real problem is (IDEs often point to the wrong line)

- Code is hard to follow. E.g. try to figure out from boost asio source code which code is actually used if if you do a async_read(socket). I personally gave up after the second level of template substitutions, and have only a chance to follow the execution path in the debugger.

- Besides goto definition also other IDE features do not work really well with templates. E.g. no autocompletions for constructors with make_shared.

Re:Show HN: Crown – A flexible game engine written from scra... by mbel on Thursday June 22, 2017 @11:52AM (#14613100)
As a bonus you can meditate deeply on all conseqences of using tempates in the vastly increased compilation time that they are going to introduce.
Re:Show HN: Crown – A flexible game engine written from scra... by typon on Thursday June 22, 2017 @11:14AM (#14612790)
D has templates, yet their error messages seem fine for debugging what's going on.
Re:Show HN: Crown – A flexible game engine written from scra... by mhh__ on Thursday June 22, 2017 @12:53PM (#14613559)
That's because D's standard library doesn't use templates in the same way as the STL (No iterators, less policies). Also, D has is actually vaguely modern and has proper static reflection, static asserts and static if: Writing template constraints is easy, unlike C++ (even with Concepts/-lite)
Re:Show HN: Crown – A flexible game engine written from scra... by ryandrake on Thursday June 22, 2017 @10:50AM (#14612608)
All three of these seem to be compiler/tool UI problems and not problems with templates themselves.
Re:Show HN: Crown – A flexible game engine written from scra... by zakirenish on Thursday June 22, 2017 @09:41AM (#14612134)
Well, let me give you an example that I have seen recently. There was this function that suppose to convert numeric value to string. So numeric type was templatized. Then with combination of enable_if and static_asserts there were checks to avoid doubles/floats negative numbers. So whats there left besides unsigned integers?
Re:Show HN: Crown – A flexible game engine written from scra... by nyanscat on Thursday June 22, 2017 @11:36AM (#14612967)
explicit overloads or concepts