Rozważmy następujący wiersz kodu:Czy std :: make_unique może być używany z interfejsem abstrakcyjnym?
auto source1 = std::unique_ptr<IGpsSource>(new GpsDevice(comPort, baudrate));
auto source2 = std::unique_ptr<IGpsSource>(new GpsLog(filename));
Jak to może być napisany przy użyciu nowej funkcji std :: make_unique, obsługiwanej przez VS 2013? Czy to w ogóle możliwe? *
* Problem polega na tym, że nie wiem, jak powiedzieć "make_unique", jaki rodzaj obiektu można utworzyć. Ponieważ tylko parametry konstruktora są przekazywane, wydaje się, że nie ma kontroli nad tym ...
Czy to nie C++ 14? Myślałem, że VS2013 go nie obsługuje –
@MarcoA. VS2013 obsługuje kilka bitów C++ 14, a 'make_unique' jest jednym z nich. – Angew
@Angew Nie wiedziałem tego. Dzięki! –