- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将我的办公室代码从 C++ 迁移到 C++11,我们大量使用 STLPorts。
有一个编译器宏 (http://www.stlport.org/doc/configure.html) - _STLP_LONG_LONG,它在我们的代码中使用并且在 C++ 中运行良好。
但是,在 C++ 11 中,这没有定义。
#if defined (_STLP_LONG_LONG)
// Doesn't come here
我该如何解决这个问题?我尝试在互联网上搜索,但资源非常有限。
编辑:这是代码
# if defined (_STLP_MSVC) || defined (__BORLANDC__) || defined (__ICL)
# define ULL(x) x##Ui64
typedef unsigned _STLP_LONG_LONG uint64;
# elif defined (_STLP_LONG_LONG) /// <---- Here
typedef unsigned _STLP_LONG_LONG uint64;
# define ULL(x) x##ULL
# elif defined(__MRC__) || defined(__SC__) //*TY 02/25/2000 - added support for MPW compilers
# include "uint64.h" //*TY 03/25/2000 - added 64bit math type definition
# else
# error "there should be some long long type on the system!"
# define NUMERIC_NO_64 1
# endif
据我所知,代码试图为给定平台找到一个 long long 类型。如果是 linux 上的 C++11 之前的版本,g++ 会转到指定的行。但是当我执行 g++ -std=c++11 ... 时,g++ 跳过这一行并出现错误“系统上应该有 song long long 类型!”
最佳答案
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
来检查您是否可以使用它。
编辑:对于您的定义,如果您需要 64 位宽的类型,您可能应该使用 std::int64_t
而不是 long long
,如 long long
在技术上可以比 64 位更宽。
关于c++ - 使用 C++11 的 STLPort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52959103/
我浏览了很多关于 Android NDK 和 STLport 的资料。我有复杂的应用程序,java+ native 代码,它加载 STLport(一个 c++ 标准库端口)。原始代码库在项目“jni”
STLPort 是否通过引用计数机制实现字符串? 最佳答案 According to the source, no. 关于c++ - STLPort 的字符串实现是否使用引用计数?,我们在Stack
我正在用 C++ 开发一个内核。但是我不想写一个stdlib;为此,我下载了 STLport http://www.stlport.org/ , 但我不知道如何安装和使用它。 我正在使用 Linux
我试图在我的项目中使用 STLPort,当我按照 INSTALL.unixes 中的说明进行操作时,我遇到了编译错误。 我运行了./configure,然后是make,输出如下。我在 Ubuntu 上
我看到有人在 Visual C++ 中使用 STLport,但我认为标准 C++ 库已经包含在 Visual C++ 中了?使用 STLport 有什么好处? STLport 是免费的吗? 最佳答案
我正在尝试使用 android NDK rev8b 编译原生库(源自 WebRTC)。我收到以下错误: android_ndk/android-ndk-r8b/toolchains/arm-linux
我正在尝试使用 froyo 源中的 STLport 版本做一些工作。我得到了 stlport/stlport/stl/_alloc.h:158: undefined reference to `st
我正在使用 MSVC 7.1 在 Windows 上使用 STLport 5.2.1 构建 boost 1.48.0,这是我运行的命令行: b2 toolset=msvc link=shared th
是否可以在托管 C++ DLL 中使用 STLport? 在我的项目中,我从 STLport 内容的链接器中收到了几个“ Unresolved token ”错误。例如。: 1>moc_ParentW
根据 STLPort 编译我的项目时出现一些奇怪的构建错误。很奇怪,因为项目运行得很好(而且快 20-30%),尽管您认为构建错误是致命的。 谁能告诉我我做错了什么以及如何闭嘴? Linking...
我在 Windows 下的性能关键 C++ 代码中使用了相当多的 STL。获得一些额外性能的一种可能的“廉价”方法是更改为更快的 STL 库。 据此post STLport 速度更快,使用的内存更
我尝试编译基本示例: #include int main () { std::vector testV; for (const auto& test : testV) {
我正在尝试将我的办公室代码从 C++ 迁移到 C++11,我们大量使用 STLPorts。 有一个编译器宏 (http://www.stlport.org/doc/configure.html) -
当我在 Darwin 上运行 STLport 时,我遇到了一个奇怪的崩溃。 (除了在 Mac 上没有在其他任何地方看到它,但是在 i686 和 PowerPC 上完全相同的东西崩溃了。)这就是它在 g
我们编写了一个智能指针类,并在内置的 Visual Studio STL 实现中使用它并取得了巨大成功。 问题是我们已经意识到我们的性能瓶颈在从 Linux 移植的代码中的 STL 库中(STL 比我
最近,我被以下问题困扰STL std::string class causes crashes and memory corruption on multi-processor machines在使用
我正在尝试为 Android 构建 STLport。我执行了以下步骤,但它们不起作用: 1 - 使用以下方法克隆 STLport 存储库: git clone git://STLport.git.so
我正在尝试在 Snow Leopard 下构建最新版本的 STLprot。 编译步骤: ./configure sudo make && make check make && make check 工
我使用的是 Android 2.2,它带有一个 STLport 版本。由于某种原因,它被配置为非线程安全的。这是在配置头文件中使用#define _NOTHREADS 完成的。 当我从不同的 pthr
我正在使用 Android NDK,由于它目前不支持 STL,我想知道是否有任何优秀的人在这方面取得了成功,或者知道哪个更适合 Android 平台:uSTL 或STL端口。 编辑: 看起来另一个选项
我是一名优秀的程序员,十分优秀!