Проблема в том, что вы вызываете operator<<
для типов, которые не перегружают тот оператор, который вы затем вызываете внутри своей функции sharedLog
.
Для записи экземпляра типа T
в std::ostream
таким образом, вам необходимо перегрузить operator<<
.
Оператор должен быть реализован вне типа T
и иметь следующую подпись:
std::ostream& operator<< (std::ostream &out, const T& arg);
Если ему требуется доступ к закрытым и защищенным членам T
, его также следует объявить как друг:
friend std::ostream& operator<< (std::ostream &out, const T& arg);
Он должен вернуть ссылку out
, которую он получает, в качестве первых аргументов, чтобы вызовы можно было объединить в цепочку:
str << a << b << c;
Более подробную информацию можно найти здесь: [ 1112] https://www.learncpp.com/cpp-tutorial/93-overloading-the-io-operators/
Оператор C2593 < < является неоднозначным
blockquote>У вас есть 2 или более реализаций, которые оба являются кандидатами, и компилятор не знает, какую из них выбрать. Сообщение об ошибке содержит дополнительные сведения, которые указывают на кандидатов, чтобы вы могли увидеть, какие типы конфликтов. Подробнее здесь: ошибка C2593: 'оператор < <' является неоднозначным
C2679 бинарный < < не найден оператор, который принимает правый операнд типа T (или нет приемлемого преобразования)
blockquote>Вы вызываете
operator<<
для типа, который не перегружает его, как описано в начало моего ответа.
"Лучше всего" относительно. Лучшая производительность необходимо будет пойти путем SAX и реализовать обработчики. Я не знаю ничего там доступного открытого исходного кода (запустите проект кода Google и выпустите его для остальной части нас для использования!)
Независимо от того, что Вы делаете, это - вероятно, действительно плохая идея попытаться загрузить целый XML-файл в память и действовать на него как DOM. Возможности, Вы получите подачу, которая намного больше, чем можно обработать на продвижении устройства к частым предупреждениям памяти и катастрофическим отказам.
Вы посмотрели на TouchCode уже? Я не думаю, что это имеет процессор RSS, но это могло бы дать Вам запуск. http://code.google.com/p/touchcode/
смотрите на образец Производительности яблока XML - который указывает на использование libXML непосредственно - для производительности и более быстрых обновлений дисплея. Который может быть важным, если Вы работаете с очень большой подачей.
Я приехал через igasus проект в SourceForge сегодня. Я не использовал его или действительно проверил его, но возможно это могло бы помочь.
От их сайта: igagus является веб-сервисом для iPhone, который позволяет агрегированию RSS быть поставленным в iPhone дружественный формат.
На самом деле я пытался предложить, чтобы Вы спросили относительно форума TouchCode, потому что я помню, что кто-то пытался развернуть его для поддержки RSS. Это могло бы быть достойной начальной точкой. Но я срочно отправлялся моей женой.
Но я вижу теперь, когда TouchCode не имеет форума. Я все еще спросил бы автора, тем не менее, он мог бы знать то, что вышло из того усилия.
Это может быть разумной отправной точкой для вас. Поддержка атом еще не там, но вы могли бы помочь?
Я только что выпустил парсер RSS / Atom с открытым исходным кодом для iPhone и, надеюсь, он может быть полезен.
Я тоже хотел бы услышать ваше мнение по этому поводу!
В настоящее время я тестирую MWFeedParser, который разрабатывает @Michael Waterfall.
Довольно легко настроить и использовать (я начинающий разработчик iPhone).
Его пример кода для использования MWFeedParser для заполнения реализации UITableViewController также полезен.