What the heck does elaborate mean in this context? I mean a type has a destructor or not right? Why is a struct destructor called "elaborate" and a class destructor not? Or is this just another case of programmers cant think up sensible names for stuff?