我仍然在学习C++模板,并且遇到了使用以下方法从专门的静态函数调用成员的问题。GCC抱怨:“C<会员的无效使用”:“静态会员功能中的价值”。我搜索了这个论坛和其他几个论坛,甚至我的朋友谷歌也帮不了我。我认为错误必须是我忽略的东西,因为我制作了类的非专门版本(具有相同的静态成员函数),而且我仍然得到相同的错误。有什么想法吗?
template <typename T = const char*>
class C { };
//specialization for const char*
template <>
class C <const char*>
有一个独立的功能(非会员功能)被定义为:
template<class T, std::size_t N>
auto foo(T const(&init)[N]) { /* ... */ }
foo()用于推导N(数组大小)
此外,在同一个命名空间中,有一个类定义为:
class Bar {
friend auto foo( Bar const(&)[/* ??? */] ); /* <-------- The goal to make it right */
private:
Bar( void ) { /* ... */ }
};
我的问题是