It is hard to initialize default values on add_assignment() and calling add_assignment() for initializers is not really necessary: the only thing we need from it the implicit cast.