//主要用于ADO的返回值,为空时的正理
template<typename T>
struct BoolPair
{
BoolPair(): m_value(T()), m_bVisible(false)
{
}
BoolPair(T value, bool bVisible): m_value(value), m_bVisible(bVisible)
{
}
operator bool()
{
return m_bVisible;
}
operator T()
{
return m_value;
}
bool m_bVisible;
T m_value;
};
template < class T>
class GetValue;
template<>
class GetValue <int>
{
public:
BoolPair<int> operator()(_variant_t vt)
{
if(VT_I4!= vt.vt)
{
return BoolPair<int>(vt.intVal, false);
}
else
{
return BoolPair<int>(vt.intVal, true);
}
}
};
void OnBnClickedButton3()
{
BoolPair <int> intValue(12, true);
intValue = GetValue<int>()(_variant_t((long)1243));
if(intValue)
{
int i = intValue;
}
intValue = GetValue<int>()(_variant_t());
if(intValue)
{
int i = intValue;
}
}
_variant_t 变量的处理
最新推荐文章于 2023-10-18 15:01:27 发布