gpt4 book ai didi

c++ - 根据版本切换成员函数名称

转载 作者:行者123 更新时间:2023-11-30 01:56:47 25 4
gpt4 key购买 nike

我正在使用 VTK 做某事,但我的问题可能很笼统。

在VTK <6.0版本中,一个类vtkPolyDataMapper有一个成员函数叫做SetInput,但是在它的6.0版本中,它变成了SetInputData。所以在版本 6 中,我必须,

vtkSmartPointer<vtkPolyDataMapper> polyDataMapper 
= vtkPolyDataMapper::New();

polyDataMapper->SetInputData(polyData);
// polyDataMapper->SetInput(polyData);

理想情况下,我希望这种情况可以像这样简单地处理

if (vtkVersion::GetVTKMajorVersion() < 6)
{
plane->SetInput(rgrid);
}
else
{
plane->SetInputData(rgrid);
}

但您知道这是不正确的,所以我的问题是:C++ 中处理这种情况的最佳方法是什么。

最佳答案

如您所知,您不能让选择在运行时进行,因为编译会失败。

相反,您可以利用预处理器 将正确的代码传递给编译器。这是可能的,因为 VTK 在预处理器宏中为您公开了它的版本:

#if (VTK_MAJOR_VERSION < 6)
plane->SetInput(rgrid);
#else
plane->SetInputData(rgrid);
#endif

关于c++ - 根据版本切换成员函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498229/

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