有没有办法阻止调用构造函数而不将其分配给变量?

sbe*_*eix 4 c++ constructor declaration object

即这应该没问题:

Object obj("param");
Run Code Online (Sandbox Code Playgroud)

但这不应该:

Object("param");
Run Code Online (Sandbox Code Playgroud)

有没有办法防止第二种情况发生?

fda*_*dan 8

您可以使用nodiscard类型的属性(使用 C++17 或更高版本)。

struct [[nodiscard]] Object {};

auto main() -> int {
  Object{}; // error
  return 0;
}
Run Code Online (Sandbox Code Playgroud)