Zugriff auf Elemente in Elternklasse - namespace-Auflösung



  • Hallo,

    ich stelle grad Code von C++17 auf C++20 um. Ich nutze das aktuelle VS2019, Zielplatform ist x64.
    Folgenden Sachverhalt kann ich mir grad nicht erklären und möchte gerne fragen, ob ihr wisst, woran das liegt.

    Ich habe eine Vererbungshierarchie, wobei die Klassen jeweils Template-Klassen sind. Lasse ich als Sprachstandard C++17, funktioniert alles. Stelle ich nun auf C++20 um, kann er Methodenaufrufe und Variablenzugriffe in der Kindklasse nicht mehr auflösen, wenn dies Methoden und Variablen aus der Elternklasse sind. Ich muss jetzt immer erst Elternklasse::foo schreiben, damit er die Namen auflösen kann, also immer erst noch den Namespace der Elternklasse voranstellen.

    Ist das grad ein VS-Problem, oder gab es da irgendeine Änderung im C++20-Standard, die das erklärt?

    VG



  • Minimales Beispiel bitte. Klingt danach als ob das Elternklasse::foo laut Standard immer nötig wäre, nur VS es im C++17 Mode fälschlicherweise auch ohne frisst. Aber ohne Beispiel schwer zu sagen.


Log in to reply