Creating a unique_ptr and passing it into a function/method causes the linker errors:error LNK2028: unresolved token (0A00007C) "private: __thiscall std::unique_ptr<int,struct std::default_delete<int> >::unique_ptr<int,struct std::default_delete<int> >(class std::unique_ptr<int,struct std::default_delete<int> > const &)" (??0?$unique_ptr@HU?$default_delete@H@std@@@std@@$$FAAE@ABV01@@Z) referenced in function "public: static void __clrcall std::unique_ptr<int,struct std::default_delete<int> >::<MarshalCopy>(class std::unique_ptr<int,struct std::default_delete<int> > *,class std::unique_ptr<int,struct std::default_delete<int> > *)" (?<MarshalCopy>@?$unique_ptr@HU?$default_delete@H@std@@@std@@$$FSMXPAV12@0@Z)error LNK2019: unresolved external symbol "private: __thiscall std::unique_ptr<int,struct std::default_delete<int> >::unique_ptr<int,struct std::default_delete<int> >(class std::unique_ptr<int,struct std::default_delete<int> > const &)" (??0?$unique_ptr@HU?$default_delete@H@std@@@std@@$$FAAE@ABV01@@Z) referenced in function "public: static void __clrcall std::unique_ptr<int,struct std::default_delete<int> >::<MarshalCopy>(class std::unique_ptr<int,struct std::default_delete<int> > *,class std::unique_ptr<int,struct std::default_delete<int> > *)" (?<MarshalCopy>@?$unique_ptr@HU?$default_delete@H@std@@@std@@$$FSMXPAV12@0@Z)This does not occur in my example project in a normal non-CLI build. These errors are from Visual Studio 2010, but I have tested in Visual Studio 2012 express, and the same errors occur. I have tried using pragma managed on/off and only using the unique_ptr's in the unmanaged functions, without success.
Visual Studio/Team Foundation Server/.NET Framework Tooling Version
Steps to reproduce
Product Language
Operating System
Operating System Language
Actual results
Expected results