您的位置:首页 > 编程语言 > C语言/C++

union可以避免c++的类型检查

2008-09-06 16:57 225 查看
在阅读到fastdelegate.h中,看到这么一段代码

template <class OutputClass, class InputClass>

union horrible_union

{

OutputClass out;

InputClass in;

};

template<class OutputClass, class InputClass>

inline OutputClass horrible_cast(const InputClass input)

{

horrible_uion<OutputClass, InputClass> u;

typedef int ERROR_CantUserHorrible_cast[sizeof(InputClass) == zizeof(u) && sizeof(InputClass) == sizeof(OutputClass) ? 1 : -1];

u.in = input;

return u.out;

};

这里(强制把input转换成output类型),在函数中使用了一个union来避免C++的类型检查
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: