Argumentsuche in C ++ [duplizieren]

8

In ein Problem mit gcc mit C ++ 14. Beim Kompilieren des Codes unten bekomme ich einen Fehler

%Vor%

Wenn ich jedoch die lokale Definition von make_unique entferne, bekomme ich auch einen Fehler:

%Vor%

Es scheint, als ob es unmöglich sein könnte, diese beiden Fehler zu erhalten, da entweder std :: make_unique aufgrund von ADL eingezogen wird oder nicht. Ist das nur ein Problem mit gcc oder läuft noch etwas anderes?

Zum Referenz-Subbing make_unique für eine Nicht-Template-Standardfunktion (wie stoi) wird der "nicht in diesem Bereich deklariert" -Fehler beseitigt, was zu der Annahme führt, dass es sich um ein Problem mit gcc handelt.

%Vor%     
User3050 05.05.2017, 18:44
quelle

1 Antwort

4
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123c14 ___ C ++ 14 ist der Name des C ++ - Standards, der 2014 genehmigt wurde. Er baut auf dem vorherigen C ++ 11-Standard auf und verbessert die Kernsprache und die Standardbibliothek sowie einige Funktionen. ___ qstnhdr ___ Argumentsuche in C ++ [duplizieren] ___ antwort43812030 ___

Es ist kein Fehler.

Ohne Ihre lokale Vorlagendefinition

%Vor%

wir haben keine Template-Definition von make_unique verfügbar und wir haben so

%Vor%

Mit Ihrer Definition haben wir Template-Definition und so können wir reguläre ADL verwenden.

    
___ tag123gcc ___ GCC ist die GNU Compiler-Sammlung. Es ist der De-facto-Standard-C-Compiler unter Linux und unterstützt auch viele andere Sprachen und Plattformen. ___ qstntxt ___

In ein Problem mit gcc mit C ++ 14. Beim Kompilieren des Codes unten bekomme ich einen Fehler

%Vor%

Wenn ich jedoch die lokale Definition von make_unique entferne, bekomme ich auch einen Fehler:

%Vor%

Es scheint, als ob es unmöglich sein könnte, diese beiden Fehler zu erhalten, da entweder std :: make_unique aufgrund von ADL eingezogen wird oder nicht. Ist das nur ein Problem mit gcc oder läuft noch etwas anderes?

Zum Referenz-Subbing make_unique für eine Nicht-Template-Standardfunktion (wie stoi) wird der "nicht in diesem Bereich deklariert" -Fehler beseitigt, was zu der Annahme führt, dass es sich um ein Problem mit gcc handelt.

%Vor%     
___
Jarod42 05.05.2017, 18:57
quelle

Tags und Links