All pastes #56721 Raw Edit

TunkeyMicket

public cpp v1 · immutable
#56721 ·published 2006-05-17 23:54 UTC
rendered paste body
/*namespace My{	class Description {};	class WaterTable {};	class GPM {};	class IsRunning {};}typedef CSV::Entry<   My::Description, std::string,   CSV::Entry<   My::WaterTable,  int,           CSV::Entry<   My::GPM,         float,         CSV::Entry<   My::IsRunning,   bool,          CSV::eol> > >> My_CSVType;if(!CSV::Field<My_CSVType,My::Description>::IsNull(tt)) {   std::string test = CSV::Field<My_CSVType,My::Description>::Data(tt);   std::cout << test << std::endl;} else {   std::cout << "NULL" << std::endl;}.\Visual Studio Projects\csvtest\csvtest.cpp(77) : error C2440: 'initializing' : cannot convert from 'int' to 'std::basic_string<_Elem,_Traits,_Ax>'        with        [            _Elem=char,            _Traits=std::char_traits<char>,            _Ax=std::allocator<char>        ]        No constructor could take the source type, or constructor overload resolution was ambiguous */////// CSVField///template< typename T1 >struct is_same_part_1{    template<typename T2>  struct part_2     { enum { value = false }; };    template<>             struct part_2<T1> { enum { value = true }; };};template< typename T1, typename T2 >struct is_same_impl{    enum { value = is_same_part_1<T1>::template part_2<T2>::value };};template < typename TypeList, typename FIELD, bool isField = is_same_impl<FIELD,TypeList::FieldName>::value >struct Field {	static /*unspecified*/ Data(TypeList& tt);	static bool IsNull(TypeList& tt);};template < typename TypeList, typename FIELD >struct Field<TypeList,FIELD,false>{	static /*unspecified*/ Data(TypeList& tt) { return Field<TypeList::NextType, FIELD>::Data(tt.Next); }	static bool IsNull(TypeList& tt) { return Field<TypeList::NextType, FIELD>::IsNull(tt.Next); }};template < typename TypeList, typename FIELD >struct Field<TypeList,FIELD,true>{	static /*unspecified*/ Data(TypeList& tt) { return tt.Data; }	static bool IsNull(TypeList& tt) { return tt.IsNull; }};////// CSVField_n///template < typename TypeList, unsigned FIELD >struct Field_n{	static /*unspecified*/ Data(TypeList& tt) { return Field_n<TypeList::NextType,FIELD-1>::Data(tt.Next); }	static bool IsNull(TypeList& tt) { return Field_n<TypeList::NextType,FIELD-1>::IsNull(tt.Next); }};template< typename TypeList >struct Field_n<TypeList,0>{	static /*unspecified*/ Data(TypeList& tt) { return tt.Data; }	static bool IsNull(TypeList& tt) { return tt.IsNull; }};