1

来自cppreference

在以下情况下会创建临时对象:

  • 创建纯右值的转换(包括 T(a,b,c) 和 T{})

这什么时候会发生?(示例将不胜感激)

“包括 T(a,b,c) 和 T{}”是什么意思?

static_cast<T>(e),const_cast<T>(e)和转换总是评估为纯右值dynamic_cast<T>(e)吗?reinterpret_cast<T>(e)

4

1 回答 1

1

这什么时候会发生?(示例将不胜感激)

“包括 T(a,b,c) 和 T{}”是什么意思?

“包括 T(a,b,c) 和 T{}”表示 T(a,b,c) 和 T{} 是创建临时对象的示例(C++17 前)。

static_cast<T>(e),const_cast<T>(e)和转换总是评估为纯右值dynamic_cast<T>(e)吗?reinterpret_cast<T>(e)

不,引用的句子暗示有prvalue转换和非prvalue转换,后者不一定会创建临时对象。如果T是引用类型,则转换是泛左值。

于 2022-02-16T07:20:13.957 回答