• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef BOOST_METAPARSE_V1_ERROR_UNPAIRED_HPP
2 #define BOOST_METAPARSE_V1_ERROR_UNPAIRED_HPP
3 
4 // Copyright Abel Sinkovics (abel@sinkovics.hu)  2015.
5 // Distributed under the Boost Software License, Version 1.0.
6 //    (See accompanying file LICENSE_1_0.txt or copy at
7 //          http://www.boost.org/LICENSE_1_0.txt)
8 
9 #include <boost/mpl/vector.hpp>
10 
11 #include <iostream>
12 #include <string>
13 #include <sstream>
14 
15 namespace boost
16 {
17   namespace metaparse
18   {
19     namespace v1
20     {
21       namespace error
22       {
23         template <int Line, int Col, class Msg = boost::mpl::na>
24         struct unpaired
25         {
26           typedef unpaired type;
27 
get_valueboost::metaparse::v1::error::unpaired28           static std::string get_value()
29           {
30             std::ostringstream s;
31             s << Msg::get_value() << " (see " << Line << ":" << Col << ")";
32             return s.str();
33           }
34         };
35 
36         template <int Line, int Col>
37         struct unpaired<Line, Col, boost::mpl::na>
38         {
39           typedef unpaired type;
40 
41           template <class Msg = boost::mpl::na>
42           struct apply : unpaired<Line, Col, Msg> {};
43         };
44       }
45     }
46   }
47 }
48 
49 #endif
50 
51