Похоже, что STLPorts не поддерживает C ++ 11.
Если ваш код требует C ++ 11, то вам вообще не нужно использовать _STLP_LONG_LONG
, так как long long
стандарт.
Если ваш код должен работать и в более старом C ++, вы можете определить свой собственный макрос, который работает с C ++ 11, как и следовало ожидать:
#if __cplusplus >= 201103L
#define MY_LONG_LONG long long
#elif defined(_STLP_LONG_LONG)
#define MY_LONG_LONG _STLP_LONG_LONG
#endif
Конечно, если ваш код должен работать в стандарте, предшествующем C ++ 11, то вам также может понадобиться обработать ситуацию, когда компилятор не предоставляет расширение long long
-язык, т.е. используйте #ifdef MY_LONG_LONG
, чтобы проверить, можете ли вы использоватьit.
EDIT: для вашего определения вам, вероятно, следует использовать std::int64_t
вместо long long
, если вам нужен тип шириной 64 бита, поскольку технически long long
может быть шире 64 бит.