我有一个makefile,它定义了一些目标是foreach函数的规则.
$(foreach var,$(list), $($(var)_stuff) $($(var)_more_stuff)):
@echo Building $@ from $^...
$(CC) $(FLAGS) ...
Run Code Online (Sandbox Code Playgroud)
有没有办法让make在遇到错误时退出而不通过整个列表.
假设我有两个模板类.
template<class T>
class baseclass1
{
template<class> friend class baseclass2;
}
template<class D>
class baseclass2
{
template<class T> void foo( D& x, T& y)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码允许所有类型的baseclass1友好所有类型baseclass2,多对多关系.我有两个问题,
允许baseclass1只是函数的朋友是什么语法
baseclass2<class D>::foo<class T>( D& x, T& y).
Run Code Online (Sandbox Code Playgroud)
而且,允许baseclass1朋友只使用该函数的语法是什么
baseclass2<class D>::foo<class T>( D& x, T& y)其中Tfrom baseclass1匹配T来自函数foo.
编辑
对于那些一直声称你不能成为模板专业化的朋友.这段代码有效
template<class cake>
class foo
{
public:
static void bar(cake x)
{
cout << x.x;
}
};
class pie
{
public: …Run Code Online (Sandbox Code Playgroud)