关于vs提示warning导致error的问题,有如下解决方案:
-
在vs的属性面板中-c+±常规-将警告视为错误改为否
-
在代码警告的地方,使用
#pragma warning(push)
#pragma warning(disable : 4702)//异常代码片段
#pragma warning(pop)
-
解决warning 4702 通常是代码无法访问导致的问题
template<typename T> EIGEN_DEVICE_FUNC inline T* construct_elements_of_array(T *ptr, std::size_t size) { std::size_t i; EIGEN_TRY { for (i = 0; i < size; ++i) ::new (ptr + i) T; return ptr; } EIGEN_CATCH(...) { destruct_elements_of_array(ptr, i); EIGEN_THROW; } return NULL; }
这段代码中return NULL;不会被访问到,所以出现了警告