/*=============================================================================
    Copyright (c) 2001-2010 Hartmut Kaiser

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/

#include <boost/config/warning_disable.hpp>
#include <boost/spirit/include/karma_operator.hpp>
#include <boost/spirit/include/karma_char.hpp>
#include <boost/spirit/include/karma_numeric.hpp>
#include <boost/spirit/include/karma_nonterminal.hpp>
#include <boost/spirit/include/karma_generate.hpp>
#include <boost/function_output_iterator.hpp>

#include "test.hpp"

using namespace boost::spirit;
using namespace boost::spirit::ascii;

// this test must fail compiling as the rule is used with an incompatible 
// delimiter type
int main()
{
    typedef spirit_test::output_iterator<char>::type outiter_type;

    std::string generated;

    karma::rule<outiter_type, karma::rule<outiter_type> > def;
    def = int_(1) << ',' << int_(0);

    std::back_insert_iterator<std::string> outit(generated);
    generate_delimited(outit, def, char_('%') << '\n');

    return 0;
}
