On Saturday, 14 June 2014 at 17:15:16 UTC, Dicebot wrote:
On Saturday, 14 June 2014 at 16:41:46 UTC, monarch_dodra wrote:
".init" should simply mean "the default bit state of the
object". Let's not make it into anything more complicated than
that.
I guess this is the root of disagreement. There is no place in
documentation that says that "T.init" is in any way unsafe or
dangerous, I see it as a perfectly casual feature often used in
any kind of generic code. Putting it in the same league as cast
which is explicitly designed to punch holes in the type system?
No way.
I'm not saying it's to punch holes in the type system, but (if
memory serves right), TDPL simply defines it as the default bit
pattern that gets written before constructors are called (ergo
default value when no constructors are called).
It's not unsafe, but it *is* a way to request an object
explicitly initialized to that "initial" state, which may not
actually be ready for use until a corresponding constructor is
called upon it.
Which is what "@disable this" does.