On Tuesday, 27 October 2020 at 02:05:37 UTC, Ruby The Roobster
wrote:
void construct(string type,atom base,atom bonded)
{
base = new
atom(base.name.idup,base.mass,base.electro_negativity,base.valence_electrons,base.electrons,base.protons,base.neutrons,base.pos);
(...)
assert(this.base.valence >= 1 &&
this.bonded.valence >=1 && this.base.electro_negativity >= 0 &&
this.bonded.electro_negativity >= 0,"For a single bond, both
atoms need to have at least one free electron and have to have
electro negativity.");
Going by the assert this is a member function of a class or
struct with base and bonded members. I think you meant to assign
the newly created atoms to those fields instead of overwriting
your arguments.