5 std::any StringIOIndex::DoRead( std::type_index, 
const char * source, Context 
const * context )
 
    7     Type t = StringIO_Read< Type >( source, context );
 
   11 template< 
class Type >
 
   12 std::string StringIOIndex::DoWrite( std::any 
const & value, Context 
const * context )
 
   14     return StringIO_Write< Type >( std::any_cast< Type >( value ), context );
 
   20     Register_Impl( (
typename std::decay< T >::type*)
nullptr );
 
   24 void StringIOIndex::Register_Impl( T * )
 
   26     using TDecayed = 
typename std::decay< T >::type;
 
   28     auto & handler = handlers()[ 
typeid( TDecayed ) ];
 
   30     handler.read = &DoRead< TDecayed >;
 
   31     handler.write = &DoWrite< TDecayed >;