首页 > TAG信息列表 > friend-function

c – 命名空间内的Friend函数声明/定义

考虑名称空间内的类.该类的定义声明了一个友元函数. namespace Foo { class Bar { friend void baz(); }; } 根据我所知,这应该将baz()声明为最内层封闭命名空间的成员,即Foo. 因此,我期望baz()的以下定义是正确的: void Foo::baz() { } 但是,GCC(4.7)给了

c – 朋友功能 – 声明顺序

我有两个名为Screen和Window_mgr的类. Screen允许Window_mgr通过friend函数声明修改其私有/受保护成员. 因此,Window_mgr在代码的最后定义了一个名为Window_mgr :: clear的非成员函数,该函数应该使用它. 不幸的是,我得到了一些荒谬的错误,我无法解释. 我错过了什么? Screen.h #pra

c – 如何将模板类X的模板成员函数声明为嵌套类X :: Y的朋友

我有一个模板类.它有一个模板功能.两者采用不同的模板参数.有一个内部类需要成为封闭类的模板函数的朋友.编译器错误比比皆是.以下玩具示例显示了我的问题. 首先,以下当然编译(VS 2017): template <typename T> class Class1 { public: Class1() = default; ~C

c – 与SFINAE支票交朋友

我试图用sfinae检查进行朋友声明时遇到了一些麻烦(如果你不想解释“为什么”和“如何”,你可以跳进代码示例). 基本上,我有一些模板类声明两个私有成员函数.根据模板类型的实例化,我想使用一个或另一个函数. 因此,如果我不希望编译失败,则无法实例化我无法使用的私有函数.所以,我必