断言为朋友 class
assert as a friend class
我既不能声明 assert class,也不能声明 assert 函数对我的 class 友好。
我这样的声明对吗?
class Baka
{
private:
friend assert; //invalid friend declaration
friend void assert(); //expected an identifer
public:
}
我已经用谷歌搜索了很多,但找不到 assert() 的正确参数和 "assert" class(
我将不胜感激任何帮助。
assert
不是函数,而是宏。因此,如果您在上游包含 <cassert>
,它将在编译前由预处理器扩展
// cassert file
// Not debug version
#define assert(_Expression) ((void)0)
所以你的 class 实际上是说
class Baka
{
private:
friend ((void)0); //invalid friend declaration
friend void ((void)0)(); //expected an identifer
public:
}
这显然不应该编译。
我既不能声明 assert class,也不能声明 assert 函数对我的 class 友好。
我这样的声明对吗?
class Baka
{
private:
friend assert; //invalid friend declaration
friend void assert(); //expected an identifer
public:
}
我已经用谷歌搜索了很多,但找不到 assert() 的正确参数和 "assert" class( 我将不胜感激任何帮助。
assert
不是函数,而是宏。因此,如果您在上游包含 <cassert>
,它将在编译前由预处理器扩展
// cassert file
// Not debug version
#define assert(_Expression) ((void)0)
所以你的 class 实际上是说
class Baka
{
private:
friend ((void)0); //invalid friend declaration
friend void ((void)0)(); //expected an identifer
public:
}
这显然不应该编译。