
For example, named_shared_object can only be created through its default constructor. Once created this way, you probably can't actually use your named_shared_object. Instead, you can complete the construction of the object by using open, create, or one of the other methods that "construct" the object. An error is indicated by the return value of these member functions. I don't actually know the name of this technique, and I suspect my point would be clearer if I knew its name.
The alternative technique is to have several constructors or static member functions in named_shared_object. These would create an opened or created named_shared_object if nothing bad happened, and they would throw an exception if an error came up.
Ok. I think I can provide both approaches so that who doesn't want (or can't because of a restricted embedded enviroment) use exceptions can have its alternative. Regards, Ion