On Saturday, 7 February 2015 at 23:52:04 UTC, Andrei Alexandrescu
wrote:
On 2/7/15 3:46 PM, Paulo Pinto wrote:
Any attempt to assign anything outside 0..64 range to Size will
trigger an error, either at compile or run-time.
What would be the similarities and differences of this built-in
feature with traditional encapsulation using e.g. a C++ class?
Thanks! -- Andrei
For starters you don't need to do anything more than the type
statement.
With C++ someone needs to write the class, overload the set of
operators that apply to the type, including copy and move
operations/constructors.
Compile time validation can only be done maybe with C++14
constexpr.
Probably with clever template metaprogramming some of that code
can be generated, but we all know how average developers like the
error messages.
So basically the difference between declaring a class in C++, or
doing OOP by hand in C.
Sometimes it is better to leave the hard work for the compiler.
--
Paulo