语法错误:在标识符'a'之前缺少')'
我试图从以前用 gcc 编译的 c++ sdk 项目在 Visual Studio 2019 上构建一个 dll(稍后在 Unity 中使用)。我在编译和以下函数时遇到一些语法错误:
static inline uint8_t MyFunction(const uint64_t *__restrict__ a, const uint64_t *__restrict__ b)
我收到此错误:
Severity Code Description Project File Line Suppression State
Error C2146 syntax error: missing ')' before identifier 'a'
关于如何解决这个问题的任何线索?一般而言,如何解决因更改这样的编译器而引起的其他错误?
回答
__restrict__特定于 gcc 和 clang。MSVC 等效项是__restrict.
没有“通用方法”可以解决编译器之间的差异。您必须根据具体情况处理它们。