Es ist kein Fehler.
Ohne Ihre lokale Vorlagendefinition
%Vor% wir haben keine Template-Definition von make_unique
verfügbar und wir haben so
Mit Ihrer Definition haben wir Template-Definition und so können wir reguläre ADL verwenden.
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%Es ist kein Fehler.
Ohne Ihre lokale Vorlagendefinition
%Vor% wir haben keine Template-Definition von make_unique
verfügbar und wir haben so
Mit Ihrer Definition haben wir Template-Definition und so können wir reguläre ADL verwenden.
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%