我知道GCC和Clang可能接受这种语法,但是如果我为常见的5个平台(Mac,Windows,Linux,iOS,Android( Java ))开发游戏,但是如果我让C在Android上运行,可能是通过桥接Java和c语言,这是可移植性如何?应该避免这种情况吗? 我知道这是一个糟糕的函数,因为简单的return num*num;就足够了,但是这个语法,我应该避免它吗? int square(int num) {
int x = ({
int y = num;
y*y;
});
return x;
}
我的项目是在Windows (vc++17)上构建的,而且我对Linux也是新手,所以我不知道发生了什么。
我为我的项目创建了CMakeLists文件(带有C++17需求),生成了makefile,然后我使用make尝试在Linux上构建它。错误是:
/home/julien/source/zipfs/zipfs/include/zipfs/zipfs_assert.h:30:70: error: no matching function for call to ‘std::exception::exception(<brace-enclosed initializer list>