P:\VS15\VC\Tools\MSVC\14.12.25827\include\xmemory0(945): error C2280: 'std::pair::pair(const std::pair &)': attempting to reference a deleted function with [ _Kty=std::string, _Ty=std::unique_ptr> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\utility(135): note: see declaration of 'std::pair::pair' with [ _Kty=std::string, _Ty=std::unique_ptr> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\list(1255): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,const std::pair>>&>(_Alloc &,_Objty *const ,const std::pair>> &)' being compiled with [ _Alloc=std::allocator>>,std::_Default_allocator_traits>>>>::void_pointer>>, _Ty=std::pair>>, _Kty=std::string, _Objty=std::pair>> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\list(1253): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,const std::pair>>&>(_Alloc &,_Objty *const ,const std::pair>> &)' being compiled with [ _Alloc=std::allocator>>,std::_Default_allocator_traits>>>>::void_pointer>>, _Ty=std::pair>>, _Kty=std::string, _Objty=std::pair>> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\list(1237): note: see reference to function template instantiation 'void std::list,std::allocator>>::_Reusenode&>(std::_List_iterator>>>,_TArg)' being compiled with [ _Kty=std::string, _Ty=std::unique_ptr>, _TArg=const std::pair>> & ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\list(1237): note: see reference to function template instantiation 'void std::list,std::allocator>>::_Reusenode&>(std::_List_iterator>>>,_TArg)' being compiled with [ _Kty=std::string, _Ty=std::unique_ptr>, _TArg=const std::pair>> & ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\list(1047): note: see reference to function template instantiation 'void std::list,std::allocator>>::assign>>>,void>(_Iter,_Iter)' being compiled with [ _Kty=std::string, _Ty=std::unique_ptr>, _Iter=std::_List_const_iterator>>>>> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\list(1047): note: see reference to function template instantiation 'void std::list,std::allocator>>::assign>>>,void>(_Iter,_Iter)' being compiled with [ _Kty=std::string, _Ty=std::unique_ptr>, _Iter=std::_List_const_iterator>>>>> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\list(1033): note: while compiling class template member function 'std::list,std::allocator>> &std::list,std::allocator>>::operator =(const std::list,std::allocator>> &)' with [ _Kty=std::string, _Ty=std::unique_ptr> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\xhash(317): note: see reference to function template instantiation 'std::list,std::allocator>> &std::list,std::allocator>>::operator =(const std::list,std::allocator>> &)' being compiled with [ _Kty=std::string, _Ty=std::unique_ptr> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\xhash(169): note: see reference to class template instantiation 'std::list,std::allocator>>' being compiled with [ _Kty=std::string, _Ty=std::unique_ptr> ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\unordered_map(92): note: see reference to class template instantiation 'std::_Hash,_Alloc,false>>' being compiled with [ _Kty=std::string, _Ty=std::unique_ptr>, _Hasher=std::hash, _Keyeq=std::equal_to, _Alloc=std::allocator>>> ] .\src\hlslparser.hpp(565): note: see reference to class template instantiation 'std::unordered_map>,std::hash<_Kty>,std::equal_to<_Kty>,std::allocator>>>>' being compiled with [ _Ty=ASTFunction, _Kty=std::string ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\utility(135): note: 'std::pair::pair(const std::pair &)': function was implicitly deleted because a data member invokes a deleted or inaccessible function 'std::unique_ptr>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)' with [ _Kty=std::string, _Ty=std::unique_ptr> ] and [ _Ty=ASTFunction ] P:\VS15\VC\Tools\MSVC\14.12.25827\include\memory(2380): note: 'std::unique_ptr>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': function was explicitly deleted with [ _Ty=ASTFunction ]