我在命名空间中声明了一个类:

namespace PixelViewer
{
  class FBO
  { ... }
}

我想在另一个类方法中将其用作参数,如下所示:

型号
class ShaderProgram;
class PixelViewer::FBO;

class Model
{
 void Model::render(ShaderProgram& shaderProgram, PixelViewer::FBO& fbo)
}

型号
#include "../FBO.h"
#include "../ShaderProgram/ShaderProgram.h"

void Model::render(ShaderProgram& shaderProgram, PixelViewer::FBO& fbo)

但是,出现以下错误:
'PixelViewer' is not a class or namespace name

'FBO' uses undefined class PixelViewer

use of undefined type 'PixelViewer'

关于我所缺少的任何想法?

谢谢

最佳答案

此语法无效,因为PixelViewer可以是 namespace 或类名称。因此,语法是不允许的:

class PixelViewer::FBO; // disallowed

相反,只需在相应的 namespace 中添加前向声明:
namespace PixelViewer {
    class FBO;
}

关于c++ - 参数中的C++转发 namespace 声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54557954/

10-13 06:18