无法声明没有名称的类模板

use*_*275 2 c++ c-preprocessor clang++

错误:

“无法声明没有名称的类模板”

由 clang++ 给出以下文件“foo.cpp”:

#ifndef foo
#define foo

template <class T>
struct foo {
private:
    const T t;
};

#endif
Run Code Online (Sandbox Code Playgroud)

命令行输入及错误:

me@computer$ clang++ -c foo.cpp
foo.cpp:5:1: error: cannot declare a class template with no name
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 5

更改包含守卫。它们定义foo为“无”,foo用“无”替换任何进一步出现的。这会删除您的类模板的名称。

#ifndef FOO_H_
#define FOO_H_

// as before

#endif
Run Code Online (Sandbox Code Playgroud)