我想为一堆重载函数创建一个包装

void print(int i);
void print(long i);
void print(char* s);
...

void myPrint(int x, int y, ??? toPrint){
    moveTo(x,y);
    print(toPrint);
}

我该怎么做?是否可以没有模板?

最佳答案

如果无法使用模板,则可以对myPrint采用与print相同的方法。

void myPrint(int x, int y, int toPrint){
    moveTo(x,y);
    print(toPrint);
}

void myPrint(int x, int y, long toPrint){
    moveTo(x,y);
    print(toPrint);
}

void myPrint(int x, int y, char* toPrint){
    moveTo(x,y);
    print(toPrint);
}

由于您正在执行嵌入式编码,因此您也可以原谅使用宏。
#define MYPRINT( x, y, toPrint ) \
    do {                         \
        moveTo(x,y);             \
        print(toPrint);          \
    } while(false)

关于c++ - C++包装重载函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15709327/

10-14 07:06