我需要阻止一个类派生,所以我想,这是Boost必须已经完成的事情.我知道他们有一个不可复制的,他们必须有一个不可复制的......
想象一下,当我找不到它时,我感到惊讶......
这让我思考..必须有一个理由.也许不可能使用模板..
我确定它是否很容易在升级库中.
我知道如何在不使用模板的情况下完成它,即使用带有私有构造函数的基类,即
class ThatCantBeDerived; // Forward reference
class _NonDeriv
{
_NonDeriv() {}
friend class ThatCantBeDerived;
};
class ThatCantBeDerived : virtual public _NonDeriv
{
public:
ThatCantBeDerived() :
_NonDeriv()
{
}
};
Run Code Online (Sandbox Code Playgroud)
或类似的东西..
也许它是导致问题的前向参考,或者可能没有可移植的方法来实现它.
无论哪种方式,我不确定为什么它不是在提升..
有任何想法吗?
在当前规范下,明确禁止与模板参数“交友”,因此模板化您的示例将使其不符合标准。Boost 可能不想在它的库中添加类似的东西。我相信 Ox 中已经放宽了这一限制,并且编译器有一些解决方法。
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |