繁体   English   中英

我可以阻止创建 C++ 类的非临时实例吗?

[英]Can I prevent the creation of non-temporary instances of my C++ class?

我正在构建一个类似表达式的类系统。 我想利用临时变量的生命周期规则来避免将 ensure 表达式存储在带有不可读错误消息的巨大丑陋模板类中。

当然,如果用户巧妙地将我的表达式对象之一保存在变量中,他们可能会意外地创建悬空临时对象。

有没有办法阻止用户创建局部变量来保留我的一个表达式实例,这样他们就永远不会对他们认为已捕获但实际上只是临时的临时变量感到惊讶?

我不知道有什么方法可以阻止某人拥有您允许他们创建的本地类型,但是您可以通过&&限定其所有成员来使其几乎无法使用。

这不会阻止滥用它的坚定企图,因为他们总是可以std::move它,但它应该避免事故。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM