Articles of c ++ 11

使用ADT / Eclipse为NDK设置C ++ 11(std :: thread)

我一直在尝试使用C ++ 11。 我正在开发一个Android项目,我想使用std :: mutex。 随着OpenCV但是不pipe我做什么,我似乎无法修复Type 'mutex' could not be resolved错误。 我试着按照我在SO和其他地方find的教程。 LINK1 LINK2 LINK3 LINK4 ADT v22.3.0-887826 安装的C / C ++编译器(CDT) 经过这么多的教程,现在已经成为一个真正的混乱。 所以我会解释我目前的设置 项目>属性> C / C ++ Build>工具链编辑器 目前的工具链是“Cross GCC” 当前的Builder是“Android Builder” 项目>属性> C / C ++构build>发现选项 编译器调用命令是“gcc” Compilter调用参数是-E -P -v -dD“$ {plugin_state_location} /specs.c -std = c ++ 11” 项目> C / […]

在SQLite中search时排除HTML标记和一些UNICODE字符

更新#4 我已经成功运行了firstchar示例,但现在问题是使用regex 。 即使在包含头文件之后,它也不识别regex运算符。 任何线索如何解决? 更新#2 我在我的项目中编译sqlite3库。 我现在正在寻找任何人来帮我写一个函数为我的regex ,附加到数据库,并从查询调用它。 更新#3 我从这个例子中写了一些代码。 这里是 extern "C" void Java_com_kfmwa916_testapp_DatabaseHandler_createFunction() { sqlite3 *db; //Open database sqlite3_open("MyDBName.db", &db); //Attach function to database sqlite3_create_function(db, "firstchar", 1, SQLITE_UTF8, NULL, &firstchar, NULL, NULL); } 而且firstcharfunction是, static void firstchar(sqlite3_context *context, int argc, sqlite3_value **argv) { if (argc == 1) { char *text = (char […]

C + + 11 cmath函数不在标准命名空间的Android NDK w / gcc-4.8或铿锵3.4

在C ++ 11之后,当包含<cmath>头部时,先前在全局名称空间中的各种cmath函数将被移至std名称空间。 然而,Android NDK构build与这个问题,与gcc-4.8和clang-3.4工具链。 正确指定了C++11标志,因为像unique_ptr这样的其他c ++ 11细节工作正常。 如果我试图使用std::round或std::cbrt ,编译器说这些不存在于std:: namespace中,他们应该[1]。 它们存在于全局命名空间中,但我不想使用它们。 这是一个已知的问题? 我忽略了什么? 有解决方法吗? [1] http://en.cppreference.com/w/cpp/header/cmath 使用gcc-4.8.1,桌面版本没有这个问题,并且我使用gcc警告来完全用-Wall -Wextra -Wcast-align -Wcast-qual -fpermissive -Wconversion -Wdisabled-optimization -Weffc++ -Wfloat-equal -Wformat=2 -Wimport -Winit-self -Winline -Winvalid-pch -Wlong-long -Wmissing-format-attribute -Wmissing-include-dirs -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wshadow -Wstack-protector -Wstrict-aliasing=2 -Wunreachable-code -Wunsafe-loop-optimizations -Wunused -Wvariadic-macros -Wwrite-strings -pedantic -pedantic-errors -Woverloaded-virtual -Wswitch-enum -Werror 相关的构build命令,其荣耀: /opt/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -MMD -MP […]

如何启用Android Studio的C ++ 11?

我正在使用Android Studio 1.3.2 + ndk-r11b-windows-x86_64并尝试使用本机代码和C ++ 11function(share_ptr,weak_ptr等)来构build项目,但出现了一些错误。 例如: 错误:(22,6)错误:名称空间“std”中的“shared_ptr”未命名模板types 问题是:如何在Android Studio + NDK中使用C ++ 11? PS我把标志cppFlags.add ("-std=c++11")到“build.gradle” android.ndk { moduleName = "game" cppFlags.addAll(["-I${file("src/main/jni/native_app_glue")}".toString(), "-I${file("src/main/jni")}".toString(), "-I${file("src/main/jni/data")}".toString()]) cppFlags.add ("-std=c++11") ldLibs.addAll(["android", "EGL", "GLESv2", "OpenSLES", "log"]) stl = "stlport_static" } 但似乎没有工作。

用clang而不是gcc构buildandroid? 和铛stl lib而不是gnustl lib?

我试图build立一个Android ndk应用程序使用铿锵而不是海湾合作委员会,知道我已经尝试在Android.mk NDK_TOOLCHAIN_VERSION := clang LOCAL_CLANG :=true LOCAL_LDLIBS := -lc++_static LOCAL_CFLAGS := -std=c++11 并在Application.mk中 APP_PLATFORM := android-9 APP_STL := libc++_static APP_CPPFLAGS := -fexceptions -frtti APP_ABI := armeabi-v7a 但它总是给我链接错误与std库。 任何帮助表示赞赏!

获取错误:名称空间“std”中的“shared_ptr”未命名types

我想在android studio(ndk r10d)中使用一些C ++代码编译一个android应用程序。 我需要C ++ 11,所以我添加了-std=gnu++11 (我需要gnu++11而不是c++11 )。 我正在使用stlport stl,由于我正在使用其他库,使用这个stl库。 所以我在build.gradle文件中的cFlags和stl参数如下所示: stl "stlport_static" cFlags " mylib1.a mylib2.a … -fexceptions -frtti -std=gnu++11" 我也有内存: #include <memory> 当试图编译我收到此错误: 'shared_ptr' in namespace 'std' does not name a type 直到现在,我一直在使用智能指针的boost实现,但随着迁移到c + + 11我宁愿使用标准的实现。

Android NDK的最新C ++ 11function

我正在尝试使用Android NDK的C ++ 11线程工具,但不知道如何使它使用最新的编译器。 我有Clang 3.2,可以构buildiOS应用程序。 我不知道有没有办法与Android NDK做到这一点? 如果没有,那么我应该如何使用gcc 4.8来编译?

如何在Android中使用std :: stoul和std :: stoull?

C ++ 11将两个新的string转换函数转换为unsigned long long long : std::stoul()和std::stoll() 。 最近的Android NDK r9引入了Clang 3.3编译器,它被称为C ++ 11function完整。 NDK里面有这些函数的原型,但是我不能使用它们。 我需要做些什么来使用它们? PS我已经做了LOCAL_CPPFLAGS += -std=c++11

在Android上启用C ++ 11支持

我如何将C ++ 11集成到Android?

GCC在-std = gnu ++ 0x和-std = c ++ 0x之间有什么区别,应该使用哪一个?

当在GCC 4.4.3(for Android)中使用-std=c++0x时,我遇到<stdint.h>问题: // using -std=c++0x #include <stdint.h> uint64_t value; // error: 'uint64_t' does not name a type 但使用-std=gnu++0x工作: // using -std=gnu++0x #include <stdint.h> uint64_t value; // OK 是否<stdint.h>与C ++ 0x不兼容?