gpt4 book ai didi

c++ - 为什么当我删除 `randn` 时 `cv::` 没有错误

转载 作者:太空狗 更新时间:2023-10-29 20:24:06 25 4
gpt4 key购买 nike

我在使用randn 时不小心忘记了命名空间cv:: 并且它已经编译没有错误。这是我的代码

#include <iostream>
#include <opencv2/core/core.hpp>

int main( int argc, char** argv )
{
std::cout << "\n%%( Random Generator )%%\n";
cv::Mat G = cv::Mat::ones(4,4, CV_64FC1);
cv::Mat m = cv::Mat::zeros(1,1, CV_64FC1);
cv::Mat s = cv::Mat::ones(1,1, CV_64FC1);
std::cout << G << std::endl;
randn(G, m, s);
std::cout << G << std::endl;

return 0;
}

我在 Windows 中运行代码

cl /EHsc main.cpp /Fetest.exe /I D:\xxxx\opencv_2.4.10\build\include /link /LIBPATH:D:\xxxx\opencv_2.4.10\build\x86\vc12\lib opencv_core2410.lib

我的问题是这个函数是否也是在 cv 命名空间之外定义的?

最佳答案

您将获得参数相关查找(ADL,也称为 Koenig 查找)。本质上,名称是在 G 参数类型的命名空间中查找的,即 cv::。 ADL 主要帮助查找运算符,但也适用于普通的命名函数。

关于c++ - 为什么当我删除 `randn` 时 `cv::` 没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29916278/

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