Fix pretty printers for versioned namespace

Jonathan Wakely jwakely@redhat.com
Thu Oct 26 20:37:00 GMT 2017


On 26/10/17 21:30 +0100, Jonathan Wakely wrote:
>On 26/10/17 22:19 +0200, François Dumont wrote:
>>@@ -1232,7 +1232,7 @@ class Printer(object):
>>    # Add a name using _GLIBCXX_BEGIN_NAMESPACE_CONTAINER.
>>    def add_container(self, base, name, function):
>>        self.add_version(base, name, function)
>>-        self.add_version(base + '__cxx1998::', name, function)
>>+        self.add_version(base, '__cxx1998::' + name, function)
>
>I don't like this change.
>
>Previously the arguments were the namespace(s) and the type. That's
>nice and simple.
>
>Now it's the first namespace, and then all the other namespaces and
>the type. That's not very clean.
>
>There must be a way to keep the add_version and add_container calls
>the same, and have it transparently handle the case where the
>namespace is 'std::__8::foo' not 'std::foo'.

e.g. in add_version instead of:

        if _versioned_namespace:
            self.add(base + _versioned_namespace + name, function)

We should replace "std::" in base with "std::" + _versioned_namespace

That means we only have to change that function, not every call to it.





More information about the Libstdc++ mailing list