c++ - 如何有效地重载函数而不发疯?

标签 c++ overloading

所以我有这个函数(有 80 行):

int listPlatformInfo(..., char * foo)
{
    ... 

    for (uint32_t a = 0; a < platformCount; a++)
    {
        platformInfo(platforms, info, foo);
    }
    return 0;
}

我有 20 个不同的函数重载 platformInfo(); 有没有办法重载这个函数,唯一的变化是 foo 的数据类型,而不复制整个函数 20 次?

最佳答案

使用模板:

template<typename T>
int listPlatformInfo(..., T foo) // or T* ?
{
    ... 

    for (uint32_t a = 0; a < platformCount; a++)
    {
        platformInfo(platforms, info, foo);
    }
    return 0;
}

关于c++ - 如何有效地重载函数而不发疯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40295097/

相关文章:

c++ - C 中的 OpenCV 拼接程序,如何进行像素变换?

c++ - 如何重新组合 map 并将元素插入新 map ?

C++ - ostream、 friend 和命名空间

java - 方法重载和多态性——什么是更简洁的方法?

function - 如何重载 TypeScript 中的方法?

c++ - CredMartialCredentials 用户名提示(智能卡)

c++ - 我的快速排序实现有什么问题?

c++ - 如何读取 Windows perfmon 计数器?

python - Mypy 因重载和文字而失败

c++ - C++ 模板函数的重载