Я видел здесь несколько вопросов о SO, связанных с тегами XML-документации Microsoft , но у меня возникают проблемы с добавлением примера кода:
/// <summary>Return the oldest acceptable timestamp for a data packet.</summary>
/// <example>
/// if( GetOldestValidResultTime() < lastResultTime )
/// {
/// Console::WriteLine("Results are too old");
/// }
/// </example>
/// <returns>The timestamp (the Milliseconds field from a raw result) of the oldest acceptable data item given the timestamp in the latest result in the internal buffer.</returns>
long GetOldestValidResultTime();
Это дает мне:
DataProcessor.h(154) : warning C4635: XML document comment applied to 'MyApp.DataProcessor.GetOldestValidResultTime': badly-formed XML: Only one top level element is allowed in an XML document.
Есть ли какой-либо способ обойти это, кроме использования <
, что усложняет примеры, если вы читаете источник напрямую, в отличие от вывода DOxygen (например)?..или код <
единственный вариант здесь?
[Редактировать] Я пробовал предложенный блок CDATA, но он работает только для однострочных:
/// <example><![CDATA[ test < 5; ]]></example>
/// <example>
/// <![CDATA[ test < 5; ]]>
/// </example>
.. но не многострочные комментарии, которые могли бы на самом деле сделать для удобочитаемого примера:
/// <example><![CDATA[
/// test < 5;
/// ]]> </example>
[Edit2] Попытка Пьерра удалить \\перед двумя последними утверждениями, которые, как и следовало ожидать, провалились:
/// <example><![CDATA[
test < 5;
]]> </example>
дает:
error C2143: syntax error : missing ';' before '<'