gpt4 book ai didi

c++ - 将 valarray 显式初始化为零有歧义吗?

转载 作者:行者123 更新时间:2023-11-30 01:51:44 27 4
gpt4 key购买 nike

std::valarray< double > myArray(3)产生 valarray长度为 3,初始化为零。

std::valarray< double > myArray(1,3)产生 valarray长度为 3,初始化为 1。

std::valarray< double > myArray(0,3)生产 error: call to constructor of 'std::valarray<double>' is ambiguous .

我当然可以使用 myArray(3)并添加一条评论,确认它已初始化为零,但就我自己的理解而言,我希望有人能解释为什么这是模棱两可的——它是否以我错过的方式与另一个构造函数发生冲突?

最佳答案

您的第三次调用与构造函数 valarray (const T* p, size_t n); 冲突。这是因为 0 可以很容易地转换为 NULL 指针,就像转换为 double 一样。您可以通过明确声明使用 double 来解决此问题:

std::valarray< double > myArray((double)0,3)

关于c++ - 将 valarray 显式初始化为零有歧义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25768068/

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