Esempio n. 1
0
	static Archive& apply(Archive& ar, U(&v)[N], YAS_ENABLE_IF_IS_ANY_OF(U, char, signed char, unsigned char, bool)) {
		std::uint32_t size = 0;
		ar.read(size);
		if ( size != N-1 ) YAS_THROW_BAD_ARRAY_SIZE();
		ar.read(v, size);
		v[size] = 0;
		return ar;
	}
Esempio n. 2
0
	static Archive& apply(Archive& ar, U(&v)[N], YAS_ENABLE_IF_IS_ANY_OF(U, char, signed char, unsigned char)) {
		std::uint32_t size = 0;
		ar.read(size);
		if ( size != N-1 ) YAS_THROW_BAD_ARRAY_SIZE();
		if ( ar.getch() != space_sep ) YAS_THROW_SPACE_IS_EXPECTED();
		ar.read(v, size);
		v[size] = 0;
		return ar;
	}
Esempio n. 3
0
	static Archive& apply(Archive& ar, T(&v)[N]) {
		std::uint32_t size = 0;
		ar.read(size);
		if ( size != N ) YAS_THROW_BAD_ARRAY_SIZE();
		for ( auto &it: v ) {
			ar & it;
		}
		return ar;
	}
Esempio n. 4
0
	static Archive& apply(Archive& ar, U(&v)[N], YAS_DISABLE_IF_IS_ANY_OF(U, char, signed char, unsigned char, bool)) {
		std::uint32_t size = 0;
		ar.read(size);
		if ( size != N ) YAS_THROW_BAD_ARRAY_SIZE();
		for ( auto &it: v ) {
			ar.read(it);
		}
		return ar;
	}
Esempio n. 5
0
	static Archive& apply(Archive& ar, std::array<T, N>& array) {
		std::uint32_t size = 0;
		ar & size;
		if ( size != N ) YAS_THROW_BAD_ARRAY_SIZE();
		for ( auto &it: array ) {
			ar & it;
		}
		return ar;
	}
Esempio n. 6
0
 static Archive& apply(Archive& ar, boost::array<T, N>& array) {
     std::uint32_t size = 0;
     ar & size;
     if ( size != N ) YAS_THROW_BAD_ARRAY_SIZE();
     typename boost::array<T, N>::iterator it = array.begin();
     for ( ; it != array.end(); ++it ) {
         ar & (*it);
     }
 }
Esempio n. 7
0
	static Archive& apply(Archive& ar, T(&v)[N]) {
		std::uint32_t size = 0;
		ar.read(size);
		if ( size != N ) YAS_THROW_BAD_ARRAY_SIZE();
		if ( ar.getch() != space_sep ) YAS_THROW_SPACE_IS_EXPECTED();
		for ( auto &it: v ) {
			ar & it;
		}
		return ar;
	}
Esempio n. 8
0
	static Archive& apply(Archive& ar, U(&v)[N], YAS_DISABLE_IF_IS_ANY_OF(U, char, signed char, unsigned char, bool)) {
		std::uint32_t size = 0;
		ar.read(size);
		if ( size != N ) YAS_THROW_BAD_ARRAY_SIZE();
		if ( ar.getch() != space_sep ) YAS_THROW_SPACE_IS_EXPECTED();
		for ( auto &it: v ) {
			ar & it;
		}
		return ar;
	}
Esempio n. 9
0
	static Archive& load(Archive &ar, boost::container::static_vector<T, N> &vector) {
		std::uint32_t capacity = 0, size = 0;
		ar.read(capacity);
		ar.read(size);
		if ( capacity != N || size > N ) YAS_THROW_BAD_ARRAY_SIZE();
		vector.resize(size);
		if ( std::is_fundamental<T>::value && sizeof(T) == 1 ) {
			ar.read(&vector[0], size);
		} else {
			for ( auto &it: vector ) {
				ar & it;
			}
		}
		return ar;
	}