我想要一个class T
只能在整个程序中生成 1 个实例的实例。
现在我知道了,std::unique_ptr
但有两个问题:
- 它仅限于一个范围(但这不是一个大问题......)
- 它需要显式使用,这意味着它不是类或类型的一部分,它只是和处理程序和一个特殊的指针,但它不会修改我的类的设计。
现在我想class T
设计一种方式,即使错误地用户可以在同一个程序中声明 2 个实例,我也不能依赖我的用户将声明一个std::unique_ptr
for的事实,T
因为我想通过设计来解决这个问题。
现在我只是在考虑如何以unique_ptr
一种优雅的方式隐式使用 an ,问题是我目前没有任何线索。
另一种方法是检查这个类是否由 an 处理,unique_ptr
但这种检查会使我在性能方面失去优势。
因为只有 1 个实例非常重要,所以在我的情况下我只看到 2 个选项:1)试图通过设计解决这个问题 2)在编译时使用某种检查/宏抛出错误。
我知道这看起来微不足道,但从设计方法来看,至少对我来说不是,所以请帮忙。