我有一个来自外部图书馆的课程。同一范围内只能存在一个实例。我可以
assert(instance_counter<=1)
在包装类中没有问题。
但我想在编译时确定。有什么办法可以做到这一点吗?我认为不是,但也许在 c++23 或 c++26 中?
更新代码是这样的,没有人会在函数调用引入的嵌套作用域中实例化这样的类,尽管理论上这是可能的。因此,嵌套作用域并不是潜在解决方案需要解决的问题。
UPDATE2 单例是行不通的。我确实需要调用构造函数和析构函数来实现一些 RAII 操作。
我认为标准(从 c++26 开始)中没有或不会有任何内容允许您在编译时执行此操作。剩下的选择很少:
前者琐碎高效;第二个取决于您可能使用的内容,后者要困难许多数量级......