Declrations
namespace html {
template <class CharT, class InputIterator, class OutputIterator>
OutputIterator escape(InputIterator first, InputIterator last,
OutputIterator result);
template <class Ch, class Tr>
std::basic_string<Ch, Tr> escape(const std::basic_string<Ch, Tr> s);
template <class CharT>
std::basic_string<CharT> escape(const CharT* s);
}
Overview
html::escape は,html 文書で制御文字として使われている文字をエスケープするための関数です. エスケープする文字は,"&",""","<",">", "'"の 5 つです.尚,InputIterator と OutputIterator を引数に指定する関数を使用する場合は,以下のように文字型を明示する必要があります.
std::string src; std::string dest; std::insert_iterator pos(dest, dest.begin()); clx::html::escape<char>(src.begin(), src.end(), pos)
Example
#include <iostream>
#include <iterator>
#include "clx/html.h"
int main(int argc, char* argv[]) {
std::ostreambuf_iterator<char> result(std::cout);
std::istreambuf_iterator<char> input(std::cin);
std::istreambuf_iterator<char> last;
clx::html::escape<char>(input, last, result);
return 0;
}