有没有一种方法可以防止调用构造函数而不将其分配给变量?

问题描述 投票:0回答:1

即这应该没问题:

Object obj("param");

但这不应该:

Object("param");

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

c++ object constructor declaration instantiation
1个回答
0
投票

您可以为类型使用

nodiscard
属性(使用 C++17 或更高版本)。

struct [[nodiscard]] Object {};

auto main() -> int {
  Object{}; // error
  return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.