【发布时间】:2019-11-12 19:05:46
【问题描述】:
在 Visual Studio 中使用 (Debug/x64) 编译期间出现以下错误。
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(78): error C2039: 'binder2nd': is not a member of 'std'
1> c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/arch/CUDA/Half.h(614): note: see declaration of 'std'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(78): error C2065: 'binder2nd': undeclared identifier
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(78): error C2974: 'Eigen::internal::functor_traits': invalid template argument for 'T', type expected
1> c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/util/XprHelper.h(147): note: see declaration of 'Eigen::internal::functor_traits'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(78): error C2988: unrecognizable template declaration/definition
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(78): error C2143: syntax error: missing ';' before '>'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(78): error C2059: syntax error: '>'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(79): error C2143: syntax error: missing ';' before '{'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(79): error C2447: '{': missing function header (old-style formal list?)
1>c:\users\ui2\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(82): error C2039: 'binder1st': is not a member of 'std'
1> c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/arch/CUDA/Half.h(614): note: see declaration of 'std'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(82): error C2065: 'binder1st': undeclared identifier
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(82): error C2974: 'Eigen::internal::functor_traits': invalid template argument for 'T', type expected
1> c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(78): note: see declaration of 'Eigen::internal::functor_traits'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(82): error C2988: unrecognizable template declaration/definition
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(82): error C2143: syntax error: missing ';' before '>'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(82): error C2059: syntax error: '>'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(83): error C2143: syntax error: missing ';' before '{'
1>c:\users\ui\desktop\eigen-eigen-323c052e1731\eigen\src/Core/functors/StlFunctors.h(83): error C2447: '{': missing function header (old-style formal list?)
1>CCalcInverse.cpp(94): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
我只包含来自 Eigen 的头文件并编译。
【问题讨论】:
-
如果你放了一些导致这个错误的代码,人们会感激的。 :)
-
您使用什么 MSVC 版本?宏
__cplusplus和_MSC_VER的值是多少? -
感谢您的反应。我使用 Visual Studio 2015。但我没有代码。我只有以下内容:#include
#include #include -
__cplusplus = 199711L ; _MSC_VER = 1900
-
如果您在包含 Eigen 之前手动
#include <functional>是否编译?使用 c++98,binder2nd应该仍然存在。
标签: eigen