HN Gopher Feed (2017-10-28) - page 1 of 10 ___________________________________________________________________
Show HN: Stdcore, a toy container library
24 points by nbingham
https://www.nedbingham.com/index.py?time=2017-10-28-stdcoreopher.com___________________________________________________________________
beojan - 3 hours ago
Range-v3 (https://github.com/ericniebler/range-v3) exists solving
the same problem, and there's a standardization proposal
(http://en.cppreference.com/w/cpp/experimental/ranges).
nbingham - 2 hours ago
Range-v3 seems to be solving a different problem. It seems to be
introducing support for Pythonesque features like type-checking
and list-comprehension. However, the algorithms that are
documented still use first/last iterators (http://en.cppreference
.com/w/cpp/experimental/ranges/algorit...). There seems to be a
set of basic range class definitions and there seems to be a View
class, but I'm not sure if they interact to provide the same type
of generic slice definition that I've developed here.Perhaps I am
missing something though, could you expand a little on the
specific part of Range-v3 that you are thinking of?
fiddlerwoaroof - 3 hours ago
What?s the difference between an abstract class and a Java-style
interface in a language that allows multiple inheritance? I?ve
generally thought of interfaces as a way to get some of the
features of multiple inheritance while preventing the parts of
multiple inheritance that cause issues (e.g. the diamond problem).
However, these days, every language I know of that has single
inheritance+interfaces allows interfaces (or traits, in the case of
PHP) to specify default implementations of their methods.
nbingham - 3 hours ago
Inheritance as implemented by Go provides for a different school
of thought from C++. In C++, you define the taxonomy, then define
the objects in relation to that taxonomy. In Go its the opposite,
defining taxonomy in relation to the objects.In concrete terms
for C++, this means that abstract base classes Must be defined
before the objects are defined. So if I wanted to use a library,
I would be entirely restricted to whatever abstract base classes
they define.For Go, I could use a library and then define
whatever interfaces I needed specifically for the functions I
want to implement. Its effectively a much more structured and
rigorous architecture for templated code.At least this is my
understanding. I've explored Go just enough to get some of the
higher level concepts but I haven't quite dug into it yet. So
correct me if I'm wrong.