【发布时间】:2022-12-07 22:00:05
【问题描述】:
在这段代码中:
struct tmp
{
int va = 0;
tmp() = default;
bool operator==(const tmp& rhv) const = default; //(in c++20)
};
构造函数 tmp() 和 operator== 是内联函数,即使我没有在它们前面添加“inline”关键字?
如果答案是肯定的,如果在它们前面加一个“inline”会怎么样呢?
我可以强制它们成为常规函数吗? (虽然我不知道哪个目标文件可以存储它们。)
【问题讨论】:
-
@JasonLiam 问题是关于用
= default定义的显式声明的函数,你的两个副本都是关于隐式声明的函数。 -
@Yksisarvinen 请注意,“显式默认函数”和“隐式声明函数”统称为默认函数实现应为它们提供隐式定义。无论如何,我已经重新提出了这个问题。
-
你希望从制作它们中得到什么不是
inline? -
inline是什么意思?我敢猜测这并不代表您认为的意思。
标签: c++ class struct language-lawyer c++20