Ich versuche make_unique
für std::unique_ptr
zu erstellen und zu verwenden, genauso wie std::make_shared
für std::shared_ptr
existiert hier beschrieben . Herb Sutter erwähnt die mögliche Implementierung von make_unique
, die wie folgt aussieht:
Es scheint nicht für mich zu funktionieren. Ich verwende das folgende Beispielprogramm:
%Vor%Und der Compiler (ich benutze VS2010) gibt mir die folgende Ausgabe:
%Vor% Auch wenn Sie die make_unique
Implementierung zu den folgenden ersetzen
(das stammt aus diesem Beispiel), kompiliert und funktioniert gut.
Kann mir jemand sagen, wo ist das Problem? Es scheint mir, dass VS2010 Probleme mit ...
in der Vorlage-Deklaration hat, und ich weiß nicht, was ich dagegen tun kann.
Variadic-Vorlagen sind in der freigegebenen Version von Visual C ++ 11 nicht verfügbar. Sie können jedoch die Argument-Erweiterung mit einer beliebigen Anzahl von Copy / Paste-Codes für verschiedene Parameter simulieren oder die gleichen Compiler-Tricks verwenden wie in Microsoft eigene Implementierung von "Pseudo-Variadics". Von diesem Kommentar auf Herb Sutters Blog: Ссылка
%Vor%Laut MSDN werden variadische Vorlagen in Visual C ++ 2010 oder 2012 nicht unterstützt .
Tags und Links c++ visual-studio-2010 c++11 visual-c++ variadic-templates