4 #include <boost/date_time/posix_time/posix_time_types.hpp>
10 #include <boost/preprocessor/seq/size.hpp>
11 #include <boost/preprocessor/seq/for_each_i.hpp>
12 #define ASQL_BUILDSETLINE(r, data, i, elem) case i: return elem;
14 #define ASQL_BUILDSET(elements) \
15 size_t numberOfSqlElements() const { return BOOST_PP_SEQ_SIZE(elements); } \
16 ASql::Data::Index getSqlIndex(size_t index) const \
20 BOOST_PP_SEQ_FOR_EACH_I(ASQL_BUILDSETLINE, 0, elements) \
21 default: return ASql::Data::Index(); \
100 operator const T()
const {
return object; }
117 template<
class charT,
class Traits,
class T>
inline std::basic_ostream<charT, Traits>& operator<<(std::basic_ostream<charT, Traits>& os,
const Nullable<T>& x)
137 typedef boost::posix_time::time_duration
Time;
138 typedef boost::gregorian::date
Date;
151 virtual size_t size()
const =0;
153 virtual char&
operator[](
const size_t index) =0;
430 inline void set(
const T& data) {
m_data=&data; }
521 inline void set(
const T& data) {
m_data=&data; }
536 virtual void trim() =0;
542 virtual const Set*
pull()
const =0;
543 virtual void init()
const =0;
563 data.push_back(
typename T::value_type());
598 data.push_back(
typename T::value_type());
634 data.push_back(
typename T::value_type());
670 data->push_back(
typename T::value_type());
708 typedef std::map<int, boost::shared_ptr<Conversion> >
Conversions;