24 #include "../gtx/quaternion.hpp"    26 #ifndef GLM_ENABLE_EXPERIMENTAL    27 #   error "GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."    30 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)    31 # pragma message("GLM: GLM_GTX_io extension included")    45         enum order_type { column_major, row_major};
    47         template<
typename CTy>
    48         class format_punct : 
public std::locale::facet
    50             typedef CTy char_type;
    54             static std::locale::id id;
    61             char_type  delim_right;
    66             GLM_FUNC_DECL 
explicit format_punct(
size_t a = 0);
    67             GLM_FUNC_DECL 
explicit format_punct(format_punct 
const&);
    70         template<
typename CTy, 
typename CTr = std::
char_traits<CTy> >
    71         class basic_state_saver {
    75             GLM_FUNC_DECL 
explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
    76             GLM_FUNC_DECL ~basic_state_saver();
    80             typedef ::std::basic_ios<CTy,CTr>      state_type;
    81             typedef typename state_type::char_type char_type;
    82             typedef ::std::ios_base::fmtflags      flags_type;
    83             typedef ::std::streamsize              streamsize_type;
    84             typedef ::std::locale 
const            locale_type;
    88             streamsize_type precision_;
    89             streamsize_type width_;
    93             GLM_FUNC_DECL basic_state_saver& operator=(basic_state_saver 
const&);
    96         typedef basic_state_saver<char>     state_saver;
    97         typedef basic_state_saver<wchar_t> wstate_saver;
    99         template<
typename CTy, 
typename CTr = std::
char_traits<CTy> >
   100         class basic_format_saver
   104             GLM_FUNC_DECL 
explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
   105             GLM_FUNC_DECL ~basic_format_saver();
   109             basic_state_saver<CTy> 
const bss_;
   111             GLM_FUNC_DECL basic_format_saver& operator=(basic_format_saver 
const&);
   114         typedef basic_format_saver<char>     format_saver;
   115         typedef basic_format_saver<wchar_t> wformat_saver;
   121             GLM_FUNC_DECL 
explicit precision(
unsigned);
   128             GLM_FUNC_DECL 
explicit width(
unsigned);
   131         template<
typename CTy>
   136             GLM_FUNC_DECL 
explicit delimeter(CTy , CTy , CTy  = 
',');
   143             GLM_FUNC_DECL 
explicit order(order_type);
   148         template<
typename FTy, 
typename CTy, 
typename CTr>
   149         FTy 
const& get_facet(std::basic_ios<CTy,CTr>&);
   150         template<
typename FTy, 
typename CTy, 
typename CTr>
   151         std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);
   152         template<
typename FTy, 
typename CTy, 
typename CTr>
   153         std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);
   155         template<
typename CTy, 
typename CTr>
   156         std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision 
const&);
   157         template<
typename CTy, 
typename CTr>
   158         std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width 
const&);
   159         template<
typename CTy, 
typename CTr>
   160         std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> 
const&);
   161         template<
typename CTy, 
typename CTr>
   162         std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order 
const&);
   165     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   166     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, qua<T, Q> 
const&);
   167     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   168     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<1, T, Q> 
const&);
   169     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   170     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<2, T, Q> 
const&);
   171     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   172     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<3, T, Q> 
const&);
   173     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   174     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<4, T, Q> 
const&);
   175     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   176     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 2, T, Q> 
const&);
   177     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   178     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 3, T, Q> 
const&);
   179     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   180     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 4, T, Q> 
const&);
   181     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   182     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 2, T, Q> 
const&);
   183     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   184     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 3, T, Q> 
const&);
   185     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   186     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 4, T, Q> 
const&);
   187     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   188     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 2, T, Q> 
const&);
   189     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   190     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 3, T, Q> 
const&);
   191     template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   192     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 4, T, Q> 
const&);
   194   template<
typename CTy, 
typename CTr, 
typename T, qualifier Q>
   195     GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr> &,
   196                                                          std::pair<mat<4, 4, T, Q> 
const, mat<4, 4, T, Q> 
const> 
const&);