[英]Variadic argument using macros in C++
我有 2 个需要不同库函数的平台,但我想尽量减少支持它们所需的代码。
C++14 代码:
#ifdef PLATFORM2
#define FUNCTION_AUTO unsigned int dmd
#else
#define FUNCTION_AUTO void
#endif
//-- WITHIN THE LIBRARY -- //
double getQuality(FUNCTION_AUTO){
//Computing
// return value;
}
//-- MAIN EXECUTABLE -- //
int main() {
std::cout << "Hello World!\n";
#ifdef PLATFORM2
getQuality(100);
#else
getQuality();
#endif
}
有没有更好的方法来定义getQuality(..)
在不使用预处理器操作的情况下在 2 个平台之间通用?
这里的正常方法是将特定于平台的位抽象到一个库中,并在它们之上有一个一致的抽象。
double Quality();
#inclue "platform.h"
double Quality() {
return getQuality();
}
#include "platform.h"
double Quality() {
return getQuality(100);
}
#include <iostream>
#include "platform.h"
int main() {
std::cout << Quality();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.