CLX C++ Libraries - html::escape
Author: clown

CLX C++ Libraries
Home >> html::escape

# 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

example_html.cpp

    #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;
    }

# Reference

1. S34 - Making of C++ Technical Documents