Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building failure on Win10+VS2019 #609

Closed
zhangybzbo opened this issue Jun 13, 2020 · 2 comments
Closed

Building failure on Win10+VS2019 #609

zhangybzbo opened this issue Jun 13, 2020 · 2 comments

Comments

@zhangybzbo
Copy link

zhangybzbo commented Jun 13, 2020

When trying to build on Windows10+VS2019 environment, I got tons of errors regarding the file ".\include\mpark\variant.hpp".

Here is a snippet of the error message. Does anyone have any idea of how to solve the issue?
(and hope you don't mind that my system is in Chinese)

C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,29): error C3546: “...”: 没有可用于扩展的参数包 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(969): message : 查看对正在编译的函数 模板 实例化“mpark::detail::Trait mpark::detail::common_trait<mpark::detail::Trait,mpark::detail::Trait,mpark
::detail::Trait,mpark::detail::Trait>(mpark::detail::Trait,mpark::detail::Trait,mpark::detail::Trait,mpark::detail::Trait)”的引用 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1758): message : 查看对正在编译的 类 模板 实例化“mpark::detail::traits<pangolin::Image,pangolin::Image<uint32_t>,pangolin::Image<uint16_t>,pangolin::Image>”的引用 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(2057): message : 查看对正在编译的 类 模板 实例化“mpark::detail::impl<pangolin::Image,pangolin::Image<uint32_t>,pangolin::Image<uint16_t>,
pangolin::Image>”的引用 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]
C:\Program Files (x86)\Pangolin\src\geometry\geometry.cpp(55): message : 查看对正在编译的 类 模板 实例化“mpark::variant<pangolin::Image,pangolin::Image<uint32_t>,pangolin::Image<uint16_t>,pangoli
n::Image>”的引用 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,23): error C2955: “mpark::detail::traits”: 使用 类 模板 需要 模板 参数列表 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(965): message : 参见“mpark::detail::traits”的声明 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,22): error C2119: "$L0": 无法从空的初始值设定项推导 "auto &&" 的类型 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,22): error C2672: “begin”: 未找到匹配的重载函数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): error C2893: 未能使函数模板“unknown-type std::begin(_Container &)”专用化 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\include\xutility(1961): message : 参见“std::begin”的声明 [C:\Program Files (x86)\Pangolin\build\src\pa
ngolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): message : 用下列模板参数: [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): message : “_Container=int” [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): error C2784: “const _Elem *std::begin(std::initializer_list<_Elem>) noexcept”: 未能从“int”为“std::initializer_list<_Elem>”推导 模
板 参数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\include\initializer_list(57): message : 参见“std::begin”的声明 [C:\Program Files (x86)\Pangolin\build
src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,22): error C2672: “end”: 未找到匹配的重载函数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): error C2893: 未能使函数模板“unknown-type std::end(_Container &)”专用化 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\include\xutility(1971): message : 参见“std::end”的声明 [C:\Program Files (x86)\Pangolin\build\src\pang
olin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): message : 用下列模板参数: [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): message : “_Container=int” [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): error C2784: “const _Elem *std::end(std::initializer_list<_Elem>) noexcept”: 未能从“int”为“std::initializer_list<Elem>”推导 模板
参数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\include\initializer_list(63): message : 参见“std::end”的声明 [C:\Program Files (x86)\Pangolin\build\sr
c\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): error C3536: “$L0”: 初始化之前无法使用 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): error C3536: “$L0”: 初始化之前无法使用 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,33): error C2100: 非法的间接寻址 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,1): error C2440: “初始化”: 无法从“int”转换为“mpark::detail::Trait” [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,33): message : 强制转换为枚举类型要求显式强制转换(static_cast、C 样式强制转换或函数样式强制转换) [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(967,23): error C2131: 表达式的计算结果不是常数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,22): message : 遇到非常量(子)表达式 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(972,23): error C2131: 表达式的计算结果不是常数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,22): message : 遇到非常量(子)表达式 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(977,23): error C2131: 表达式的计算结果不是常数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(977,24): message : 读取未初始化符号导致失败 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(977,24): message : 请参见“copy_constructible_trait”的用法 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(983,23): error C2131: 表达式的计算结果不是常数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(983,24): message : 读取未初始化符号导致失败 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(983,24): message : 请参见“move_constructible_trait”的用法 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(989,23): error C2131: 表达式的计算结果不是常数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(939,22): message : 遇到非常量(子)表达式 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1758,25): error C2976: “mpark::detail::copy_assignment”: 模板 参数太少 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1721): message : 参见“mpark::detail::copy_assignment”的声明 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1758,56): error C2504: “mpark::detail::copy_assignment<mpark::detail::traits<pangolin::Image,pangolin::Image<uint32_t>,pang
olin::Image<uint16_t>,pangolin::Image>,copy_assignable_trait>”: 未定义基类 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1762,7): error C2027: 使用了未定义类型“mpark::detail::copy_assignment<mpark::detail::traits<pangolin::Image,pangolin::Image<uint32

t>,pangolin::Image<uint16_t>,pangolin::Image>,copy_assignable_trait>” [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1758): message : 参见“mpark::detail::copy_assignment<mpark::detail::traits<pangolin::Image,pangolin::Image<uint32_t>,pangolin
::Image<uint16_t>,pangolin::Image>,copy_assignable_trait>”的声明 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1762,7): error C3881: 只能从直接基继承构造函数 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1763,20): error C2027: 使用了未定义类型“mpark::detail::copy_assignment<mpark::detail::traits<pangolin::Image,pangolin::Image,pangolin::Image<uint16_t>,pangolin::Image>,copy_assignable_trait>” [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]
C:\Program Files (x86)\Pangolin\include\mpark\variant.hpp(1758): message : 参见“mpark::detail::copy_assignment<mpark::detail::traits<pangolin::Image,pangolin::Image<uint32_t>,pangolin
::Image<uint16_t>,pangolin::Image>,copy_assignable_trait>”的声明 [C:\Program Files (x86)\Pangolin\build\src\pangolin.vcxproj]
with
[
T=unsigned char
]

@Lishen1
Copy link

Lishen1 commented Jun 17, 2020

problem in include\mpark\variant.hpp
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201304
#define MPARK_CPP14_CONSTEXPR
#endif

to work around this problem just comment #define MPARK_CPP14_CONSTEXPR line

@zhangybzbo
Copy link
Author

Thanks, @Lishen1, the solution solves the problem!

problem in include\mpark\variant.hpp
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201304
#define MPARK_CPP14_CONSTEXPR
#endif

to work around this problem just comment #define MPARK_CPP14_CONSTEXPR line

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants