#ifndef _FC_REFLECT_VECTOR_HPP_ #define _FC_REFLECT_VECTOR_HPP_ #include #include namespace fc { template class reflector> : public detail::reflector_impl, reflector> >{ public: virtual const char* name()const { static fc::string s = fc::string("vector<") + reflector::instance().name() + '>'; return s.c_str(); } virtual void visit( void* s, const abstract_visitor& v )const { vector& vec = *((vector*)s); size_t si = vec.size(); for( size_t i = 0; i < si; ++i ) v.visit( i, si, vec.at(i) ); } virtual void visit( const void* s, const abstract_const_visitor& v )const { const vector& vec = *((const vector*)s); size_t si = vec.size(); v.array_size(si); for( size_t i = 0; i < si; ++i ) v.visit( i, si, vec.at(i) ); } static reflector& instance() { static reflector inst; return inst; } }; } // namespace fc #endif // _FC_REFLECT_VECTOR_HPP_