Hey there,

I am trying to build V8 version 8.7 on Windows using Visual Studio 
Professional 2019, but I'm getting compile errors due to what appears to be 
missing move semantics for an std::unique_ptr:

1>  ninja -t msvc -e environment.x64 -- "C:\Program Files (x86)\Microsoft 
Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64/cl.exe" 
/nologo /showIncludes -DUSE_AURA=1 -D_HAS_EXCEPTIONS=0 -DCOMPONENT_BUILD 
-D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE 
-D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS 
-DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL 
-DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX 
-D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_VB -D_WIN32_WINNT=0x0A00 
-DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 
-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DENABLE_MINOR_MC -DV8_INTL_SUPPORT 
-DENABLE_HANDLE_ZAPPING -DV8_USE_EXTERNAL_STARTUP_DATA 
-DV8_ATOMIC_OBJECT_FIELD_WRITES -DV8_ATOMIC_MARKING_STATE 
-DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_WIN64_UNWINDING_INFO 
-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_SNAPSHOT_COMPRESSION 
-DV8_GN_HEADER -DV8_GN_HEADER -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS 
-DV8_TARGET_OS_WIN -DDISABLE_UNTRUSTED_CODE_MITIGATIONS 
-DBUILDING_V8_SHARED -DV8_GN_HEADER -DV8_GN_HEADER -DUSING_V8_BASE_SHARED 
-DUSING_V8_PLATFORM_SHARED -DV8_GN_HEADER -DV8_GN_HEADER 
-DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 
-DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 
-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=wchar_t -I../.. -Igen 
-I../.. -I../../include -Igen -Igen/include -Igen/include -I../../include 
-I../../include -Igen/include -I../../third_party/icu/source/common 
-I../../third_party/icu/source/i18n -I../../include 
-I../../third_party/zlib /Gy /FS /bigobj /utf-8 /Zc:sizedDealloc- /wd4117 
/D__DATE__= /D__TIME__= /D__TIMESTAMP__= /W4 /WX /wd4091 /wd4127 /wd4251 
/wd4275 /wd4312 /wd4324 /wd4351 /wd4355 /wd4503 /wd4589 /wd4611 /wd4100 
/wd4121 /wd4244 /wd4505 /wd4510 /wd4512 /wd4610 /wd4838 /wd4995 /wd4996 
/wd4456 /wd4457 /wd4458 /wd4459 /wd4200 /wd4201 /wd4204 /wd4221 /wd4245 
/wd4267 /wd4305 /wd4389 /wd4702 /wd4701 /wd4703 /wd4661 /wd4706 /wd4715 /Zi 
/MD /wd4245 /wd4267 /wd4324 /wd4701 /wd4702 /wd4703 /wd4709 /wd4714 /wd4715 
/wd4718 /wd4723 /wd4724 /wd4800 /wd5205 /wd4506 /O2 /Ob2 /Oy- /Zc:inline 
/Gw /TP /wd4577 /GR- /c ../../src/api/api.cc 
/Foobj/v8_base_without_compiler/api.obj 
/Fd"obj/v8_base_without_compiler_cc.pdb"
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\xutility(4142): 
error C2280: 
'std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
&std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>::operator
 
=(const 
std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
&)': attempting to reference a deleted function
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\memory(2552): 
note: see declaration of 
'std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>::operator
 
='
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\memory(2552): 
note: 
'std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
&std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>::operator
 
=(const 
std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
&)': function was explicitly deleted
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\vector(1127): 
note: see reference to function template instantiation '_OutIt 
*std::_Copy_unchecked<_Iter,std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>*>(_InIt,_InIt,_OutIt)'
 
being compiled
1>          with
1>          [
1>              
_OutIt=std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
*,
1>              
_Iter=std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
*,
1>              
_InIt=std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
*
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\vector(1142): 
note: see reference to function template instantiation 'void 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>::_Assign_range<_Iter>(_Iter,_Iter,std::forward_iterator_tag)'
 
being compiled
1>          with
1>          [
1>              
_Iter=std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
*
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\vector(1142): 
note: see reference to function template instantiation 'void 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>::_Assign_range<_Iter>(_Iter,_Iter,std::forward_iterator_tag)'
 
being compiled
1>          with
1>          [
1>              
_Iter=std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
*
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\vector(1153): 
note: see reference to function template instantiation 'void 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>::assign<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>*,0>(_Iter,_Iter)'
 
being compiled
1>          with
1>          [
1>              
_Iter=std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
*
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\vector(1153): 
note: see reference to function template instantiation 'void 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>::assign<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>*,0>(_Iter,_Iter)'
 
being compiled
1>          with
1>          [
1>              
_Iter=std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>
 
*
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\vector(1150): 
note: while compiling class template member function 'void 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>::_Copy_assign(const
 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>
 
&,std::false_type)'
1>  C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\vector(1169): 
note: see reference to function template instantiation 'void 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>::_Copy_assign(const
 
std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>
 
&,std::false_type)' being compiled
1>  C:\Users\quintenlansu\Documents\google\v8\include\cppgc/heap.h(124): 
note: see reference to class template instantiation 
'std::vector<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>,std::allocator<std::unique_ptr<cppgc::CustomSpaceBase,std::default_delete<cppgc::CustomSpaceBase>>>>'
 
being compiled

I am using the following generation settings:

gn gen out.gn/x64.release --ide=vs2019 --args="is_debug=false 
is_component_build=true v8_static_library=false is_clang=false 
use_custom_libcxx=false target_cpu=\"x64\""

The class that is throwing errors looks like this:

/**
* Top-level base class for custom spaces. Users must inherit from 
CustomSpace
* below.
*/
class CustomSpaceBase {
public:
  virtual ~CustomSpaceBase() = default;
  virtual CustomSpaceIndex GetCustomSpaceIndex() const = 0;
  virtual bool IsCompactable() const = 0;
};

I have tried applying the rule-of-five to the class, to no avail. 

The project I'm working on requires a specific version of Visual Studio 
Professional 2019, which is 16.7.7. I'm not sure if that is related to my 
issues, but it will not be possible for me to upgrade to a newer version of 
the IDE.

I have tried to isolate the compilation issue, but I'm not sure where the 
offending copy actually occurs. I will continue to investigate the issue 
myself and will update the thread with a pull request if I have a fix. But 
obviously I am hoping that I have overlooked something extremely obvious 
that will resolve my issues straight away. :)

Best regards,

Quinten Lansu

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/6877bc6d-0e5f-47aa-9bdc-ba6d1192b19an%40googlegroups.com.

Reply via email to