基于宏函数参数的c ++宏输出类型
c++ macro output type based on the macro function argument
我试图根据进入我的宏函数的布尔变量来定义我的变量类型,但出现编译器错误。
#define myImageType(depthImage) ((depthImage)==0 ? int : double)
int main()
{
bool inMilimeter = true;
myImageType(inMilimeter) pixelIntensity;
}
您将需要使用 std::conditional
。
由于类型必须在编译时决定,布尔值也必须是常量表达式:
#include <type_traits>
#define myImageType(depthImage) \
std::conditional<depthImage, int, double>::type
int main() {
constexpr bool inMilimeter = true;
myImageType(inMilimeter) pixelIntensity;
}
我试图根据进入我的宏函数的布尔变量来定义我的变量类型,但出现编译器错误。
#define myImageType(depthImage) ((depthImage)==0 ? int : double)
int main()
{
bool inMilimeter = true;
myImageType(inMilimeter) pixelIntensity;
}
您将需要使用 std::conditional
。
由于类型必须在编译时决定,布尔值也必须是常量表达式:
#include <type_traits>
#define myImageType(depthImage) \
std::conditional<depthImage, int, double>::type
int main() {
constexpr bool inMilimeter = true;
myImageType(inMilimeter) pixelIntensity;
}