Xcode中的C ++ - 名称空间

时间:2017-04-20 17:23:19

标签: c++ xcode

我有这段代码:

#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",它不会做任何事情。但它不会编译。

1 个答案:

答案 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; }
    }