Although second level namespace (ascension.*) have their own private namespaces (ascension.*.internal), these should be unified to single ascension.internal namespace for remove ambiguousness to resolve namespace names.
In addition, internal should be renamed to detail according to popular C++ libraries.
Although second level namespace (ascension.*) have their own private namespaces (ascension.*.internal), these should be unified to single ascension.internal namespace for remove ambiguousness to resolve namespace names.
In addition, internal should be renamed to detail according to popular C++ libraries.