c++ - 是否可以限制类实例仅用作临时实例?

标签 c++ c++11

是否可以限制类实例仅用作右值(例如临时值)?

例如,我有一个 Wrapper 类,其构造函数采用 A const& 并将此引用保存在其成员中。这很危险,因为 Wrapper 实例的生命周期不能长于 A 实例的生命周期,但如果 Wrappertemporary.

最佳答案

我认为即使想要这样做也是设计非常糟糕的标志。

但是,您可以将所有构造函数设为私有(private),并创建一个返回右值的友元函数。这应该可以解决问题。

关于c++ - 是否可以限制类实例仅用作临时实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850674/

相关文章:

c++ - noexcept 有什么用?

c++ - 不在 make 过程中命名类型

c++ - 将文件目录打印成数据结构

c++ - 关于 C++ 中常量的隐式转换

C++ 输入文件没有将我的整个文件读回字符串

C++11 lambda 表达式

c++ - 写入超过内核允许一次打开的文件的最佳方法是什么?

c++ - 在向 std::unordered_map 插入元素时避免不必要的构造函数调用?

c++ - 在 C 库上使用 std::function

c++ - 为什么 std::reference_wrapper 不是默认可构造的?