From e2335a5744ac83f7c69b37038a1ce0d322ae9453 Mon Sep 17 00:00:00 2001 From: Arkadiy Vertleyb Date: Tue, 4 Jan 2005 14:38:07 +0000 Subject: [PATCH] added stuff to std registration [SVN r2428] --- genreg/input.txt | 149 ++++++++++++++++++++++-- genreg/main.cpp | 10 +- include/boost/typeof/std/bitset.hpp | 2 +- include/boost/typeof/std/complex.hpp | 17 +++ include/boost/typeof/std/deque.hpp | 2 +- include/boost/typeof/std/functional.hpp | 4 +- include/boost/typeof/std/iosfwd.hpp | 113 ++++++++++++++++++ include/boost/typeof/std/iterator.hpp | 52 +++++++++ include/boost/typeof/std/list.hpp | 2 +- include/boost/typeof/std/locale.hpp | 42 +++++++ include/boost/typeof/std/map.hpp | 2 +- include/boost/typeof/std/memory.hpp | 2 +- include/boost/typeof/std/queue.hpp | 2 +- include/boost/typeof/std/set.hpp | 2 +- include/boost/typeof/std/stack.hpp | 2 +- include/boost/typeof/std/string.hpp | 5 +- include/boost/typeof/std/utility.hpp | 2 +- include/boost/typeof/std/valarray.hpp | 23 ++++ include/boost/typeof/std/vector.hpp | 2 +- test/main.cpp | 32 ++++- 20 files changed, 441 insertions(+), 26 deletions(-) create mode 100755 include/boost/typeof/std/complex.hpp create mode 100755 include/boost/typeof/std/iosfwd.hpp create mode 100755 include/boost/typeof/std/iterator.hpp create mode 100755 include/boost/typeof/std/locale.hpp create mode 100755 include/boost/typeof/std/valarray.hpp diff --git a/genreg/input.txt b/genreg/input.txt index 0ed4a3d..8159d77 100755 --- a/genreg/input.txt +++ b/genreg/input.txt @@ -1,45 +1,51 @@ ~string -#memory +@memory TEMPLATE,std::char_traits,1 TEMPLATE,std::basic_string,1,3 +#ifdef BOOST_TYPEOF_COMPLIANT + +TYPE,std::string + +#endif//BOOST_TYPEOF_COMPLIANT + ~deque -#memory +@memory TEMPLATE,std::deque,1,2 ~list -#memory +@memory TEMPLATE,std::list,1,2 ~queue -#memory +@memory TEMPLATE,std::queue,1,2 ~stack -#memory +@memory TEMPLATE,std::stack,1,2 ~vector -#memory +@memory TEMPLATE,std::vector,1,2 ~map -#memory -#functional -#utility +@memory +@functional +@utility TEMPLATE,std::map,2,4 TEMPLATE,std::multimap,2,4 ~set -#memory -#functional +@memory +@functional TEMPLATE,std::set,1,3 TEMPLATE,std::multiset,1,3 @@ -88,13 +94,134 @@ TEMPLATE,std::mem_fun_t,2 TEMPLATE,std::mem_fun1_t,3 TEMPLATE,std::mem_fun_ref_t,2 TEMPLATE,std::mem_fun1_ref_t,3 + +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + TEMPLATE,std::const_mem_fun_t,2 TEMPLATE,std::const_mem_fun1_t,3 TEMPLATE,std::const_mem_fun_ref_t,2 TEMPLATE,std::const_mem_fun1_ref_t,3 +#endif//BOOST_WORKAROUND(BOOST_MSVC, <= 1300) + ~memory TEMPLATE,std::allocator,1 TEMPLATE,std::raw_storage_iterator,2 TEMPLATE,std::auto_ptr,1 + +~complex + +TEMPLATE,std::complex,1 + +~valarray + +TEMPLATE,std::valarray,1 +TYPE,std::slice +TEMPLATE,std::slice_array,1 +TYPE,std::gslice +TEMPLATE,std::gslice_array,1 +TEMPLATE,std::mask_array,1 +TEMPLATE,std::indirect_array,1 + +~iosfwd +@string +@memory + +TEMPLATE,std::basic_ios,1,2 +TEMPLATE,std::class basic_streambuf,1,2 +TEMPLATE,std::basic_istream,1,2 +TEMPLATE,std::basic_ostream,1,2 +TEMPLATE,std::basic_iostream,1,2 +TEMPLATE,std::basic_stringbuf,1,3 +TEMPLATE,std::basic_istringstream,1,3 +TEMPLATE,std::basic_ostringstream,1,3 +TEMPLATE,std::basic_stringstream,1,3 +TEMPLATE,std::basic_filebuf,1,2 +TEMPLATE,std::basic_ifstream,1,2 +TEMPLATE,std::basic_ofstream,1,2 +TEMPLATE,std::basic_fstream,1,2 +TEMPLATE,std::istreambuf_iterator,1,2 +TEMPLATE,std::ostreambuf_iterator,1,2 +TEMPLATE,std::fpos,1 + +#ifdef BOOST_TYPEOF_COMPLIANT + +TYPE,std::ios +TYPE,std::wios +TYPE,std::streambuf +TYPE,std::istream +TYPE,std::ostream +TYPE,std::iostream +TYPE,std::stringbuf +TYPE,std::istringstream +TYPE,std::ostringstream +TYPE,std::stringstream +TYPE,std::filebuf +TYPE,std::ifstream +TYPE,std::ofstream +TYPE,std::fstream +TYPE,std::wstreambuf +TYPE,std::wistream +TYPE,std::wostream +TYPE,std::wiostream +TYPE,std::wstringbuf +TYPE,std::wistringstream +TYPE,std::wostringstream +TYPE,std::wstringstream +TYPE,std::wfilebuf +TYPE,std::wifstream +TYPE,std::wofstream +TYPE,std::wfstream +TYPE,std::streampos +TYPE,std::wstreampos + +#endif//BOOST_TYPEOF_COMPLIANT + +~iterator +@string + +TEMPLATE,std::iterator_traits,1 +TEMPLATE,std::iterator,2,5 +TYPE,std::input_iterator_tag +TYPE,std::output_iterator_tag +TYPE,std::forward_iterator_tag +TYPE,std::bidirectional_iterator_tag +TYPE,std::random_access_iterator_tag +TEMPLATE,std::reverse_iterator,1 +TEMPLATE,std::back_insert_iterator,1 +TEMPLATE,std::front_insert_iterator,1 +TEMPLATE,std::insert_iterator,1 +TEMPLATE,std::istream_iterator,1,4 +TEMPLATE,std::ostream_iterator,1,3 +TEMPLATE,std::istreambuf_iterator,1,2 +TEMPLATE,std::ostreambuf_iterator,1,2 + +~locale + +TYPE,std::locale +TYPE,std::ctype_base +TEMPLATE,std::ctype,1 +TEMPLATE,std::ctype_byname,1 +TYPE,std::codecvt_base +TEMPLATE,std::codecvt,3 +TEMPLATE,std::codecvt_byname,3 +TEMPLATE,std::num_get,2 +TEMPLATE,std::num_put,2 +TEMPLATE,std::numpunct,1 +TEMPLATE,std::numpunct_byname,1 +TEMPLATE,std::collate,1 +TEMPLATE,std::collate_byname,1 +TYPE,std::time_base +TEMPLATE,std::time_get,2 +TEMPLATE,std::time_get_byname,2 +TEMPLATE,std::time_put,2 +TEMPLATE,std::time_put_byname,2 +TYPE,std::money_base +TEMPLATE,std::money_get,2 +TEMPLATE,std::money_put,2 +TEMPLATE_X,std::moneypunct,(class)(bool) +TEMPLATE_X,std::moneypunct_byname,(class)(bool) +TYPE,std::messages_base +TEMPLATE,std::messages,1 +TEMPLATE,std::messages_byname,1 diff --git a/genreg/main.cpp b/genreg/main.cpp index f0b3d20..7c96b7f 100755 --- a/genreg/main.cpp +++ b/genreg/main.cpp @@ -36,7 +36,7 @@ string copyright(const string& master) "// Copyright (C) 2004 " + master + ".\n" "// Use, modification and distribution is subject to the Boost Software\n" "// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)\n\n" - "// This is a generated file -- please do not modify." + "// This is a generated file -- please do not modify by hand." ; } @@ -73,6 +73,12 @@ public: m_out << endl << "#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()" << endl << endl; } + if (text[0] == '#') + { + m_out << text << endl; + return; + } + tokenizer > tokens(text, escaped_list_separator('\\', ',', '\"')); string what = getTokenAt(tokens, 0); @@ -147,7 +153,7 @@ int main() file_ptr->include(name); file_ptr->include("boost/typeof/typeof.hpp"); } - else if (text[0] == '#') + else if (text[0] == '@') { string name = text.substr(1); file_ptr->include(string("boost/typeof/std/") + name + ".hpp"); diff --git a/include/boost/typeof/std/bitset.hpp b/include/boost/typeof/std/bitset.hpp index 7102625..b0f8d2f 100755 --- a/include/boost/typeof/std/bitset.hpp +++ b/include/boost/typeof/std/bitset.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_bitset_hpp_INCLUDED #define BOOST_TYPEOF_STD_bitset_hpp_INCLUDED diff --git a/include/boost/typeof/std/complex.hpp b/include/boost/typeof/std/complex.hpp new file mode 100755 index 0000000..617c4cd --- /dev/null +++ b/include/boost/typeof/std/complex.hpp @@ -0,0 +1,17 @@ +// Copyright (C) 2004 Arkadiy Vertleyb, Peder Holt. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) + +// This is a generated file -- please do not modify by hand. + +#ifndef BOOST_TYPEOF_STD_complex_hpp_INCLUDED +#define BOOST_TYPEOF_STD_complex_hpp_INCLUDED + +#include +#include + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TEMPLATE(std::complex, 1) + +#endif//BOOST_TYPEOF_STD_complex_hpp_INCLUDED diff --git a/include/boost/typeof/std/deque.hpp b/include/boost/typeof/std/deque.hpp index ed1a216..d264bd1 100755 --- a/include/boost/typeof/std/deque.hpp +++ b/include/boost/typeof/std/deque.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_deque_hpp_INCLUDED #define BOOST_TYPEOF_STD_deque_hpp_INCLUDED diff --git a/include/boost/typeof/std/functional.hpp b/include/boost/typeof/std/functional.hpp index 6d55b4b..189cd9b 100755 --- a/include/boost/typeof/std/functional.hpp +++ b/include/boost/typeof/std/functional.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_functional_hpp_INCLUDED #define BOOST_TYPEOF_STD_functional_hpp_INCLUDED @@ -39,9 +39,11 @@ BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun_t, 2) BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun1_t, 3) BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun_ref_t, 2) BOOST_TYPEOF_REGISTER_TEMPLATE(std::mem_fun1_ref_t, 3) +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun_t, 2) BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun1_t, 3) BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun_ref_t, 2) BOOST_TYPEOF_REGISTER_TEMPLATE(std::const_mem_fun1_ref_t, 3) +#endif//BOOST_WORKAROUND(BOOST_MSVC, <= 1300) #endif//BOOST_TYPEOF_STD_functional_hpp_INCLUDED diff --git a/include/boost/typeof/std/iosfwd.hpp b/include/boost/typeof/std/iosfwd.hpp new file mode 100755 index 0000000..6b03f21 --- /dev/null +++ b/include/boost/typeof/std/iosfwd.hpp @@ -0,0 +1,113 @@ +// Copyright (C) 2004 Arkadiy Vertleyb, Peder Holt. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) + +// This is a generated file -- please do not modify by hand. + +#ifndef BOOST_TYPEOF_STD_iosfwd_hpp_INCLUDED +#define BOOST_TYPEOF_STD_iosfwd_hpp_INCLUDED + +#include +#include +#include +#include + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ios, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ios, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::class basic_streambuf, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::class basic_streambuf, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_istream, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_istream, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ostream, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ostream, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_iostream, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_iostream, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_stringbuf, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_stringbuf, 2) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_stringbuf, 3) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_istringstream, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_istringstream, 2) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_istringstream, 3) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ostringstream, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ostringstream, 2) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ostringstream, 3) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_stringstream, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_stringstream, 2) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_stringstream, 3) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_filebuf, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_filebuf, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ifstream, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ifstream, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ofstream, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_ofstream, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_fstream, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_fstream, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::fpos, 1) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TYPE(std::ios) +BOOST_TYPEOF_REGISTER_TYPE(std::wios) +BOOST_TYPEOF_REGISTER_TYPE(std::streambuf) +BOOST_TYPEOF_REGISTER_TYPE(std::istream) +BOOST_TYPEOF_REGISTER_TYPE(std::ostream) +BOOST_TYPEOF_REGISTER_TYPE(std::iostream) +BOOST_TYPEOF_REGISTER_TYPE(std::stringbuf) +BOOST_TYPEOF_REGISTER_TYPE(std::istringstream) +BOOST_TYPEOF_REGISTER_TYPE(std::ostringstream) +BOOST_TYPEOF_REGISTER_TYPE(std::stringstream) +BOOST_TYPEOF_REGISTER_TYPE(std::filebuf) +BOOST_TYPEOF_REGISTER_TYPE(std::ifstream) +BOOST_TYPEOF_REGISTER_TYPE(std::ofstream) +BOOST_TYPEOF_REGISTER_TYPE(std::fstream) +BOOST_TYPEOF_REGISTER_TYPE(std::wstreambuf) +BOOST_TYPEOF_REGISTER_TYPE(std::wistream) +BOOST_TYPEOF_REGISTER_TYPE(std::wostream) +BOOST_TYPEOF_REGISTER_TYPE(std::wiostream) +BOOST_TYPEOF_REGISTER_TYPE(std::wstringbuf) +BOOST_TYPEOF_REGISTER_TYPE(std::wistringstream) +BOOST_TYPEOF_REGISTER_TYPE(std::wostringstream) +BOOST_TYPEOF_REGISTER_TYPE(std::wstringstream) +BOOST_TYPEOF_REGISTER_TYPE(std::wfilebuf) +BOOST_TYPEOF_REGISTER_TYPE(std::wifstream) +BOOST_TYPEOF_REGISTER_TYPE(std::wofstream) +BOOST_TYPEOF_REGISTER_TYPE(std::wfstream) +BOOST_TYPEOF_REGISTER_TYPE(std::streampos) +BOOST_TYPEOF_REGISTER_TYPE(std::wstreampos) +#endif//BOOST_TYPEOF_COMPLIANT + +#endif//BOOST_TYPEOF_STD_iosfwd_hpp_INCLUDED diff --git a/include/boost/typeof/std/iterator.hpp b/include/boost/typeof/std/iterator.hpp new file mode 100755 index 0000000..9279159 --- /dev/null +++ b/include/boost/typeof/std/iterator.hpp @@ -0,0 +1,52 @@ +// Copyright (C) 2004 Arkadiy Vertleyb, Peder Holt. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) + +// This is a generated file -- please do not modify by hand. + +#ifndef BOOST_TYPEOF_STD_iterator_hpp_INCLUDED +#define BOOST_TYPEOF_STD_iterator_hpp_INCLUDED + +#include +#include +#include + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator_traits, 1) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 3) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 4) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::iterator, 5) +BOOST_TYPEOF_REGISTER_TYPE(std::input_iterator_tag) +BOOST_TYPEOF_REGISTER_TYPE(std::output_iterator_tag) +BOOST_TYPEOF_REGISTER_TYPE(std::forward_iterator_tag) +BOOST_TYPEOF_REGISTER_TYPE(std::bidirectional_iterator_tag) +BOOST_TYPEOF_REGISTER_TYPE(std::random_access_iterator_tag) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::reverse_iterator, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::back_insert_iterator, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::front_insert_iterator, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::insert_iterator, 1) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 3) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istream_iterator, 4) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 2) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostream_iterator, 3) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::istreambuf_iterator, 2) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 1) +#endif//BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ostreambuf_iterator, 2) + +#endif//BOOST_TYPEOF_STD_iterator_hpp_INCLUDED diff --git a/include/boost/typeof/std/list.hpp b/include/boost/typeof/std/list.hpp index 9dadeca..991bdf5 100755 --- a/include/boost/typeof/std/list.hpp +++ b/include/boost/typeof/std/list.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_list_hpp_INCLUDED #define BOOST_TYPEOF_STD_list_hpp_INCLUDED diff --git a/include/boost/typeof/std/locale.hpp b/include/boost/typeof/std/locale.hpp new file mode 100755 index 0000000..7499560 --- /dev/null +++ b/include/boost/typeof/std/locale.hpp @@ -0,0 +1,42 @@ +// Copyright (C) 2004 Arkadiy Vertleyb, Peder Holt. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) + +// This is a generated file -- please do not modify by hand. + +#ifndef BOOST_TYPEOF_STD_locale_hpp_INCLUDED +#define BOOST_TYPEOF_STD_locale_hpp_INCLUDED + +#include +#include + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TYPE(std::locale) +BOOST_TYPEOF_REGISTER_TYPE(std::ctype_base) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ctype, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::ctype_byname, 1) +BOOST_TYPEOF_REGISTER_TYPE(std::codecvt_base) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::codecvt, 3) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::codecvt_byname, 3) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::num_get, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::num_put, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::numpunct, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::numpunct_byname, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::collate, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::collate_byname, 1) +BOOST_TYPEOF_REGISTER_TYPE(std::time_base) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::time_get, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::time_get_byname, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::time_put, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::time_put_byname, 2) +BOOST_TYPEOF_REGISTER_TYPE(std::money_base) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::money_get, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::money_put, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE_X(std::moneypunct, (class)(bool)) +BOOST_TYPEOF_REGISTER_TEMPLATE_X(std::moneypunct_byname, (class)(bool)) +BOOST_TYPEOF_REGISTER_TYPE(std::messages_base) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::messages, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::messages_byname, 1) + +#endif//BOOST_TYPEOF_STD_locale_hpp_INCLUDED diff --git a/include/boost/typeof/std/map.hpp b/include/boost/typeof/std/map.hpp index 23a8987..616ac46 100755 --- a/include/boost/typeof/std/map.hpp +++ b/include/boost/typeof/std/map.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_map_hpp_INCLUDED #define BOOST_TYPEOF_STD_map_hpp_INCLUDED diff --git a/include/boost/typeof/std/memory.hpp b/include/boost/typeof/std/memory.hpp index 5cf4e4d..01156be 100755 --- a/include/boost/typeof/std/memory.hpp +++ b/include/boost/typeof/std/memory.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_memory_hpp_INCLUDED #define BOOST_TYPEOF_STD_memory_hpp_INCLUDED diff --git a/include/boost/typeof/std/queue.hpp b/include/boost/typeof/std/queue.hpp index 7ebe16a..6681a57 100755 --- a/include/boost/typeof/std/queue.hpp +++ b/include/boost/typeof/std/queue.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_queue_hpp_INCLUDED #define BOOST_TYPEOF_STD_queue_hpp_INCLUDED diff --git a/include/boost/typeof/std/set.hpp b/include/boost/typeof/std/set.hpp index 8a67f2a..16c0665 100755 --- a/include/boost/typeof/std/set.hpp +++ b/include/boost/typeof/std/set.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_set_hpp_INCLUDED #define BOOST_TYPEOF_STD_set_hpp_INCLUDED diff --git a/include/boost/typeof/std/stack.hpp b/include/boost/typeof/std/stack.hpp index 1393672..9414ef3 100755 --- a/include/boost/typeof/std/stack.hpp +++ b/include/boost/typeof/std/stack.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_stack_hpp_INCLUDED #define BOOST_TYPEOF_STD_stack_hpp_INCLUDED diff --git a/include/boost/typeof/std/string.hpp b/include/boost/typeof/std/string.hpp index fd5b507..d7b70ed 100755 --- a/include/boost/typeof/std/string.hpp +++ b/include/boost/typeof/std/string.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_string_hpp_INCLUDED #define BOOST_TYPEOF_STD_string_hpp_INCLUDED @@ -19,5 +19,8 @@ BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_string, 1) BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_string, 2) #endif//BOOST_TYPEOF_COMPLIANT BOOST_TYPEOF_REGISTER_TEMPLATE(std::basic_string, 3) +#ifdef BOOST_TYPEOF_COMPLIANT +BOOST_TYPEOF_REGISTER_TYPE(std::string) +#endif//BOOST_TYPEOF_COMPLIANT #endif//BOOST_TYPEOF_STD_string_hpp_INCLUDED diff --git a/include/boost/typeof/std/utility.hpp b/include/boost/typeof/std/utility.hpp index 9e45ced..3500124 100755 --- a/include/boost/typeof/std/utility.hpp +++ b/include/boost/typeof/std/utility.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_utility_hpp_INCLUDED #define BOOST_TYPEOF_STD_utility_hpp_INCLUDED diff --git a/include/boost/typeof/std/valarray.hpp b/include/boost/typeof/std/valarray.hpp new file mode 100755 index 0000000..01e5e81 --- /dev/null +++ b/include/boost/typeof/std/valarray.hpp @@ -0,0 +1,23 @@ +// Copyright (C) 2004 Arkadiy Vertleyb, Peder Holt. +// Use, modification and distribution is subject to the Boost Software +// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) + +// This is a generated file -- please do not modify by hand. + +#ifndef BOOST_TYPEOF_STD_valarray_hpp_INCLUDED +#define BOOST_TYPEOF_STD_valarray_hpp_INCLUDED + +#include +#include + +#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() + +BOOST_TYPEOF_REGISTER_TEMPLATE(std::valarray, 1) +BOOST_TYPEOF_REGISTER_TYPE(std::slice) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::slice_array, 1) +BOOST_TYPEOF_REGISTER_TYPE(std::gslice) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::gslice_array, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::mask_array, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::indirect_array, 1) + +#endif//BOOST_TYPEOF_STD_valarray_hpp_INCLUDED diff --git a/include/boost/typeof/std/vector.hpp b/include/boost/typeof/std/vector.hpp index 5506b8d..d650532 100755 --- a/include/boost/typeof/std/vector.hpp +++ b/include/boost/typeof/std/vector.hpp @@ -2,7 +2,7 @@ // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) -// This is a generated file -- please do not modify. +// This is a generated file -- please do not modify by hand. #ifndef BOOST_TYPEOF_STD_vector_hpp_INCLUDED #define BOOST_TYPEOF_STD_vector_hpp_INCLUDED diff --git a/test/main.cpp b/test/main.cpp index fbaf4fa..8e0915b 100755 --- a/test/main.cpp +++ b/test/main.cpp @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() @@ -145,7 +147,7 @@ struct noncopiable_test } }; -#pragma message("STL...") +#pragma message("STL containers...") BOOST_STATIC_ASSERT(typeof_test::value); BOOST_STATIC_ASSERT(typeof_test >::value); @@ -159,6 +161,34 @@ BOOST_STATIC_ASSERT(typeof_test >::value); BOOST_STATIC_ASSERT(typeof_test >::value); BOOST_STATIC_ASSERT(typeof_test >::value); +#pragma message("function objects...") + +BOOST_STATIC_ASSERT((typeof_test >::value)); +BOOST_STATIC_ASSERT((typeof_test >::value)); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test >::value); +BOOST_STATIC_ASSERT(typeof_test > >::value); +BOOST_STATIC_ASSERT(typeof_test > >::value); + +#pragma message("valarray...") + +BOOST_STATIC_ASSERT(typeof_test >::value); + #pragma message("ODR...") void odr_test() {