UCS4String::const_iterator p; ScanSpaces::scan(begin, end, p); if (ScanRGBColor::scan(p, end, next)) return Variant<RGBColor>::create(ScanRGBColor::parse(p, next));
if (SmartPtr<Value> v = P::parse(begin, end, next)) return v;
  parse(const UCS4String::const_iterator& begin,	const UCS4String::const_iterator& end,	UCS4String::const_iterator& next)  {    UCS4String::const_iterator p;    ScanSpaces::scan(begin, end, p);    if (ScanRGBColor::scan(p, end, next))      return Variant<RGBColor>::create(ScanRGBColor::parse(p, next));    else      return 0;  }