У нас есть .mm файл включает < функциональный> (заголовок std) и сообщает об ошибке:
In file included from
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/mutex:177:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1672:1: error: cannot declare a class template with no name
class __bind
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1742:35: error: expected expression
struct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {};
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1742:36: error: '_Fp' does not refer to a value
struct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {};
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1741:16: note: declared here
template<class _Fp, class ..._BoundArgs>
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:20: error: expected class name
: public __bind<_Fp, _BoundArgs...>
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:39: error: expected '{' after base class list
: public __bind<_Fp, _BoundArgs...>
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:39: error: expected ';' after class
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:39: error: expected unqualified-id
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1806:23: error: expected '>'
__bind<_Fp, _BoundArgs...>
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1806:26: error: expected unqualified-id
__bind<_Fp, _BoundArgs...>
Командная строка
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang \
-x objective-c++ -arch armv7 -fmessage-length=0 -std=c++11 -stdlib=libc++ -fobjc-arc \
-Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers \
-Wno-missing-prototypes -Wreturn-type -Wno-implicit-atomic-properties \
-Wno-receiver-is-weak -Wno-non-virtual-dtor -Wno-overloaded-virtual \
-Wno-exit-time-destructors -Wformat -Wno-missing-braces -Wparentheses \
-Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter \
-Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized \
-Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion \
-Wno-constant-conversion -Wno-int-conversion -Wno-enum-conversion \
-Wno-shorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match \
-Wno-undeclared-selector -Wno-deprecated-implementations -Wno-c++11-extensions ...
Есть ли обходные пути?
Такие ошибки, как правило, не вызваны <functional>
иначе весь мир сообщит о них. Гораздо более вероятной причиной является то, что один из ваших заголовков сделал что-то, чего не должен делать, что впоследствии вызвало проблемы. Например. #define __bind
будет производить именно ту ошибку, которую мы видим здесь, и, очевидно, является незаконной.
Других решений пока нет …