【发布时间】:2019-11-29 23:12:20
【问题描述】:
我有一个模板类,它应该有一个朋友:一个make_object 函数,它允许扣除某些类型和值。我希望只与那些与模板类的类型匹配的实例成为朋友。我的代码的简化版本如下:
template<size_t S, typename T>
class Object {
private:
Object(T t);
template<typename U, typename... Args>
friend auto make_object(U, Args... args);
};
template<typename U, typename... Args>
inline auto make_object(U u, Args... args)
{
constexpr size_t S = sizeof...(Args);
return std::unique_ptr<Object<S, U>>(new Object<S, U>(u));
}
以这段代码为例,我希望只与make_object 的那些typename U 匹配对象的typename T 的实例交朋友。这可能吗?
【问题讨论】:
标签: c++ templates instantiation friend