【发布时间】:2021-09-11 00:54:01
【问题描述】:
今天被this paragraph at cppreference惊到了:
转换构造函数
未使用说明符显式声明且可以使用单个参数(C++11)调用的构造函数称为转换构造函数。
“(直到 C++11)”位似乎指的是短语“可以用单个参数调用”。
我不知道这在 C++11 发生了变化。有什么变化?什么样的“转换构造函数”可以接受多个参数? (如果这就是它所指的。)
(我想它可能指的是具有多个参数的构造函数,但那些额外的参数 - 或所有参数 - 具有默认值。但参数的默认值一直在 C++ 中。所以那里发生了一些变化 - 之前C++11 你不能用带默认参数的构造函数隐式转换?但this example at wandbolt 表明 确实 在 C++03 中工作。)
【问题讨论】:
-
@GSerg - 我得说,我可以发誓我在 SO 搜索栏中输入了“converting constructor”,但没有看到。也许我应该删除这个问题或 VTC 作为 dup?
-
不删除is much better!
-
@GSerg - 好的!进入了自我VTC。 (你知道,应该有一个徽章......)
-
这很奇怪;您是否只是简单地投了票,还是在 GSerg 投了票后接受了“这是重复的”建议?如果是后者,我认为问题应该立即结束。 (不过,无论哪种方式都没有徽章;))。
标签: c++ c++11 constructor implicit-conversion