c++ - NDK '^' token 之前的预期不合格 ID

标签 c++ android-ndk block

我是 NDK 的新手,也是 JAVA 的新手,所以请多多包涵。 我有 c++ 文件,我想通过 NDK build.gradle 构建它。我的 build.gradle 文件中有以下内容:

 defaultConfig {
        applicationId "com.example.blabla.blabla"
        minSdkVersion 21
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        ndk {
            moduleName "test"
            cFlags "-std=c++11 -fexceptions"
            stl "gnustl_shared"
        }
    }

我在 local.properties 中有这一行:

ndk.dir= pathToMyNDK/AndroidStudio/ndk

在我的一个 C++ 文件中,我有一个这样的 block 定义:

typedef void (^ABCD)(string, string);

和一个接受该类型参数的函数:

void generateAlphabetLetters(ABCD alph){}

当我尝试使用 NDK 构建文件时,出现以下无法解决的错误: '^' 标记前的预期不合格 id

最佳答案

正如编译器告诉您的那样,这是一个语法错误。

typedef void (^ABCD)(string, string);

不是有效的 C++。

您在标准 C++ 中有 lambda。

关于c++ - NDK '^' token 之前的预期不合格 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31510131/

相关文章:

c++ - 如何不覆盖文件,C++ 日志记录

c++ - * 这里定义什么?

android - 尽管有 -fPIC,但文本重定位?

ios - 类方法 block 上的保留循环

python - 如何在 Blocks(Theano、Python)中使用 SquaredError 砖 block ?

c++ - size_t 和 SIZE_T : is there any point to care?

c++ - 将自定义类添加到 Qt 项目

sockets - android NDK 是否支持 socket epoll 模式?

android - Android NDK音频回调

ios - 如果任务被取消,则不执行该 block