네이티브 C++에서 데이터베이스 액세스 레이어를 만들고 NULL 값을 지원하는 방법을 찾고 있습니다.C++의 Nullable 값
class CNullValue
{
public:
static CNullValue Null()
{
static CNullValue nv;
return nv;
}
};
template<class T>
class CNullableT
{
public:
CNullableT(CNullValue &v) : m_Value(T()), m_IsNull(true)
{
}
CNullableT(T value) : m_Value(value), m_IsNull(false)
{
}
bool IsNull()
{
return m_IsNull;
}
T GetValue()
{
return m_Value;
}
private:
T m_Value;
bool m_IsNull;
};
이것은 내가 기능을 정의해야합니다 방법은 다음과 같습니다 :
void StoredProc(int i, CNullableT<int> j)
{
...connect to database
...if j.IsNull pass null to database etc
}
을 그리고 다음과 같이 호출 : 여기에 지금까지 무엇을 가지고
sp.StoredProc(1, 2);
또는
sp.StoredProc(3, CNullValue::Null());
더 좋은 점이 있다면 궁금합니다. 그거야. 특히 나는 통계와 함께 CNullValue의 싱글 톤과 같은 객체를 좋아하지 않습니다. 그냥 할애하고 싶습니다.
sp.StoredProc(3, CNullValue);
또는 그와 비슷한 것입니다. 다른 사람들이이 문제를 어떻게 해결합니까?
특히 힙 할당을 사용하지 않으므로 성능면에서 임베디드 값과 동일하다는 점을 고려하십시오. –
지금이 라이브러리를 검토해 주셔서 감사합니다. – DanDan
방금 테스트했습니다. 이거 완벽 해. – DanDan