c++ - 这是函数声明吗?

标签 c++ opencv opencascade

当我从 OpenCV 或 OpenCascade 读取一些代码时,我经常在 C++ 中看到这种类型的声明+实现

TEST(Shape_SCD, regression)
{
    const int NSN_val=5;//10;//20; //number of shapes per class
    const int NP_val=120; //number of points simplifying the contour
    const float CURRENT_MAX_ACCUR_val=95; //99% and 100% reached in several tests, 95 is fixed as minimum boundary
    ShapeBaseTest<float, computeShapeDistance_Chi> test(NSN_val, NP_val, CURRENT_MAX_ACCUR_val);
    test.safe_run();
}

这可能是个愚蠢的问题,不是吗?因为我不知道这是什么类型的声明。它看起来确实像一个函数,但没有返回类型。如果它是构造函数,为什么参数列表中没有任何类型的变量?

谢谢

最佳答案

TEST 是一个宏。宏展开后,这将是一个普通的函数定义(具有返回类型)。如果您查找宏的定义,您应该能够看到这一点。

关于c++ - 这是函数声明吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33884548/

相关文章:

c++ - 在不复制数据的情况下更改 opencv mat 中的列顺序

c++ - 斜齿轮结构 : Sweep Profile with Spin (twist)

c++ - what():basic_string::_ M_construct null无效

c++ - OpenGL 项目返回 undefined reference

java - onPictureTaken() 错误,问题是无法将 RGB 转换为灰色,程序停止从 cvtcolor() 函数运行。?

c++ - caffe2 Tensor<CUDAContext> 赋值、构造或复制

C++ 编译错误包括 X11/X.h X11/Xlib.h

collision-detection - 使用 OpenCascade,如何快速对 2 个形状进行碰撞检测?

c++ - 使用 SFINAE 禁用模板类成员函数

c++ - 在 -fsanitize=address 下运行时如何抑制 LeakSanitizer 报告?