我有这段代码:
#ifndef LUA_CALLBACKS_H
#define LUA_CALLBACKS_H
extern "C"
{
#include "./lua_lib/lua.h"
#include "./lua_lib/lualib.h"
#include "./lua_lib/lauxlib.h"
}
#include "./LuaWrapper.h"
static int X(lua_State *L)
{
LuaCpp::LuaWrapper::GetInstance();
return 1;
}
#endif
在" LuaWrapper.h"我有:
#ifndef LUA_WRAPPER_H
#define LUA_WRAPPER_H
namespace LuaCpp
{
class LuaWrapper
{
public:
static LuaWrapper * GetInstance() { return nullptr; }
}
}
#endif
我已经正确地将文件包含在LuaWrapper中。但是,我在XCode(LLVM 8.1)
中有此错误
- 没有会员名称" LuaWrapper"在命名空间LuaCpp
中
相同的代码在Visual Studio 2015中正确编译。注意:上面的代码是" dummy",它不会做任何事情。但它不会编译。
答案 0 :(得分:0)
Defining a class within a namespace
这是一个有用的旧帖子,它说:你可以声明一个类是命名空间的成员,但你必须在命名空间块之外定义类。
ଘ(7 *''')7 *'尝试在命名空间LuaWrapper之外定义LuaWrapper的方法GetInstance()?
namespace LuaCpp { class LuaWrapper; }
class LuaCpp::LuaWrapper {
public:
static LuaWrapper * GetInstance() { return nullptr; }
}