How can the process of creating and maintaining documentation be improved?Some other candidates for generation: Release Notes, Test reports, I've also in the past had automatic generation of screen shots for the user guide, which saved some time if a minor UI tweak happened but I'm not sure it was a net win overall given the effort to automate the screen shots in the first place

Class Versus Struct@Klaim technically its not right for C# either (structs can be on the heap) The important distinction in C# is between value semantics and reference semantics, a distinction that C++ doesn't need as it can have values or references for anything

Is this method pure?it is pure, in a very similar way to how IO in haskell is pure, its a pure function that produces a sequence of action aka an imperative program. the difference here is that in haskell the sequence of actions can only be executed by the runtime, where as here you can execute it as many times as you like. So Eric is right it is a pure function, but also a unsafe function and should therefore be avoided