<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>
    <meta name="robots" content="index, nofollow"/>


<meta http-equiv="content-type" content="text/html; charset=utf-8"><title>C++ code colored by C++2HTML</title>

<meta name="generator" content="C++2HTML by Jasper Bedaux"><!-- To generate your own colored code visit http://www.bedaux.net/cpp2html/ -->

<style type="text/css">
.comment { color: #999999; font-style: italic; }
.pre { color: #000099; }
.string { color: #009900; }
.char { color: #009900; }
.float { color: #996600; }
.int { color: #999900; }
.bool { color: #000000; font-weight: bold; }
.type { color: #FF6633; }
.flow { color: #FF0000; }
.keyword { color: #990000; }
.operator { color: #663300; font-weight: bold; }
</style></head><body>
<pre><span class="comment">/*
This template tries to show, that almost anything is possible with bib2x-templates.
The outcome of this template is C++ Code, which you can compile.
It does not do much but fill objects with the bibliographic entries and print them afterwards.


*/</span><span class="pre">



#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;map&gt;
</span><span class="keyword">
typedef</span> std<span class="operator">::</span>map<span class="operator">&lt;</span>std<span class="operator">::</span>string<span class="operator">,</span> std<span class="operator">::</span>string<span class="operator">&gt;</span> CName2Str<span class="operator">;</span><span class="keyword">

class</span> CEntry<span class="operator">
{</span><span class="keyword">
private</span><span class="operator">:</span>
    std<span class="operator">::</span>string m_sName<span class="operator">;</span>
    std<span class="operator">::</span>string m_sType<span class="operator">;</span>
    CName2Str m_oAttrib<span class="operator">;</span>
    CEntry<span class="operator">*</span> m_poNext<span class="operator">;</span><span class="type">


    void</span> Print<span class="operator"> ( )
        {</span>
        CName2Str<span class="operator">::</span>iterator mIt<span class="operator"> =</span> m_oAttrib<span class="operator">.</span>begin<span class="operator">();</span>
        CName2Str<span class="operator">::</span>iterator mItEnd<span class="operator"> =</span> m_oAttrib<span class="operator">.</span>end<span class="operator">();</span>
    
        std<span class="operator">::</span>cout<span class="operator"> &lt;&lt;</span> m_sName<span class="operator"> &lt;&lt;</span><span class="string"> "("</span><span class="operator"> &lt;&lt;</span> m_sType<span class="operator"> &lt;&lt;</span><span class="string"> "):"</span><span class="operator"> &lt;&lt;</span> std<span class="operator">::</span>endl<span class="operator">;</span><span class="flow">

        for</span><span class="operator"> ( ;</span> mIt<span class="operator"> !=</span> mItEnd<span class="operator">; ++</span>mIt<span class="operator"> )
            {</span>
            std<span class="operator">::</span>cout<span class="operator"> &lt;&lt;</span><span class="string"> "\t"</span><span class="operator"> &lt;&lt;</span> mIt<span class="operator">-&gt;</span>first<span class="operator"> &lt;&lt;</span><span class="string"> "\t:"</span><span class="operator"> &lt;&lt;</span> mIt<span class="operator">-&gt;</span>second<span class="operator"> &lt;&lt;</span> std<span class="operator">::</span>endl<span class="operator">;
            }</span>
        std<span class="operator">::</span>cout<span class="operator"> &lt;&lt;</span> std<span class="operator">::</span>endl<span class="operator">;
        }</span><span class="keyword">

public</span><span class="operator">:</span>

    CEntry<span class="operator"> (</span> std<span class="operator">::</span>string sName<span class="operator">,</span> std<span class="operator">::</span>string sType<span class="operator"> )
        :</span> m_sName<span class="operator"> (</span> sName<span class="operator"> ),</span>
          m_sType<span class="operator"> (</span> sType<span class="operator"> )
        {</span>
        m_poNext<span class="operator"> =</span><span class="int"> 0</span><span class="operator">;
        }</span><span class="type">
    
    void</span> FollowedBy<span class="operator"> (</span> CEntry<span class="operator">*</span> poNext<span class="operator"> )
        {</span>
        m_poNext<span class="operator"> =</span> poNext<span class="operator">;
        }</span><span class="type">

    void</span> AddAttrib<span class="operator"> (</span> std<span class="operator">::</span>string sName<span class="operator">,</span> std<span class="operator">::</span>string sContent<span class="operator"> )
        {</span>
        m_oAttrib<span class="operator">[</span>sName<span class="operator">] =</span> sContent<span class="operator">;
        }</span><span class="type">

    void</span> PrintRecursively<span class="operator"> ()
        {</span>
        Print<span class="operator">();</span><span class="flow">
        if</span><span class="operator"> (</span> m_poNext<span class="operator"> )</span>
            m_poNext<span class="operator">-&gt;</span>PrintRecursively<span class="operator"> ();
        }

};</span><span class="type">



int</span><span class="keyword"> main</span><span class="operator"> (</span><span class="type"> void</span><span class="operator"> )
    {</span>
    CEntry<span class="operator">*</span> poEntry<span class="operator"> =</span><span class="int"> 0</span><span class="operator">;</span>
    CEntry<span class="operator">*</span> poPrev<span class="operator"> =</span><span class="int"> 0</span><span class="operator">;</span>
    CEntry<span class="operator">*</span> poFirst<span class="operator"> =</span><span class="int"> 0</span><span class="operator">;</span>


    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "CSS21:2005"</span><span class="operator">,</span><span class="string"> "@misc"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "Bert Bos and Tantek &amp;#x43;&amp;#x0327;elik and Ian Hickson and H&amp;#x0061;&amp;#x030A;kon Wium Lie"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "Cascading Style Sheets, CSS 2.1 Specification"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "2005"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"howpublished"</span><span class="operator">,</span><span class="string"> "W3C Recommendation, http://www.w3.org/TR/2005/WD-CSS21-20050613/http://www.w3.org/TR/2005/WD-CSS21-20050613/"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"url"</span><span class="operator">,</span><span class="string"> "http://www.w3.org/TR/2005/WD-CSS21-20050613/"</span><span class="operator">);</span>




    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "XML11:2004"</span><span class="operator">,</span><span class="string"> "@misc"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "Bray Tim and Jean Paoli and C. M. Sperberg-McQueen and Eve Maler and Fran&amp;#x63;&amp;#x0327;ois Yergeau and John Cowan"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "Extensible Markup Language (XML) 1.1 Specification"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "2004"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"howpublished"</span><span class="operator">,</span><span class="string"> "W3C Recommendation, http://www.w3.org/TR/xml11/http://www.w3.org/TR/xml11/"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"url"</span><span class="operator">,</span><span class="string"> "http://www.w3.org/TR/xml11/"</span><span class="operator">);</span>




    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "HTML4:1999"</span><span class="operator">,</span><span class="string"> "@misc"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "Dave Raggett and Arnaud Le Hors and Ian Jacobs"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "HTML 4.01 Specification"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "1999"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"howpublished"</span><span class="operator">,</span><span class="string"> "W3C Recommendation, http://www.w3.org/TR/html4/http://www.w3.org/TR/html4/"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"url"</span><span class="operator">,</span><span class="string"> "http://www.w3.org/TR/html4/"</span><span class="operator">);</span>




    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "seligman01impact"</span><span class="operator">,</span><span class="string"> "@article"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "Len Seligman and Arnon Rosenthal"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "XML's Impact on Databases and Data Sharing"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "2001"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"address"</span><span class="operator">,</span><span class="string"> "Los Alamitos, CA, USA"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"doi"</span><span class="operator">,</span><span class="string"> "http://dx.doi.org/10.1109/2.928623"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"issn"</span><span class="operator">,</span><span class="string"> "0018-9162"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"journal"</span><span class="operator">,</span><span class="string"> "Computer"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"number"</span><span class="operator">,</span><span class="string"> "6"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"pages"</span><span class="operator">,</span><span class="string"> "59--67"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"publisher"</span><span class="operator">,</span><span class="string"> "IEEE Computer Society Press"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"volume"</span><span class="operator">,</span><span class="string"> "34"</span><span class="operator">);</span>




    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "lamport94"</span><span class="operator">,</span><span class="string"> "@book"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "Leslie Lamport"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "LaTeX: This entry is an intended dupe!"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "1995"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"pages"</span><span class="operator">,</span><span class="string"> "156-163"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"publisher"</span><span class="operator">,</span><span class="string"> "Addison-Wesley"</span><span class="operator">);</span>



    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "lamport94"</span><span class="operator">,</span><span class="string"> "@book"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "Leslie Lamport"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "LaTeX: A Document Preparation System"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "1994"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"pages"</span><span class="operator">,</span><span class="string"> "156-163"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"publisher"</span><span class="operator">,</span><span class="string"> "Addison-Wesley"</span><span class="operator">);</span>




    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "patashnik-bibtexing"</span><span class="operator">,</span><span class="string"> "@misc"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "Oren Patashnik"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "BIBTEXing"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "1988"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"url"</span><span class="operator">,</span><span class="string"> "citeseer.ist.psu.edu/article/patashnik88bibtexing.html"</span><span class="operator">);</span>




    poPrev<span class="operator"> =</span> poEntry<span class="operator">;</span>
    poEntry<span class="operator"> =</span><span class="keyword"> new</span> CEntry<span class="operator"> (</span><span class="string"> "Unicode:2003:USV"</span><span class="operator">,</span><span class="string"> "@book"</span><span class="operator"> );</span><span class="flow">
    if</span><span class="operator"> (</span> poPrev<span class="operator"> )</span>
        poPrev<span class="operator">-&gt;</span>FollowedBy<span class="operator">(</span>poEntry<span class="operator">);</span><span class="flow">
    if</span><span class="operator"> ( !</span>poFirst<span class="operator"> )</span>
        poFirst<span class="operator"> =</span> poEntry<span class="operator">;</span>

    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"author"</span><span class="operator">,</span><span class="string"> "The Unicode Consortium"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"title"</span><span class="operator">,</span><span class="string"> "The Unicode Standard, Version 4.0"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"year"</span><span class="operator">,</span><span class="string"> "2003"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"acknowledgement"</span><span class="operator">,</span><span class="string"> "--EMPTY--"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"address"</span><span class="operator">,</span><span class="string"> "Reading, MA, USA"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"bibdate"</span><span class="operator">,</span><span class="string"> "Tue Oct 21 17:47:30 2003"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"isbn"</span><span class="operator">,</span><span class="string"> "0-321-18578-1"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"isbn-13"</span><span class="operator">,</span><span class="string"> "978-0-321-18578-5"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"lccn"</span><span class="operator">,</span><span class="string"> "QA268 .U545 2004"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"note"</span><span class="operator">,</span><span class="string"> "Includes CD-ROM."</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"pages"</span><span class="operator">,</span><span class="string"> "xxxviii + 1462"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"publisher"</span><span class="operator">,</span><span class="string"> "Addison-Wesley"</span><span class="operator">);</span>
    poEntry<span class="operator">-&gt;</span>AddAttrib<span class="operator">(</span><span class="string">"url"</span><span class="operator">,</span><span class="string"> "http://www.unicode.org/versions/Unicode4.0.0/"</span><span class="operator">);</span>




    poFirst<span class="operator">-&gt;</span>PrintRecursively<span class="operator">();
    }</span>

</pre>

</body></html>