c++ - 在 Clang 中使用指向成员的指针的错误
问题描述
以下代码编译gcc成功
template<typename T>
class F {
public:
template<typename V>
static void foo(V T::*) {
p<bool> = nullptr;
}
template<typename V>
static inline V T::* p;
};
struct A;
template class F<A>;
int main() {
}
和铿锵编译失败
<source>:10:18: error: member pointer refers into non-class type 'bool'
static inline V T::* p;
^
<source>:6:3: note: in instantiation of static data member 'F::p' requested here
p<bool> = nullptr;
^
这是无效的代码还是我听不懂铿锵声?