gpt4 book ai didi

c++ - 当输入实数时,是否可以保证 complex 对象的虚部设置为零?

转载 作者:行者123 更新时间:2023-11-27 23:47:32 26 4
gpt4 key购买 nike

在我的环境中(g++ 5.4.0),一段代码

complex<double> cmp;
cin >> cmp; //input 3 or (3) (not (3,0))
cout << "cmp = " << cmp << "\n";

给我结果:

cmp = (3,0) //imaginary part is automatically set to 0

有没有人有书面证据来保证这种行为? N4140(§ 26.4.6-12;第 921 页)说

 Effects: Extracts a complex number x of the form: u, (u), or (u,v), 
where u is the real part and v is the imaginary part (27.7.2.2).

但这并不意味着 u 形式的输入或 (u)使对象的虚部0 .

您可以在可靠的 MSDN 示例 (https://msdn.microsoft.com/ja-jp/library/mt771459.aspx#operator_gt__gt_) 中看到此行为,但即使这样也没有给出明确的解释。

草稿说“u是实部”,我只输入了实部。我认为在决定将什么样的值设置为虚部时存在歧义。当然,u的虚部是0 ,但我认为这并不能保证什么。

最佳答案

该标准的意图很可能是它应该起作用,即使在仔细审查的文本中没有明确说明。在实践中,代码将适用于已知的实现。

现有缺陷报告要求委员会澄清其意图已经实现的内容:

#2714 complex stream extraction underspecified

关于c++ - 当输入实数时,是否可以保证 complex<Type> 对象的虚部设置为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49407615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com