I次のC++コードを持っている:私は、Visual Studio 14 2015年にそれをコンパイルしようと、それが持つ行でエラーになる場合は:式は完全なオブジェクト型へのポインタでなければなりません
#define MATH_FASTCALL(name, fname) \
static int math_ ## name ## _precall (lua_State *L, StkId func, int nresults) { \
StkId arg1 = func + 1; \
llvm_arg_tonumber(L, arg1, 1); \
setnvalue(func, fname(nvalue(arg1))); \
L->ci--; \
L->top = func + 1; \
L->base = L->ci->base; \
return PCRC; \
fallback: \
return luaD_precall_c(L, func, nresults); \
}
MATH_FASTCALL(abs, fabs)
をMATH_FASTCALL:
式は、このコードに問題がある可能性がありどのような完全なオブジェクト型
へのポインタでなければなりませんか?
マクロを展開できるR ++のようなものがない場合は、自分で展開してください。コンパイラは、どの部分が問題を引き起こしているかを正確に伝えます。その部分を保ち、可能な限り単純化し、残りの部分を取り除き、あなた自身で動くことができる[mcve]で終わるようにします。それがSOに尋ねるのが適切なときです。余分なコードとマクロがあっても、問題を再現するためにこれを実行することはできません。 – chris