]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Add.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 27 Sep 2010 20:54:16 +0000 (20:54 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 27 Sep 2010 20:54:16 +0000 (20:54 +0000)
git-svn-id: https://svn.dealii.org/trunk@22179 0785d39b-7218-0410-832d-ea1e28bc413d

374 files changed:
deal.II/contrib/boost/libs/serialization/build/Jamfile.v2 [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/acknowledgments.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/archive_reference.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/archives.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/bibliography.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/class_diagram.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/codecvt.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/configuration.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/contents.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/dataflow.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/definitions.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/derivation.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/dot.gif [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/exception_safety.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/exceptions.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/extended_type_info.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/faq.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/headers.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/history.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/implementation.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/index.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/minus.gif [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/new_case_studies.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/overview.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/performance_status.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/pimpl.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/plus.gif [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/profile1.txt [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/profile2.txt [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/profile3.txt [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/rationale.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/reference.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/release.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/serialization.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/shared_ptr.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/shared_ptr2.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/simple_log.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/singleton.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/smart_cast.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/special.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/state_saver.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/static_warning.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/strong_typedef.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/style.css [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/todo.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/traits.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/tutorial.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/void_cast.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/doc/wrappers.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/Jamfile.v2 [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_auto_ptr.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_dll.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_dll_a.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_dll_a.ipp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_dll_b.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_dll_b.ipp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_exception.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_fast_archive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_gps.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_log.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_output.txt [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_pimpl.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_pimpl_A.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_pimpl_A.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_polymorphic.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_polymorphic_A.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_polymorphic_A.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_portable_archive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_save.xml [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_shared_ptr.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_simple_log.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_trivial_archive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_xml.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_xml.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_xml_load.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demo_xml_save.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/demofile.txt [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/log_archive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/log_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_iarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_iarchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_oarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_oarchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/portable_binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/portable_binary_iarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/portable_binary_iarchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/portable_binary_oarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/portable_binary_oarchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/example/simple_log_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/index.html [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/Jamfile.v2 [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/binary_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/peformance_array.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_binary.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_codecvt_null.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_iterators.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_iterators_base64.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_no_rtti.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_polymorphic.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_simple_class.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_utf8_codecvt.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/performance_vector.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/polymorphic_array_binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/polymorphic_binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/polymorphic_text_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/polymorphic_text_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/polymorphic_xml_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/polymorphic_xml_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/portable_binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/profile.sh [new file with mode: 0755]
deal.II/contrib/boost/libs/serialization/performance/text_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/text_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/xml_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/performance/xml_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/archive_exception.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_archive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_iarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_iserializer.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_oarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_oserializer.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_pointer_iserializer.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_pointer_oserializer.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_serializer_map.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_text_iprimitive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_text_oprimitive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_text_wiprimitive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_text_woprimitive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_xml_archive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/basic_xml_grammar.ipp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/binary_iarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/binary_oarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/binary_wiarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/binary_woarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/codecvt_null.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/extended_type_info.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/extended_type_info_no_rtti.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/extended_type_info_typeid.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/polymorphic_iarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/polymorphic_oarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/shared_ptr_helper.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/stl_port.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/text_iarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/text_oarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/text_wiarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/text_woarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/utf8_codecvt_facet.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/void_cast.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/xml_archive_exception.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/xml_grammar.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/xml_iarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/xml_oarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/xml_wgrammar.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/xml_wiarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/src/xml_woarchive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/A.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/A.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/A.ipp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/B.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/C.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/D.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/J.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/Jamfile.v2 [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/base.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/binary_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/derived2.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/dll_a.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/dll_base.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/dll_derived2.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_array_binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_base.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_base.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_derived1.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_derived1.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_derived2.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_derived2.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_text_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_text_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_xml_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/polymorphic_xml_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/portable_binary_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_array.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_binary.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_bitset.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_check.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_class_info_load.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_class_info_save.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_codecvt_null.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_complex.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_load_fail1.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_load_fail1_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_load_fail2.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_load_fail2_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_load_fail3.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_load_fail3_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_pass.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn1.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn1_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn2.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn2_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn3.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn3_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn4.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_const_save_warn4_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_contained_class.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_cyclic_ptrs.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_decl.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_delete_pointer.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_deque.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_derived.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_derived_class.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_derived_class_ptr.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_diamond.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_dll_exported.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_dll_plugin.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_dll_simple.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_exported.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_inclusion.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_iterators.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_iterators_base64.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_list.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_list_ptrs.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_map.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_mi.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_mult_archive_types.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_multiple_inheritance.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_multiple_ptrs.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_new_operator.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_no_rtti.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_non_default_ctor.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_non_default_ctor2.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_non_intrusive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_not_serializable.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_null_ptr.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_nvp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_object.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_optional.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_pimpl.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_polymorphic.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_polymorphic2.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_polymorphic2.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_polymorphic2imp.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_polymorphic_A.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_polymorphic_A.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_primitive.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_private_base.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_private_ctor.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_recursion.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_registered.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_reset_object_address.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_set.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_shared_ptr.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_shared_ptr_132.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_shared_ptr_multi_base.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_simple_class.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_simple_class_ptr.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_singleton.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_smart_cast.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_split.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_static_warning.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_tools.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_tracking.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_traits_fail.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_traits_pass.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_unregistered.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_utf8_codecvt.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_valarray.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_variant.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_vector.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/test_void_cast.cpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/text_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/text_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/xml_archive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/test/xml_warchive.hpp [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/util/test.jam [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/BoostSerializationLibrary.sln [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/Library.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/LibraryW.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/Manual.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_auto_ptr.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_dll.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_exception.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_fast_archive.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_log.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_pimpl.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_polymorphic.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_portable_archive.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_shared_ptr.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_simple_log.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_trivial_archive.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml_load.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml_save.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/dll_a.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/dll_base.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/dll_derived2.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/polymorphic_derived2.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/readme.txt [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_array.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_binary.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_bitset.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_check.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_class_info_load.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_class_info_save.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_codecvt_null.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_complex.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_const.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_const_fail.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_const_pass.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_contained_class.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_cyclic_ptrs.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_delete_pointer.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_deque.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_derived.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_derived_class.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_derived_class_ptr.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_diamond.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_exported.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_plugin.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_simple.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_exported.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_inclusion.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_iterators.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_iterators_base64.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_list.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_list_ptrs.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_map.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_mi.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_mult_archive_types.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_multiple_inheritance.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_multiple_ptrs.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_new_operator.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_no_rtti.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_non_default_ctor.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_non_default_ctor2.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_non_intrusive.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_not_serializable.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_null_ptr.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_nvp.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_object.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_optional.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_polymorphic.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_polymorphic2.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_primitive.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_private_base.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_private_ctor.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_recursion.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_recusion.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_registered.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_reset_object_addr.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_set.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr_132.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr_multi_base.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_simple_class.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_simple_class_ptr.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_singleton.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_smart_cast.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_split.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_static_warning.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_strong_typedef.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_tracking.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_traits_fail.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_traits_pass.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_unregistered.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_utf8_codecvt.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_valarray.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_variant.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_vector.vcproj [new file with mode: 0644]
deal.II/contrib/boost/libs/serialization/vc7ide/test_void_cast.vcproj [new file with mode: 0644]

diff --git a/deal.II/contrib/boost/libs/serialization/build/Jamfile.v2 b/deal.II/contrib/boost/libs/serialization/build/Jamfile.v2
new file mode 100644 (file)
index 0000000..1630713
--- /dev/null
@@ -0,0 +1,113 @@
+# Boost serialization Library Build Jamfile
+#  (C) Copyright Robert Ramey 2002-2004.
+#  Use, modification, and distribution are subject to 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)
+#
+#  See http://www.boost.org/libs/serialization for the library home page.
+
+project boost/serialization
+    : source-location ../src
+    : requirements
+      <conditional>@include-spirit
+;
+
+SPIRIT_ROOT = [ modules.peek : SPIRIT_ROOT ] ;
+rule include-spirit ( properties * )
+{
+    local old-compiler ;
+    if <toolset>borland in $(properties)
+    {
+        if ! <toolset-borland:version>6.1.0 in $(properties)  
+        {  
+            old-compiler = true ;  
+        }  
+
+    }
+    else if <toolset>msvc in $(properties)
+    {
+        if <toolset-msvc:version>6.5 in $(properties)
+          || <toolset-msvc:version>7.0 in $(properties)
+        {            
+            old-compiler = true ;
+        }        
+    }
+        
+    local result ;
+    if $(old-compiler)
+    {        
+        if $(SPIRIT_ROOT)
+        {
+            # note - we can't use <include>$(SPIRIT_ROOT) because 
+            # it puts -I$(SPIRIT_ROOT) AFTER the "../../.." in the command line.
+            # so use these instead 
+            result = <cxxflags>-I$(SPIRIT_ROOT) ;
+        }
+        else 
+        {
+            echo **** spirit 1.6x required to build library with this compiler **** ;
+            result = <build>no ;
+        }
+    }    
+    return $(result) ;
+}
+
+SOURCES = 
+    basic_archive
+    basic_iarchive
+    basic_iserializer
+    basic_oarchive
+    basic_oserializer
+    basic_pointer_iserializer
+    basic_pointer_oserializer
+    basic_serializer_map
+    basic_text_iprimitive
+    basic_text_oprimitive
+    basic_xml_archive
+    binary_iarchive
+    binary_oarchive
+    extended_type_info
+    extended_type_info_typeid
+    extended_type_info_no_rtti
+    polymorphic_iarchive
+    polymorphic_oarchive
+    stl_port
+    text_iarchive
+    text_oarchive
+    void_cast
+    archive_exception
+    xml_grammar
+    xml_iarchive
+    xml_oarchive
+    xml_archive_exception
+    shared_ptr_helper
+;
+    
+WSOURCES = 
+    basic_text_wiprimitive
+    basic_text_woprimitive
+    text_wiarchive
+    text_woarchive
+    utf8_codecvt_facet
+    xml_wgrammar
+    xml_wiarchive
+    xml_woarchive
+    codecvt_null
+;
+
+
+lib boost_serialization 
+    : $(SOURCES).cpp
+    : 
+    <toolset>msvc:<cxxflags>/Gy
+    <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
+    ;
+
+lib boost_wserialization 
+    : $(WSOURCES).cpp boost_serialization 
+    :     
+    <toolset>msvc:<cxxflags>/Gy 
+    <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
+    ;
+
+boost-install boost_serialization boost_wserialization ;
diff --git a/deal.II/contrib/boost/libs/serialization/doc/acknowledgments.html b/deal.II/contrib/boost/libs/serialization/doc/acknowledgments.html
new file mode 100644 (file)
index 0000000..e048488
--- /dev/null
@@ -0,0 +1,89 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Acknowledgments</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
+    "header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="http://www.boost.org"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Acknowledgments</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<ul>
+  <li><a href="http://www.autoform.com">AutoForm Engineering GmbH</a> supported
+  development efforts to extend correct serialization to objects stored in DLLS.
+  <li><a href"http://www.cadence.com/il">Cadence Israel</a> supported enhancement
+  and testing of the portable binary archive.
+  <li>David Abrahams improved implementation of "export" functionality.  This not
+  only eliminated an annoying header sequencing requirement, but also the need to maintain
+  a list of "known archives".
+  <li>Mattias Troyer enhanced the implementation of native binary archives.  This includes
+  enhancement and generalization of the library itself including generalization of
+  the wrapper concept.
+  <li>Markus Sch&ouml;pflin tracked down issues with TRU64 compiler resulting in 100% passing.
+  <li><a href="mailto::troy@resophonic.com"> Troy D. Straszheim</a> made the initial version of variant serialization.
+  <li>Tonko Juricic helped refine and complete project files for VC 7.1 ide
+  <li><a href="http://www.boost.org/people/rene_rivera.htm">Rene Rivera</a> tracked down several issues related to 
+  Code Warrior, toolset configuration and bjam and much else.
+  <li>Martin Ecker detected (and fixed!) a number of sublte errors regarding cyclic
+  pointers, shared pointers.  He also built the library as a DLL and raised some issues
+  <li>Pavel Vozenilek invested much effort in review of code and documentation
+  resulting in many improvements.  In addition he help a lot with porting to other
+  platforms including VC 6.0, Intel, and especially Borland.
+  <li><a href="http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a> and
+  <a href="http://www.boost.org/people/beman_dawes.html">Beman Dawes</a> who got the boost
+  serialization ball rolling.  It was one or both of these two that invented
+  the much beloved <code>&amp;</code> syntax used to implement both save and
+  load in one fuction specification.
+  <li><a href="http://www.boost.org/people/vladimir_prus.htm">Vladimir Prus</a> for evaluating an
+  early draft and contributing the diamond inheritance example.
+  <li><a href="http://www.boost.org/people/william_kempf.htm">William E. Kempf</a>
+  who made the templates for this and other boost manuals.  This relieved
+  me of much aggravation.
+  <li><a href="mailto:vahan@unicad.am">Vahan Margaryan</a> and
+  <a href="mailto:fredrik_blomqvist-at-home.se">Fredrik Blomqvist</a> for their contributions
+  to my understanding of the subtle issues of exception safety in this context.
+  <li>all other boost members who responded with feedback during the
+  development of this library.  Almost all comments resulted in
+  tangible changes in the library which made it much better.
+  <li>boosters who helped out in porting to other platforms:, Fernando Cacciola (Borland), 
+  Jeff Flinn (VC 7.1), Vladimir Prus (gcc 3.3), Christoph Ludwig(gcc 3.4),
+  Rob Lievaart(mingw), Marshal Clow(gcc-darwin) among others.
+  <li>all boost members who participated in the first formal review
+  in November 2002.  Many of these members invested quite an effort
+  to evaluate the library and suggest changes. They are
+  Matthias Troyer, Pavel Vozenilek, Vladimir Prus, Fredrik Blomqvist,
+  Jeff Garland, Gennadiy Rozental, Alberto Barbati, Dave Harris.
+  Mr. Rozenthal in particular wrote an incredibly insightful analysis
+  that has driven all subsequent development that has resulted in the
+  current package.
+  <li>Dave Harris proposal and spirited defense of it lead to a re-thinking
+  of the overrides for serialization of pointers.  This resulted in a simpler
+  and more effective method of accounting for non-default constructors
+  required by serialization of pointers and STL collections.
+</ul>
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
+
diff --git a/deal.II/contrib/boost/libs/serialization/doc/archive_reference.html b/deal.II/contrib/boost/libs/serialization/doc/archive_reference.html
new file mode 100644 (file)
index 0000000..b8314dd
--- /dev/null
@@ -0,0 +1,419 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-10 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - More on Archives</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Archive Class Reference</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#trivial">Trivial Archive</a>
+  <dt><a href="#implementation">More Useful Archive Classes</a>
+  <dt><a href="#usage">Usage</a>
+  <dt><a href="#testing">Testing</a>
+  <dt><a href="#polymorphic">Polymorphic Archives</a>
+</dl>
+
+<h3><a name="trivial">Trivial Archive</a></h3>
+The <a href="archives.html"><strong>Archive</strong></a> concept specifies the functions that a
+class must implement to in order to be used to serialize 
+<a href="serialization.html"><strong>Serializable</strong></a> types.
+
+Our discussion will focus on archives used for saving as the hierarchy is exactly analogous
+for archives used for loading data.
+
+<h4>Minimum Requirments</h4>
+
+The simplest class which will model the <a href="archives.html"><strong>Archive</strong></a> concept specifies the functions that a
+class will look like:
+
+<pre><code>
+#include &lt;cstddef&gt; // std::size_t
+//////////////////////////////////////////////////////////////
+// class trivial_oarchive
+class trivial_oarchive {
+public:
+    //////////////////////////////////////////////////////////
+    // public interface used by programs that use the
+    // serialization library
+    typedef boost::mpl::bool_&lt;true&gt; is_saving; 
+    typedef boost::mpl::bool_&lt;false&gt; is_loading;
+    template&lt;class T&gt; register_type(){}
+    template&lt;class T&gt; trivial_oarchive & operator&lt;&lt;(const T & t){
+        return *this;
+    }
+    template&lt;class T&gt; trivial_oarchive & operator&(const T & t){
+        return *this &lt;&lt; t;
+    }
+    void save_binary(void *address, std::size_t count){};
+};
+</code></pre>
+The simplest possible input archive class is analogous to the above.
+In the following discussion, only output archives will be addressed.
+Input archives are exactly symmetrical to output archives.
+<p>
+This archive will compile and execute with any types which implement the
+<a href="serialization.html"><strong>Serializable</strong></a> concept.
+For an example see
+<a href="../example/demo_trivial_archive.cpp" target="demo_trivial_archive">
+<code style="white-space: normal">demo_trivial_archive.cpp</code></a>.
+Of course this program won't produce any output as it is.  But it provides
+the starting point for a simple class which can be used to log formated
+output.  See the implementation of a <a href="simple_log.html">simple
+log archive</a> to how this has been done.
+
+<h3><a name="implementation">More Useful Archive Classes</a></h3>
+The above example is fine as far as it goes.  But it doesn't implement
+useful features such as serialization of pointers, class versioning
+and others. This library implements a family of full featuared archive
+classes appropriate for a variety of purposes.  
+
+<p>
+Our archives have been factored in to a tree of classes in order to minimize
+repetition of code.  This is shown in the accompanying 
+<a target="class_diagram" href="class_diagram.html">class diagram</a>.
+
+Any class which fullfills the following requirements will fit into
+this hierarchy and implement all the features we require.  Deriving from
+the base class <a href="../../../boost/archive/detail/common_oarchive.hpp" target="common_oarchive_hpp">
+common_oarchive.hpp</a> provides all features we desire which
+are missing from trivial_oarchive above.
+
+<pre><code>
+<a href="../../../boost/archive/detail/common_oarchive.hpp" target="common_oarchive_hpp">
+#include &lt;cstddef&gt; // std::size_t
+#include &lt;boost/archive/detail/common_oarchive.hpp&gt;
+</a>
+/////////////////////////////////////////////////////////////////////////
+// class complete_oarchive
+class complete_oarchive : 
+    public boost::archive::detail::common_oarchive&lt;complete_oarchive&gt;
+{
+    // permit serialization system privileged access to permit
+    // implementation of inline templates for maximum speed.
+    friend class boost::archive::save_access;
+
+    // member template for saving primitive types.
+    // Specialize for any types/templates that special treatment
+    template&lt;class T&gt;
+    void save(T &amp; t);
+
+public:
+    //////////////////////////////////////////////////////////
+    // public interface used by programs that use the
+    // serialization library
+
+    // archives are expected to support this function
+    void save_binary(void *address, std::size_t count);
+};
+</code></pre>
+
+Given a suitable definitions of <code style="white-space: normal">save</code>
+and <code style="white-space: normal">save_binary</code>, 
+any program using serialization with a conforming C++ compiler should compile 
+and run with this archive class.
+
+<h4>Optional Overrides</h4>
+
+The <code style="white-space: normal">detail::common_oarchive</code> class contains
+a number of functions that are used by various parts of the serialization library
+to help render the archive in a particular form.
+
+<dl>
+
+<dt><h4><code>void save_start()</code></h4></dt>
+<dd>
+<strong>Default</strong>:Does nothing.<br>
+<strong>Purpose</strong>:To inject/retrieve an object name into the archive.  Used
+by XML archive to inject "&lt;name " before data.
+</dd>
+<p>
+
+<dt><h4><code>void save_end()</code></h4></dt>
+<dd>
+<strong>Default</strong>:Does nothing.<br>
+<strong>Purpose</strong>:To inject/retrieve an object name into the archive. Used
+by XML archive to inject "&lt;/name&gt;" after data.
+<dd>
+</dd>
+<p>
+<dt><h4><code>void end_preamble()</code></h4></dt>
+<dd>
+<strong>Default</strong>:Does nothing.<br>
+<strong>Purpose</strong>:Called <strong>each time</strong> user data is saved. 
+It's not called when archive bookkeeping data is saved.  This is used by XML archives 
+to determine  when to inject a "&gt;" character at end of XML header. XML output archives 
+keep their own internal flag indicating that data being written is header data. This
+internal flag is reset when an object start tag is written. When 
+<code style="white-space: normal">void end_preamble()</code> is invoked and this internal flag is set
+a "&gt;" character is appended to the output and the internal flag is reset. The default
+implementation for <code style="white-space: normal">void end_preamble()</code> is a no-op there by permitting it
+to be optimised away for archive classes that don't use it.
+</dd>
+<p>
+<dt><h4><code>
+template&lt;class T&gt;
+void save_override(T & t, int);
+</code></h4></dt>
+<dd>
+<strong>Default</strong>:Invokes <code style="white-space: normal">archive::save(Archive & ar, t)</code><br>
+This is the main entry into the serialization library.<br>
+<strong>Purpose</strong>:This can be specialized in cases where the data is to be written 
+to the archive in some special way.  For example, XML archives implement special handling for
+name-value pairs by overriding this function template for name-value pairs.  
+This replaces the default name-value pair handling, which is just to throw away the name,
+with one appropriate for XML which writes out the start of an XML tag with the correct object name.
+<p>
+The second argument must be part of the function signature even this it is not used.
+Its purpose is to be sure that code is portable to compilers which fail to correctly
+implement partial function template ordering.  For more information see
+<a href="implementation.html#functiontemplateordering">this</a>.
+</dd>
+
+</dl>
+
+<h4>Types used by the serialization library</h4>
+The serialization library injects bookkeeping data into the serialization archive.
+This data includes things like object ids, version numbers, class names etc.  Each
+of these objects is included in a wrapper so that the archive class can override the
+implementation of <code style="white-space: normal">void save_override(T & t, int);</code>.
+For example, in the XML archive, the override for this type renders an object_id equal to 23 as
+"object_id=_23".  The following table lists the types defined in the 
+<code style="white-space: normal">boost::archive namespace</code>
+used internally by the serialization library:
+<p>
+<table border>
+<tr><th align=left>type</th><th align=left><code style="white-space: normal">default<br>serialized as</code></th>
+<tr><td><code style="white-space: normal">version_type</code></td><td><code style="white-space: normal">unsigned int</code></td>             
+<tr><td><code style="white-space: normal">object_id_type</code></td><td><code style="white-space: normal">unsigned int</code></td>   
+<tr><td><code style="white-space: normal">object_id_reference_type</code></td><td><code style="white-space: normal">unsigned int</code></td>   
+<tr><td><code style="white-space: normal">class_id_type</code></td><td><code style="white-space: normal">int</code></td>   
+<tr><td><code style="white-space: normal">class_id_optional_type</code></td><td><code style="white-space: normal">nothing</code></td>   
+<tr><td><code style="white-space: normal">class_id_reference_type</code></td><td><code style="white-space: normal">int</code></td>   
+<tr><td><code style="white-space: normal">tracking_type</code></td><td><code style="white-space: normal">bool</code></td>   
+<tr><td><code style="white-space: normal">classname_type</code></td><td><code style="white-space: normal">string</code></td>   
+</table>
+<p>
+All of these are associated with a default serialization defined in terms of primitive types
+so it isn't a requirement to define <code style="white-space: normal">save_override</code> 
+for these types.
+<p>
+These are defined in
+<a href="../../../boost/archive/basic_archive.hpp" target="basic_archive_hpp"><code style="white-space: normal">basic_archive.hpp</code></a>.
+All of these types have been assigned an 
+<a target="detail" href="traits.html#level">implementation level</a> of
+<code style="white-space: normal">primitive</code> and are convertible to types such as int, unsigned int, etc. 
+so that they have default implementations.  This is illustrated by
+<a href="../../../boost/archive/basic_text_iarchive.hpp" target="basic_text_iarchive_hpp"><code style="white-space: normal">basic_text_iarchive.hpp</code></a>.
+which relies upon the default.  However, in some cases, overrides will have to be
+explicitly provided for these types. For an example see
+<a href="../../../boost/archive/basic_xml_iarchive.hpp" target="basic_xml_iarchive_hpp"><code style="white-space: normal">basic_xml_iarchive.hpp</code></a>.
+<p>
+In real practice, we probably won't be quite done. 
+One or more of the following issues may need to be addressed:
+<ul>
+    <li>Many compilers fail to implement correct partial ordering of
+    function templates.  The archives included with this library work around
+    this using argument overloading.  This technique is described in
+    <a target="detail" href="implementation.html#functiontemplateordering">
+    another section of this manual</a>
+    <li>Even if we are using a conforming compiler, we might want our new archive class
+    to be portable to non-conforming compilers.
+    <li>Our archive format might require extra information inserted into it.  For
+    example, XML archives need &lt;name ... &gt;...&lt;/name&gt; surrounding
+    all data objects.
+    <li>Addressing any of the above may generate more issues to be addressed.
+    <li>The archives included with library are all templates which use a
+    <code style="white-space: normal">stream</code> or
+    <code style="white-space: normal">streambuf</code>
+    as a template parameter rather than simple classes.
+    Combined with the above, even more issues arise with non-conforming compilers.
+</ul>
+The attached <a target="class_diagram" href="class_diagram.html">class diagram</a>
+shows the relationships between classes used to implement the serialization library.
+<p>
+A close examination of the archives included with the library illustrate
+what it takes to make a portable archive that covers all data types.
+<h3><a name="usage">Usage</a></h3>
+The newly created archive will usually be stored in its own header module.  All
+that is necessary is to include the header and construct an instance of the new archive.
+EXCEPT for one special case.
+<ul>
+    <li>Instances of a derived class are serialized through a base class pointer.
+    <li>Such instances are not "registered" neither implicitly nor explicitly. That
+    is, the macro <code style="white-space: normal">BOOT_CLASS_EXPORT</code> is used 
+    to instantiate the serialization code for the included archives.
+</ul>
+
+To make this work, the following should be included after the archive
+class definition.
+<pre><code>
+#define BOOST_SERIALIZATION_REGISTER_ARCHIVE(Archive)
+</code></pre>
+Failure to do this will not inhibit the program from compiling, linking
+and executing properly - except in one case.  If an instance of a derived
+class is serialized through a pointer to its base class, the program
+will throw an
+<a href="exceptions.html#unregistered_class"><code style="white-space: normal">unregistered_class</code></a>
+exception.
+<p>
+
+<h4><a name="testing">Testing</h4>
+Exhaustive testing of the library requires testing the different aspects of object
+serialization with each archive.  There are 46 different tests that can run with any archive.  
+There are 5 "standard archives" included with the system. 
+(3 in systems don't support wide charactor i/o). 
+<p>
+In addition, there are 28 other tests which aren't related to any particular archive class.
+<p>
+The default <code style="white-space: normal">bjam</code> testing setup will run all
+the above described tests.  This will result in as many as 46 archive tests * 5 
+standard archives + 28 general tests = 258 tests. Note that a complete test of the
+library would include DLL vs static library, release vs debug so the actual total 
+would be closer to 1032 tests.
+<p>
+For each archive there is a header file in the test directory similar to the one below.
+The name of this archive is passed to the test program by setting the
+environmental variable <code style="white-space: normal">BOOST_ARCHIVE_TEST</code>
+to the name of the header.  Here is the header file 
+<code style="white-space: normal">test_archive.hpp</code> . Test header files for
+other archives are similar.
+<pre><code>
+// text_archive test header
+// include output archive header
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+// set name of test output archive
+typedef boost::archive::text_oarchive test_oarchive;
+// set name of test output stream
+typedef std::ofstream test_ostream;
+
+// repeat the above for input archive
+#include &lt;boost/archive/text_iarchive.hpp&gt;
+typedef boost::archive::text_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+
+// define open mode for streams
+//   binary archives should use std::ios_base::binary
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
+</code></pre>
+
+To test a new archive, for example, portable binary archives, with the gcc compiler, 
+make a header file <code style="white-space: normal">portable_binary_archive.hpp</code>
+and invoke <code style="white-space: normal">bjam</code> with
+<pre><code> 
+-sBOOST_ARCHIVE_LIST=portable_binary_archive.hpp
+</code></pre>
+This process in encapsulated in the shell or cmd script 
+<code style="white-space: normal">library_test</code> whose command line is
+<pre><code>
+library_test --toolset=gcc -sBOOST_ARCHIVE_LIST=portable_binary_archive.hpp
+</code></pre>
+<h3><a name="polymorphic">Polymorphic Archives</a></h3>
+
+<h4>Motivation</h4>
+
+All archives described so far are implemented as templates.  Code to save and load
+data to archives is regenerated for each combination of archive class and data type.
+Under these cirumstances, a good optimizing compiler that can expand 
+<code>inline</code> functions to enough depth will generate fast code.  
+However:
+<ul>
+<li>Much inline code may be replicated.
+<li>If there are several archive classes, code will be regenerated for each archive class.
+<li>If serialization code is placed in a library, that library must be rebuilt 
+each time a new archive class is created.
+<li>If serialization code is placed in a DLL,
+  <ul>
+  <li>The DLL will contain versions of code for each known archive type.  
+    This would result in loading of DLLs which contain
+    much code that is not used - basically defeating one of the main motivations
+    for choosing to use a DLL in the first place.
+  <li>If a new archive is created and an application shipped, all DLLs have to be
+    rebuilt, and reshipped along with the application which uses the new archive.  Thus
+    the other main motivation for using a DLL is defeated.
+  </ul>
+</ul>
+
+<h4>Implementation</h4>
+The solution is the the pair <code>polymorphic_oarchive</code>
+and <code>polymorphic_iarchive</code>.  They present a common interface of virtual
+functions - no templates - that is equivalent to the standard templated one.
+
+This is shown in the accompanying 
+<a target="class_diagram" href="class_diagram.html">class diagram</a>
+<p>
+The accompanying demo program in files
+
+<a target=demo_polymorphic_cp href="../example/demo_polymorphic.cpp"><code style="white-space: normal">demo_polymorphic.cpp</code></a>, 
+<a target=demo_polymorphic_A_hpp href="../example/demo_polymorphic_A.hpp"><code style="white-space: normal">demo_polymorphic_A.hpp</code></a>, and 
+<a target=demo_polymorphic_A_cpp href="../example/demo_polymorphic_A.cpp"><code style="white-space: normal">demo_polymorphic_A</code></a>
+show how polymorphic archives are to be used. Note the following:
+<ul>
+  <li><a target=demo_polymorphic_A_hpp href="../example/demo_polymorphic_A.hpp"><code style="white-space: normal">demo_polymorphic_A.hpp</code></a> and
+<a target=demo_polymorphic_A_cpp href="../example/demo_polymorphic_A.cpp"><code style="white-space: normal">demo_polymorphic_A.cpp</code></a>
+contain no templates and no reference to any specific archive implementation.  That is, they will
+only have to be compiled once for all archive implementations.  The even applies to archives classes
+created in the future.
+  <li>The main program <a target=demo_polymorphic_cp href="../example/demo_polymorphic.cpp"><code style="white-space: normal">demo_polymorphic.cpp</code></a>
+specifies a specific archive implementation.  
+</ul>
+As can be seen in the
+<a target="class_diagram" href="class_diagram.html">class diagram</a>
+and the header files, this implementation is just a composition of the polymorphic
+interface and the standard template driven implementation.  This composition is
+accomplished by the templates
+<a target=polymorphic_iarchive_route_hpp href="../../../boost/archive/detail/polymorphic_iarchive_route.hpp"><code style="white-space: normal">polymorphic_iarchive_route.hpp</code></a>
+and
+<a target=polymorphic_oarchive_route_hpp href="../../../boost/archive/detail/polymorphic_oarchive_route.hpp"><code style="white-space: normal">polymorphic_oarchive_route.hpp</code></a>.
+As these contain no code specific to the particular implementation archive, they can be used to create
+a polymorphic archive implementation from any functioning templated archive implementation.
+<p>
+As a convenience, small header files have been included which contain 
+<code style="white-space: normal">typedef</code> for polymorphic implementation for each corresponding
+templated one.  For example, the headers
+<a target=polymorphic_text_iarchive_hpp href="../../../boost/archive/polymorphic_text_iarchive.hpp"><code style="white-space: normal">polymorphic_text_iarchive.hpp</code></a>
+and
+<a target=polymorphic_text_oarchive_hpp href="../../../boost/archive/polymorphic_text_oarchive.hpp"><code style="white-space: normal">polymorphic_text_oarchive.hpp</code></a>.
+contain the <code style="white-space: normal">typedef</code> for the polymorphic implementation
+of the standard text archive classes  
+<a target=text_iarchive_hpp href="../../../boost/archive/text_iarchive.hpp"><code style="white-space: normal">text_iarchive.hpp</code></a>
+and
+<a target=text_oarchive_hpp href="../../../boost/archive/text_oarchive.hpp"><code style="white-space: normal">text_oarchive.hpp</code></a>
+respectively. All included polymorphic archives use the same naming scheme.
+<h4>Usage</h4>
+Polymorphic archives address the issues raised above regarding templated implementation.
+That is, there is no replicated code, and no recompilation for new archives.  This will
+result in smaller executables for program which use more than one type of archive, and 
+smaller DLLS. There is a
+penalty for calling archive functions through a virtual function dispatch table and there
+is no possibility for a compiler to <code style="white-space: normal">inline</code> archive functions.  This will result
+in a detectable degradation in performance for saving and loading archives.
+<p>
+The main utility of polymorphic archives will be to permit the buiding of class DLLs that will
+include serialization code for all present and future archives with no redundant code.
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/archives.html b/deal.II/contrib/boost/libs/serialization/doc/archives.html
new file mode 100644 (file)
index 0000000..cb5a545
--- /dev/null
@@ -0,0 +1,432 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Archives</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Archive Concepts</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#saving_interface">Saving Archive Concept</a>
+  <dt><a href="#loading_interface">Loading Archive Concept</a>
+  <dt><a href="#archive_models">Models</a>
+  <dt><a href="#exceptions">Exceptions</a>
+  <dt><a href="#charactersets">Character Sets</a>
+</dl>
+<h4>Notation</h4>
+In the following descriptions
+<ul>
+  <li><code>SA</code> is an type modeling the <a href="#saving_interface">Saving Archive Concept</a>
+  <li><code>sa</code> is an instance of type SA.
+  <li><code>LA</code> is an type modeling the <a href="#loading_interface">Loading Archive Concept</a>
+  <li><code>la</code> is an instance of type LA.
+  <li><code>T</code> is an <a href="serialization.html"><strong>Serializable</strong></a> Type
+  <li><code>x</code> is an instance of type T Type</li>.
+  <li><code>u,v</code> is a pointer to a an instance of type T
+  <li><code>count</code> is an instance of a type that can be converted to <code>std::size_t</code>.
+</ul>
+<h4><a name="saving_interface">Saving Archive Concept</a></h4>
+<h4>Associated Types</h4>
+Intuitively, a type modeling this concept will generate a sequence of bytes
+corresponding to an arbitrary set of C++ data structures.  Each type modeling the
+Saving Archive concept (SA) may be associated with another type modeling the
+<a href="#loading_interface">Loading Archive Concept</a>(LA).  
+This associated type will perform the inverse operation.  
+That is, given a sequence of bytes generated by SA, it will generate a set of 
+C++ data structures that is equivalent to the original.  
+The notion of equivalence is defined by the implementations of the pair of archives and the
+way the data are rendered <a href="serialization.html">serializable</a>.
+<p>
+<h4>Valid Expressions</h4>
+<dl>
+  <dt><h4><code>
+    SA::is_saving
+  </code></h4></dt>
+  <dd>
+    Returns the Boost MPL Integral Constant type boost::mpl::bool_&lt;true&gt;
+  </dd>   
+  <dt><h4><code>
+    SA::is_loading
+  </code></h4></dt>
+  <dd>
+    Returns the Boost MPL Integral Constant type boost::mpl::bool_&lt;false&gt;
+  </dd>   
+  <dt><h4><code>
+    sa &lt;&lt; x
+    <br>
+    sa &amp; x
+  </code></h4></dt>
+  <dd>
+    These expressions must perform exactly the same function.  They append the
+    value of <code style="white-space: normal">x</code> along with other information to <code>sa</code>.
+    This other information is defined by the implementation of the archive.
+    Typically this information is that which is required by a corresponding
+    Loading Archive type to properly restore the value of <code>x</code>.
+    <p>
+    Returns a reference to <code>sa</code>. 
+  </dd>
+  <dt><h4><code>
+    sa.save_binary(u, count)
+  </code></h4></dt>
+  <dd>
+    Appends to the archive <code style="white-space: normal">size_t(count)</code> bytes found at 
+    <code style="white-space: normal">u</code>.
+  </dd>
+  <dt><h4><code>
+    sa.register_type&lt;T&gt;()
+    <br>
+    sa.register_type(u)
+  </code></h4></dt>
+  <dd>
+    Appends information about class T to the archive.  This information is used to
+    construct the correct class when a derived pointer is loaded by a corresponding
+    Loading Archive type.  
+    Invocation of this member function is referred to as "class registration".  
+    This is explained in detail in
+    <a href="special.html#derivedpointers">Special Considerations - Derived Pointers</a>.
+    The second syntax is included to permit this function to be called on non-conforming
+    compilers when <code style="white-space: normal">sa</code> is a template argument.
+    For more information, see <a target="detail" href="implementation.html#tempatesyntax">Template Invocation syntax</a>
+  </dd>
+  <dt><h4><code>
+    sa.get_library_version()
+  </code></h4></dt>
+  <dd>
+    Returns an unsigned integer containing the current version number of the serialization
+    library. This number will be incremented each time the library is altered in such a 
+    way that serialization could be altered for some type.  For example, suppose the type
+    used for a count of collection members is changed. The code that loads collections 
+    might be conditioned on the library version to make sure that libraries created by 
+    previous versions of the library can still be read.
+  </dd>
+</dl>
+
+<h4><a name="loading_interface">Loading Archive Concept</a></h4>
+<h4>Associated Types</h4>
+Each model of this concept presumes the
+existence of a corresponding type modeling the 
+<a href="#saving_interface">Saving Archive Concept</a>.
+The purpose of an instance of this concept is to convert a sequence of bytes
+generated by this corresponding type to a set of C++ data structures 
+equivalent to the original.  
+<h4>Valid Expressions</h4>
+<dl>
+  <dt><h4><code>
+    LA::is_saving
+  </code></h4></dt>
+  <dd>
+    Returns the Boost MPL Integral Constant type boost::mpl::bool_&lt;false&gt;
+  </dd>   
+  <dt><h4><code>
+    LA::is_loading
+  </code></h4></dt>
+  <dd>
+    Returns the Boost MPL Integral Constant type boost::mpl::bool_&lt;true&gt;
+  </dd>   
+  <dt><h4><code>
+    la &gt;&gt; x
+    <br>
+    la &amp; x
+  </code></h4></dt>
+  <dd>
+    These expressions must perform exactly the same function.  
+    Sets <code>x</code> to a value retrieved from <code>la</code>.
+    <p>
+    Returns a reference to <code>la</code>. 
+  </dd>
+  <dt><h4><code>
+    la.load_binary(u, count)
+  </code></h4></dt>
+  <dd>
+    Retrieves from <code style="white-space: normal">la</code> <code style="white-space: normal">size_t(count)</code> bytes and stores
+    them in memory starting at <code style="white-space: normal">u</code>.
+  </dd>
+  <dt>
+  <dt><h4><code>
+    la.register_type&lt;T&gt;()
+    <br>
+    la.register_type(u)
+  </code></h4></dt>
+  <dd>
+    Retrieves information about class T from the archive.  This information is used to
+    construct the correct class when loading a pointer to a derived class not
+    otherwise referred to in the program by name.
+    Invocation of this member function is referred to as "class registration".  
+    This is explained in detail in
+    <a href="special.html#derivedpointers">Special Considerations - Derived Pointers</a>.
+    The second syntax is included to permit this function to be called on non-conforming
+    compilers when <code style="white-space: normal">la</code> is a template argument.
+    For more information, see <a target="detail" href="implementation.html#tempatesyntax">Template Invocation syntax</a>
+  </dd>
+  <dt><h4><code>
+    la.get_library_version()
+  </code></h4></dt>
+  <dd>
+    Returns an unsigned integer containing the version number of the serialization
+    library that created the archive. This number will be incremented each time the 
+    library is altered in such a way that serialization could be altered for some type.  
+    For example, suppose the type used for a count of collection members is changed.  
+    The code that loads collections might be conditioned on the library version to make 
+    sure that libraries created by previous versions of the library can still be read.
+  </dd>
+  <dt><h4><code>
+    la.reset_object_address(v, u)
+  </code></h4></dt>
+  <dd>
+    Communicates to the archive that the object originally at address u has been
+    moved to address v.
+    <p>
+    When an object is loaded to a temporary variable and later moved to another location,
+    this function must be called in order communicate this fact.  This permits the
+    archive to properly implement object tracking.  Object tracking is required in order
+    to correctly implement serialization of pointers to instances of derived classes.
+  </dd>  
+  <dt><h4><code>
+    la.delete_created_pointers()
+  </code></h4></dt>
+  <dd>
+    Deletes all objects created by the loading of pointers.  This can be used to
+    avoid memory leaks that might otherwise occur if pointers are being loaded
+    and the archive load encounters an exception.
+  </dd>
+</dl>
+
+There are archives based on text, binary and XML file
+formats but all have the above interface.  Given that all archives present
+the same public interface, specifcation of serialization is exactly the same
+for all archives.  Archive classes have other members not mentioned here.
+However they are related to the internal functioning of the library and
+are not meant to be called by users of an archive.  Implementation of new
+archives is discussed in 
+<a href="archive_reference.html#implementation">New Archives - Implementation</a>.
+
+<p>
+The existence of the <code style="white-space: normal">&lt;&lt;</code> 
+and <code style="white-space: normal">&gt;&gt;</code> suggests
+a relationship between archives and C++ i/o streams. <strong>Archives are not 
+C++ i/o streams</strong>. All the archives included with this system take a stream
+as an argument in the constructor and that stream is used for output or input.
+However, this is not a requirement of the serialization functions or the
+archive interface. It just turns out that the archives written so far have
+found it useful to base their implementation on streams.
+
+<h3><a name="archive_models">Archive Models</a></h3>
+This library includes various implementations of the Archive concept.
+
+An archive is defined by two complementary classes.  One is for saving data while
+the other is for loading it.
+
+This library includes a number of archive implementations that are "ready to go" for the
+most common requirements.  These classes implement the archive concept for differing data formats.
+They can be used "as is" or as a basis for developing one's own particular type of archive. 
+An archive is defined by two complementary classes. One is for saving data while the other is for loading it.  
+
+To invoke serialization using one of
+these archives, one or more of the following header files must be
+included in the code module containing the serialization code.
+<pre><code>
+// a portable text archive</a>
+<a href="../../../boost/archive/text_oarchive.hpp" target="text_oarchive_cpp">boost::archive::text_oarchive</a> // saving
+<a href="../../../boost/archive/text_iarchive.hpp" target="text_iarchive_cpp">boost::archive::text_iarchive</a> // loading
+
+// a portable text archive using a wide character stream</a>
+<a href="../../../boost/archive/text_woarchive.hpp">boost::archive::text_woarchive</a> // saving
+<a href="../../../boost/archive/text_wiarchive.hpp">boost::archive::text_wiarchive</a> // loading
+
+// a portable XML archive</a>
+<a href="../../../boost/archive/xml_oarchive.hpp" target="xml_oarchive_cpp">boost::archive::xml_oarchive</a> // saving
+<a href="../../../boost/archive/xml_iarchive.hpp" target="xml_iarchive_cpp">boost::archive::xml_iarchive</a> // loading
+
+// a portable XML archive which uses wide characters - use for utf-8 output</a>
+<a href="../../../boost/archive/xml_woarchive.hpp" target="xml_woarchive_cpp">boost::archive::xml_woarchive</a> // saving
+<a href="../../../boost/archive/xml_wiarchive.hpp" target="xml_wiarchive_cpp">boost::archive::xml_wiarchive</a> // loading
+
+// a non-portable native binary archive</a>
+<a href="../../../boost/archive/binary_oarchive.hpp" target="binary_oarchive_cpp">boost::archive::binary_oarchive</a> // saving
+<a href="../../../boost/archive/binary_iarchive.hpp" target="binary_iarchive_cpp">boost::archive::binary_iarchive</a> // loading
+
+<!--
+// a non-portable native binary archive which use wide character streams
+<a href="../../../boost/archive/binary_woarchive.hpp">boost::archive::binary_woarchive</a> // saving
+<a href="../../../boost/archive/binary_wiarchive.hpp">boost::archive::binary_wiarchive</a> // loading
+-->
+
+</code></pre>
+
+All of these archives implement the same inteface. Hence, it should suffice to describe only one
+of them in detail.  For this purpose we will use the text archive.
+
+
+<pre><code>
+namespace boost {
+namespace archive {
+
+enum archive_flags {
+    no_header = 1,          // suppress archive header info
+    no_codecvt = 2,         // suppress alteration of codecvt facet
+    no_xml_tag_checking = 4 // suppress checking of xml tags - igored on saving
+};
+
+} // archive
+} // boost
+</code></pre>
+
+<pre><code>
+namespace boost {
+namespace archive {
+
+class text_oarchive : ...
+{
+    ...
+public:
+    ... // implementation of the <strong>Saving Archive</strong> concept
+    text_oarchive(std::ostream & os, unsigned int flags = 0);
+    ~text_oarchive();
+};
+
+} // archive
+} // boost
+</code></pre>
+
+<dl>
+
+<dt><h4><code>
+text_oarchive(std::ostream & os, unsigned int flags = 0);
+</code></h4></dt>
+<dd>
+Constructs an archive given an open <code style="white-space: normal">stream</code> as 
+an argument and optional flags. For most applications there will be no need to use flags. 
+Flags are defined by <code style="white-space: normal">enum archive_flags</code> enumerator. 
+Multiple flags can be combined with the <code style="white-space: normal">|</code> operator. 
+
+By default, archives prepend 
+output with initial data which helps identify them as archives produced by this system.  
+This permits a more graceful handling of the case where an attempt is made to load an archive
+from an invalid file format. In addition to this, each type of archive might have 
+its own information.  For example, native binary archives include information about 
+sizes of native types and endianess to gracefully handle the case where it has been
+erroneously assumed that such an archive is portable across platforms.  In some cases, 
+where this extra overhead might be considered objectionable, it can be suppressed with the
+<code style="white-space: normal">no_header</code> flag.
+<p>
+In some cases, an archive may alter (and later restore)
+the codecvt facet of the stream locale.  To suppress this action,
+include the <code style="white-space: normal">no_codecvt</code> flag.
+<p>
+XML archives contain nested tags signifying the start and end of data fields.
+These tags are normally checked for agreement with the object name when
+data is loaded.  If a mismatch occurs an exception is thrown.  It's possible
+that this may not be desired behavior.  To suppress this checking of XML
+tags, use <code style="white-space: normal">no_xml_tag_checking</code> flag.
+</dd>
+
+<dt><h4><code>
+~text_oarchive();
+</code></h4></dt>
+<dd>
+Destructor for an archive.  This should be called before the stream is
+closed.  It restores any altered stream facets to their state before the
+archive was opened.
+</dd>
+
+</dl>
+
+<pre><code>
+namespace boost {
+namespace archive {
+
+class text_iarchive : ...
+{
+    ...
+public:
+    ... // implementation of the <strong>Loading Archive</strong> concept
+    text_iarchive(std::istream & is, unsigned int flags = 0);
+    ~text_iarchive();
+};
+
+} //namespace archive
+) //namespace boost
+
+</code></pre>
+
+<dl>
+
+<dt><h4><code>
+text_iarchive(std::istream & is, unsigned int flags = 0);
+</code></h4></dt>
+<dd>
+Contructs an archive given an open <code style="white-space: normal">stream</code> as 
+an argument and optional flags. If flags are used, they should be the same
+as those used when the archive was created. Function and usage of flags is described
+above.
+</dd>
+
+<dt><h4><code>
+~text_iarchive();
+</code></h4></dt>
+<dd>
+Destructor for an archive.  This should be called before the stream is
+closed.  It restores any altered stream facets to thier state before the
+the archive was opened.
+</dd>
+</dl>
+<p>
+The <code style="white-space: normal">binary_oarchive</code> and
+<code style="white-space: normal">binary_iarchive</code> classes are
+implemented in terms of the more basic 
+<code style="white-space: normal">std::streambuf</code>.  So, in addition
+to the common class interface described above, they include the following
+constructors:
+<dl>
+<dt><h4><code>
+binary_oarchive(std::streambuf & bsb, unsigned int flags = 0);
+</code></h4></dt>
+and
+<dt><h4><code>
+binary_iarchive(std::streambuf & bsb, unsigned int flags = 0);
+</code></h4></dt>
+</dl>
+
+<h3><a name="exceptions">Exceptions</h3>
+All of the archive classes included may throw exceptions.  The list of exceptions that might
+be thrown can be found in section <a target="detail" href="exceptions.html">Archive Exceptions</a>
+of this documentation. 
+
+<h3><a name="charactersets">Character Sets</h3>
+This library includes two archive classes for XML. The wide character
+version (<code style="white-space: normal">xml_w?archive</code>) renders its output as UTF-8 which can
+handle any wide character without loss of information. 
+<code style="white-space: normal">std::string</code> data is converted from multi-byte format to wide
+character format using the current <code style="white-space: normal">
+locale</code>.  Hence this version should give a fair rendering of all
+C++ data for all cases.  This could result in some unexpected behavior.
+Suppose an <code style="white-space: normal">std::string</code> 
+is created with the <code style="white-space: normal">locale</code> character
+set to hebrew characters.  On output this is converted to wide characters.
+On input however, there could be a problem if the <code style="white-space: normal">locale</code> is
+not set the same as when the archive is created.
+<p>
+The normal character version (<code style="white-space: normal">xml_?archive</code>) renders 
+<code style="white-space: normal">std::string</code> output without any conversion.  Though this may work 
+fine for serialization,  it may create difficulties if the XML archive is used
+for some other purpose.
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/bibliography.html b/deal.II/contrib/boost/libs/serialization/doc/bibliography.html
new file mode 100644 (file)
index 0000000..0c8d0e2
--- /dev/null
@@ -0,0 +1,74 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Bibliography</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
+    "header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Bibliography</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<ol><a name="1"></a>
+    <li>David Sugar and Daniel Silverstone, "CommonC++ Libraries", <a href=
+    "http://www.gnu.org/software/commoncpp/">http://www.gnu.org/software/commoncpp/</a>
+    <a name="2"></a>
+    <li>Nicola Santi, "Eternity", <a href=
+    "http://www.sourceforge.net/projects/eternity-it/">www.sourceforge.net/projects/eternity-it/</a>
+    <a name="3"></a>
+    <li>Allen Holub, "Roll Your Own Persistence", <u>Microsoft
+    Systems Journal</u> vol 11, no 6 Jun 1996
+    <a name="4"></a>
+    <li>Tasos Kontogiorgos &amp; Michael Kim, "A C++
+    Template-Based Application Architecture", <u>C++ Report</u>
+    <a name="5"></a>
+    <li>Scott Meyers, <u>Effective C++</u>, Addison-Wesley, 1992
+    <a name="6"></a>
+    <li>Bjarne Stroustrup, <u>The C++ Programming Langage</u>, Addison-Wesley, 1997
+    <a name="7"></a>
+    <li>Alexandrescu, Andrei, <u>Modern C++ Design</u>, Addison-Wesley, 2001
+    <a name="8"></a>
+    <li>Jm Hyslop, and Herb Sutter, "Factory Redux, Part2",
+    <u>C/C++ User's Journal</u>, vol 21, No. 8, August 2003
+    <a name="9"></a>
+    <li>David Vandevoorde and Nicolai M. Josuttis,
+    <u>C++ Templates - The Complete Guide</u>, Addison-Wesley, 2003
+    <a name="10"></a>
+    <li>Herb Sutter, "Pimples--Beauty Marks You Can Depend On",
+    <u>C++ Report</u>, from <u>More C++ Gems</u>, Cambridge University Press, 2000
+    <a name="11"></a>
+    <li>James Coplien, "Curiously Recurring Template Patterns",
+    <u>C++ Report</u>, from <u>C++ Gems</u>, Cambridge University Press, 1998
+    <a name="12"></a>
+    <li>Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, 
+    <u>Design Patterns</u>, Addison-Wesley Publishing Company, 1995
+    <a name="13"></a>
+    <li>Stephan Beal, "s11n serialization library", <a href="http://www.s11n.net">www.s11n.net</a>
+    <a name="14"></a>
+    <li>Vandervoorde and Josuttis, <b>C++ Templates - A Complete Guide</b>, Addison-Wesley, 2003</a>
+</ol>
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
+
diff --git a/deal.II/contrib/boost/libs/serialization/doc/class_diagram.html b/deal.II/contrib/boost/libs/serialization/doc/class_diagram.html
new file mode 100644 (file)
index 0000000..9cdc9d6
--- /dev/null
@@ -0,0 +1,170 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Archive Class Diagram</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Text Archive Class Diagram</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+
+<pre><code>
+
+
+basic_oarchive <a href="../../../boost/archive/detail/basic_oarchive.hpp">-></a>
+      |
+      |
+      |      interface_oarchive&lt;text_oarchive&gt; <a href="../../../boost/archive/detail/interface_oarchive.hpp">-></a>
+      |                     /
+      |                   /
+      |        _________/
+      |      /
+      |    /
+      |  /
+common_oarchive&lt;text_oarchive&gt; <a href="../../../boost/archive/detail/common_oarchive.hpp">-></a>
+      |
+      |
+<font color="blue">basic_text_oarchive&lt;text_oarchive&gt;</font> <a href="../../../boost/archive/basic_text_oarchive.hpp">-></a>
+      |
+      |
+      |     <font color="blue">basic_text_oprimitive&lt;basic_ostream&gt;</font> <a href="../../../boost/archive/basic_text_oprimitive.hpp">-></a>
+      |                    /
+      |                  /
+      |       _________/                  interface_oarchive&lt;polymorphic_oarchive&gt; <a href="../../../boost/archive/detail/interface_oarchive.hpp">-></a>
+      |     /                                                |
+      |   /                                                  |
+      | /                                                    |
+<font color="blue">text_oarchive_impl&lt;text_oarchive&gt;</font> <a href="../../../boost/archive/text_oarchive.hpp">-></a>              polymorphic_oarchive_impl <a href="../../../boost/archive/polymorphic_oarchive.hpp">-></a>
+      | \                                                    |
+      |   \                                                  |
+      |     \_____________________________________    <font color="red">polymorphic_oarchive</font> <a href="../../../boost/archive/polymorphic_oarchive.hpp">-></a>
+      |                                           \         /
+      |                                             \     /
+      |                                               \ /  
+<font color="red">text_oarchive</font> <a href="../../../boost/archive/text_oarchive.hpp">-></a>                 polymorphic_oarchive_route&lt;text_oarchive_impl&lt;text_oarchive&gt; &gt; <a href="../../../boost/archive/detail/polymorphic_oarchive_route.hpp">-></a>
+                                                       |
+                                                       |
+                                                       |
+                                             <font color="red">polymorphic_text_oarchive</font> <a href="../../../boost/archive/polymorphic_text_oarchive.hpp">-></a>
+
+
+</code></pre>
+This diagram shows the relationship between the various classes that implement saving (output
+serialization) for text archives.  The hierachy and organization is similar for loading and for
+other types of archives as well.  In the diagram, classes written in <font color="blue">blue</font> 
+implement saving for a given archive type. (in this case its text archives).
+Users include classes in <font color="red">red</font> to save their data from a partcular
+type of archive.  Other classes whose names are in black implement the library and should
+never change.  They are in <code>namespace boost::archive::detail</code>
+<dl>
+  <dt><code>
+  <a href="../../../boost/archive/detail/basic_oarchive.hpp">basic_oarchive</a>
+  </code></dt>
+  <dd>
+  Implements the core library functions for class export, versioning, and object tracking.  It is compiled
+  into the library as it has no template parameters.
+  </dd>
+  <p><dt><code>
+  <a href="../../../boost/archive/detail/interface_oarchive.hpp">interface_oarchive&lt;text_oarchive&gt;</a>
+  </code></dt>
+  <dd>
+  A class that declares the standard archive interface.  This has been factored out so that it
+  can be used as a base class for <code style="white-space: normal">polymorphic_oarchive</code>
+  as well as for archive implementations.
+  
+  <p><dt><code>
+  <a href="../../../boost/archive/detail/common_oarchive.hpp">common_oarchive&lt;text_oarchive&gt;</a>
+  </code></dt>
+  <dd>
+  The function of this class is to make the connection between the virtual function
+  interface used by <code>basic_oarchive</code> and the template interface used by archive
+  class implementations.
+  
+  <p><dt><code>
+  <a href="../../../boost/archive/basic_text_oarchive.hpp">basic_text_oarchive&lt;text_oarchive&gt;</a>
+  </code></dt>
+  <dd>
+  Implements the basic functionality for simple text archives.  The primitive save functions have been 
+  factored out so it can be used in other text based archives like XML archives.
+  
+  <p><dt><code>
+  <a href="../../../boost/archive/basic_text_oprimitive.hpp">basic_text_oprimitive&lt;basic_ostream&gt;</a>
+  </code></dt>
+  <dd>
+  Implements the save oversaves for all primitive types.  This is a template with a parameter
+  which describes the stream.
+  
+  <p><dt><code>
+  <a href="../../../boost/archive/text_oarchive.hpp">text_oarchive_impl&lt;text_oarchive&gt;</a>                 
+  </code></dt>
+  <dd>
+  Inherits from the above two classes to implement text archives.
+  </dd>
+
+  <p><dt><code>
+  <a href="../../../boost/archive/text_oarchive.hpp">text_oarchive</a>
+  </code></dt>
+  <dd>
+  This is just a short hand for <code style="white-space: normal">text_oarchive_impl&lt;text_oarchive&gt;</code> .
+  We can't use <code style="white-space: normal">typedef</code> because  a 
+  <code style="white-space: normal">typedef</code> can't refer to it self in its definition.  
+  This is the class name that is used to serialize to a text archive.
+  </dd>
+
+  <p><dt><code>
+  <a href="../../../boost/archive/detail/interface_oarchive.hpp">interface_oarchive&lt;polymorphic_oarchive&gt;</a>
+  </code></dt>
+  <dd>
+  Same template as above.  However, this time the Archive parameter refers to the polymorphic archive
+  with a virtual function interface rather than that the template interface that
+  <code style="white-space: normal">common_oarchive</code> uses.
+  
+  <p><dt><code>
+  <a href="../../../boost/archive/polymorphic_oarchive.hpp">polymorphic_oarchive</a>
+  </code></dt>
+  <dd>
+  A class with a list of virtual <code style="white-space: normal">save(T &t)</code>
+  for all primitive types T. This is the class that is used to do pre-compile serialization of classes
+  for all archives present and future.
+  
+  <p><dt><code>
+  <a href="../../../boost/archive/detail/polymorphic_oarchive_route.hpp">polymorphic_oarchive_route&lt;text_oarchive_impl&lt;text_oarchive&gt; &gt;</a>
+  </code></dt>
+  <dd><p>
+  This class implements the <code style="white-space: normal">polymorphic_oarchive</code> in terms of a specific 
+  concrete class.  Virtual function calls are routed to the implementing class.  In this example, 
+  that implementing class would be text_oarchive_impl.
+  
+  <p><dt><code>
+  <a href="../../../boost/archive/polymorphic_text_oarchive.hpp">polymorphic_text_oarchive</a>
+  </code></dt>
+  <dd>
+  this is just a typedef so we can write polymorphic_text_archive rather than
+  <code style="white-space: normal">polymorphic_oarchive_route&lt;text_oarchive_impl&'t;text_oarchive&gt; &gt;</code>
+  
+</dl>
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
\ No newline at end of file
diff --git a/deal.II/contrib/boost/libs/serialization/doc/codecvt.html b/deal.II/contrib/boost/libs/serialization/doc/codecvt.html
new file mode 100644 (file)
index 0000000..85e9e79
--- /dev/null
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+  == Copyright (c) 2001 Ronald Garcia
+  ==
+  == Permission to use, copy, modify, distribute and sell this software
+  == and its documentation for any purpose is hereby granted without fee,
+  == provided that the above copyright notice appears in all copies and
+  == that both that copyright notice and this permission notice appear
+  == in supporting documentation.  Ronald Garcia makes no
+  == representations about the suitability of this software for any
+  == purpose.  It is provided "as is" without express or implied warranty.
+  -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<head>
+<title>UTF-8 Codecvt Facet</title>
+
+</head>
+
+<body bgcolor="#ffffff" link="#0000ee" text="#000000" 
+      vlink="#551a8b" alink="#ff0000">
+<img src="../../../boost.png" alt="C++ Boost" 
+width="277" height="86"> <br clear="all">
+
+
+<a name="sec:utf8-codecvt-facet-class"></a>
+
+
+<h1><code>utf8_codecvt_facet</code></h1>
+
+
+<pre>
+template&lt;
+    typename InternType = wchar_t, 
+    typename ExternType = char
+&gt; utf8_codecvt_facet
+</pre>
+
+
+<h2>Rationale</h2>
+
+
+    UTF-8 is a method of encoding Unicode text in environments where 
+    where data is stored as 8-bit characters and some ascii characters 
+    are considered special (i.e. Unix filesystem filenames) and tend
+    to appear more commonly than other characters.  While
+    UTF-8 is convenient and efficient for storing data on filesystems, 
+    it was not meant to be manipulated in memory by
+    applications. While some applications (such as Unix's 'cat') can
+    simply ignore the encoding of data, others should convert 
+    from UTF-8 to UCS-4 (the more canonical representation of Unicode) 
+    on reading from file, and reversing the process on writing out to
+    file.
+    
+    <p>The C++ Standard IOStreams provides the <tt>std::codecvt</tt>
+    facet to handle specifically these cases.  On reading from or
+    writing to a file, the <tt>std::basic_filebuf</tt> can call out to
+    the codecvt facet to convert data representations from external
+    format (ie. UTF-8) to internal format (ie. UCS-4) and
+    vice-versa. <tt>utf8_codecvt_facet</tt> is a specialization of
+    <tt>std::codecvt</tt> specifically designed to handle the case
+    of translating between UTF-8 and UCS-4.
+
+
+<h2>Template Parameters</h2>
+
+<table border summary="template parameters">
+<tr>
+<th>Parameter</th><th>Description</th><th>Default</th>
+</tr>
+
+<tr>
+<td><tt>InternType</tt></td>
+<td>The internal type used to represent UCS-4 characters.</td>
+<td><tt>wchar_t</tt></td>
+</tr>
+
+<tr>
+<td><tt>ExternType</tt></td>
+<td>The external type used to represent UTF-8 octets.</td>
+<td><tt>char_t</tt></td>
+</tr>
+</table>
+
+
+<h2>Requirements</h2>
+
+    <tt>utf8_codecvt_facet</tt> defaults to using <tt>char</tt> as
+    it's external data type and <tt>wchar_t</tt> as it's internal
+    datatype, but on some architectures <tt>wchar_t</tt> is
+    not large enough to hold UCS-4 characters.  In order to use
+    another internal type.You must also specialize <tt>std::codecvt</tt>
+    to handle your internal and external types.
+    (<tt>std::codecvt&lt;char,wchar_t,std::mbstate_t&gt;</tt> is required to be
+    supplied by any standard-conforming compiler).
+
+
+<h2>Example Use</h2>
+    The following is a simple example of using this facet:
+
+<pre>
+  //...
+  // My encoding type
+  typedef wchar_t ucs4_t;
+
+  std::locale old_locale;
+  std::locale utf8_locale(old_locale,new utf8_codecvt_facet&lt;ucs4_t&gt;);
+
+  // Set a New global locale
+  std::locale::global(utf8_locale);
+
+  // Send the UCS-4 data out, converting to UTF-8
+  {
+    std::wofstream ofs("data.ucd");
+    ofs.imbue(utf8_locale);
+    std::copy(ucs4_data.begin(),ucs4_data.end(),
+          std::ostream_iterator&lt;ucs4_t,ucs4_t&gt;(ofs));
+  }
+
+  // Read the UTF-8 data back in, converting to UCS-4 on the way in
+  std::vector&lt;ucs4_t&gt; from_file;
+  {
+    std::wifstream ifs("data.ucd");
+    ifs.imbue(utf8_locale);
+    ucs4_t item = 0;
+    while (ifs &gt;&gt; item) from_file.push_back(item);
+  }
+  //...
+</pre>
+
+
+<h2>History</h2>
+
+    This code was originally written as an iterator adaptor over
+    containers for use with UTF-8 encoded strings in memory.
+    Dietmar Kuehl suggested that it would be better provided as a
+    codecvt facet.
+
+<h2>Resources</h2>
+
+<ul>
+<li> <a href="http://www.unicode.org">Unicode Homepage</a>
+<li> <a href="http://home.CameloT.de/langer/iostreams.htm">Standard
+      C++ IOStreams and Locales</a>
+<li> <a href="http://www.research.att.com/~bs/3rd.html">The C++
+      Programming Language Special Edition, Appendix D.</a> 
+</ul>
+
+<br>
+<hr>
+<table summary="Copyright information">
+<tr valign="top">
+<td nowrap>Copyright &copy; 2001</td>
+<td><a href="http://www.osl.iu.edu/~garcia">Ronald Garcia</a>,
+Indiana University 
+(<a href="mailto:garcia@cs.indiana.edu">garcia@osl.iu.edu</a>)<br>
+<a href="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</a>,
+Indiana University
+(<a href="mailto:lums@osl.iu.edu">lums@osl.iu.edu</a>)</td>
+</tr>
+</table>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
+
+
diff --git a/deal.II/contrib/boost/libs/serialization/doc/configuration.html b/deal.II/contrib/boost/libs/serialization/doc/configuration.html
new file mode 100644 (file)
index 0000000..0997298
--- /dev/null
@@ -0,0 +1,17 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Configuration</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/contents.html b/deal.II/contrib/boost/libs/serialization/doc/contents.html
new file mode 100644 (file)
index 0000000..8b9e37a
--- /dev/null
@@ -0,0 +1,352 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<title>Serialization</title>
+
+<!-- Expanding Menu Script Starts Here -->
+<script language="JavaScript">
+//<--!
+// netscape version
+
+function toggle(element) {
+  if (null == element){
+    return;
+  }
+  var targetId = element.id + "_detail";
+  targetElement = document.getElementById(targetId);
+  if (null != targetElement){
+    if (targetElement.style.display == "none") {
+      targetElement.style.display = "";
+      element.src="minus.gif";
+    }
+    else{
+      targetElement.style.display = "none";
+      element.src="plus.gif";
+    }
+  }
+}
+
+function clickHandlerNS(e) {
+  toggle(e.target);
+}
+
+// explorer version
+function clickHandlerIE() {
+  toggle(window.event.srcElement);
+}
+
+function collapse_all() {
+  var l = document.images;
+  var i = l.length;
+  while(i > 0){
+    i = i - 1;
+    var image = l[i];
+    image.style.display = "";
+    toggle(image);
+  }
+}
+
+
+function initialize() {
+  if(navigator.appName.indexOf("Netscape") != -1){
+    document.onclick = clickHandlerNS;
+    collapse_all();
+  }
+  else
+  if(navigator.appName.indexOf("Microsoft") != -1){
+    document.onclick = clickHandlerIE;
+    collapse_all();
+  }
+  else
+  if (navigator.appnName.indexOf("Konqueror") >= 0){
+    document.onclick = clickHandlerIE;
+    collapse_all();
+  }
+}
+
+//-->
+</script>
+
+</head>
+<body onload="initialize()">
+<h2>Contents</h2>
+<small>
+<!--
+<img src="dot.gif" onclick="collapse_all()">Collapse All
+-->
+<p>
+<dl class="page-index">
+  <dt><img style="display:none" src="plus.gif" id="release_notes"><a target="detail" href="release.html">Release Notes</a></dt>
+  <dd><div id="release_notes_detail"><dl class="page-index">
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_41">Differences from version 1.41</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_40">Differences from version 1.40</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_39">Differences from version 1.39</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_37">Differences from version 1.37</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_35">Differences from version 1.35</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_34">Differences from version 1.34</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_33">Differences from version 1.33</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#difference_1_32">Differences from version 1.32</a></dt>
+
+    <dt><img style="display:none" src="dot.gif"><a target="detail"  href="release.html#todo">Pending Issues</a></dt>
+  </dl></div></dd>
+  <dt><img style="display:none" src="plus.gif" id="overview"><a target="detail" href="overview.html">Overview</a></dt>
+  <dd><div id="overview_detail"><dl class="page-index">
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="overview.html#Requirements">Requirements</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="overview.html#Otherimplementations">Other Implementations</a></dt>
+  </dl></div></dd>
+  <dt><img style="display:none" src="plus.gif" id="tutorial"><a target="detail" href="tutorial.html">Tutorial</a></dt>
+  <dd><div id="tutorial_detail"><dl class="page-index"> 
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#simplecase">A Very Simple Case</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#nonintrusiveversion">Non Intrusive Version</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#serializablemembers">Serializable Members</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#derivedclasses">Derived Classes</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#pointers">Pointers</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#arrays">Arrays</a>
+
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#stl">STL Collections</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#versioning">Class Versioning</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#splitting">Splitting <code>serialize</code> into <code>save/load</code></a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#archives">Archives</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="tutorial.html#examples">List of Examples</a>
+  </dl></div></dd>
+
+  <dt><img style="display:none" src="plus.gif" id="reference"><a target="detail" href="reference.html">Reference</a></dt>
+  <dd><div id="reference_detail"><dl class="page-index"> 
+    <dt><img style="display:none" src="plus.gif" id="archive_concept"><a target="detail" href="archives.html">Archive Concepts</a>
+    <dd><div id="archive_concept_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archives.html#saving_interface">Saving Archive Concept</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archives.html#loading_interface">Loading Archive Concept</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archives.html#archive_models">Archive Models</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archives.html#exceptions">Exceptions</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archives.html#charactersets">Character Sets</a>
+    </dl></div></dd>
+    <dt><img style="display:none" src="plus.gif" id="serialization"><a target="detail" href="serialization.html">Serializable Concept</a>
+    <dd><div id="serialization_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#primitiveoperators">Primitive Types</a>
+      <dt><img style="display:none" src="dot.gif" id="class"><a target="detail" href="serialization.html#classoperators">Class Types</a>
+      <dd><div id="class_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#member">Member Function</a>
+        <dt><img style="display:none" src="plus.gif" id="splitfree"><a target="detail" href="serialization.html#free">Free Function</a>
+        <dd><div id="splitfree_detail"><dl class="page-index">
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#namespaces">Namespaces for Free Function Overrides</a>
+        </dl></div></dd>
+        <dt><img style="display:none" src="plus.gif" id="members"><a target="detail" href="serialization.html#classmembers">Class Members</a>
+        <dd><div id="members_detail"><dl class="page-index">
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#base">Base Classes</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#const"><code>const</code> Members</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#templates">Templates</a>
+        </dl></div></dd>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#versioning">Versioning</a>
+        <dt><img style="display:none" s'c="dot.gif"><a target="detail" href="serialization.html#splitting">Splitting <code>serialize</code> into <code>save/load</code></a>
+      </dl></div></dd>
+      <dt><img style="display:none" src="plus.gif" id="pointers"><a target="detail" href="serialization.html#pointeroperators">Pointers</a>
+      <dd><div id="pointers_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#constructors">Non-Default Constructors</a>
+        <dt><img style="display:none" src="plus.gif" id="derivedpointers"><a target="detail" href="serialization.html#derivedpointers">Pointers to Objects of Derived Classes</a>
+        <dd><div id="derivedpointers_detail"><dl class="page-index">
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#registration">Registration</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#export">Export</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#instantiation">Instantiation</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#selectivetracking">Selective Tracking</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#runtimecasting">Runtime Casting</a>
+        </dl></div></dd>
+      </dl></div></dd>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#references">References</a>
+      <dt><img style="display:none" src="plus.gif" id="traits"><a target="detail" href="traits.html">Class Serialization Traits</a>
+      <dd><div id="traits_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#version">Version</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#level">Implementation Level</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#tracking">Object Tracking</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#export">Export Key</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#Abstract">Abstract</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#typeinfo">Type Information Implementation</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#wrappers">Wrappers</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#bitwise">Bitwise Serialization</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#templates">Template Serialization Traits</a>
+
+        <dt><img style="display:none" src="plus.gif" id="compiletimemessages"><a target="detail" href="traits.html#compiletime_messages">Compile Time Warnings and Errors</a>
+        <dd><div id="compiletimemessages_detail"><dl class="page-index">
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#object_level">object_level</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#object_versioning">object_versioning</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#object_tracking">object_tracking</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#pointer_level">pointer_level</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#pointer_tracking">pointer_tracking</a>
+          <dt><img style="display:none" src="dot.gif"><a target="detail" href="traits.html#const_loading">const_loading</a>
+        </dl></div></dd>
+
+
+
+      </dl></div></dd>
+      <dt><img style="display:none" src="plus.gif" id="wrappers"><a target="detail" href="wrappers.html">Serialization Wrappers</a>
+      <dd><div id="wrappers_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="wrappers.html#binaryobjects">Binary Objects</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="wrappers.html#arrays">Arrays</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="wrappers.html#strong_type"><code style="white-space: normal">strong_type</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="wrappers.html#collection_size_type">Collection Sizes</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="wrappers.html#nvp">Name-Value Pairs</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="wrappers.html#composition">Composition</a>
+      </dl></div></dd>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="serialization.html#models">Models - Serialization Implementations Included in the Library</a>
+    </dl></div></dd>
+    <dt><img style="display:none" src="plus.gif" id="special"><a target="detail" 'ref="special.html">Special Considerations</a>
+    <dd><div id="special_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#objecttracking">Object Tracking</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#classinfo">Class Information</a>
+      <dt><img style="display:none" src="plus.gif" id="portability"><a target="detail" href="special.html#portability">Archive Portability</a>
+      <dd><div id="portability_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#numerics">Numerics</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#traits">Traits</a>
+      </dl></div></dd>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#binary_archives">Binary Archives</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#xml_archives">XML Archives</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#export">Exporting Class Serialization</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#static_libraries">Static Libraries and Serialization</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#dlls">DLLS - Serialization and Runtime Linking</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#plugins">Plugins</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#multi_threading">Multi-Threading</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="special.html#optimizations">Optimzations</a>
+      <dt><img style="display:none" src="plus.gif" id="exceptions"><a target="detail" href="exceptions.html">Archive Exceptions</a>
+      <dd><div id="exceptions_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#unregistered_class"><code>unregistered_class</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#invalid_signature"><code>invalid_signature</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#unsupported_version"><code>unsupported_version</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#pointer_conflict"><code>pointer_conflict</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#incompatible_native_format"><code>incompatible_format</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#array_size_too_short"><code>array_size_too_short</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#stream_error"><code>stream_error</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#invalid_class_name"><code>invalid_class_name</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#unregistered_cast"><code>unregistered_cast</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#xml_archive_parsing_error"><code>xml_archive_parsing_error</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#xml_archive_tag_mismatch"><code>xml_archive_tag_mismatch</code></a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="exceptions.html#xml_archive_tag_name_error"><code>xml_archive_tag_name_error</code></a>
+      </dl></div></dd>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="exception_safety.html">Exception Safety</a>
+    </dl></div></dd>
+    <dt><img style="display:none" src="plus.gif" id="archive_reference"><a target="detail" href="archive_reference.html">Archive Class Reference</a>
+    <dd><div id="archive_reference_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archive_reference.html#trivial">Trivial Archive</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archive_reference.html#implementation">More Useful Archive Classes</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archive_reference.html#usage">Usage</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archive_reference.html#testing">Testing</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="archive_reference.html#polymorphic">Polymorphic Archives</a>
+    </dl></div></dd>
+  </dl></div></dd>
+  <dt><img style="display:none" src="plus.gif" id="implementation"><a target="detail" href="implementation.html">Implementation Notes</a>
+  <dd><div id="implementation_detail"><dl class="page-index">
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#functiontemplateordering">Partial Function Template Ordering</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#charencoding">Character Encoding</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#tempatesyntax">Template Invocation syntax</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#partialtemplatespecialization">Partial Template Specialization</a>
+    <dt><img style="display:none" src="plus.gif" id="othercompilerissues"><a target="detail" href="implementation.html#othercompilerissues">Specific Compiler/Library Issues</a>
+    <dd><div id="othercompilerissues_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#gcc3x">GCC 3.X,4.X</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#gcc295">GCC 2.95</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#intel80">Intel 8.0</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#vc80">Visual C++ 8.0</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#vc71">Visual C++ 7.1</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#vc70">Visual C++ 7.0</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#vc6">Visual C++ 6.0</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#borland">Borland 5.64 and 5.51</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#comeau">Comeau 4.3.3</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#codewarrior">Code Warrior 8.3</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#tru64">TRU64</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#dinkumware">Dinkumware Library</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="implementation.html#stlport">STLPort 4.5.3</a>
+    </dl></div></dd>
+    <dt><img style="display:none" src="plus.gif" id="headers"><a target="detail" href="headers.html">Code Structure</a>
+    <dd><div id="headers_detail"><dl class="page-index">
+      <dt><img style="display:none" src="plus.gif" id="userincludes"><a target="detail" href="headers.html#userincludes">Files Included by User Programs</a>
+      <dd><div id="userincludes_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="headers.html#archiveimplementations">Archive Implementations</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="headers.html#serializationdeclarations">Serialization Declarations</a>
+        <dt><img style="display:none" 'rc="dot.gif"><a target="detail" href="headers.html#serializationimplementations">Serialization Implementations</a>
+      </dl></div>
+      <dt><img style="display:none" src="plus.gif" id="libraryimplementation"><a target="detail" href="headers.html#libraryimplementation">Files Which Implement the Library</a>
+      <dd><div id="libraryimplementation_detail"><dl class="page-index">
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="headers.html#archivedevelopment">Archive Development</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="headers.html#archiveinternals">Archive Internals</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="headers.html#codemodules">Archive Library Code Modules</a>
+        <dt><img style="display:none" src="dot.gif"><a target="detail" href="headers.html#dataflowiterators">Dataflow Iterators</a>
+      </dl></div></dd>
+    </dl></div></dd>
+  </dl></div></dd>
+  <dt><img style="display:none" src="plus.gif" id="case_studies">Case Studies
+  <dd><div id="case_studies_detail"><dl class="page-index">
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="shared_ptr.html">Template serialization - <code>shared_ptr&lt;class T&gt;</code></a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="shared_ptr2.html"><code>shared_ptr&lt;class T&gt;</code>Revisited</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="pimpl.html">PIMPL</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="simple_log.html">A Simple Logging Archive Class</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="derivation.html">Derivation from an Existing Archive Class</a>
+  </dl></div></dd>
+  <dt><img style="display:none" src="plus.gif" id="otherclasses">Other Classes
+  <dd><div id="otherclasses_detail"><dl class="page-index">
+    <dt><img style="display:none" src="plus.gif" id="extended_type_info"><a target="detail" href="extended_type_info.html"><code>extended_type_info</code></a>
+    <dd><div id="extended_type_info_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="extended_type_info.html#motivation">Motivation</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="extended_type_info.html#runtime">Runtime Interface</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="extended_type_info.html#requirements">Requirements</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="extended_type_info.html#models">Models</a>
+    </dl></div></dd>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="void_cast.html"><code>void_cast</code></a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="codecvt.html"><code>utf8_codecvt_facet</code></a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="strong_typedef.html"><code>BOOST_STRONG_TYPEDEF</code></a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="state_saver.html"><code>state_saver</code></a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="dataflow.html">Dataflow Iterators</a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="smart_cast.html"><code>smart_cast</code></a>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="static_warning.html"><code>BOOST_STATIC_WARNING</code></a>
+    <dt><img style="display:none" src="plus.gif" id="singleton"><a target="detail" href="singleton.html"><code>singleton</code></a>
+    <dd><div id="singleton_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="singleton.html#motivation">Motivation</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="singleton.html#features">Features</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="singleton.html#classinterface">Class Interface</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="singleton.html#requirements">Requirements</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="singleton.html#examples">Examples</a>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="singleton.html#multithreading">Multi-Threading</a>
+    </dl></div></dd>
+  </dl></div></dd>
+  <!--
+  <dt><img style="display:none" src="dot.gif"><a target="detail" href="configuration.html">Configuration Information</a></dt>
+    -->
+  <dt><img style="display:none" src="dot.gif"><a target="detail" href="faq.html">Tips and Tricks</a>
+  <dt><img style="display:none" src="plus.gif" id="rationale"><a target="detail" href="rationale.html">Rationale</a></dt>
+  <dd><div id="rationale_detail"><dl class="page-index">
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="rationale.html#serialization">The term "serialization" is preferred to "persistence"</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="rationale.html#archives">Archives are not streams</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="rationale.html#typeid"><code style="white-space: normal">typeid</code> information is not included in archives</a></dt>
+  </dl></div></dd>
+
+  <dt><img style="display:none" src="plus.gif" id="todo"><a target="detail" href="todo.html">To Do</a></dt>
+  <dd><div id="todo_detail"><dl class="page-index">
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="todo.html#portablebinaryarchive">Portable Binary Archive</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="todo.html#performancetesting">Performance Testing and Profiling</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="todo.html#backversioning">Back Versioning</a></dt>
+    <dt><img style="display:none" src="dot.gif"><a target="detail" href="todo.html#nortti">Environments without RTTI</a></dt>
+
+    <dt><img style="display:none" src="plus.gif" id="newcasestudies"><a target="detail" href="new_case_studies.html">Proposed Case Studies</a></dt>
+    <dd><div id="newcasestudies_detail"><dl class="page-index">
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="new_case_studies.html#functionobject">Serializing a Function Object</a></dt>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="new_case_studies.html#archiveadaptor">Archive Adaptors</a></dt>
+      <dt><img style="display:none" src="dot.gif"><a target="detail" href="new_case_studies.html#archivehelper">Archive Helpers</a></dt>
+    </dl></div></dd>
+
+  </dl></div></dd>
+
+  <dt><img style="display:none" src="dot.gif"><a target="detail" href="history.html">History</a>
+  <!--
+  <dt><img style="display:none" src="dot.gif"><a target="detail" href="definitions.html">Definitions</a></dt>
+  <dt><img style="display:none" src="dot.gif"><a target="detail" href="faq.html">Frequently Asked Questions (FAQs)</a></dt>
+    -->
+  <dt><img style="display:none" src="dot.gif"><a target="detail" href="bibliography.html">Bibliography</a></dt>
+  <dt><img style="display:none" src="dot.gif"><a target="detail" href="acknowledgments.html">Acknowledgments</a></dt>
+</dl></div>
+</small>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/dataflow.html b/deal.II/contrib/boost/libs/serialization/doc/dataflow.html
new file mode 100644 (file)
index 0000000..3bc1445
--- /dev/null
@@ -0,0 +1,212 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Dataflow Iterators</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Dataflow Iterators</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<h3>Motivation</h3>
+Consider the problem of translating an arbitrary length sequence of 8 bit bytes 
+to base64 text. Such a process can be summarized as:
+<p>
+source =&gt; 8 bit bytes =&gt; 6 bit integers =&gt; encode to base64 characters =&gt; insert line breaks =&gt; destination
+<p>
+We would prefer the solution that is:
+<ul>
+  <li>Decomposable. so we can code, test, verify and use each (simple) stage of the conversion 
+  independently.
+  <li>Composable. so we can used this composite as a new component somewhere else.
+  <li>Efficient, so we're not required to re-implement it again.
+  <li>Scalable, so that it works well for short and arbitrarily long sequences.
+</ul>
+The approach that comes closest to meeting these requirements is that described
+and implemented with <a href="../../iterator/doc/index.html">Iterator Adaptors</a>.
+The fundamental feature of an Iterator Adaptor template that makes in interesting to
+us is that it takes as a parameter a base iterator from which it derives its
+input. This suggests that something like the following might be possible.
+<pre><code>
+typedef 
+    insert_linebreaks&lt;         // insert line breaks every 72 characters
+        base64_from_binary&lt;    // convert binary values ot base64 characters
+            transform_width&lt;   // retrieve 6 bit integers from a sequence of 8 bit bytes
+                const char *,
+                6,
+                8
+            &gt;
+        &gt; 
+        ,72
+    &gt; 
+    base64_text; // compose all the above operations in to a new iterator
+
+std::copy(
+    base64_text(address),
+    base64_text(address + count),
+    ostream_iterator&lt;CharType&gt;(os)
+);
+</code></pre>
+Indeed, this seems to be exactly the kind of problem that iterator adaptors are 
+intended to address.  The Iterator Adaptor library already includes
+modules which can be configured to implement some of the operations above.  For example,
+included is <a target="transform_iterator" href="../../iterator/doc/transform_iterator.html">
+transform_iterator</a>, which can be used to implement 6 bit integer =&gt; base64 code.
+
+<h3>Dataflow Iterators</h3>
+Unfortunately, not all iterators which inherit from Iterator Adaptors are guarenteed
+to meet the composability goals stated above.  To accomplish this purpose, they have
+to be written with some additional considerations in mind.
+
+We define a Dataflow Iterator as an class inherited from <code style="white-space: normal">iterator_adaptor</code> which
+fulfills as a small set of additional requirements.
+
+<h4>Templated Constructors</h4>
+<p>
+Templated constructor have the form:
+<pre><code>
+template&lt;class T&gt;
+dataflow_iterator(T start) :
+    iterator_adaptor(Base(start))
+{}
+</code></pre>
+When these constructors are applied to our example of above, the following code is generated:
+<pre><code>
+std::copy(
+    insert_linebreaks(
+        base64_from_binary(
+            transform_width(
+                address
+            ),
+        )
+    ),
+    insert_linebreaks(
+        base64_from_binary(
+            transform_width(
+                address + count
+            )
+        )
+    )
+    ostream_iterator&lt;char&gt;(os)
+);
+</code></pre>
+The recursive application of this template is what automatically generates the
+constructor <code style="white-space: normal">base64_text(const char *)</code>  in our example above.  The original
+Iterator Adaptors include a <code style="white-space: normal">make_xxx_iterator</code> to fulfill this function.
+However, I believe these are unwieldy to use compared to the above solution usiing
+Templated constructors.
+<p>
+Unfortunately, some systems which fail to properly support partial function template
+ordering cannot support the concept of a templated constructor as implemented above.  
+A special"wrapper"  macro has been created to work around this problem. With this "wrapper" 
+the above example is modified to:
+<pre><code>
+std::copy(
+    base64_text(BOOST_MAKE_PFTO_WRAPPER(address)),
+    base64_text(BOOST_MAKE_PFTO_WRAPPER(address + count)),
+    ostream_iterator&lt;char&gt;(os)
+);
+</code></pre>
+This macro is defined in <a target="pfto" href="../../../boost/serialization/pfto.hpp">&lt;boost/serialization/pfto.hpp&gt;</a>.
+For more information about this topic, check the source.
+
+<h4>Dereferencing</h4>
+Dereferencing some iterators can cause problems.  For example, a natural
+way to write a <code style="white-space: normal">remove_whitespace</code> iterator is to increment past the initial 
+whitespaces when the iterator is constructed.  This will fail if the iterator passed to the
+constructor "points" to  the end of a string.  The 
+<a target="filter_iterator" href="../../iterator/doc/filter_iterator.html">
+<code style="white-space: normal">filter_iterator</code></a> is implemented
+in this way so it can't be used in our context. So, for implementation of this iterator, 
+space removal is deferred until the iterator actually is dereferenced.
+
+<h4>Comparison</h4>
+The default implementation of iterator equality of <code style="white-space: normal">iterator_adaptor</code> just
+invokes the equality operator on the base iterators.  Generally this is satisfactory.
+However, this implies that other operations (E. G. dereference) do not prematurely 
+increment the base iterator.  Avoiding this can be surprisingly tricky in some cases.
+(E.G. transform_width)
+
+<p>
+Iterators which fulfill the above requirements should be composable and the above sample
+code should implement our binary to base64 conversion.
+
+<h3>Iterators Included in the Library</h3>
+Dataflow iterators for the serialization library are all defined in the hamespace
+<code style="white-space: normal">boost::archive::iterators</code> included here are:
+<dl class="index">
+  <dt><a target="base64_from_binary" href="../../../boost/archive/iterators/base64_from_binary.hpp">
+  base64_from_binary</a></dt>
+  <dd>transforms a sequence of integers to base64 text</dd>
+
+  <dt><a target="base64_from_binary" href="../../../boost/archive/iterators/binary_from_base64.hpp">
+  binary_from_base64</a></dt>
+  <dd>transforms a sequence of base64 characters to a sequence of integers</dd>
+
+  <dt><a target="insert_linebreaks" href="../../../boost/archive/iterators/insert_linebreaks.hpp">
+  insert_linebreaks</a></dt>
+  <dd>given a sequence, creates a sequence with newline characters inserted</dd>
+
+  <dt><a target="mb_from_wchar" href="../../../boost/archive/iterators/mb_from_wchar.hpp">
+  mb_from_wchar</a></dt>
+  <dd>transforms a sequence of wide characters to a sequence of multi-byte characters</dd>
+
+  <dt><a target="remove_whitespace" href="../../../boost/archive/iterators/remove_whitespace.hpp">
+  remove_whitespace</a></dt>
+  <dd>given a sequence of characters, returns  a sequence with the white characters
+  removed.  This is  a derivation from the <code style="white-space: normal">boost::filter_iterator</code></dd>
+
+  <dt><a target="transform_width" href="../../../boost/archive/iterators/transform_width.hpp">
+  transform_width</a></dt>
+  <dd>transforms a sequence of x bit elements into a sequence of y bit elements.  This
+  is a key component in iterators which translate to and from base64 text.</dd>
+
+  <dt><a target="wchar_from_mb" href="../../../boost/archive/iterators/wchar_from_mb.hpp">
+  wchar_from_mb</a></dt>
+  <dd>transform a sequence of multi-byte characters in the current locale to wide characters.</dd>
+
+  <dt><a target="xml_escape" href="../../../boost/archive/iterators/xml_escape.hpp">
+  xml_escape</a></dt>
+  <dd>escapes xml meta-characters from xml text</dd>
+
+  <dt><a target="xml_unescape" href="../../../boost/archive/iterators/xml_unescape.hpp">
+  xml_unescape</a></dt>
+  <dd>unescapes xml escape sequences to create a sequence of normal text<dd>
+</dl>
+<p>
+The standard stream iterators don't quite work for us.  On systems which implement <code style="white-space: normal">wchar_t</code>
+as unsigned short integers (E.G. VC 6) they didn't function as I expected. I also made some
+adjustments to be consistent with our concept of Dataflow Iterators.  Like the rest of our
+iterators, they are found in the namespace <code style="white-space: normal">boost::archive::interators</code> to avoid
+conflict the standard library version.
+<dl class = "index">
+  <dt><a target="istream_iterator" href="../../../boost/archive/iterators/istream_iterator.hpp">
+  istream_iterator</a></dt>
+  <dt><a target="ostream_iterator" href="../../../boost/archive/iterators/ostream_iterator.hpp">
+  ostream_iterator</a></dt>
+</dl>
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/definitions.html b/deal.II/contrib/boost/libs/serialization/doc/definitions.html
new file mode 100644 (file)
index 0000000..ecfb61d
--- /dev/null
@@ -0,0 +1,17 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Definitions</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/derivation.html b/deal.II/contrib/boost/libs/serialization/doc/derivation.html
new file mode 100644 (file)
index 0000000..ccdd92e
--- /dev/null
@@ -0,0 +1,158 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Derivation from an Existing Archive</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Derivation from an Existing Archive</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+</dl>
+
+<h3>Log Archive</h3>
+It may happen that one wants to create a new archive class by derivation from one
+of the included ones. Included is a sample program that shows how to derive a 
+new archive from one of the ones included with the library.  The first example is
+<a href="../example/demo_log.cpp" target="demo_log_cpp">
+demo_log.cpp</a>.
+<p>
+This derivation from the xml archive writes output in xml without the extra
+information required to read the data back into the application.  It might be
+used to export one's data as simple xml for other applications or for logging
+data while debugging.
+<p>
+To this end it is derived from the included xml archive and the save functions for
+some types are specialized for this application.  
+<p>
+The serialization library is
+implemented using the <b>C</b>uriously <b>R</b>ecurring <b>T</b>emplate 
+<b>P</b>attern (<b>CRTP</b>).  Also, all common code is factored out into
+separate modules to minimize code repetition. This makes derivation from
+an existing archive less straight forward than it would otherwise be.
+<p> 
+This example illustrates several issues that have to be addressed when doing
+something like this
+<ol>
+    <li><i>It is derived from</i> <code style="white-space: normal">xml_oarchive_impl<log_archive></code> 
+        <b>NOT</b> <code style="white-space: normal">xml_oarchive</code> <br>
+As described in the comments in
+<a href="../../../boost/archive/xml_oarchive.hpp" target="xml_oarchive_hpp">xml_oarchive.hpp</a>.
+<code style="white-space: normal">xml_oarchive</code> really a shorthand name for 
+<code style="white-space: normal">xml_oarchive_impl&lt;xml_oarchive&gt;</code>.  So we should derive
+from <code style="white-space: normal">xml_oarchive_impl&lt;log_archive&gt;</code> rather
+than <code style="white-space: normal">xml_oarchive</code>.
+<pre><code>
+class log_archive :
+    // don't derive from xml_oarchive !!!
+    public xml_oarchive_impl&lt;log_archive&gt;
+{
+...
+</code></pre>
+    <li><i>Note the</i> <code style="white-space: normal">log_archive</code> <i>between the</i> &lt;&gt;
+This is required so that base classes can downcast their <code style="white-space: normal">this</code> pointer
+to the most derived class.  This is referred to as <b>C</b>uriously <b>R</b>ecurring
+<b>T</b>emplate <b>P</b>attern (<b>CRTP</b>) <a href="bibliography.html#11">[11]</a>.  
+It is used to implement static polymorphism.
+    <li><i>Base classes need to be explicitly given access to the derived class.</i>
+This can be done by making members public or by including friend declarations for
+the base classes.
+<pre><code>
+    friend class detail::common_oarchive&lt;log_archive&gt;;
+    friend class basic_xml_oarchive&lt;log_archive&gt;;
+    friend class boost::serialization::save_access;
+</code></pre>
+
+    <li><i></i>Reread <a target="detail" href="headers.html#archiveinternals">Archive Internals</a>.
+This describes the class hierarchy so that you know what to override.
+    <li><i>Note the usage of PFTO.</i>  Some compilers fail to provide support for
+partial function template ordering.  The serialization library works around by
+using <a target="detail" href="implementation.html#functiontemplateordering">
+<b>P</b>artial <b>F</b>unction <b>T</b>emplate <b>O</b>rdering</a> in several places.
+In archive classes, this takes
+. This is done
+in several places, including the archive classes themselves.
+    <li><i>Base class functions will usually need to be explicitly invoked</i>
+We commonly specialize the function name <code style="white-space: normal">save_override</code> 
+for saving primitives. Usage of a function name in a derived class
+"hides" similarly named functions of the base class.  That is, 
+function name overloading doesn't automatically
+include base classes.  To address this, we can use:
+<pre><code>
+    using xml_oarchive_impl&lt;derived_t&gt;::save;
+    void save(const unsigned int t);
+    ...
+</code></pre>
+which should work on conforming compilers. However, I have found
+that the following equivalent works on more compilers.
+<pre><code>
+    // default fall through for any types not specified here
+    template&lt;class T&gt;
+    void save(const T & t){
+        xml_oarchive_impl&lt;derived_t&gt;::save(t);
+    }
+    void save(const unsigned int t);
+    ...
+</code></pre>
+so it's what I use.
+    <li><i>Template definitions of base classes may have to be explicitly instantiated.</i>
+    The demo includes
+<pre><code>
+// explicitly instantiate for this type of binary stream
+#include &lt;boost/archive/basic_binary_oprimitive.ipp&gt;
+</code></pre>
+for just this purpose.  Failure to include required template definitions
+will result in undefined symbol errors when the program is linked.
+    <li><i>Without alteration, this class cannot be further derived from</i><br>
+Base classes using <b>CRTP</b> must be templates with a parameter corresponding to
+the most derived class.  As presented here, this class doesn't qualify, so
+it cannot be used as a base class.  In order to derive further from this class,
+it would have to be reorganized along the lines of the original <code style="white-space: normal">xml_oarchive</code>.
+Specifically, it would look something like:
+<pre><code>
+template&lt;class Archive&gt;
+class log_archive_impl :
+    // don't derive from xml_oarchive !!!
+    public xml_oarchive_impl&lt;Archive&gt;
+{
+    ...
+);
+
+// do not derived from this class !!!
+class log_archive : 
+    public log_archive_impl&lt;log_archive&gt;
+{
+public:
+    log_archive(std::ostream & os, unsigned int flags = 0) :
+        log_archive_impl&lt;xml_oarchive&gt;(os, flags)
+    {}
+};
+</code></pre>
+
+</ol>  
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/dot.gif b/deal.II/contrib/boost/libs/serialization/doc/dot.gif
new file mode 100644 (file)
index 0000000..c9c1156
Binary files /dev/null and b/deal.II/contrib/boost/libs/serialization/doc/dot.gif differ
diff --git a/deal.II/contrib/boost/libs/serialization/doc/exception_safety.html b/deal.II/contrib/boost/libs/serialization/doc/exception_safety.html
new file mode 100644 (file)
index 0000000..fcee95f
--- /dev/null
@@ -0,0 +1,115 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Reference</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Exception Safety</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+The process of loading an archive may result in the creation of new objects.  That
+same process may throw an exception at some point. In order to prevent memory leaks
+and invalid pointers, these situations must be considered.  Unfortunately, there is
+no simple universal solution to this problem.  The manner of addressing this must
+depend on the design of the data structures to be serialized.  Below, we discuss
+varying scenarios in increasing order of difficulty.  This discussion presumes that
+the class member functions are exception safe before considering serialization.  
+That is, the destructor could be called at anytime without referencing 
+an invalid pointer, or creating a memory leak.
+<ol>
+    <li><h4>class contains no pointers</h4>
+    No problem here.
+    <p>
+    <li><h4>class contains only <i>owned</i> pointers</h4>
+    From here on, we have to make a distinction between pointers used
+    to manage heap storage (<i>owned</i> pointers) and pointers used to refer
+    to related objects (<i>referenced</i> pointers).  Programs containing <i>owned</i>
+    pointers must contain code for deleting these objects and returning the
+    deallocated storage to the heap.  Programs containing <i>referenced</i> pointers
+    must be designed to ensure that no such <i>referenced</i> pointers are de-referenced
+    after the object pointed to has been destroyed and its storage returned
+    to the heap. If a pointer is stored in only one place, it must be an <i>owned</i>
+    pointer.
+    <p>
+    The load function traps any exceptions that occur between the time an object
+    is created and its pointer is stored.  Should an exception occur while
+    reading an archive, the created object is deleted and the de-serialized
+    pointer is set to NULL.  This ensures that there are no memory leaks.
+    The fact that there are no other copies of this pointer ensures that
+    no pointers are left invalid. The object's destructor should
+    be able to delete any other existing objects in the normal manner
+    without problem.
+    <a href="../test/test_delete_pointer.cpp" target="test_delete_pointer.cpp">test_delete_pointer.cpp</a>
+    illustrates this case.
+    <p>
+    <li><h4>class contains one or more <i>referenced</i> pointers</h4>
+    This situation can be further subdivided into two cases
+    <p>
+    <ol>
+        <li><h4><i>owned</i> pointers are always serialized before <i>referenced</i> pointers</h4>
+        Object tracking will ensure that no new objects will be created
+        by the loading of a <i>referenced</i> pointer.
+        If an exception occurs, <i>referenced</i> pointers will not need to be deleted
+        so there will be no memory leaks. The destructor of this class won't attempt to
+        delete these pointers so there will be no problem with dangling references.
+        <i>owned</i> pointers are handled exactly as described above.
+        <p>
+        <li><h4>class contains <i>referenced</i> pointers which might be created by load</h4>
+        If a <i>referenced</i> pointer is loaded before its corresponding <i>owned</i>
+        pointer, the object will be allocated on the heap.  In certain cases
+        it cannot be known which pointers were created by their owners and which
+        were created by the load function.  To address this:
+        <ul>
+        <li>Trap exceptions with a <code style="white-space: normal">try/catch</code> block.
+        <li>Within the catch part, invoke the archive function 
+        <code style="white-space: normal">delete_created_pointers()</code> to delete any pointers
+        created by the class load.  Without out other action, objects created in
+        this way would end up as memory leaks as they are not considered <i>owned</i>
+        pointers and hence aren't destroyed.
+        <li>The object's destructor won't try
+        to delete <i>referenced</i> pointers so any dangling references will
+        cause no harm.
+    </ul>
+    <a href="../example/demo_exception.cpp" target="demo_exception.cpp">demo_exception.cpp</a>
+        is a program that illustrates this case.
+        <p>
+    </ol>
+    <p>
+    <li><h4>Other cases</h4>
+    Situations not covered above are pointers for which the classifications of 
+    <i>referenced</i> and <i>owned</i> are not applicable.  This might occur where
+    pointers are created by one class but consumed and deleted by another.  These
+    may be addressed with an ad hoc analysis similar to the above.  As the
+    situation becomes more complex this becomes more difficult and error prone.
+    Eventually, it will be have to addressed by building heap management into the
+    pointer itself - that is into <code style="white-space: normal">boost::shared_ptr</code>. 
+    The library includes serialization of <code style="white-space: normal">boost::shared_ptr</code>.  As
+    previously mentioned, this required a tiny alteration in one of the
+    <code style="white-space: normal">boost::shared_ptr</code> implementation files in order to permit
+    access by the serialization system.
+</ol>
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/exceptions.html b/deal.II/contrib/boost/libs/serialization/doc/exceptions.html
new file mode 100644 (file)
index 0000000..2987b4a
--- /dev/null
@@ -0,0 +1,270 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Archive Exceptions</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Archive Exceptions</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#unregistered_class"><code style="white-space: normal">unregistered_class</code></a>
+  <dt><a href="#invalid_signature"><code style="white-space: normal">invalid_signature</code></a>
+  <dt><a href="#unsupported_version"><code style="white-space: normal">unsupported_version</code></a>
+  <dt><a href="#unsupported_class_version"><code style="white-space: normal">unsupported_class_version</code></a>
+  <dt><a href="#pointer_conflict"><code style="white-space: normal">pointer_conflict</code></a>
+  <dt><a href="#incompatible_native_format"><code style="white-space: normal">incompatible_native_format</code></a>
+  <dt><a href="#array_size_too_short"><code style="white-space: normal">array_size_too_short</code></a>
+  <dt><a href="#stream_error"><code style="white-space: normal">stream_error</code></a>
+  <dt><a href="#invalid_class_name"><code style="white-space: normal">invalid_class_name</code></a>
+  <dt><a href="#unregistered_class"><code style="white-space: normal">unregistered_class</code></a>
+  <dt><a href="#multiple_code_instantiation"><code style="white-space: normal">multiple_code_instantiation</code></a>
+  <dt><a href="#xml_archive_parsing_error"><code style="white-space: normal">xml_archive_parsing_error</code></a>
+  <dt><a href="#xml_archive_tag_mismatch"><code style="white-space: normal">xml_archive_tag_mismatch</code></a>
+  <dt><a href="#xml_archive_tag_name_error"><code style="white-space: normal">xml_archive_tag_name_error</code></a>
+</dl>
+
+Archive operators can throw a <code style="white-space: normal">boost::archive_exception</code>
+object which can be caught by an application program.  These exceptions are defined
+in the files <a target="archive_exception_hpp" href="../../../boost/archive/archive_exception.hpp">
+archive_exception.hpp</a>
+and <a target="basic_xml_archive_hpp" href="../../../boost/archive/basic_xml_archive.hpp">
+basic_xml_archive.hpp</a>.
+<pre><code>
+namespace boost {
+namespace archive {
+
+class archive_exception  : public std::exception
+{
+public:
+    typedef enum {
+        unregistered_class,     // attempt to serialize a pointer of an
+                                // an unregistered class
+        invalid_signature,      // first line of archive does not contain
+                                // expected string
+        unsupported_version,    // archive created with library version subsequent
+                                // to this one
+        pointer_conflict        // an attempt has been made to directly serialize
+                                // an object after having already serialized the same
+                                // object through a pointer.  Were this permitted, 
+                                // it the archive load would result in the creation
+                                // of extraneous object.
+        incompatible_native_format, // attempt to read native binary format
+                                // on incompatible platform
+        array_size_too_short,   // array being loaded doesn't fit in array allocated
+        stream_error            // i/o error on stream
+        invalid_class_name,     // class name greater than the maximum permitted.
+                                // most likely a corrupted archive or an attempt
+                                // to insert virus via buffer overrun method.
+        unregistered_cast,      // base - derived relationship not registered with 
+                                // void_cast_register
+        unsupported_class_version, // type saved with a version # greater than the 
+                            // one used by the program.  This indicates that the proggram
+                            // needs to be rebuilt.
+        multiple_code_instantiation // code for implementing serialization for some
+                            // type has been instantiated in more than one module.
+    } exception_code;
+    exception_code code;
+    archive_exception(exception_code c) : code(c) {}
+    virtual const char *what( ) const throw();
+};
+
+class xml_archive_exception : public virtual archive_exception
+{
+public:
+    typedef enum {
+        xml_archive_parsing_error,  // archive doesn't contain expected data 
+       xml_archive_tag_mismatch,   // start/end tag in archive doesn't match program
+        xml_archive_tag_name_error  // tag name contains invalid characters
+
+    } exception_code;
+    xml_archive_exception(exception_code c){}
+    virtual const char *what( ) const throw();
+};
+
+} // archive
+} // boost
+</code></pre>
+<p>
+<h3><a name="unregistered_class"><code style="white-space: normal">unregistered_class</code></a></h3>
+An attempt has been made to serialize a polymorphic class through a pointer
+without either registering it or associating it with an export key.  This can also occur
+when using a new archive how class name has not been added to the system with the 
+<code style="white-space: normal">BOOST_ARCHIVE_CUSTOM_ARCHIVE_TYPES</code> macro.
+
+<h3><a name="invalid_signature"><code style="white-space: normal">invalid_signature</code></a></h3>
+Archives are initiated with a known string.  If this string is not found when
+the archive is opened, It is presumed that this file is not a valid archive and this
+exception is thrown.
+
+<h3><a name="unsupported_version"><code style="white-space: normal">unsupported_version</code></a></h3>
+This system assigns a version number of 3 to all archives created.  Note that this is in
+no way related to version number of classes used by application programs. This refers
+to the version of the serialization system used to create the archive. Future versions
+of this serialization system will be able to identify archives created under previous
+(i.e. this) system and alter the loading procedure accordingly.  Hence, future enhancements
+to this serialization system should not obsolete any existing archive files.  It is only
+necessary to increment this version number when the newer system creates archives
+incompatible in format with the current one. 
+<p>Should it ever occur that an older program attempts to read newer archives whose
+format has changed, this exception is thrown.
+
+<h3><a name="unsupported_class_version"><code style="white-space: normal">unsupported_class_version</code></a></h3>
+An attempt has been made to load a class whose version has been incremented since the
+program was written.  Suppose that a class has been assigned version number 3 and the program
+has been built and sent to third parties.  Now suppose that the definition of that class
+has been altered, the version number has been incremented to 4 and new archives have been
+built.  If one attempts to load these new archives with the original program, this 
+exception will be thrown.
+
+<h3><a name="pointer_conflict"><code style="white-space: normal">pointer_conflict</code></a></h3>
+To understand what this exception means consider the following scenario
+<pre><code>
+template&lt;class Archive&gt;
+void T::save(Archive &ar) const
+{
+    const A * aptr = &a;
+    ar << aptr;          // save an instance of object of class A through a pointer
+    ...
+    ar << a;             // save an instance of an object of class A
+    assert(aptr == &a);  // this must be true
+}
+
+template&lt;class Archive&gt;
+void T::load(Archive &ar)
+{
+    A * aptr;
+    ar >> aptr;          // create and initialize a new instance of class A
+    ...
+    ar >> a;             // restore state of on object of class A
+    assert(aptr == &a);  // this won't be true
+}
+</pre></code>
+An object is saved first through a pointer then directly.  Upon loading back
+in the same sequence, we first create an new object and load in its data.  Then
+we load the data into another existing object.  Where we started with one
+object during save, we have two objects after restore.  In a more realistic
+situation, it could be very difficult to find this error.  Fortunately, 
+these situations can be detected when the archive is created. When
+this occurs, this exception is thrown.
+
+<h3><a name = "incompatible_native_format"><code style="white-space: normal">incompatible_native_format</code></a></h3>
+The library currently supports char text, wide char text and native binary
+archive files. At the beginning of every archive, a signature is written indicating
+the type of archive.  This exception is thrown when an attempt is made to read
+an archive written in a different format.
+
+<h3><a name="array_size_too_short"><code style="white-space: normal">array_size_too_short</code></a></h3>
+An attempt has been made to read an array that is larger than the array size.
+This should only occur when the size of an array in code is reduced after an
+archive has already been created.
+
+<h3><a name="stream_error"><code style="white-space: normal">stream_error</code></a></h3>
+An error has occured during stream input or ouput.  Aside from the common 
+situations such as a corrupted or truncated input file, there are 
+several less obvious ones that sometimes occur.
+<p>
+This includes
+an attempt to read past the end of the file. Text files need a terminating
+new line character at the end of the file which is appended when the
+archive destructor is invoked.  Be sure that an output archive on a stream
+is destroyed before opening an input archive on that same stream.  That is,
+rather than using something like:
+<pre><code>
+std::stringstream ss;
+std::vector&lt;V&gt; v;
+boost::archive::text_oarchive oa(ss);
+oa &lt;&lt; v;
+boost::archive::text_iarchive ia(ss);
+ia &gt;&gt; v;
+</code></pre>
+use
+<pre><code>
+std::stringstream ss;
+std::vector&lt;V&gt; v;
+{
+    boost::archive::text_oarchive oa(ss);
+    oa &lt;&lt; v;
+}
+{
+    boost::archive::text_iarchive ia(ss);
+    ia &gt;&gt; v;
+}
+</code></pre>
+<p>
+Another one is the passing of uninitialized data.  In general, the behavior
+of the serialization library when passed uninitialized data is undefined.
+If it can be detected, it will invoke an assertion in debug builds.
+Otherwise, depending on the type of archive, it may pass through without
+incident or it may result in an archive with unexpected data in it.
+This, in turn, can result in the throwing of this exception.
+
+<h3><a name="invalid_class_name"><code style="white-space: normal">invalid_class_name</code></a></h3>
+Class name length greater than the maximum permitted. Most likely cause is a corrupted 
+archive  or an attempt to insert virus via buffer overrun method.
+
+<h3><a name="unregistered_cast"><code style="white-space: normal">unregistered_cast</code></a></h3>
+In order to support casting between pointers of base and derived classes
+at runtime, a collection of legitimate conversions is maintained by the system.
+Normally this collection is maintained without any explicit action
+on the part of the user of the library.  However, there are special cases
+where this might have to be done explicitly and could be overlooked. This
+is described in <a href="serialization.html#runtimecasting">Runtime Casting</a>.
+This exception is thrown if an attempt is made to convert between two pointers 
+whose relationship has not been registered,
+
+<h3><a name="multiple_code_instantiation"><code style="white-space: normal">multiple_code_instantiation</code></a></h3>
+This exception is thrown when it is detected that the serialization of the same type 
+has been instantiated more that once.  This might occur when
+serialization code is instantiated in both the mainline and one or more DLLS.
+
+<h3><a name="xml_archive_parsing_error"><code style="white-space: normal">xml_archive_parsing_error</code></a></h3>
+The XML generated by the serialization process is intimately coupled to the
+C++ class structure, relationships between objects and the serialization 
+specifications.  If these become out of sync in any way, the XML may not map
+to the loading serialization and this exception might be thrown.  This might
+occur for one of the following reasons:
+<ul>
+    <li>The archive has been edited outside the serialization system.  This might
+be possible if only the data is changed and not the XML attributes and nesting
+structure is left unaltered.  But any other editing is likely to render the
+archive unreadable by the serialization library.
+    <li>The serialization has been altered and an archive generated by the old
+code is being read.  That is, versioning has not been properly employed to
+properly deserialize previously created archives.
+</ul>
+
+<h3><a name="xml_archive_tag_mismatch"><code style="white-space: normal">xml_archive_tag_mismatch</code></a></h3>
+This exception will be thrown if the start or end tag of and XML element doesn't match
+the name specified for the object in the program.
+
+<h3><a name="xml_archive_tag_name_error"><code style="white-space: normal">xml_archive_tag_name_error</code></a></h3>
+This exception will be thrown if the tag name contains invalid characters.  Valid characters
+for an XML tag are: upper and lower case letters, digits, and the following punctuation: .(period),
+_(underscore), :(colon), and -(hyphen).
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/extended_type_info.html b/deal.II/contrib/boost/libs/serialization/doc/extended_type_info.html
new file mode 100644 (file)
index 0000000..8f75cc1
--- /dev/null
@@ -0,0 +1,418 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - extended_type_info</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code style="white-space: normal">extended_type_info</code></h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#motivation">Motivation</a>
+  <dt><a href="#runtime">Runtime Interface</a>
+  <dt><a href="#requirements">Requirements</a>
+  <dt><a href="#models">Models</a>
+  <dt><a href="#example">Example</a>
+</dl>
+
+<h3><a name="motivation">Motivation</a></h3>
+The serialization library needs a system like 
+<code style="white-space: normal">type_info/typeid()</code> to perform
+the following functions
+<ol>
+  <li>
+     given a pointer to a type T discover the true type pointed to.
+  <li>
+     given an "external" key - determine what type of object to create.
+</ol>
+<h3>The problem with <code style="white-space: normal">std::type_info</code></h3>
+<ul>
+  <li>
+    The main function we require - <code style="white-space: normal">std::typeid()</code>
+    is not available in all environments. Support for this function depends upon
+    runtime typing(RTTI) support from the compiler.  This may be non-existent
+    or not enabled for reasons such as a percieved inefficiency.
+  <li>
+    <code style="white-space: normal">std::type_info</code> includes a string
+    containing type name.  This would seem to satisfy 2) above.
+    But the format of this string is not consistent accross compilers, libraries, 
+    and operating systems. This makes it unusable for support of portable archives.
+  <li>
+    Even if the type name string could somehow be made portable, there is no 
+    guarentee that class headers would be included in the same name space accross 
+    different applications. In fact, including different headers in different
+    name spaces is an accepted method used to avoid name space conflicts.
+    Thus the namespace::class_name can't be used as a key.
+  <li>
+    There exists the possibility that different classes use different type id 
+    mechanism.  The class header might include this information. If we want to 
+    import class headers accross applications, its convenient that the type id
+    mechanism support inter-operability accross different type id systems.
+</ul>
+<h3>Features</h3>
+<code style="white-space: normal"><a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">
+extended_type_info</a></code> is an implementation
+of <code style="white-space: normal">std::type_info</code> functionality with the 
+following features:
+<ul>
+  <li>
+    Builds a set of <a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">
+    <code style="white-space: normal">extended_type_info</a></code> records - one for each type
+    serialized.
+  <li>
+    permits association of an arbitrary string key with a type.  Often this key would
+    be the class name - but it doesn't have to be.  This key is referred to as
+    a GUID - Globally Unique IDentifier.  Presumably it should be unique in the universe.
+    Typically this GUID would be in header files and be used to match type accross
+    applications.  The macro BOOST_CLASS_EXPORT can be invoked to associate a string
+    key with any known type.  We'll refer to these types as "exported types"
+  <li>
+    permits the "mixing" of type info systems.  For example, one class might use 
+    <code style="white-space: normal">typeid()</code> to find the external identifier 
+    of a class while another might not.
+</ul>
+
+Exported types are maintained in a global table so that given a string key, the
+corresponding type can be found.  This facility is used by the serialization library
+in order to construct types serialized through a base class pointer.
+
+<h3><a name="runtime">Runtime Interface</a></h3>
+<pre><code">
+namespace boost { 
+namespace serialization {
+
+class extended_type_info
+{
+protected:
+    // this class can't be used as is. It's just the 
+    // common functionality for all type_info replacement
+    // systems.  Hence, make these protected
+    extended_type_info(
+        const unsigned int type_info_key,
+        const char * key
+    );
+    ~extended_type_info();
+    void key_register();
+    void key_unregister();
+public:
+    const char * get_key() const;
+    bool operator<(const extended_type_info &rhs) const;
+    bool operator==(const extended_type_info &rhs) const;
+    bool operator!=(const extended_type_info &rhs) const {
+        return !(operator==(rhs));
+    }
+    // for plugins
+    virtual void * construct(unsigned int count = 0, ...) const;
+    virtual void destroy(void const * const p) const;
+    static const extended_type_info * find(const char *key);
+};
+
+} // namespace serialization 
+} // namespace boost
+</code></pre>
+<p>
+Generally, there will be one and only one
+<code style="white-space: normal"><a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">extended_type_info</a></code>
+instance created for each type.  However, this is enforced only at the executable
+module level.  That is, if a program includes some shared libraries or DLLS,
+there may be more than one instance of this class correponding to a particular type.
+For this reason the comparison functions below can't just compare the addresses of 
+this instance but rather must be programmed to compare the the actual information 
+the instances contain.
+<dl>
+
+<dt><h4><pre><code>
+extended_type_info(unsigned int type_info_key, const char *key);
+</code></pre></h4></dt>
+<dd>
+This constructor should be called by all derived classes.
+The first argument should be the particular implementation. 
+For this default implementation base on typeid(), this is the 
+value 1.  Each system must have its own integer.  This value
+is used to permit the inter-operability of different typeinfo
+systems.
+<p>
+The second argument is a const string which is the external
+name of the type to which this record corresponds.  
+It may sometimes be referred to as a GUID - a <b>G</b>lobal <b>U</b>nique <b>ID</b>entifier.
+It is passed through archives from one program invocation to
+another to uniquely identify the types that the archive contains.
+If the "export" facility is not going to be used, 
+this value may be NULL.
+</dd>
+
+<dt><h4><pre><code>
+void key_register();
+void key_unregister();
+</code></pre></h4></dt>
+<dd>
+This system maintains a global table which relates
+external strings to 
+<code style="white-space: normal">extended_type_info</code> records.
+This table is used when loading pointers to objects serialized
+through a base class pointer.  In this case, the archive 
+contains a string which is looked up in this table to
+determine which <code style="white-space: normal">extended_type_info</code>
+to use for creating a new object.
+<p>
+These functions are called by constructors and
+destructors of classes which implement 
+<code style="white-space: normal">extended_type_info</code>
+to add and remove entries from this table.
+</dd>
+
+<dt><h4><pre><code>
+const char *get_key() const;
+</code></pre></h4></dt>
+<dd>
+Retrieves the key for <code style="white-space: normal"><a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">extended_type_info</a></code>
+instance.  If no key has been associated with the instance, then a NULL is returned.
+</dd>
+
+<dt><h4><pre><code>
+bool operator<(const extended_type_info & rhs) const;
+bool operator==(const extended_type_info & rhs) const;
+bool operator!=(const extended_type_info & rhs) const;
+</code></pre></h4></dt>
+<dd>
+These functions are used to compare 'wo 
+<a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">
+<code style="white-space: normal">
+extended_type_info
+</code> 
+</a>
+objects. They impose a strict total ordering on all
+<code style="white-space: normal">extended_type_info</code> records.
+</dd>
+
+<dt><h4><pre><code>
+virtual void * construct(unsigned int count = 0, ...) const;
+</code></pre></h4></dt>
+<dd>
+Construct a new instance of the type to which this
+<a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">
+<code style="white-space: normal">
+extended_type_info
+</code>
+</a>
+record corresponds. This function takes variable list of up to 4 arguments
+of any type.  These arguments are passed to the type's constructor
+at runtime.  In order to use the facility, 
+one must declare a type sequence for the constructor arguments.  
+Arguments for this function must match in number and type
+with those specified when the type was exported.  
+This function permits one to create instances of
+any exported type given only the exported <strong>GUID</strong> assigned
+with BOOST_CLASS_EXPORT.  
+If these types are defined in DLLS or shared libraries.  When these modules
+are loaded at runtime, these constructor can be called until the module
+is unloaded.  These modules are referred to as <b>plugin</b>. 
+</code>
+</dd>
+
+<dt><h4><pre><code>
+virtual void destroy(void const * const p) const;
+</code></pre></h4></dt>
+<dd>
+Destroy an instance created by the above constructor.
+</dd>
+
+<dt><h4><pre><code>
+static const extended_type_info * find(const char *key);
+</code></pre></h4></dt>
+<dd>
+Given a character string key or <strong>GUID</strong>, return the address of a 
+corresponding <code style="white-space: normal"><a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">extended_type_info</a></code>
+object. 
+
+</dl>
+
+<h3><a name="requirements">Requirements for and Implementation</a></h3>
+In order to be used by the serialization library, an implementation of
+<code style="white-space: normal">extended_type_info</code>, 
+(referred to as ETI here), must be derived from 
+<a target="extended_type_info.hpp" href = "../../../boost/serialization/extended_type_info.hpp">
+<code style="white-space: normal">
+extended_type_info
+</code> 
+</a>
+and also implement the following:
+
+<dl>
+
+<dt><h4><code style="white-space: normal"><pre>
+template&lt;class ETI&gt;
+const extended_type_info *
+ETI::get_derived_extended_type_info(const T & t) const;
+</pre></code></h4></dt>
+<dd>
+Return a pointer to the 
+<code style="white-space: normal">extended_type_info</code>
+instance that corresponds to
+the "true type" of the type T.  The "true type" is the lowest type in the
+hierarchy of classes.  The type T can always be cast to the "true type" with
+a static cast.  Implemention of this function will vary among type id systems
+and sometimes will make presumptions about the type T than can be identified
+with a particular <code style="white-space: normal">extended_type_info</code> implementation.
+</dd>
+
+<dt><h4><code style="white-space: normal"><pre>
+virtual bool ETI::is_less_than(const extended_type_info &rhs) const;
+</pre></code></h4></dt>
+<dd>
+Compare this instance to another one using the same
+<code style="white-space: normal">extended_type_info</code> implementation.
+</dd>
+
+<dt><h4><code style="white-space: normal"><pre>
+virtual bool ETI::is_equal(const extended_type_info &rhs) const;
+</pre></code></h4></dt>
+<dd>
+Compare this instance to another one using the same
+<code style="white-space: normal">extended_type_info</code> implementation.
+Return <code style="white-space: normal">true</code> if the types referred
+to are the same.  Otherwise return 
+<code style="white-space: normal">false</code>
+</dd>
+
+<dt><h4><code style="white-space: normal"><pre>
+const char ETI::get_key() const;
+</pre></code></h4></dt>
+<dd>
+Retrieve the external key (aka GUID) for this class.
+</dd>
+
+<dt><h4><code style="white-space: normal"><pre>
+virtual void * construct(unsigned int count, ...) const;
+</pre></code></h4></dt>
+<dd>
+Construct an instance of the corresponding type
+with the include argument list.
+</dd>
+
+<dt><h4><code style="white-space: normal"><pre>
+virtual void * destroy(void const * const ptr ) ) const;
+</pre></code></h4></dt>
+<dd>
+Destroy an instance of this type. This calls the
+proper destructor and recovers allocated memory.
+</dd>
+
+</dl>
+
+<h3><a name="models">Models</a></h3>
+The serialization library includes two distinct
+<code style="white-space: normal"><a target="extended_type_info.hpp" href="../../../boost/serialization/extended_type_info.hpp">extended_type_info</a></code>
+implementatio's.
+<p>
+<code style="white-space: normal"><h4><a target="extended_type_info_typeid.hpp" href = "../../../boost/serialization/extended_type_info_typeid.hpp">
+extended_type_info_typeid</a></h4></code>is implemented in terms of the standard typeid(). It presumes that RTTI support is enabled
+by the compiler.
+<p>
+<code style="white-space: normal"><h4><a target="extended_type_info_no_rtti.hpp" href="../../../boost/serialization/extended_type_info_no_rtti.hpp">
+extended_type_info_no_rtti</a></h4></code>
+is implemented in a way that doesn't rely on the existence RTTI.
+Instead, it requires that all polymorphic types be explictly exported.
+In addition, if the export facility is to be used to serialize types
+through base class pointers, those types are required to implement
+a virtual function with the signature:
+
+<code><pre>
+virtual const char * get_key();
+</pre></code>
+which returns a unique string the most derived object this class.  
+This function must be virtual in order to implement the functionality required by
+<code style="white-space: normal">ETI::get_derived_extended_type_info</code>
+as described above.
+
+<h3><a name="example">Example</a></h3>
+The test program <code style="white-space: normal"><a target="test_no_rtti" href="../test/test_no_rtti.cpp">test_no_rtti</a></code>
+implements this function in terms of the <code style="white-space: normal"><a target="extended_type_info_no_rtti.hpp" href="../../../boost/serialization/extended_type_info_no_rtti.hpp">
+extended_type_info</a></code> API above to return the export key associated with the class.  
+This requires that non-abstract types be exported. It also demonstrates the
+inter-operability with between two different implementations of
+<code style="white-space: normal">extended_type_info</code>.
+
+<h3><a name="type_requirements">Requirements for Each Type</a></h3>
+Each type to be managed by the system must be
+"registered" individually. This is accomplished by instantiating
+templates.  For example, if the type T is to use the type_info system
+one would include the following code:
+
+<code style="white-space: normal"><pre>
+namespace boost {
+namespace serialization {
+template
+struct extended_type_info_typeid&gt;T&gt;;
+template
+struct extended_type_info_typeid&gt;const T&gt;;
+} // serialization
+} // boost
+</pre></code>
+
+For those using the serialization library, this step can be skipped
+as it is done automatically.  The serialization library includes
+the macro:
+
+<code style="white-space: normal"><pre>
+BOOST_CLASS_TYPE_INFO(
+    my_type, 
+    extended_type_info_typeid&gt;my_class&gt;
+)
+</pre></code>
+
+which is used to specify which <code>extended_type_info</code> system is to 
+be used for a given type.
+<p>
+<code>extended_type_info</code> includes a facility for constructing
+instances of types without knowing what the exact types are. This is done
+with the function 
+<code>
+virtual void * extended_type_info::construct(unsigned int count = 0, ...) const;
+</code>
+. For example:
+<br>
+<code><pre>
+struct base {
+...
+};
+struct derived : public base {
+...
+};
+...
+extended_type_info *eti = extended_type_info::find("my_class")
+base * b = eti->construct(...);
+</pre></code>
+<br>
+The <code>construct</code> takes an argument count and up to
+four parameters of any type.  The arguments are passed to the
+constructor of "my_class".
+
+
+A complete example of this can be found
+<a target="test_plugin.cpp" href="test_plugin.cpp">here</a>
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2005-2009. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/faq.html b/deal.II/contrib/boost/libs/serialization/doc/faq.html
new file mode 100644 (file)
index 0000000..5830b8f
--- /dev/null
@@ -0,0 +1,53 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <link rel="stylesheet" type="text/css" href="../../../boost.css">
+    <link rel="stylesheet" type="text/css" href="style.css">
+    <title>Serialization - Tips and Tricks</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+    <table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+        <tr>
+            <td valign="top" width="300">
+                <h3>
+                    <a href="../../../index.htm">
+                        <img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+            </td>
+            <td valign="top">
+                <h1 align="center">
+                    Serialization</h1>
+                <h2 align="center">
+                    Tips and Tricks</h2>
+            </td>
+        </tr>
+    </table>
+    <hr>
+This section will be used to list answers to questions raise in the mailing
+lists.  Most of these are due to subtle aspects of the library which are
+overlooked even though they might be described in the documenation.  Often,
+these issues are very easy to address - but can be excruciating difficult to
+find.  Should you have such an experience, feel free to vent your frustration
+in a constructive way by adding in your own item.  The best way to do this
+is to create a <a href="http://svn.boost.org/trac/boost/browser">"TRAK" item</a> 
+which includes the text you want to add to this list.
+
+    <ul>
+        <li><h4>
+        <a name="differences_1_37"></a>Differences from Boost 1.37</h2>
+        </h4></li>
+    </ul>
+    <hr>
+    <p>
+        <i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2009. 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) </i>
+    </p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/headers.html b/deal.II/contrib/boost/libs/serialization/doc/headers.html
new file mode 100644 (file)
index 0000000..057c326
--- /dev/null
@@ -0,0 +1,447 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Code Structure</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Code Structure</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+
+<dl class="page-index">
+  <dt><a href="#userincludes">Files Included by User Programs</a>
+  <dl class="page-index">
+    <dt><a href="#archiveimplementations">Archive Implementations</a>
+    <dt><a href="#serializationdeclarations">Serialization Declarations</a>
+    <dt><a href="#serializationimplementations">Serialization Implementations</a>
+  </dl>
+  <dt><a href="#libraryimplementation">Files Which Implement the Library</a>
+  <dl class="page-index">
+    <dt><a href="#archivedevelopment">Archive Development</a>
+    <dt><a href="#archiveinternals">Archive Internals</a>
+    <dt><a href="#codemodules">Archive Library Code Modules</a>
+    <dt><a href="#dataflowiterators">Dataflow Iterators</a>
+  </dl>
+</dl>
+
+This library includes a large number of files. The are organized and classified
+according to purpose listed in the above index. 
+<p>
+<code style="white-space: normal">namespace</code> of a classes and templates is syncronized
+with the directory in which the file is found.  For example, the class declaration
+<pre><code>
+boost::archive::text_oarchive
+</code></pre>
+is included with the following declaration
+<pre><code>
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+</code></pre>
+
+<a name="userincludes">
+<h3>Files Included by User Programs</h3>
+Using this library entails including headers listed in this section.
+It should not be necessary to explictly include any other header files.
+
+<a name="archiveimplementations">
+<h4>Archive Implementations</h4>
+These header files contain declarations used to save and restore data to each type
+of archive. Include the archives according to the facilities the code module requires.
+
+<dl>
+
+<dt><a target="archive_exception" href="../../../boost/archive/archive_exception.hpp">
+boost/archive/archive_exception.hpp
+</a>
+<dd>Exceptions which might be invoked by the library.</dd>
+
+<dt><a target="binary_iarchive" href="../../../boost/archive/binary_iarchive.hpp">
+boost/archive/binary_iarchive.hpp
+</a>
+<dd>native binary input archive used for loading.</dd>
+
+<dt><a target="binary_oarchive" href="../../../boost/archive/binary_oarchive.hpp">
+boost/archive/binary_oarchive.hpp
+</a>
+<dd>native binary output archive used for saving.</dd>
+
+<dt><a target="text_iarchive" href="../../../boost/archive/text_iarchive.hpp">
+boost/archive/text_iarchive.hpp
+</a>
+<dd>text input archive used for loading.</dd>
+
+<dt><a target="text_oarchive" href="../../../boost/archive/text_oarchive.hpp">
+boost/archive/text_oarchive.hpp
+</a>
+<dd>text output archive used for saving.</dd>
+
+<dt><a target="text_wiarchive" href="../../../boost/archive/text_wiarchive.hpp">
+boost/archive/text_wiarchive.hpp
+</a>
+<dd>wide character text input archive used forloading.</dd>
+
+<dt><a target="text_woarchive" href="../../../boost/archive/text_woarchive.hpp">
+boost/archive/text_woarchive.hpp
+</a>
+<dd>wide character text input archive used for saving.</dd>
+
+<dt><a target="xml_iarchive" href="../../../boost/archive/xml_iarchive.hpp">
+boost/archive/xml_iarchive.hpp
+</a>
+<dd>xml input archive used for loading.</dd>
+
+<dt><a target="text_oarchive" href="../../../boost/archive/xml_oarchive.hpp">
+boost/archive/xml_oarchive.hpp
+</a>
+<dd>xml output archive used for saving.</dd>
+
+<dt><a target="text_wiarchive" href="../../../boost/archive/xml_wiarchive.hpp">
+boost/archive/xml_wiarchive.hpp
+</a>
+<dd>wide character xml input archive used for loading.</dd>
+
+<dt><a target="text_woarchive" href="../../../boost/archive/xml_woarchive.hpp">
+boost/archive/xml_woarchive.hpp
+</a>
+<dd>wide character xml output archive used for saving.</dd>
+
+</dl>
+
+<a name="serializationdeclarations">
+<h4>Serialization Declarations</h4>
+To specify how a type is serialized, one codes templates for serialization functions.
+In the simplest cases, this does not require the inclusion of any header files for this purpose.
+In most cases one or more of the following header files will have to be included in order
+to complete or refine the description of the serializaition implementation for a given class.
+
+<dl>
+
+<dt><a target="base_object" href="../../../boost/serialization/base_object.hpp">
+boost/serialization/base_object.hpp
+</a>
+<dd>For serialization of base classes.</dd>
+
+<dt><a target="nvp" href="../../../boost/serialization/nvp.hpp">
+boost/serialization/nvp.hpp
+</a>
+<dd>To associate a name tag with a serializable object.  This is necessary to
+properly render an xml archive which includes the object name.</dd>
+
+<dt><a target="split_free" href="../../../boost/serialization/split_free.hpp">
+boost/serialization/split_free.hpp
+</a>
+<dd>To divide implementation of <em>non-intrusive</em> serialization into separate
+save and load functions.</dd>
+
+<dt><a target="split_member" href="../../../boost/serialization/split_member.hpp">
+boost/serialization/split_member.hpp
+</a>
+<dd>To divide implementation of <em>intrusive</em> serialization into separate
+save and load functions.</dd>
+
+<dt><a target="export" href="../../../boost/serialization/export.hpp">
+boost/serialization/export.hpp
+</a>
+<dd>For serialization of pointers to derived classes via key export.</dd>
+
+<dt><a target="assume_abstract" href="../../../boost/serialization/assume_abstract.hpp">
+boost/serialization/assume_abstract.hpp
+</a>
+<dd>This is just a thin wrapper which permits one to explicitly specify that a 
+particular type is an abstract base class.  It is necessary to use this
+for compilers which don't support the boost type traits implementation of
+is_abstact.
+</dd>
+
+</dl>
+
+This group will be required less frequently.  The are used to override aspects of
+the default implementation of the serialization process for specified types.
+
+<dl>
+
+<dt><a target="version" href="../../../boost/serialization/version.hpp">
+boost/serialization/version.hpp
+</a>
+<dd>To override the default version index (0) assigned to a class.</dd>
+
+<dt><a target="level" href="../../../boost/serialization/level.hpp">
+boost/serialization/level.hpp
+</a>
+<dd>To override the default implementaton level trait for a type.</dd>
+
+<dt><a target="tracking" href="../../../boost/serialization/tracking.hpp">
+boost/serialization/tracking.hpp
+</a>
+<dd>To override the default tracking trait for a type.</dd>
+
+<dt><a target="type_info_implementation" href="../../../boost/serialization/type_info_implementation.hpp">
+boost/serialization/type_info_implementation.hpp
+</a>
+<dd>By default, the library uses RTTI, to identify types at runtime. In some cases, E.G.
+such as a platform which doesn't implement RTTI, this header can be included to permit
+the override of the default runtime type identification system.</dd>
+
+</dl>
+
+<a name="serializationimplementations">
+<h4>Serialization Implementations</h4>
+This group of headers includes templates which implement serialization for Standard
+Library or Boost Library templates.  Any program which uses these templates can
+invoke serialization of objects of these types just by including the corresponding header.
+<p>
+By convention' these header files are named:
+
+boost/serialization/xxx.hpp
+
+where xxx is the name of the header file which contains the type to be serialized.
+For example, the declaration
+<pre><code>
+#include &lt;boost/serialization/list.hpp&gt;
+</code></pre>
+
+includes the code to implement serialization of the STL
+<code style="white-space: normal">std::list</code> type. While
+
+<pre><code>
+#include &lt;boost/serialization/shared_ptr.hpp&gt;
+</code></pre>
+
+includes code to implement serialization of the BOOST <code style="white-space: normal">boost::shared_ptr</code> type.
+
+Note that including the serialization header for a type automatically includes the 
+appropriate header of the type to be serialized.
+
+As of this writing, the library includes templates of all STL library templates as well
+as templates for <code style="white-space: normal">boost::optional</code>, 
+<code style="white-space: normal">boost::shared_ptr</code>, and 
+<code style="white-space: normal">boost::scoped_ptr</code>.  
+Presumably, this list will expand with the passage of time.
+
+<a name="libraryimplementation">
+<h3>Files Which Implement the Library</h3>
+
+<a name="archivedevelopment">
+<h4>Archive Development</h4>
+These header files contain declarations for basic types used to create
+concrete archive types that are made available to users above. Users wishing
+to make their own type of archive may want to examine these headers to
+see how the archives included with the libary have been constructed.
+
+<dl>
+
+<dt><a target="basic_archive" href="../../../boost/archive/basic_archive.hpp">
+boost/archive/basic_archive.hpp
+</a>
+</dt>
+<dd>
+This file includes declarations for certain types that have to be accounted
+for in all archive implementations.  The serialization system relies on 
+certain special types such as <code style="white-space: normal">class_id_type</code> and others to 
+record information in archives that is required to reconstruct the original
+data structure.  These are handled exactly as any other serializable type.
+That is, the can be handled as simple primitives such as they are in simple
+text files, or with special code as they are in xml archives.
+</dd>
+
+<dt><a target="basic_text_oprimitive" href="../../../boost/archive/basic_text_oprimitive.hpp">
+boost/archive/basic_text_oprimitive.hpp
+</a>
+<dt><a target="basic_text_iprimitive" href="../../../boost/archive/basic_text_iprimitive.hpp">
+boost/archive/basic_text_iprimitive.hpp
+</a>
+</dt>
+<dd>
+Implementation of serialization of primitive types in terms of an character
+or wide character text streams. This is used in the implementation of text and
+xml archives.  Presumably this would be useful for implementations of other variations
+of text archives such as user friendly text or windows ini files.
+</dd>
+
+<dt><a target="basic_binary_oprimitive" href="../../../boost/archive/basic_binary_oprimitive.hpp">
+boost/archive/basic_binary_oprimitive.hpp
+</a>
+<dt><a target="basic_binary_iprimitive" href="../../../boost/archive/basic_binary_iprimitive.hpp">
+boost/archive/basic_binary_iprimitive.hpp
+</a>
+</dt>
+<dd>
+Implementation of serialization of primitive types in terms of an character
+or wide character binary streams. 
+</dd>
+
+<dt><a target="basic_binary_oarchive" href="../../../boost/archive/basic_binary_oarchive.hpp">
+boost/archive/basic_binary_oarchive.hpp
+</a>
+<dt><a target="basic_binary_iarchive" href="../../../boost/archive/basic_binary_iarchive.hpp">
+boost/archive/basic_binary_iarchive.hpp
+</a>
+<dd>
+Implementation of serialization of all types in terms of an character
+or wide character binary streams.  This is factored out separately from the
+implementation of binary primitives above.  This may facilitate the creation of
+other types of binary archives in the future. It also preserves analogy and symetry with
+the rest of the library which aids in understanding.
+</dd>
+<dt><a target="basic_text_oarchive" href="../../../boost/archive/basic_text_oarchive.hpp">
+boost/archive/basic_text_oarchive.hpp
+</a>
+<dt><a target="basic_te't_iarchive" href="../../../boost/archive/basic_text_iarchive.hpp">
+boost/archive/basic_text_iarchive.hpp
+</a>
+</dt>
+<dt><a target="basic_xml_oarchive" href="../../../boost/archive/basic_xml_oarchive.hpp">
+boost/archive/basic_xml_oarchive.hpp
+</a>
+<dt><a target="basic_xml_iarchive" href="../../../boost/archive/basic_xml_iarchive.hpp">
+boost/archive/basic_xml_iarchive.hpp
+</a>
+</dt>
+<dd>
+Implementation of serialization of all types in terms of an character
+or wide character text streams. These classes specify archive type specific
+behavior on a type by type basis.  For example, <code style="white-space: normal">basic_xml_oarchive.hpp</code>
+includes code to guarentee that any object not attached to a name will 
+trap during compile time. On the other hand, <code style="white-space: normal">basic_text_oarchive.hpp</code>
+contains code to strip out and ingore any names attached to objects.
+<p>
+<dt><a target="common_iarchive" href="../../../boost/archive/detail/common_iarchive.hpp">
+boost/archive/detail/common_iarchive.hpp
+</a>
+<dt><a target="common_oarchive" href="../../../boost/archive/detail/common_oarchive.hpp">
+boost/archive/detail/common_oarchive.hpp
+</a>
+<dd>
+All archive implementations are derived from these header files.  They provide
+the interface to the internal implementation details of the library.
+</dd>
+
+</dl>
+
+<a name="archiveinternals">
+<h4>Archive Internals</h4>
+The interface (see <a target="detail" href="archives.html">Archive Concepts</a>) 
+and implementation are factored out into separate classes to minimize code duplication.
+
+These files are found in the directory
+<a target="boost_archive_detail" href="../../../boost/archive/detail">boost/archive/detail</a>.  
+These are included as necessary by the archive class implemenations listed above.
+This has the unfortunate side effect of making the implementation less transparent.
+of the library in order to implement either a class serialization or a new
+archive type. Users should never find it necessary to change these files.
+<p>
+The following discussion is based on the
+<a target="class_diagram" href="class_diagram.html">class diagram</a>.
+<p>
+<dt><a target="interface_iarchive" href="../../../boost/archive/detail/interface_iarchive.hpp">
+boost/archive/detail/interface_iarchive.hpp</a>
+<dt><a target="interface_iarchive" href="../../../boost/archive/detail/interface_iarchive.hpp">
+boost/archive/detail/interface_iarchive.hpp</a>
+<dd>
+Here are the declarations and definitions which for the 
+<a href="archives.html">archive_concept</a>. This class redirects calls to the 
+archive interface to a function named <code>save_override</code> in the most derived
+archive class. 
+</dd>
+<code>save_override</code> is declared and implemented in each class in
+the archive hierarchy.
+
+<pre><code>
+template<class T>
+void save_override(T & t, BOOST_PFTO int){
+    // All for otherwise unhandled types are forwarded to the base class.
+    // This emulates behavior for function overloading.
+    this->base::save_override(t, 0);
+}
+void save_override(const some_type & t, int){
+    // any special handling for some type
+    // this will usually entail forwarding some other operation
+    // in the most derived class.
+    this->This()->...
+    // or in one of its parents basic_text_oprimitive
+    this->This()->save(static_cast&lt;int&gt;(t));
+}
+... // other special type handling
+</code></pre>
+
+Note the usage of
+<a target="detail" href="implementation.html#functiontemplateordering">Partial Function Template Ordering</a>
+to permit the correct save implementation to be selected.  
+</dd>
+
+<a name="codemodules">
+<h4>Archive Library Code Modules</h4>
+Parts of the library are implemented as library code. All of this code is to be found in
+<a target="src" href="../../../libs/serialization/src">libs/serialization/src</a>. 
+in the form of *.cpp.  The directory
+<a target="src" href="../../../boost/archive/impl">boost/archive/impl</a>
+contains *.ipp files which implement templates. These templates are instantiated
+only by archive implementation so are generally not included in user code modules.
+<p>
+The trade offs related to library implementation via pre-compiled code and templated
+headers are well known.  This library uses both.  It uses templated headers
+to generate code to serialize user and primitive types and it uses pre-compiled
+library code for that part of the code which only depends upon the archive type.
+Building of the library generates and compiles code for all archives implemented.
+
+<ul>
+  <li>Serialization of user and primitive types runs a top speed. This is a noticiable
+  difference with a previous version of the library which did not use templates for archives.
+  <li>Library implementation code that never changes need only be compiled once
+  rather than each time a user's program is recompiled.  This can save much
+  development time.
+  <li>Headers which solely related to implementation need only be included
+  in the library code modules. This prevents a user program from accidently 
+  depending on an implementation feature of the serialization library.
+  <li>In building the library I came to the conclusions that there can arise
+  situations regarding static code/data instantiation that could not be 
+  satisfactorily addressed without a code module.  Unfortunately, I've forgotten
+  the circumstances which led me to this conclusion.
+</ul>  
+An example of this is the usage of the spirit library in the library.
+It takes a long time to compile and includes lots of other files. Having this
+only in the library is much more convenient that having to include in every
+program which uses xml serialization.
+
+<a name="dataflowiterators">
+<h4>Dataflow Iterators</h4>
+In the course of developing this library, it became convenient to make a set
+of composable iterator adaptors for handling archive text.  Applications include
+escaping and unescaping xml text, implementi'g to/from base64 conversion among
+others.
+<p>
+This is a ripe topic in itself. Its touched upon by the 
+<a href="../../../libs/iterator/doc/index.html">boost iterator</a> libraries, 
+<a href="http://www.zib.de/weiser/vtl/index.html">View Template Library</a>, and others. 
+<p>
+The code for these iterators is really independent of this library.  But since it
+hasn't been and probably won't be reviewed outside of this context. I've left in a directory 
+local to the serialization library:
+<a target="archiveiterators" href="../../../boost/archive/iterators">boost/archive/iterators</a>.
+These iterators are described in 
+<a href="dataflow.html">Dataflow Iterators</a>.
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/history.html b/deal.II/contrib/boost/libs/serialization/doc/history.html
new file mode 100644 (file)
index 0000000..bf3662f
--- /dev/null
@@ -0,0 +1,141 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - History</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">History</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<ol>
+  <li>26 Feb 2002 initial version uploaded to boost
+  <li>27 Feb 2002
+    <ul>
+      <li>divide interface from implementation for class 
+          serialization to permit compiliation on gcc
+      <li>improved template instantanciation for type templates
+    </ul>
+  <li>18 Mar 2002 - draft #2 uploaded to boost
+    <ul>
+      <li>elminated locale effects on archives
+      <li>added signature and library version to archive header
+      <li>improved detection of errors when objects are serializationed 
+          as pointers and subsequently serializationed as objects
+      <li>permit non-portable binary archives
+      <li>implement work around for systems such as MSVC 6.0 that
+          don'tsupport partial ordering
+    </ul>
+  <li>16 May 2002 - draft #3 uploaded to boost
+    <ul>
+      <li>Ability to specify serialization of other templates in a
+          non-intrusive way.
+      <li>Included and example which uses boost::shared_ptr.
+      <li>improved documentation
+      <li>More test cases
+      <li>More testing and documentation of obscure situtations
+      <li>Better code organization for transparency
+      <li>Wide character support implemented and tested with unicode.
+    </ul>
+  <li>28 Jun 2002 - #4 library submission
+    <ul>
+      <li>minor corrections
+      <li>replaced erroneous shared_ptr example with std::auto_ptr example
+      <li>prevention of memory leaks when exceptions are invoked
+    </ul>
+  <li>30 Aug 2002 - #5 library submission
+    <ul>
+      <li>minor corrections
+      <li>Additions to documentation to explicitly address issues of
+          exception safety.
+      <li>More test cases/demos to illustrate handlling of the above issues.
+      <li>Additions to documentation to include rationale for not depending
+          on type_id
+      <li>Implementation of serialization of boost::shared_ptr.
+          This is included as a demo as it depends upon a minor alteration
+          of boost::shared_count.
+    </ul>
+  <li>08 Nov 2002   - #6 library submission
+    <ul>
+      <li>minor corrections
+      <li>corrected error which manifested itself when serializing
+          polymorphic pointers to obects derived from multiple
+          base classes
+      <li>minor adjustments to support plug-ins via virtual
+          save/load/version functions
+      <li>test cases to support the above
+    </ul>
+  <li>08 September 2003- version # 12 library submission
+    <ul>
+      <li>attempts to address all issues raised during the November 2002 review
+    </ul>
+  <li>November 2003 - draft #13 uploaded
+    <ul>
+      <li>corrections, enhancements, change in api for pointer overload
+    </ul>
+  <li>28 December 2003
+    <ul>
+       <li>implementation of save/loadbinary
+       <li>enhancements included archives to permit derivation
+    </ul>
+  <li>1 March 2004 - draft # 17 upload
+    <ul>
+       <li>portability to intel 8.0, and VC 6.0
+       <li>Alter archive implementation to permit derivation.  Make tests.
+       <li>Implement serialize/save/load binary for text and XML archives
+       using <code>base64</code> character encoding.
+       <li>Added documentation and test for serialization of large binary objects.
+       <li>Added "Derivation from an Existing Archive Class" to documentation along
+       with example program.
+       <li>Added PIMPL example
+       <li>certain special situations are now detected and addressed at
+       compile time to generate all in-line code.  For example, for types
+       serialized without class information, and without memory tracking,
+       the serialization process can be reduced to a minimal amount of inline
+       code.
+       <li>All tests have been run in release as well as debug mode
+       <li>Many improvements in code and documentation to improve accuracy and completeness.
+    </ul>
+  <li>11 April 2004 - draft # 18 upload
+    <ul>
+       <li>Reorganization of header and template files.
+       <li>Enhanced documentation to help explain implementation issues.
+       <li>Adjustments to improve support for less conformant compilers.
+       <li>A few bug fixes.
+    </ul>
+  <li>31 May 2004 - draft # 20 upload
+    <ul>
+       <li>Polymorphic archives.
+       <li>A few bug fixes.
+    </ul>
+  <li>1 November 2004 - final changes for first boost official release 1.32 .
+    <ul>
+       <li>Adjustments to address make package compatible with two-phase lookup.
+       <li>Many small adjustments to accomdate quirks of various compilers.
+       <li>A few bug fixes.
+    </ul>
+</ol>
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/implementation.html b/deal.II/contrib/boost/libs/serialization/doc/implementation.html
new file mode 100644 (file)
index 0000000..b1e20c3
--- /dev/null
@@ -0,0 +1,443 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Implementation Notes</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Implementation Notes</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#functiontemplateordering">Partial Function Template Ordering</a>
+  <dt><a href="#charencoding">Character Encoding</a>
+  <dt><a href="#tempatesyntax">Template Invocation syntax</a>
+  <dt><a href="#partialtemplatespecialization">Partial Template Specialization</a>
+  <dt><a href="#othercompilerissues">Specific Compiler/Library Issues</a>
+  <dl class="page-index">
+    <dt><a href="#gcc3x">GCC 3.X, 4.X</a>
+    <dt><a href="#gcc295">GCC 2.95</a>
+    <dt><a href="#intel80">Intel 8.0</a>
+    <dt><a href="#vc80">Visual C++ 8.0</a>
+    <dt><a href="#vc71">Visual C++ 7.1</a>
+    <dt><a href="#vc70">Visual C++ 7.0</a>
+    <dt><a href="#vc6">Visual C++ 6.0</a>
+    <dt><a href="#borland">Borland 5.64 and 5.51</a>
+    <dt><a href="#comeau">Comeau 4.3.3</a>
+    <dt><a href="#codewarrior9">Code Warrior 9.x</a>
+    <dt><a href="#codewarrior">Code Warrior 8.3</a>
+    <dt><a href="#tru64">TRU64</a>
+    <dt><a href="#dinkumware">Dinkumware Library</a>
+    <dt><a href="#stlport">STLPort 4.5.3</a>
+  </dl>
+</dl>
+
+<h3><a name="functiontemplateordering">Partial Function Template Ordering</a></h3>
+Not all C++ compilers correctly support partial function template ordering (PFTO).
+For these compilers, the following code will fail to compile:
+<pre><code>
+template&lt;class Archive, class T&gt;
+void serialize(
+    Archive & ar, 
+    T & t, 
+    const unsigned int file_version
+){
+    ...
+}
+
+template&lt;class Archive, class T&gt;
+void serialize(
+    Archive & ar, 
+    my_template&lt;T&gt & t, 
+    const unsigned int file_version
+){
+    ...
+}
+</pre></code>
+The serialization library works around this issue by using a different
+default definition of the first template:
+<pre><code>
+template&lt;class Archive, class T&gt;
+void serialize(
+    Archive & ar, 
+    T & t, 
+    const unsigned long int file_version  // Note: change to long
+){
+    ...
+}
+</pre></code>
+Now, the second template is not matched with the first one so there
+is no PFTO and no compile error.  When the serialization library invokes
+<pre><code>
+serialize(ar, t, 0);
+</pre></code>
+the function declaration is first matched against templates with
+an integer for the third argument.  If there is a match, the matching
+template is instantiated and later invoked.  If there is no match,
+an attempt is made to match other templates by converting arguments to other types.
+In this case the third argument can be converted to long to match
+the first template - which is the default.  So in this case, the first
+template will be instantiated and later invoked.  We have managed to
+use function overloading to achieve the same effect as PFTO
+were it correctly implemented.
+<p>
+This depends upon undefined behavior of a compiler already
+determined to be non-conforming.  In other words, there is no 
+guarantee that this will work on all compilers.  If a compiler does not
+correctly support PFTO and this method cannot be used to workaround
+it, non-intrusive serialization cannot be supported for that compiler.
+As of this writing, such a compiler has not been encountered.
+<p>
+It turns out that using this "trick" can create problems with
+compilers that DO correctly support PFTO.  For this reason we
+define a macro <code style="white-space: normal">BOOST_PTFO</code> which 
+is defined to be <code style="white-space: normal">long</code>
+for non-conforming compilers and nothing for conforming ones. So
+the default definition is really:
+The serialization library works around this issue by using a different
+default definition of the first template:
+<pre><code>
+template&lt;class Archive, class T&gt;
+void serialize(
+    Archive & ar, 
+    T & t, 
+    const unsigned BOOST_PFTO int file_version  // Note: change to BOOST_PFTO
+){
+    ...
+}
+</pre></code>
+
+<h3><a name="charencoding">Character Encoding</a></h3>
+The whole question of character encoding combined with wide characters
+is much more complicated than it would seem to be. The current library
+defines in 3 formats (text, binary, and XML), wide and narrow characters, 
+an attempts to be portable between compiler libraries.  The results of 
+a rather long consideration of all these factors has been to set
+default encoding according to the following rules.
+<ul>
+  <li>All text archives (i.e. <code style="white-space: normal">text_?archive</code>) will produce
+      text output in the current stream <code style="white-space: normal">locale</code>.  Generally this will
+      produce no changes in string data.
+  <li>To produce binary output with Microsoft compilers, the stream
+      will have to be opened with mode <code style="white-space: normal">ios::binary</code>.
+      Failure to do so will result in 0x0d characters (carriage-return)
+      characters being removed from the input stream if they are followed
+      by a 0x0a character (line-feed).  This could corrupt the input
+      and make the file unreadable.  On UNIX systems the <code style="white-space: normal">ios::binary</code>
+      is not required and is ignored if used.
+  <li>character XML archives (i.e. xml_oarchive) will produce XML output
+      with characters encoded according to the current stream <code style="white-space: normal">locale</code>.
+  <li>wide character XML archives (i.e. xml_woarchive) will produce
+      files encoded in UTF-8.
+</ul>
+This character encoding is implemented by changing the <code style="white-space: normal">locale</code> of the
+i/o stream used by an archive when the archive is constructed, the stream
+local is changed back to its original value. This action can be overridden 
+by specifying <code style="white-space: normal">boost::archive::no_codecvt</code>
+when the archive is opened.  In this case, the stream <code style="white-space: normal">locale</code> will
+not be changed by the serialization library.
+<p>
+Note that the code conversion included for wide character text and XML
+archives could alter <code style="white-space: normal">std::string</code> data stored in archives.
+Suppose a normal (multi-byte) character string
+is written to a wide character stream.  Our system uses the current <code style="white-space: normal">locale</code>
+to translate it to a wide character string before writing it out.  
+Upon reading, it is translated back to a (multi-byte)string. 
+If the <code style="white-space: normal">locale</code> on the platform that reads the archive is different than 
+the <code style="white-space: normal">locale</code> on the platform that wrote the stream, the actual string data
+may be altered by the serialization process. To avoid this, either
+avoid usage of <code style="white-space: normal">locale</code> dependent multi-byte strings or be sure that
+the <code style="white-space: normal">locale</code> is set correctly before reading the archive.
+<p>
+To produce wide character text output (i.e. 16 bit characters on Win32 systems),
+do the following.
+<ul>
+  <li>Open a wide character stream.
+  <li>Alter the stream <code style="white-space: normal">locale</code> to use 
+     <code style="white-space: normal">boost::archive::codecvt_null&lt;OStream::char_type&gt;</code>
+  <li>Create the archive with the flag <code style="white-space: normal">no_codecvt</code>.
+</ul>
+Naturally, the input process has to be symmetrical.
+<h3><a name="partialtemplatespecialization">Partial Template Specialization</a></h3>
+Compilers which fail to support partial template specialization will fail to compile
+the following code.  To make this compiler, the <code style="white-space: normal">const</code> has to be removed.
+<pre><code>
+void f(A const* a, text_oarchive& oa)
+{
+  oa << a;
+}
+</code></pre>
+<h3><a name="tempatesyntax">Template Invocation syntax</a></h3>
+Some compilers may not recognize the syntax:
+<pre><code>
+ar.template register_type&lt;T&gt;();
+</code></pre>
+for "registering" derived pointers of polymorphic classes.  The actual 
+function prototype is:
+<pre><code>
+template&lt;T&gt;
+void register_type(T * t = NULL);
+</code></pre>
+so that one may write <code style="white-space: normal">ar.register_type(static_cast&lt;T *&gt;(NULL))</code> instead of
+the syntax described above.
+</ul>
+<h3><a name="othercompilerissues">Specific Compiler/Library Issues</a></h3>
+
+<h4><a name="gcc3x">GCC 3.X, 4.X</a></h4>
+<ul>
+    <li>GCC versions for Cygwin and MinGW fail to support wide character I/O.  
+    So all tests using wide char I/O fail.  Note that if wide character I/O support
+    is added with STLPort, all tests complete successfully.
+    <li>This compiler generates long warning messages related to the usage of
+    non virtual destructors in polymorphic classes.  These warnings have been
+    carefully considered and the code that generates these warning has been 
+    unchanged.  In this case the warning should should be ignored as in certain
+    usages of the library, making the destructors virtual could lead to problems.
+    As an alternative, base class destructors have been made "protected" to
+    address the concerns that motivate these warning messages.  When building
+    the serialization library and tests with bjam, these warnings are suppressed. 
+    When building one's own applications, these warnings can be suppressed by
+    adding the following to the compiler command line:
+    <pre><code>
+    -Wno-non-virtual-dtor
+    -Wno-ctor-dtor-privacy
+    </code></pre>
+</ul>
+<h4><a name="gcc295">GCC 2.95</a></h4>
+All of the above plus:<br>
+<ul>
+    <li>The serialization library depends on the templated stream 
+    implementation to function properly.
+    to function properly.  So STLPort must be used to build the library.
+    <li>Polymorphic archive tests fail.
+    <li>XML serialization only works with version 1.6x of spirit. In order to build 
+    and use this library with this compiler, one must use version 1.6x rather than the 
+    latest version shipped with boost. See <a href="release.html">Release Notes</a>. 
+</ul>
+<h4><a name="intel80">Intel C++ 8.0</a></h4>
+No known issues. All tests compile and run in debug and release modes.
+
+<h4><a name="vc80">Visual C++ 8.0</a></h4>
+This compiler emits warnings for calls to functions from the standard
+library which are deemed security risks.  The serialization depends upon
+making some of these calls so programs which use the serialization library
+will get warning messages.  These messages can be suppressed from the command 
+line by including the following switch:
+    <pre><code>
+    /wd4996
+    </code></pre>
+
+<h4><a name="vc71">Visual C++ 7.1</a></h4>
+Derivation from an archive class defined in a DLL as described in ... will not work.
+This is due to the way that VC++ handles templated code with __decl(dllexport) and
+__decl(dllimport) specifications.  Basically, this compiler requires that all the
+instantiations have the same specification - even though they have different
+template arguments. The example <code style="white-space: normal">
+demo_portable_iarchive.cpp</code> would have to reformulated as a library or dll
+similar to the pre-defined archives in order to function.
+<p>
+This compiler does not have RTTI or exception handling turned on by default.  Although
+they are not strictly necessary to use the serialization package, the example and test
+program presume that they are enabled.  So be sure your command line or IDE settings 
+enable these features if you want to build and run these programs.
+<p>
+This compiler can treat <code style="white-space: normal">wchar_t</code> as either
+a short integer or an intrinsic type.
+If <code style="white-space: normal">/Zc:wchar_t</code> is specified on the
+compile command line, <code style="white-space: normal">wchar_t</code> will be 
+considered an intrinsic type - otherwise
+it will be treated as a synonym for a 16 bit integer.  The library can be used
+either way - <strong>BUT</strong> - both the libray <strong>AND</strong> the application 
+must be  compiled with the same switch settings.  Note that <code style="white-space: normal">BJAM</code>
+includes this switch by default.  So if want to use the libraries that
+<code style="white-space: normal">BJAM</code> builds, you should include this switch
+when you compile your own applications.
+<h5>Using the Visual C++ IDE</h5>
+The library includes a VC++ 7.1 "Solution" - <code style="white-space: normal">BoostSerializationLibrary</code>
+along with of a set of project files - one for each demo and test. Consider the following if you
+decided to use these configurations.
+<ul>
+    <li>The projects assume that the tests have been built with bjam using the default
+    locations.  This will result in a <code style="white-space: normal">bin</code> subdirectory
+    within one's main boost directory.  Below this there is a whole structure which maintains 
+    object and library files according to the type of build.  The easiest way to build this is to
+    invoke the runtest script which uses bjam. (see below)  If the libraries are not in these locations,
+    the projects will have to be modified accordingly.
+    <li>There are project configurations for all the combinations of build variants that boost
+    supports. That is for release, debug, static, static multi-threading, etc..
+    <li>If you want to use/debug the DLL versions of libraries and corresponding tests, alter
+    the project file to define <code style="white-space: normal">BOOST_ALL_DYN_LINK=1</code>.
+    Note that for the executables to run, the <code style="white-space: normal">PATH</code>
+    environmental variable will have to include the directories that contain the DLL versions of
+    the boost libraries.
+    <li>If you have difficulties building your own projects and linking with the boost libraries, 
+    compare the project settings of your own projects with the ones here.  VC sometimes requires
+    consistent settings between projects and the libraries they use in order to link properly.
+    In particular, check support for exceptions, runtime typing(RTTI), and intrinsic support for
+    wide characters.  The standard version of this library presumes that these facilities are
+    enabled.  Projects generated by the IDE wizard do not have these features enabled by default.
+    <li>Frequently when trying to build a project or view project properties, one is presented with
+    a message box with the message "unspecified error".  This seems to occur when one changes the
+    build configuration selection.  It turns out this can be "fixed" by going to the "Build" 
+    menu item, selecting "Configuration Manager" and selecting a build configuration for the project
+    you're working with.
+    <li>To test that boost libraries are built correctly, one can build and test them the way we do.
+    This entails:
+    <ol>
+        <li>downloading a copy of bjam.exe
+        <li>building process_jam_log
+        <li>building compiler_status
+       <li>invoking runtest.bat
+    </ol>
+    This will build the serialization library and run the tests on your system. If there are more than a
+    a couple of test failures, you likely won't be able to get your own projects working.  If most of the
+    tests pass, you can be confident that your own projects will work once you get your project settings
+    in sync with those included here.
+</ul>
+
+<h4><a name="vc70">Visual C++ 7.0</a></h4>
+<ul>
+    <li>The "pimpl" demo fails to link.  Cause and workaround for this is unknown
+    <li>XML serialization only works with version 1.6x of spirit.  In order to build and use this
+    library with this compiler, one must use version 1.6x rather than the latest version
+    shipped with boost.  See <a href="release.html">Release Notes</a>.
+    <li>This compiler does not support partial template specialization.  
+    The implementation of the new <code>shared_ptr</code> serialization depends upon
+    compiler support for partial template specialization.  This compiler doesn't implement this
+    feature. In order to serialize <code style="white-space: normal">shared_ptr&lt;A&gt;</code>,
+    invoke the macro <code style="white-space: normal">BOOST_SERIALIZATION_SHARED_PTR(A)</code>
+    in the header code.
+    <li>Lack of support for partial template specialization also creates problems for
+    serialization of <code style="white-space: normal">std::map</code>.  In order to serialize
+    instances of this type include the invocation of BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION
+    for the key type of the map.
+</ul>
+<h4><a name="vc6">Visual C++ 6.5</a></h4>
+all the above issues for Visual C++ 7.0 plus:
+<ul>
+    <li>Out of line template definitions are not recognized and fail with a confusing
+    error message.  To function save/load/serialize member function templates must be defined
+    within the class definition.  This feature is essential to <code style="white-space: normal">demo_pimpl</code>. Hence,
+    this program will fail to compile.  In this case the problem can't be worked around and
+    still demonstrate this facility.
+    <li>This compiler does not support <code style="white-space: normal">wchar_t</code> as a separate type.  It defines
+    <code style="white-space: normal">wchar_t</code> as an alias for <code style="white-space: normal">short int</code>.  In general things will still
+    function.  However certain customization, such as overloading archive operators for
+    saving/loading wide character arrays would produce surprises in this environment.
+    <li>Under certain circumstances, a program will fail to link with the message:
+    LIN1179 - "invalid or corrupt file: duplicate comdat".  According
+    to <a href="http://groups.google.com/groups?th=8a05c82c4ffee280">
+    http://groups.google.com/groups?th=8a05c82c4ffee280
+    </a> (look for P78)
+    A LNK1179 error occurs when:
+    <ul>
+        <li>The template class takes at least two arguments.
+        <li>The template is used at least two times with identical first
+        and different second arguments.
+        <li>The static member variable is of an object type with at least one
+        base class. (In another scenario it also occurred using a member
+        without a base class.)
+    </ul>
+    Working around this in the implementation of the library for this compiler
+    entailed a ridiculous amount of effort.  Even so, the effort wasn't entirely successful.
+    With this compiler, this message will still appear under the following conditions:
+    <ul>
+        <li>When serializing a class with multiple base classes.  This problem causes two 
+        failure in the test suite.  I have been unable to devise a way to work around this.
+        <li>Using more than one kind of archive in the same code module. This should be easy 
+        to work around in practice.
+    </ul>
+    <li>Code modules exceeding some undetermined size that use the library will fail with
+    <i>fatal error C1204: compiler limit : internal structure overflow</i>.  This can be addressed
+    by dividing the module into smaller ones.
+</ul>
+<h4><a name="borland">Borland 5.64 and 5.51</a></h4>
+<ul>
+    <li><code style="white-space: normal">enum</code> data members cannot be serialized.
+    Conversion to/from integers will work around the problem.
+    <li>If class serialize functions are not accessible either by making them public or by
+    including <code style="white-space: normal">friend</code> declarations as described in 
+    <a href="serialization.html#member">Class Serialization - Member Function</a>, the
+    will compile but fail at runtime.
+    <li>Tests using custom extended type which doesn't use RTTI fails. (5.64 only !).
+    <li>Tests built in release mode fail. This seems to be an issue with the boost test system
+    with this compiler.
+    <li>XML serialization only works with version 1.6x of spirit. In order to build 
+    and use this library with this compiler, one must use version 1.6x rather than the 
+    latest version shipped with boost. See <a href="release.html">Release Notes</a>. 
+</ul>
+<h4><a name="comeau">Comeau 4.3.3</a></h4>
+<ul>
+    <li>This compiler fails to make a DLL with export under windows.
+    <li>The associated library - libcomo fails when using a codecvt facet.
+    This generates a failure with all wide character archives.
+    <li>the test_set fails by going into an infinite memory leak.
+</ul>
+
+<h4><a name="codewarrior9">Code Warrior 9.x</a></h4>
+<ul>
+    <li>Some tests and demos demos fail - still under investigation
+</ul>
+
+<h4><a name="codewarrior">Code Warrior 8.3</a></h4>
+all the above issues for Code Warrior 9.x plus:
+<ul>
+    <li>This compiler only supports templated streams with the static library version.
+    <li>The above inhibits the build of DLL versions of the library.
+    <li>Some demos fail - still under investigation
+</ul>
+
+<h4><a name="tru64">TRU64</a></h4>
+All tests and demos pass except for test_variant.  Boost Variant doesn't function
+wih this compiler
+
+<h4><a name="dinkumware">Dinkumware Library</a></h4>
+Several compilers, including Visual C++ 6.0, use an older dinkumware library.  
+These platforms have several issues: 
+<ul>
+    <li>The dinkumware library shipped with this compiler does not change the locale facet
+    of an i/o stream unless the <code style="white-space: normal">imbue</code> function is called before the the
+    stream is opened.  In order to use this library with this environment to generate UTF-8
+    files, one cannot depend on the "automatic" setting of locale that archives implement. The
+    stream locale must be set explicitly on the stream before an archive is opened on it.  The
+    archive should be opened with the <code style="white-space: normal">no_codecvt</code> flag.  Note this problem will
+    occur on all compilers shipped with this library.
+    <li>Other issues have been worked around in the file.
+    <a href="../../../boost/archive/dinkumware.hpp" target="dinkumware_hpp">dinkumware.hpp</a>
+</ul>
+
+<h4><a name="stlport">STLPort 4.5.3</a></h4>
+<ul>
+    <li>when built to use dynamic linking versions of C++ runtime code (<runtime-link>dynamic)
+    all tests fail to link.  This is due to a missing symbol in the stlport library related
+    to custom codecvt facets.
+    <li>the test_set fails to run correctly. It seems the hashed set iterator doesn't
+    implement the ++ operator correctly.  This causes the test to fail by consuming all available
+    memory.  Given this, this test is commented out.
+</ul>
+
+<hr>
+<p>Revised 1 November, 2004 
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/index.html b/deal.II/contrib/boost/libs/serialization/doc/index.html
new file mode 100644 (file)
index 0000000..38dc342
--- /dev/null
@@ -0,0 +1,19 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+   "http://www.w3.org/TR/html4/frameset.dtd"><html>
+<head>
+<!--
+Revised 1 November, 2004 
+&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+-->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<title>Serialization</title>
+</head>
+<frameset cols="30%, 70%">
+  <frame name="contents" src="contents.html" scrolling = "yes">
+  <frame name="detail" src="overview.html" scrolling = "yes">
+  <noframes><a href="overview.html"</a></noframes>
+</frameset>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/minus.gif b/deal.II/contrib/boost/libs/serialization/doc/minus.gif
new file mode 100644 (file)
index 0000000..fe9830a
Binary files /dev/null and b/deal.II/contrib/boost/libs/serialization/doc/minus.gif differ
diff --git a/deal.II/contrib/boost/libs/serialization/doc/new_case_studies.html b/deal.II/contrib/boost/libs/serialization/doc/new_case_studies.html
new file mode 100644 (file)
index 0000000..5ad9d4f
--- /dev/null
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Proposed Case Studies</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Proposed Case Studies</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="index">
+  <dt><a href="#functionobject">Serializing a Function Object</a></dt>
+  <dt><a href="#archiveadaptor">Archive Adaptors</a></dt>
+  <dt><a href="#archivehelper">Archive Helpers</a></dt>
+</dl>
+
+These are not part of the library itself, but rather
+techiques on how to use the library to address specific situations.
+
+<h2><a name="functionobject"></a>Serializing a Function Object</h2>
+An example on how to serialize a function object.  I believe this
+could be done by serializing pointer to the object in question.  Since
+the Serialization library resurrects pointer of the correct type
+this should be easily implementable.
+<p>
+If a group of function objects were all derived from the
+same polymorphic base class - perhaps via multiple inheritance,
+the the function object effectively becomes a "variable" which
+encapsulates code.
+<p>
+This case study would show how to do this.
+
+<h2><a name="archiveadaptor"></a>Archive Adaptors</h2>
+
+Often users want to add their own special functionality to an
+existing archive.  Examples of this are performance enhancements
+for specific types, Adjustment of output syntax for xml archives,
+and logging/debug output as archives are written and/or read.
+If this functionalty is implemented as an "adaptor" template
+which takes the base class as a template argument, such functionality
+appended to any archive for which that funtionality makes sense.
+For example, an adaptor for generating an xml schema could be
+appended to both wide narrow character versions of xml archives.
+<p>
+This case study would show how to make a useful archive adaptor.
+
+<h2><a name="archivehelper"></a>Archive Helpers</h2>
+Some types are not serializable as they stand.  That is - they
+do not fullfill the requirements of the "Serializable Concept".
+The iconic example of this is boost::shared_ptr.  Sometimes
+these types could be made serializable by adding code inside
+the library.  Of course, doing that would create a lifetime
+of unpaid employment for the library author. Rather than
+adding a bunch of special code to the library itself, this
+code can packaged as a "helper" or "mix-in" class.  Then
+a new archive is derived from both the "base" archive class
+AND the "helper" class.  This is how boost::shared_ptr
+has been implemented.
+<p>
+It would also be possible to make a "generic runtime helper"
+which would effectively extend the API of the library.  Previously
+the library included such a helper class.  It was removed
+in favor of the current implementation.  But this functionality
+should be added back in with another adaptor which would
+become part of the library.
+
+<hr>
+<p>Revised 1 November, 2008 
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2008. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/overview.html b/deal.II/contrib/boost/libs/serialization/doc/overview.html
new file mode 100644 (file)
index 0000000..47a8707
--- /dev/null
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Overview</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Overview</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="index">
+  <dt><a href="#Requirements">Requirements</a></dt>
+  <dt><a href="#otherimplementations">Other Implementations</a></dt>
+</dl>
+<p>Here, we use the term <strong>"serialization"</strong> to mean
+the reversible deconstruction of an arbitrary set of C++ data structures
+to a sequence of bytes.  Such a system can be used to reconstitute
+an equivalent structure in another program context.  Depending on
+the context, this might used implement object persistence, remote
+parameter passing or other facility. In this system we use the term
+<strong>"archive"</strong> to refer to a specific rendering of this
+stream of bytes.  This could be a file of binary data, text data, 
+XML, or some other created by the user of this library.
+<h2><a name="Requirements"></a>Our goals for such a system are:</h2>
+   <ol>
+      <li>Code portability - depend only on ANSI C++ facilities.
+
+      <li>Code economy - exploit features of C++ such as RTTI,
+      templates, and multiple inheritance, etc. where appropriate to
+      make code shorter and simpler to use.
+
+      <li>Independent versioning for each class definition. That
+      is, when a class definition changed, older files can still be
+      imported to the new version of the class.
+
+      <li>Deep pointer save and restore. That is, save and restore
+      of pointers saves and restores the data pointed to.
+
+      <li>Proper restoration of pointers to shared data.
+
+      <li>Serialization of STL containers and other commonly used
+      templates.
+
+      <li>Data Portability - Streams of bytes created on one platform
+      should be readable on any other.
+
+      <li>Orthogonal specification of class serialization and archive format.
+      That is, any file format should be able to store serialization
+      of any arbitrary set of C++ data structures without having to
+      alter the serialization of any class.
+
+      <li>Non-intrusive. Permit serialization to be applied to
+      unaltered classes. That is, don't require that classes to be
+      serialized be derived from a specific base class or implement
+      specified member functions. This is necessary to easily
+      permit serialization to be applied to classes from class
+      libraries that we cannot or don't want to have to alter.
+
+      <li> The <strong>archive</strong> interface must be simple
+      enough to easily permit creation of a new type of archive.
+
+      <li> The <strong>archive</strong> interface must be rich
+      enough to permit the creation of an <strong>archive</strong>
+      that presents serialized data as XML in a useful manner.
+   </ol>
+
+<h2><a name="otherimplementations"></a>Other implementations</h2>
+    Before getting started I searched around for current
+    implementations. I found several. 
+
+    <ul>
+      <li><u>MFC</u> This is the one that I am very familiar with.
+      I have used it for several years and have found it very useful.
+      However it fails requirements 1, 2, 3, 6, 7, and 9. In spite
+      of all the requirements not fulfilled, this is the most
+      useful implementation I've found. It turns out that class
+      versioning - partially implemented in MFC - really is
+      indispensable for my applications. Inevitably, version 1.x of
+      a shipping program needs to store more information in files
+      than was originally provided for. MFC is the only one of these
+      implementations that supports this - though only for the most
+      derived class. Still it's better than nothing and does the
+      job. MFC doesn't implement serialization of STL collections.
+      Though it does so for MFC collections.
+
+      <li><u>CommonC++ libraries</u> <a href="bibliography.html#1">[1]</a>
+      As far as I can tell, this
+      closely follows the MFC implementation but does address a few
+      of the issues. It is portable and creates portable archives but
+      skips versioning. It does support proper and complete
+      restoration of pointers and STL collections. It does address
+      compression though not in the way that I would prefer. The
+      package would also benefit from having better documentation.
+      So it fails to address 2, 3, 7, 8, and 9.
+
+      <li><u>Eternity</u> <a href="bibliography.html#2">[2]</a> 
+      This is a bare bones package. It
+      seems well coded but it really needs documentation and
+      examples. It's not obvious how to use it without time
+      consuming study of the source code. Recent versions do support
+      files in XML format.  This Fails 3, 6, 7?, 8, and 9. 
+
+      <li><u>Holub's implementation</u> <a href="bibliography.html#3">[3]</a> This is the article that
+      first got me thinking about my own requirements for
+      a serialization implementation. Interesting and worth
+      the read if you can overlook the arrogant tone of the prose.
+      This implementation fails 2, 3, 4, 5, and 6.
+
+      <li><u>s11n</u> <a href="bibliography.html#13">[13]</a>
+      This library has similar goals to this one. Some aspects of the
+      implemenation are also similar.  As of this writing, it would seem that:
+      <ul>
+          <li>Portability(1) is guarenteed only for recent versions of GCC.
+          <li>Versioning(3) of class definitions is not explicitly supported by
+          the library.
+          <li>it doesn't seem to automatically account for shared pointers(5).
+          I concluded this from the documentation as well as the statement that
+          serialization of graph like structures is not supported.
+      </ul>
+      Its has lots of differences - and lots in common with this implementation. 
+    </ul>
+<hr>
+<p>Revised 1 November, 2004 
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/performance_status.html b/deal.II/contrib/boost/libs/serialization/doc/performance_status.html
new file mode 100644 (file)
index 0000000..ed44a2d
--- /dev/null
@@ -0,0 +1,30 @@
+<html>
+<head>
+<title>Boost Library Status Automatic Test</title>
+</head>
+<body bgcolor="#ffffff" text="#000000">
+<table border="0">
+<tr>
+<td><img border="0" src="../../../boost.png" width="277" height="86"></td>
+<td>
+<h1>Library Status: serialization</h1>
+<b>Run Date:</b> 02:42:48 UTC, Tuesday 10 June 2008
+</td>
+</table>
+<br>
+<table border="1" cellspacing="0" cellpadding="5">
+<tr>
+<td rowspan="2">Test Name</td>
+<td align="center" >gcc-3.4.4</td>
+</tr><tr>
+<td align="center" >profile</td>
+</tr><tr><td>peformance_array_binary_archive</a></td><td align="right">Pass <a href="profile1.txt"><i>Profile</i></a></td></tr>
+<tr><td>peformance_array_text_archive</a></td><td align="right">Pass <a href="profile1.txt"><i>Profile</i></a></td></tr>
+<tr><td>peformance_array_text_warchive</a></td><td align="right"><i>Missing</i></td></tr>
+<tr><td>peformance_array_xml_archive</a></td><td align="right">Pass <a href="profile1.txt"><i>Profile</i></a></td></tr>
+<tr><td>peformance_array_xml_warchive</a></td><td align="right"><i>Missing</i></td></tr>
+<tr><td>performance_iterators</a></td><td align="right">Pass <a href="profile2.txt"><i>Profile</i></a></td></tr>
+<tr><td>performance_iterators_base64</a></td><td align="right">Pass <a href="profile3.txt"><i>Profile</i></a></td></tr>
+</table>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/pimpl.html b/deal.II/contrib/boost/libs/serialization/doc/pimpl.html
new file mode 100644 (file)
index 0000000..4a8ca9b
--- /dev/null
@@ -0,0 +1,124 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - PIMPL</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">PIMPL</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+PIMPL is a C++ programming idiom described by Herb Sutter <a href="bibliography.html#10">[10]</a>
+which stands for "Private Implementation".  It is also referred to as
+the "Handle Body Idiom". Included in this library is a program called 
+<a href="../example/demo_pimpl.cpp" target="demo_impl_cpp">demo_pimpl.cpp</a> 
+which illustrates how this is used. The file 
+<a href="../example/demo_pimpl_A.cpp" target="demo_impl__Acpp">demo_pimpl_A.hpp</a>
+contains the declaration of the a class that hides its implementation
+by including a pointer to struct B that is only defined as a pointer.
+<pre><code>
+// class whose declaration is hidden by a pointer
+struct B;
+
+struct A {
+    // class a contains a pointer to a "hidden" declaration
+    B *pimpl;
+    template&lt;class Archive&gt;
+    void serialize(Archive & ar, const unsigned int file_version);
+    A();
+};
+</code></pre>
+Serialization of A requires access to the definition of B in order so it
+is defined in the separately compiled module:
+<a href="../example/demo_pimpl_A.cpp" target="demo_impl_A_cpp">demo_pimpl_A.cpp</a>
+by:
+<pre><code>
+#include "demo_pimpl_A.hpp"
+
+// "hidden" definition of class B
+struct B {
+    int b;
+    template&lt;class Archive&gt;
+    void serialize(Archive & ar, const unsigned int file_version){
+        ar & b;
+    }
+};
+
+A::A() :
+    pimpl(new B)
+{}
+
+A::~A(){
+    delete pimpl;
+}
+
+// now we can define the serialization for class A
+template&lt;class Archive&gt;
+void A::serialize(Archive & ar, const unsigned int file_version){
+    ar & pimpl;
+}
+</code></pre>
+As described in <a href="bibliography.html#10">[10]</a> this brings the
+following advantages:
+<ul>
+    <li>type "B" can be used without using its header.
+    <li>implementation of B can be changed without generating a 
+    cascade of recompilations.
+</ul>
+So, we compile the modules and everything is fine.  However when we
+link, we get an error.  Two symbols are undefined:
+<pre><code>
+void A::serialize(boost::archive::text_oarchive & ar, const unsigned int file_version);
+void A::serialize(boost::archive::text_iarchive & ar, const unsigned int file_version);
+</code></pre>
+The problem is that when compiling the above code, 
+there is no instantiation of the <code style="white-space: normal">serialize</code> template.
+There can't be as its not "known" what types of archives
+the serialization is going to be used with.  So these functions are "missing"
+when an attempt to link is made.  The solution is to explicitly instantiate
+serialization code for those archives which are going to be used.  In this
+example, including the the following code in any *.cpp file does just that:
+<pre></code>
+#include &lt;boost/archive/text_iarchive.hpp&gt;
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+
+template void A::serialize&lt;boost::archive::text_iarchive&gt;(
+    boost::archive::text_iarchive & ar, 
+    const unsigned int file_version
+);
+template void A::serialize&lt;boost::archive::text_oarchive&gt;(
+    boost::archive::text_oarchive & ar, 
+    const unsigned int file_version
+);
+</code></pre>
+The program should now link as well as compile.
+<p>
+The downside of this is that one has to know which archives are going 
+to be used with hidden serializations.  This is an effect of using template
+driven code.  One can invoke explicity instantiation for all known templates and
+presume that the linker will exclude unreferenced code.  This should
+work but is platform dependent.
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/plus.gif b/deal.II/contrib/boost/libs/serialization/doc/plus.gif
new file mode 100644 (file)
index 0000000..9ee3838
Binary files /dev/null and b/deal.II/contrib/boost/libs/serialization/doc/plus.gif differ
diff --git a/deal.II/contrib/boost/libs/serialization/doc/profile1.txt b/deal.II/contrib/boost/libs/serialization/doc/profile1.txt
new file mode 100644 (file)
index 0000000..db95c84
--- /dev/null
@@ -0,0 +1,149 @@
+Flat profile:
+
+Each sample counts as 0.01 seconds.
+ no time accumulated
+
+  %   cumulative   self              self     total           
+ time   seconds   seconds    calls  Ts/call  Ts/call  name    
+  0.00      0.00     0.00      200     0.00     0.00  void accumulate<unsigned long>(unsigned int&, unsigned long const&)
+  0.00      0.00     0.00      150     0.00     0.00  _pei386_runtime_relocator
+  0.00      0.00     0.00        1     0.00     0.00  std::ostream::operator<<(void const*)
+  0.00      0.00     0.00        1     0.00     0.00  __divdi3
+
+ %         the percentage of the total running time of the
+time       program used by this function.
+
+cumulative a running sum of the number of seconds accounted
+ seconds   for by this function and those listed above it.
+
+ self      the number of seconds accounted for by this
+seconds    function alone.  This is the major sort for this
+           listing.
+
+calls      the number of times this function was invoked, if
+           this function is profiled, else blank.
+ self      the average number of milliseconds spent in this
+ms/call    function per call, if this function is profiled,
+          else blank.
+
+ total     the average number of milliseconds spent in this
+ms/call    function and its descendents per call, if this 
+          function is profiled, else blank.
+
+name       the name of the function.  This is the minor sort
+           for this listing. The index shows the location of
+          the function in the gprof listing. If the index is
+          in parenthesis it shows where it would appear in
+          the gprof listing if it were to be printed.
+\f
+                    Call graph (explanation follows)
+
+
+granularity: each sample hit covers 4 byte(s) no time propagated
+
+index % time    self  children    called     name
+                0.00    0.00     200/200         setvbuf [1286]
+[4]      0.0    0.00    0.00     200         void accumulate<unsigned long>(unsigned int&, unsigned long const&) [4]
+-----------------------------------------------
+                0.00    0.00     150/150         _cygwin_crt0_common@8 [1230]
+[5]      0.0    0.00    0.00     150         _pei386_runtime_relocator [5]
+-----------------------------------------------
+                0.00    0.00       1/1           _lseek64 [1234]
+[6]      0.0    0.00    0.00       1         std::ostream::operator<<(void const*) [6]
+-----------------------------------------------
+                0.00    0.00       1/1           __tcf_1 [1221]
+[7]      0.0    0.00    0.00       1         __divdi3 [7]
+-----------------------------------------------
+                                   2             main [1263]
+[1263]   0.0    0.00    0.00       0+2       main [1263]
+                                   2             main [1263]
+-----------------------------------------------
+
+ This table describes the call tree of the program, and was sorted by
+ the total amount of time spent in each function and its children.
+
+ Each entry in this table consists of several lines.  The line with the
+ index number at the left hand margin lists the current function.
+ The lines above it list the functions that called this function,
+ and the lines below it list the functions this one called.
+ This line lists:
+     index     A unique number given to each element of the table.
+               Index numbers are sorted numerically.
+               The index number is printed next to every function name so
+               it is easier to look up where the function in the table.
+
+     % time    This is the percentage of the `total' time that was spent
+               in this function and its children.  Note that due to
+               different viewpoints, functions excluded by options, etc,
+               these numbers will NOT add up to 100%.
+
+     self      This is the total amount of time spent in this function.
+
+     children  This is the total amount of time propagated into this
+               function by its children.
+
+     called    This is the number of times the function was called.
+               If the function called itself recursively, the number
+               only includes non-recursive calls, and is followed by
+               a `+' and the number of recursive calls.
+
+     name      The name of the current function.  The index number is
+               printed after it.  If the function is a member of a
+               cycle, the cycle number is printed between the
+               function's name and the index number.
+
+
+ For the function's parents, the fields have the following meanings:
+
+     self      This is the amount of time that was propagated directly
+               from the function into this parent.
+
+     children  This is the amount of time that was propagated from
+               the function's children into this parent.
+
+     called    This is the number of times this parent called the
+               function `/' the total number of times the function
+               was called.  Recursive calls to the function are not
+               included in the number after the `/'.
+
+     name      This is the name of the parent.  The parent's index
+               number is printed after it.  If the parent is a
+               member of a cycle, the cycle number is printed between
+               the name and the index number.
+
+ If the parents of the function cannot be determined, the word
+ `<spontaneous>' is printed in the `name' field, and all the other
+ fields are blank.
+
+ For the function's children, the fields have the following meanings:
+
+     self      This is the amount of time that was propagated directly
+               from the child into the function.
+
+     children  This is the amount of time that was propagated from the
+               child's children to the function.
+
+     called    This is the number of times the function called
+               this child `/' the total number of times the child
+               was called.  Recursive calls by the child are not
+               listed in the number after the `/'.
+
+     name      This is the name of the child.  The child's index
+               number is printed after it.  If the child is a
+               member of a cycle, the cycle number is printed
+               between the name and the index number.
+
+ If there are any cycles (circles) in the call graph, there is an
+ entry for the cycle-as-a-whole.  This entry shows who called the
+ cycle (as parents) and the members of the cycle (as children.)
+ The `+' recursive calls entry shows the number of function calls that
+ were internal to the cycle, and the calls entry for each member shows,
+ for that member, how many times it was called from other members of
+ the cycle.
+
+\f
+Index by function name
+
+   [4] void accumulate<unsigned long>(unsigned int&, unsigned long const&) [7] __divdi3
+   [6] std::ostream::operator<<(void const*) [5] _pei386_runtime_relocator
diff --git a/deal.II/contrib/boost/libs/serialization/doc/profile2.txt b/deal.II/contrib/boost/libs/serialization/doc/profile2.txt
new file mode 100644 (file)
index 0000000..a2cac6d
--- /dev/null
@@ -0,0 +1,203 @@
+Flat profile:
+
+Each sample counts as 0.01 seconds.
+  %   cumulative   self              self     total           
+ time   seconds   seconds    calls  Ts/call  Ts/call  name    
+100.00      0.01     0.01                             __gnu_cxx::__atomic_add(int volatile*, int)
+  0.00      0.01     0.00       51     0.00     0.00  boost::archive::iterators::transform_width<char*, 6, 8, char>::fill()
+  0.00      0.01     0.00       36     0.00     0.00  boost::archive::iterators::transform_width<__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, 8, 6, char>::fill()
+  0.00      0.01     0.00       30     0.00     0.00  std::vector<char, std::allocator<char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, char const&)
+  0.00      0.01     0.00       11     0.00     0.00  boost::archive::iterators::xml_escape<char const*>::fill(char const*&, char const*&)
+  0.00      0.01     0.00        9     0.00     0.00  void test_transform_width<6, 8>(unsigned int)
+  0.00      0.01     0.00        9     0.00     0.00  boost::archive::iterators::xml_unescape<char const*>::drain()
+  0.00      0.01     0.00        5     0.00     0.00  boost::archive::iterators::xml_unescape<char const*>::drain_residue(char const*)
+  0.00      0.01     0.00        2     0.00     0.00  __static_initialization_and_destruction_0(int, int)
+  0.00      0.01     0.00        1     0.00     0.00  void test_xml_escape<char const>(char const*, char const*, unsigned int)
+  0.00      0.01     0.00        1     0.00     0.00  void test_xml_unescape<char const>(char const*, char const*, unsigned int)
+  0.00      0.01     0.00        1     0.00     0.00  void test_stream_iterators<char>(char const*, unsigned int)
+  0.00      0.01     0.00        1     0.00     0.00  test_main(int, char**)
+  0.00      0.01     0.00        1     0.00     0.00  char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)
+  0.00      0.01     0.00        1     0.00     0.00  std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)
+
+ %         the percentage of the total running time of the
+time       program used by this function.
+
+cumulative a running sum of the number of seconds accounted
+ seconds   for by this function and those listed above it.
+
+ self      the number of seconds accounted for by this
+seconds    function alone.  This is the major sort for this
+           listing.
+
+calls      the number of times this function was invoked, if
+           this function is profiled, else blank.
+ self      the average number of milliseconds spent in this
+ms/call    function per call, if this function is profiled,
+          else blank.
+
+ total     the average number of milliseconds spent in this
+ms/call    function and its descendents per call, if this 
+          function is profiled, else blank.
+
+name       the name of the function.  This is the minor sort
+           for this listing. The index shows the location of
+          the function in the gprof listing. If the index is
+          in parenthesis it shows where it would appear in
+          the gprof listing if it were to be printed.
+\f
+                    Call graph (explanation follows)
+
+
+granularity: each sample hit covers 4 byte(s) for 100.00% of 0.01 seconds
+
+index % time    self  children    called     name
+                                                 <spontaneous>
+[1]    100.0    0.01    0.00                 __gnu_cxx::__atomic_add(int volatile*, int) [1]
+-----------------------------------------------
+                0.00    0.00      51/51          void test_transform_width<6, 8>(unsigned int) [9]
+[5]      0.0    0.00    0.00      51         boost::archive::iterators::transform_width<char*, 6, 8, char>::fill() [5]
+-----------------------------------------------
+                0.00    0.00      36/36          void test_transform_width<6, 8>(unsigned int) [9]
+[6]      0.0    0.00    0.00      36         boost::archive::iterators::transform_width<__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, 8, 6, char>::fill() [6]
+-----------------------------------------------
+                0.00    0.00      30/30          void test_transform_width<6, 8>(unsigned int) [9]
+[7]      0.0    0.00    0.00      30         std::vector<char, std::allocator<char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, char const&) [7]
+-----------------------------------------------
+                0.00    0.00      11/11          void test_xml_escape<char const>(char const*, char const*, unsigned int) [13]
+[8]      0.0    0.00    0.00      11         boost::archive::iterators::xml_escape<char const*>::fill(char const*&, char const*&) [8]
+-----------------------------------------------
+                0.00    0.00       9/9           test_main(int, char**) [16]
+[9]      0.0    0.00    0.00       9         void test_transform_width<6, 8>(unsigned int) [9]
+                0.00    0.00      51/51          boost::archive::iterators::transform_width<char*, 6, 8, char>::fill() [5]
+                0.00    0.00      36/36          boost::archive::iterators::transform_width<__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, 8, 6, char>::fill() [6]
+                0.00    0.00      30/30          std::vector<char, std::allocator<char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, char const&) [7]
+-----------------------------------------------
+                0.00    0.00       9/9           void test_xml_unescape<char const>(char const*, char const*, unsigned int) [14]
+[10]     0.0    0.00    0.00       9         boost::archive::iterators::xml_unescape<char const*>::drain() [10]
+                0.00    0.00       5/5           boost::archive::iterators::xml_unescape<char const*>::drain_residue(char const*) [11]
+-----------------------------------------------
+                0.00    0.00       5/5           boost::archive::iterators::xml_unescape<char const*>::drain() [10]
+[11]     0.0    0.00    0.00       5         boost::archive::iterators::xml_unescape<char const*>::drain_residue(char const*) [11]
+-----------------------------------------------
+                0.00    0.00       1/2           global constructors keyed to main [38]
+                0.00    0.00       1/2           global destructors keyed to main [35]
+[12]     0.0    0.00    0.00       2         __static_initialization_and_destruction_0(int, int) [12]
+-----------------------------------------------
+                0.00    0.00       1/1           test_main(int, char**) [16]
+[13]     0.0    0.00    0.00       1         void test_xml_escape<char const>(char const*, char const*, unsigned int) [13]
+                0.00    0.00      11/11          boost::archive::iterators::xml_escape<char const*>::fill(char const*&, char const*&) [8]
+-----------------------------------------------
+                0.00    0.00       1/1           test_main(int, char**) [16]
+[14]     0.0    0.00    0.00       1         void test_xml_unescape<char const>(char const*, char const*, unsigned int) [14]
+                0.00    0.00       9/9           boost::archive::iterators::xml_unescape<char const*>::drain() [10]
+-----------------------------------------------
+                0.00    0.00       1/1           test_main(int, char**) [16]
+[15]     0.0    0.00    0.00       1         void test_stream_iterators<char>(char const*, unsigned int) [15]
+                0.00    0.00       1/1           std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) [18]
+-----------------------------------------------
+                0.00    0.00       1/1           main [1211]
+[16]     0.0    0.00    0.00       1         test_main(int, char**) [16]
+                0.00    0.00       9/9           void test_transform_width<6, 8>(unsigned int) [9]
+                0.00    0.00       1/1           void test_xml_escape<char const>(char const*, char const*, unsigned int) [13]
+                0.00    0.00       1/1           void test_xml_unescape<char const>(char const*, char const*, unsigned int) [14]
+                0.00    0.00       1/1           void test_stream_iterators<char>(char const*, unsigned int) [15]
+-----------------------------------------------
+                0.00    0.00       1/1           std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) [18]
+[17]     0.0    0.00    0.00       1         char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag) [17]
+-----------------------------------------------
+                0.00    0.00       1/1           void test_stream_iterators<char>(char const*, unsigned int) [15]
+[18]     0.0    0.00    0.00       1         std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) [18]
+                0.00    0.00       1/1           char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag) [17]
+-----------------------------------------------
+
+ This table describes the call tree of the program, and was sorted by
+ the total amount of time spent in each function and its children.
+
+ Each entry in this table consists of several lines.  The line with the
+ index number at the left hand margin lists the current function.
+ The lines above it list the functions that called this function,
+ and the lines below it list the functions this one called.
+ This line lists:
+     index     A unique number given to each element of the table.
+               Index numbers are sorted numerically.
+               The index number is printed next to every function name so
+               it is easier to look up where the function in the table.
+
+     % time    This is the percentage of the `total' time that was spent
+               in this function and its children.  Note that due to
+               different viewpoints, functions excluded by options, etc,
+               these numbers will NOT add up to 100%.
+
+     self      This is the total amount of time spent in this function.
+
+     children  This is the total amount of time propagated into this
+               function by its children.
+
+     called    This is the number of times the function was called.
+               If the function called itself recursively, the number
+               only includes non-recursive calls, and is followed by
+               a `+' and the number of recursive calls.
+
+     name      The name of the current function.  The index number is
+               printed after it.  If the function is a member of a
+               cycle, the cycle number is printed between the
+               function's name and the index number.
+
+
+ For the function's parents, the fields have the following meanings:
+
+     self      This is the amount of time that was propagated directly
+               from the function into this parent.
+
+     children  This is the amount of time that was propagated from
+               the function's children into this parent.
+
+     called    This is the number of times this parent called the
+               function `/' the total number of times the function
+               was called.  Recursive calls to the function are not
+               included in the number after the `/'.
+
+     name      This is the name of the parent.  The parent's index
+               number is printed after it.  If the parent is a
+               member of a cycle, the cycle number is printed between
+               the name and the index number.
+
+ If the parents of the function cannot be determined, the word
+ `<spontaneous>' is printed in the `name' field, and all the other
+ fields are blank.
+
+ For the function's children, the fields have the following meanings:
+
+     self      This is the amount of time that was propagated directly
+               from the child into the function.
+
+     children  This is the amount of time that was propagated from the
+               child's children to the function.
+
+     called    This is the number of times the function called
+               this child `/' the total number of times the child
+               was called.  Recursive calls by the child are not
+               listed in the number after the `/'.
+
+     name      This is the name of the child.  The child's index
+               number is printed after it.  If the child is a
+               member of a cycle, the cycle number is printed
+               between the name and the index number.
+
+ If there are any cycles (circles) in the call graph, there is an
+ entry for the cycle-as-a-whole.  This entry shows who called the
+ cycle (as parents) and the members of the cycle (as children.)
+ The `+' recursive calls entry shows the number of function calls that
+ were internal to the cycle, and the calls entry for each member shows,
+ for that member, how many times it was called from other members of
+ the cycle.
+
+\f
+Index by function name
+
+  [13] void test_xml_escape<char const>(char const*, char const*, unsigned int) [16] test_main(int, char**) [5] boost::archive::iterators::transform_width<char*, 6, 8, char>::fill()
+  [14] void test_xml_unescape<char const>(char const*, char const*, unsigned int) [8] boost::archive::iterators::xml_escape<char const*>::fill(char const*&, char const*&) [1] __gnu_cxx::__atomic_add(int volatile*, int)
+   [9] void test_transform_width<6, 8>(unsigned int) [11] boost::archive::iterators::xml_unescape<char const*>::drain_residue(char const*) [17] char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)
+  [15] void test_stream_iterators<char>(char const*, unsigned int) [10] boost::archive::iterators::xml_unescape<char const*>::drain() [18] std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)
+  [12] __static_initialization_and_destruction_0(int, int) (performance_iterators.cpp) [6] boost::archive::iterators::transform_width<__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, 8, 6, char>::fill() [7] std::vector<char, std::allocator<char> >::_M_insert_aux(__gnu_cxx::__normal_iterator<char*, std::vector<char, std::allocator<char> > >, char const&)
diff --git a/deal.II/contrib/boost/libs/serialization/doc/profile3.txt b/deal.II/contrib/boost/libs/serialization/doc/profile3.txt
new file mode 100644 (file)
index 0000000..807e243
--- /dev/null
@@ -0,0 +1,153 @@
+Flat profile:
+
+Each sample counts as 0.01 seconds.
+ no time accumulated
+
+  %   cumulative   self              self     total           
+ time   seconds   seconds    calls  Ts/call  Ts/call  name    
+  0.00      0.00     0.00      200     0.00     0.00  boost::archive::iterators::transform_width<char*, 6, 8, char>::fill()
+  0.00      0.00     0.00      150     0.00     0.00  boost::archive::iterators::transform_width<boost::archive::iterators::binary_from_base64<boost::archive::iterators::remove_whitespace<std::_List_iterator<char> >, char>, 8, 6, char>::fill()
+  0.00      0.00     0.00        2     0.00     0.00  __static_initialization_and_destruction_0(int, int)
+  0.00      0.00     0.00        1     0.00     0.00  void test_base64<char>()
+  0.00      0.00     0.00        1     0.00     0.00  std::_List_base<char, std::allocator<char> >::_M_clear()
+
+ %         the percentage of the total running time of the
+time       program used by this function.
+
+cumulative a running sum of the number of seconds accounted
+ seconds   for by this function and those listed above it.
+
+ self      the number of seconds accounted for by this
+seconds    function alone.  This is the major sort for this
+           listing.
+
+calls      the number of times this function was invoked, if
+           this function is profiled, else blank.
+ self      the average number of milliseconds spent in this
+ms/call    function per call, if this function is profiled,
+          else blank.
+
+ total     the average number of milliseconds spent in this
+ms/call    function and its descendents per call, if this 
+          function is profiled, else blank.
+
+name       the name of the function.  This is the minor sort
+           for this listing. The index shows the location of
+          the function in the gprof listing. If the index is
+          in parenthesis it shows where it would appear in
+          the gprof listing if it were to be printed.
+\f
+                    Call graph (explanation follows)
+
+
+granularity: each sample hit covers 4 byte(s) no time propagated
+
+index % time    self  children    called     name
+                0.00    0.00     200/200         void test_base64<char>() [7]
+[4]      0.0    0.00    0.00     200         boost::archive::iterators::transform_width<char*, 6, 8, char>::fill() [4]
+-----------------------------------------------
+                0.00    0.00     150/150         void test_base64<char>() [7]
+[5]      0.0    0.00    0.00     150         boost::archive::iterators::transform_width<boost::archive::iterators::binary_from_base64<boost::archive::iterators::remove_whitespace<std::_List_iterator<char> >, char>, 8, 6, char>::fill() [5]
+-----------------------------------------------
+                0.00    0.00       1/2           global constructors keyed to main [27]
+                0.00    0.00       1/2           global destructors keyed to main [24]
+[6]      0.0    0.00    0.00       2         __static_initialization_and_destruction_0(int, int) [6]
+-----------------------------------------------
+                0.00    0.00       1/1           main [1156]
+[7]      0.0    0.00    0.00       1         void test_base64<char>() [7]
+                0.00    0.00     200/200         boost::archive::iterators::transform_width<char*, 6, 8, char>::fill() [4]
+                0.00    0.00     150/150         boost::archive::iterators::transform_width<boost::archive::iterators::binary_from_base64<boost::archive::iterators::remove_whitespace<std::_List_iterator<char> >, char>, 8, 6, char>::fill() [5]
+                0.00    0.00       1/1           std::_List_base<char, std::allocator<char> >::_M_clear() [8]
+-----------------------------------------------
+                0.00    0.00       1/1           void test_base64<char>() [7]
+[8]      0.0    0.00    0.00       1         std::_List_base<char, std::allocator<char> >::_M_clear() [8]
+-----------------------------------------------
+
+ This table describes the call tree of the program, and was sorted by
+ the total amount of time spent in each function and its children.
+
+ Each entry in this table consists of several lines.  The line with the
+ index number at the left hand margin lists the current function.
+ The lines above it list the functions that called this function,
+ and the lines below it list the functions this one called.
+ This line lists:
+     index     A unique number given to each element of the table.
+               Index numbers are sorted numerically.
+               The index number is printed next to every function name so
+               it is easier to look up where the function in the table.
+
+     % time    This is the percentage of the `total' time that was spent
+               in this function and its children.  Note that due to
+               different viewpoints, functions excluded by options, etc,
+               these numbers will NOT add up to 100%.
+
+     self      This is the total amount of time spent in this function.
+
+     children  This is the total amount of time propagated into this
+               function by its children.
+
+     called    This is the number of times the function was called.
+               If the function called itself recursively, the number
+               only includes non-recursive calls, and is followed by
+               a `+' and the number of recursive calls.
+
+     name      The name of the current function.  The index number is
+               printed after it.  If the function is a member of a
+               cycle, the cycle number is printed between the
+               function's name and the index number.
+
+
+ For the function's parents, the fields have the following meanings:
+
+     self      This is the amount of time that was propagated directly
+               from the function into this parent.
+
+     children  This is the amount of time that was propagated from
+               the function's children into this parent.
+
+     called    This is the number of times this parent called the
+               function `/' the total number of times the function
+               was called.  Recursive calls to the function are not
+               included in the number after the `/'.
+
+     name      This is the name of the parent.  The parent's index
+               number is printed after it.  If the parent is a
+               member of a cycle, the cycle number is printed between
+               the name and the index number.
+
+ If the parents of the function cannot be determined, the word
+ `<spontaneous>' is printed in the `name' field, and all the other
+ fields are blank.
+
+ For the function's children, the fields have the following meanings:
+
+     self      This is the amount of time that was propagated directly
+               from the child into the function.
+
+     children  This is the amount of time that was propagated from the
+               child's children to the function.
+
+     called    This is the number of times the function called
+               this child `/' the total number of times the child
+               was called.  Recursive calls by the child are not
+               listed in the number after the `/'.
+
+     name      This is the name of the child.  The child's index
+               number is printed after it.  If the child is a
+               member of a cycle, the cycle number is printed
+               between the name and the index number.
+
+ If there are any cycles (circles) in the call graph, there is an
+ entry for the cycle-as-a-whole.  This entry shows who called the
+ cycle (as parents) and the members of the cycle (as children.)
+ The `+' recursive calls entry shows the number of function calls that
+ were internal to the cycle, and the calls entry for each member shows,
+ for that member, how many times it was called from other members of
+ the cycle.
+
+\f
+Index by function name
+
+   [7] void test_base64<char>() [5] boost::archive::iterators::transform_width<boost::archive::iterators::binary_from_base64<boost::archive::iterators::remove_whitespace<std::_List_iterator<char> >, char>, 8, 6, char>::fill() [8] std::_List_base<char, std::allocator<char> >::_M_clear()
+   [6] __static_initialization_and_destruction_0(int, int) (performance_iterators_base64.cpp) [4] boost::archive::iterators::transform_width<char*, 6, 8, char>::fill()
diff --git a/deal.II/contrib/boost/libs/serialization/doc/rationale.html b/deal.II/contrib/boost/libs/serialization/doc/rationale.html
new file mode 100644 (file)
index 0000000..c963788
--- /dev/null
@@ -0,0 +1,125 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Seriealization - Rationale</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
+    "header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="http://www.boost.org"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Rationale</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="index">
+  <dt><a href="#serialization">The term "serialization" is preferred to "persistence"</a></dt>
+  <dt><a href="#archives">Archives are not streams</a></dt>
+  <dt><a href="#strings">Strings are treated specially in text archives</a></dt>
+  <dt><a href="#typeid"><code style="white-space: normal">typeid</code> information is not included in archives</a></dt>
+  <!--
+  <dt><a href="#footnotes">Footnotes</a></dt>
+  -->
+</dl>
+<h2><a name="serialization"></a>The term "serialization" is preferred to "persistence"</h2>
+<p>
+I found that persistence is often used to refer
+to something quite different. Examples are storage of class
+instances (objects) in database schema <a href="bibliography.html#4">[4]</a>
+This library will be useful in other contexts besides implementing persistence. The
+most obvious case is that of marshalling data for transmission to another system.
+<h2><a name="archives"></a>Archives are not streams</h2>
+<p>
+Archive classes are <strong>NOT</strong> derived from
+streams even though they have similar syntax rules.
+<ul>
+    <li>Archive classes are not kinds of streams though they
+    are implemented in terms of streams. This
+    distinction is addressed in <a href="bibliography.html#5">[5]</a> item number item 41 .
+    <li>We don't want users to insert/extract&nbsp;data
+    directly into/from &nbsp;the stream .&nbsp; This could
+    create a corrupted archive. Were archives
+    derived from streams, it would possible to
+    accidentally do this. So archive classes
+    only define operations which are safe and necessary.
+    <li>The usage of streams to implement the archive classes that
+    are included in the library is merely convenient - not necessary.
+    Library users may well want to define their own archive format
+    which doesn't use streams at all.
+</ul>
+<h2><a name="primitives"></a>Archive Members are Templates 
+Rather than Virtual Functions</h2>
+The previous version of this library defined virtual functions for all
+primitive types.  These were overridden by each archive class.  There were
+two issues related to this:
+</ul>
+    <li>Some disliked virtual functions because of the added execution time
+    overhead.
+    <li>This caused implementation difficulties since the set of primitive
+    data types varies between platforms.  Attempting to define the correct
+    set of virtual functions, (think <code style="white-space: normal">long long</code>, 
+    <code style="white-space: normal">__int64</code>, 
+    etc.) resulted in messy and fragile code.  Replacing this with templates
+    and letting the compiler generate the code for the primitive types actually
+    used, resolved this problem.  Of course, the ripple effects of this design
+    change were significant, but in the end led to smaller, faster, more
+    maintainable code.
+</ul>
+<h2><a name="strings"></a><code style="white-space: normal">std::strings</code> are treated specially in text files</h2>
+<p>
+Treating strings as STL vectors would result in minimal code size. This was
+not done because:
+<ul>
+     <li>In text archives it is convenient to be able to view strings.  Our text
+     implementation stores single characters as integers.  Storing strings
+     as a vector of characters would waste space and render the archives
+     inconvenient for debugging.
+     <li>Stream implementations have special functions for <code style="white-space: normal">std::string</code>
+     and <code style="white-space: normal">std::wstring</code>.
+     Presumably they optimize appropriately.
+     <li>Other specializations of <code style="white-space: normal">std::basic_string</code> are in fact handled
+     as vectors of the element type.
+</ul>
+</p>
+<h2><a name="typeid"></a><code style="white-space: normal">typeid</code> information is not included in archives</h2>
+<p>
+I originally thought that I had to save the name of the class specified by <code style="white-space: normal">std::type_of::name()</code>
+in the archive. This created difficulties as <code style="white-space: normal">std::type_of::name()</code> is not portable and
+not guaranteed to return the class name. This makes it almost useless for implementing
+archive portability.  This topic is explained in much more detail in
+<a href="bibliography.html#6">[7] page 206</a>. It turned out that it was not necessary.
+As long as objects are loaded in the exact sequence as they were saved, the type
+is available when loading.  The only exception to this is the case of polymorphic
+pointers never before loaded/saved.  This is addressed with the <code style="white-space: normal">register_type()</code>
+and/or <code style="white-space: normal">export</code> facilities described in the reference.  
+In effect, <code style="white-space: normal">export</code> generates a portable equivalent to
+<code style="white-space: normal">typeid</code> information.
+
+<!--
+<h2><a name="footnotes"></a>Footnotes</h2>
+<dl>
+  <dt><a name="footnote1" class="footnote">(1)</a> {{text}}</dt>
+  <dt><a name="footnote2" class="footnote">(2)</a> {{text}}</dt>
+</dl>
+-->
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/reference.html b/deal.II/contrib/boost/libs/serialization/doc/reference.html
new file mode 100644 (file)
index 0000000..b97cbe3
--- /dev/null
@@ -0,0 +1,42 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Serialization of Classes</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Serializable Concept</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="archives.html">Archive Concepts</a>
+  <dt><a href="serialization.html">Serializable Concept</a>
+  <dt><a href="special.html">Special Considerations</a>
+  <dt><a href="archive_reference.html">Archive Class Reference</a>
+  <dt><a href="implementation.html">Implementation Notes</a>
+</dl>
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
\ No newline at end of file
diff --git a/deal.II/contrib/boost/libs/serialization/doc/release.html b/deal.II/contrib/boost/libs/serialization/doc/release.html
new file mode 100644 (file)
index 0000000..1559c94
--- /dev/null
@@ -0,0 +1,242 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+    <!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+    <link rel="stylesheet" type="text/css" href="style.css">
+        <title>Serialization - Release Notes</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+    <tr>
+        <td valign="top" width="300">
+            <h3>
+                <a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+        </td>
+        <td valign="top">
+            <h1 align="center">
+                Serialization</h1>
+            <h2 align="center">
+                Release Notes</h2>
+        </td>
+    </tr>
+</table>
+<hr>
+<dl class="index">
+    <dt><a href="#differences_1_42">Differences from version 1.42</a></dt> 
+    <dt><a href="#differences_1_41">Differences from version 1.41</a></dt> 
+    <dt><a href="#differences_1_40">Differences from version 1.40</a></dt> 
+    <dt><a href="#differences_1_39">Differences from version 1.39</a></dt> 
+    <dt><a href="#differences_1_37">Differences from version 1.37</a></dt> 
+    <dt><a href="#differences_1_35">Differences from version 1.35</a></dt>
+    <dt><a href="#differences_1_34">Differences from version 1.34</a></dt> 
+    <dt><a href="#differences_1_33">Differences from version 1.33</a></dt> 
+    <dt><a href="#differences_1_32">Differences from version 1.32</a></dt> 
+    <dt><a href="#todo">Pending Issues</a></dt>
+</dl>
+As of this writing, there are no known bugs. However, due to compiler/library 
+quirks and or bugs, some tests fail with some combinations of compilers and 
+libraries.
+<h2><a name="differences_1_42"></a>Differences from Boost 1.42</h2>
+<ul>
+    <li>fixed failure of shared_ptr serialization when serializing pointers
+created from enable_shared_from_this.
+    <li>added example for a simple archive which can be used as a debug log.
+This example illustrates the implemenation of the archive concept to aid
+understanding required to create one's own archive classes. The resulting
+archive is useful for debugging in that it only 160 lines of code and is
+header only - that is, it doesn't required linking to the serialization library.
+    <li>replaced example used to show how to derive from an existing archive.
+This example creates an XML archive class which doesn't include serialization
+traits such as class_id, class_version, etc.  It might be useful for exporting
+one's class information to osme XML processor and/or debugging programs.
+    <li>compile time warnings have been implemented to detect practices which
+    though correct, will result in operation or side effects different than
+    a user probably intends.
+    <li>Some memory leaks associated with void_cast have been fixed.
+</ul>
+<h2><a name="differences_1_41"></a>Differences from Boost 1.41</h2>
+<ul>
+    <li>adjustments have been made to minimize compile time warnings.
+    <li>compile time warnings have been implemented to detect practices which
+    though correct, will result in operation or side effects different than
+    a user probably intends.
+    <li>Some memory leaks associated with void_cast have been fixed.
+</ul>
+<h2><a name="differences_1_40"></a>Differences from Boost 1.40</h2>
+This library has been tested against Boost version 1.39 and 1.40.
+<p>
+    Changes have been made to archive classes included with the library. Users who 
+    have used these a guide to making their own archive classes will find that 
+    these will likely no longer compile. This can be remedied by making the 
+    following changes in the code which instantiates these archive classes.
+</p>
+Old Code:<br>
+<code><pre>
+...
+#include &lt;boost/archive/impl/archive_pointer_iserializer.ipp&gt;
+...
+template class detail::archive_pointer_iserializer&lt;naked_text_iarchive&gt; ;
+...
+template class detail::archive_pointer_iserializer&lt;text_iarchive&gt; ;
+</pre></code>should be replaced with this new code: <code><pre>
+#include &lt;boost/archive/impl/archive_serializer_map.ipp&gt;
+...
+template class detail::archive_serializer_map&lt;naked_text_iarchive&gt; ;
+...
+template class detail::archive_serializer_map&lt;text_iarchive&gt; ;
+</pre></code>
+<!--
+<p>
+The serialization library uses the boost spirit package to load XML archives.
+We have found that all tests pass using spirit 1.6x. Spirit 1.8 and higher does not work with
+older compilers - specifically MSVC 6, Borland and GCC < 3.0.
+If you are using one of these compilers, you may download a version
+of spirit 1.6 <a href="http://spirit.sourceforge.net/index.php?doc=download/index.html">here</a>.
+To use this downloaded version rather than the one included with boost,
+set an environmental variable SPIRIT_ROOT to be equal to the root 
+directory where the downloaded copy of spirit has been placed. E. G.
+<pre><code>
+set SPIRIT_ROOT=c:/spirit16
+</code></pre>
+If you're not using bjam and the Jamfile to build the library, be sure that
+the directory which contains the version of spirit you plan to use is placed
+at the front of the list of include paths.
+-->
+<h2><a name="differences_1_39"></a>Differences from Boost 1.39</h2>
+<ul>
+    <li>
+        It is now possible to serialize an object through a pointer to a class which 
+        implements its own <code style="white-space: normal">new/delete</code>
+    operators. This functionaly is not available on some compilers.
+    <li>
+    serialization of polymorphic objects has been sped up considerably.
+</ul>
+As of this writing, all bug reports filed as TRAK tickets have been addressed. 
+There are some TRAK tickets pending which would best be described as feature 
+requests. See <a href="#todo">Pending Issues</a>.
+<h2><a name="differences_1_37"></a>Differences from Boost 1.37</h2>
+There are no new features in this version. As of this writing, all bug reports 
+filed as TRAK tickets have been addressed. There are some TRAK tickets pending 
+which would best be described as feature requests. See <a href="#todo">Pending 
+    Issues</a>.
+<h2><a name="differences_1_36"></a>Differences from Boost 1.36</h2>
+There are no new features in this version. As of this writing, all bug reports 
+filed as TRAK tickets have been addressed.
+<h2><a name="differences_1_35"></a>Differences from Boost 1.35</h2>
+<ul>
+    <li>
+    The library is now thread safe. That is, multiple archives can be open in 
+    different threads. This has been implmented with a lock-free algorithm to avoid 
+    any performance bottlenecks.
+    <li>
+    Serialization of types defined in shared libraries is now supported. shared 
+    libraries (DLLS) can be loaded/unloaded dynamically at runtime. This includes 
+    the serialization of instances of abstract base classes so that a program can 
+    be written so as to be compatible with as yet undefined and un-implemented 
+    code.
+    <li>
+    The extended type info system has been enhanced to in order to implement the 
+    above. It is now a general purpose system for creating and casting of types 
+    about which is only known a string ID and an abstract base class.
+    <li>
+    All bug reports filed as TRAK tickets have been addressed.
+    <li>
+    As of this writing, the library will fail build on older compilers such as MSVC 
+    before version 7.1 and older versions of Borland compilers. This might or might 
+    not change in the future.
+</ul>
+<h2><a name="differences_1_34"></a>Differences from Boost 1.34</h2>
+<ul>
+    <li>
+    Enhanced support for fast serialization for native binary archives. By Mattias 
+    Troyer.
+    <li>
+    Improved implementation of "export" functionality. Removes header ordering 
+    requirement and eliminates the maintenance of a pre-determined list of "known 
+    archives" By David Abrahams.
+    <li>
+    Improved support for STLPort.
+</ul>
+<h2><a name="differences_1_33"></a>Differences from Boost 1.33</h2>
+<ul>
+    <li>
+        Native Binary archives use the <code style="white-space: normal">std::streambuf</code>
+    interface. This should result in noticeably faster execution in many cases.
+</ul>
+<h2><a name="differences_1_32"></a>Differences from Boost 1.32</h2>
+<ul>
+    <li>
+        Dynamic Linking Library (DLLs and shared libraries) for platforms which support 
+        them. See <a href="../../../more/getting_started/windows.html#auto-linking">Automatic 
+            Linking on Windows</a>.
+    <li>
+    Implementation of auto-link for compilers which can support this.
+    <li>
+        Better support for <em>Argument Dependent Lookup</em>
+    and two-phase lookup. This results in simpler rules regarding the placing of 
+    serialization specializations namespaces.
+    <li>
+    Enhanced documentation to help explain usage of the above.
+    <li>
+    Adjustments to improve support for less conformant compilers.
+    <li>
+        Improved <code>const</code> correctness for save/load operators. Note that this 
+        may produce compile time errors in code which compiled without problem in 
+        earlier boost releases. In most cases the fix is trivial. In other cases, code 
+        should be scrutinized to be sure that it doesn't use the serialization system 
+        in a way which may introduce subtle bugs in to the program. A fuller 
+        explanation of this issue can be found <a target="detail" href="traits.html#tracking">
+            here</a>.
+    <li>
+        A new implementation of serialization for <code style="white-space: normal">shared_ptr&lt;T&gt;</code>. 
+        This is compatible with public interface of <code style="white-space: normal">shared_ptr&lt;T&gt;</code>
+        so it should be more robust and not have to change in the future. The 
+        implementation optionally includes code to load <code style="white-space: normal">shared_ptr&lt;T&gt;</code>
+        stored in archives created with boost 1.32. This code is stored in 'he header: <code style="white-space: normal">
+            boost/serialization/shared_ptr_132.hpp</code>. If your application needs to 
+        load archives created with boost 1.32 libraries, include the above header 
+        before each inclusion of <code style="white-space: normal">boost/serialization/shared_ptr.hpp</code>.
+    <li>
+    More compilers tested and supported.
+    <li>
+    Miscellaneous bug fixes.
+</ul>
+<h2><a name="todo"></a>Pending issues</h2>
+<ul>
+    <li>
+    Rvalues cannot be serialized. It would be possible to implement this for 
+    untracked types, but this has not been done.
+    <li>
+    Pointers to pointers cannot currently be serialized
+    <li>
+        Its possible that <code style="white-space: normal">std::string</code> and <code style="white-space: normal">
+            std::wstring</code>
+    contain characters such as '\0' and -1 (EOF) which cannot be rendered in text 
+    and XML archives without an escape mechanism. Currently there is no such escape 
+    mechanism implemented.
+    <li>
+        A subtle error in the implementation of serializaton of <code style="white-space: normal">
+            std::map</code> is fixed in this version. Unfortunately, the fix breaks 
+        serialization of <code style="white-space: normal">std::map</code>
+    for those compilers which do not support partial template specialization. Also, 
+    types which contain pointers or tracked types might not work correctly.
+</ul>
+<p>
+    Aside from the above, there are a number of issues related to specific 
+    platforms. These are listed in <a href="implementation.html#othercompilerissues">Specific 
+        Compiler/Library Issues</a>.
+    <hr>
+<p>
+    <i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2009. 
+        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) </i>
+</p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/serialization.html b/deal.II/contrib/boost/libs/serialization/doc/serialization.html
new file mode 100644 (file)
index 0000000..ec15eb1
--- /dev/null
@@ -0,0 +1,932 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Serialization of Classes</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Serializable Concept</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#primitiveoperators">Primitive Types</a>
+  <dt><a href="#classoperators">Class Types</a>
+  <dl class="page-index">
+    <dt><a href="#member">Member Function</a>
+    <dt><a href="#free">Free Function</a>
+    <dl class="page-index">
+      <dt><a href="#namespaces">Namespaces for Free Function Overrides</a>
+    </dl>
+    <dt><a href="#classmembers">Class Members</a>
+    <dl class="page-index">
+      <dt><a href="#base">Base Classes</a>
+      <dt><a href="#const"><code style="white-space: normal">const</code> Members</a>
+      <dt><a href="#templates">Templates</a>
+    </dl>
+    <dt><a href="#versioning">Versioning</a>
+    <dt><a href="#splitting">Splitting <code style="white-space: normal">serialize</code> into 
+      <code style="white-space: normal">save/load</code></a>
+      <dl class="page-index">
+        <dt><a href="#splittingmemberfunctions">Member Functions</a>
+        <dt><a href="#splittingfreefunctions">Free Functions</a>
+      </dl>
+  </dl>
+  <dt><a href="#pointeroperators">Pointers</a>
+    <dl class="page-index">
+      <dt><a href="#constructors">Non-Default Constructors</a>
+      <dt><a href="#derivedpointers">Pointers to Objects of Derived Classes</a>
+      <dl class="page-index">
+        <dt><a href="#registration">Registration</a>
+        <dt><a href="#export">Export</a>
+        <dt><a href="#instantiation">Instantiation</a>
+        <dt><a href="#selectivetracking">Selective Tracking</a>
+        <dt><a href="#runtimecasting">Runtime Casting</a>
+      </dl>
+    </dl>
+  <dt><a href="#references">References</a>
+  <dt><a href="#arrays">Arrays</a>
+  <dt><a href="traits.html">Class Serialization Traits</a>
+  <dt><a href="wrappers.html">Serialization Wrappers</a>
+  <dt><a href="#models">Models - Serialization Implementations Included in the Library</a>
+</dl>
+
+A type <code style="white-space: normal">T</code> is <strong>Serializable</strong> 
+if and only if one of the following is true:
+<ul>
+  <li>it is a primitive type.<br>
+    In this document, we use the term primitive type to mean
+    types whose data is simply saved/loaded to/from an archive
+    with no further processing.  Arithmetic (including characters), 
+    bool, enum and stl::string and stl::wstring types are primitive types.  Using 
+    <a target="detail" href="traits.html#Traits">serialization traits</a>,
+    any user type can also be designated as "primitive"
+    so that it is handled in this way.
+  <li>It is a class type and one of the following has been declared according
+    to the prototypes detailed below:
+    <ul>
+    <li>a class member function <code style="white-space: normal">serialize</code>
+    <li>a global function <code style="white-space: normal">serialize</code>
+    </ul>
+  <li>it is a pointer to a <strong>Serializable</strong> type.
+  <li>it is a reference to a <strong>Serializable</strong> type.
+  <li>it is a native C++ Array of <strong>Serializable</strong> type.
+</ul>
+
+<h2><a name="primitiveoperators">Primitive Types</a></h2>
+The template operators &amp;, &lt;&lt;, and &gt;&gt; of the archive classes 
+described above will generate code to save/load all primitive types
+to/from an archive.  This code will usually just add the
+data to the archive according to the archive format.
+For example, a four byte integer is appended to a binary archive
+as 4 binary bytes while a to a text archive it would be 
+rendered as a space followed by a string representation.
+
+<h2><a name="classoperators">Class Types</a></h2>
+For class/struct types, the template operators &amp;, &lt;&lt;, and &gt;&gt;
+will generate code that invokes the programmer's serialization code for the
+particular data type.  There is no default.  An attempt to serialize a
+class/struct for which no serialization has been explicitly specified
+will result in a compile time error.  The serialiation of a class can
+be specified via either a class member function or a free funcation which
+takes a reference to an instance of the class as an argument.
+
+<h3><a name="member">Member Function</a></h3>
+The serialization library invokes the following code to save or load a class instance
+to/from and archive.
+<pre><code>
+template&lt;class Archive, class T&gt;
+inline void serialize(
+    Archive &amp; ar, 
+    T &amp; t, 
+    const unsigned int file_version
+){
+    // invoke member function for class T
+    t.serialize(ar, file_version);
+}
+</code></pre>
+That is, the default definition of template <code style="white-space: normal">serialize</code> 
+presumes the existence of a class member function template of the following 
+signature:
+<pre><code>
+template&lt;class Archive&gt;
+void serialize(Archive &amp;ar, const unsigned int version){
+    ...
+}
+</code></pre>
+If such a member function is not declared, a compile time error will occur.  In order
+that the member function generated by this template can be called to
+append the data to an archive, it either must be public or the class must
+be made accessible to the serialization library by including:
+<pre><code>
+friend class boost::serialization::access;
+</code></pre>
+in the class definition.  This latter method should be preferred over the option
+of making member function public. This will prevent serialization functions from 
+being called from outside the library.  This is almost certainly an error.  Unfortunately,
+it may appear to function but fail in a way that is very difficult to find.
+<p>
+It may not be immediately obvious how this one template serves for both
+saving data to an archive as well as loading data from the archive.
+The key is that the <code style="white-space: normal">&amp;</code> operator is 
+defined as <code style="white-space: normal">&lt;&lt;</code>
+for output archives and as <code style="white-space: normal">&gt;&gt;</code> input archives.  The
+"polymorphic" behavior of the <code style="white-space: normal">&amp;</code> permits the same template
+to be used for both save and load operations.  This is very convenient in that it
+saves a lot of typing and guarantees that the saving and loading of class
+data members are always in sync.  This is the key to the whole serialization
+system.
+
+<h3><a name="free">Free Function</a></h3>
+Of course we're not restricted to using the default implementation described
+above. We can override the default one with our own.  Doing this will
+permit us to implement serialization of a class without altering
+the class definition itself.  We call this <strong>non-intrusive</strong>
+serialization.  Suppose our class is named <code style="white-space: normal">my_class</code>, the
+override would be specified as:
+<pre><code>
+// namespace selection
+
+template&lt;class Archive&gt;
+inline void serialize(
+    Archive &amp; ar, 
+    my_class &amp; t, 
+    const unsigned int file_version
+){
+    ...
+}
+</code></pre>
+
+Note that we have called this override "non-intrusive".  This is slightly
+inaccurate.  It does not require that the class have special functions, that
+it be derived from some common base class or any other fundamental design changes.
+However, it will require access to the class members that are to
+be saved and loaded.  If these members are <code style="white-space: normal">private</code>, it won't be
+possible to serialize them.  So in some instances, minor modifications to the
+class to be serialized will be necessary even when using this "non-intrusive"
+method.  In practice this may not be such a problem as many libraries 
+(E.G. STL) expose enough information to permit implementation of non-intrusive
+serialization with absolutly no changes to the library.
+
+<h4><a name="namespaces">Namespaces for Free Function Overrides</a></h4>
+For maximum portability, include any free functions templates and definitions in the 
+namespace <code style="white-space: normal">boost::serialization</code>.  If portability is not a concern and the
+compiler being used supports ADL (Argument Dependent Lookup) the free functions and
+templates can be in any of the following namespaces:
+<ul>
+<li><code style="white-space: normal">boost::serialization</code>
+<li>namespace of the archive class
+<li>namespace of the type being serialized
+</ul>
+<p>
+Note that, at first glance, this suggestion may seem to be wrong for compilers which implement
+two phase lookup.  In fact, the serialization library used a perhaps overly clever 
+method to support this rule even for such compilers.  Those with an interest in studying
+this furter will find more information in 
+<a target=serialization_hpp href="../../../boost/serialization/serialization.hpp">serialization.hpp</a>
+
+<h3><a name="classmembers">Serialization of Class Members</a></h3>
+Regardless of which of the above methods is used,  the body of the serialize function must
+specify the data to be saved/loaded by sequential application of the archive
+<code style="white-space: normal">operator &amp;</code> to all the data members of the class.
+<pre><code>
+{
+    // save/load class member variables
+    ar &amp; member1;
+    ar &amp; member2;
+}
+</code></pre>
+
+<h4><a name="base">Base Classes</a></h4>
+The header file 
+<a href="../../../boost/serialization/base_object.hpp" target="base_object_hpp">
+base_object.hpp
+</a>
+includes the template:
+<pre><code>
+template&lt;class Base, class Derived&gt;
+Base & base_object(Derived &d);
+</code></pre>
+which should be used to create a reference to an object of the base
+which can be used as an argument to the archive serialization operators.
+So for a class of <strong>Serializable</strong> type
+<code style="white-space: normal">T</code> the base class state should be 
+serialized like this:
+<pre><code>
+{
+    // invoke serialization of the base class 
+    ar &amp; boost::serialization::base_object&lt;base_class_of_T&gt;(*this);
+    // save/load class member variables
+    ar &amp; member1;
+    ar &amp; member2;
+}
+</code></pre>
+Resist the temptation to just cast <code style="white-space: normal">*this</code> to the base class.
+This might seem to work but may fail to invoke code necessary for
+proper serialization.
+<p>
+Note that this is <strong>NOT</strong> the same as calling the <code style="white-space: normal">serialize</code>
+function of the base class. This might seem to work but will circumvent
+certain code used for tracking of objects, and registering base-derived
+relationships and other bookkeeping that is required for the serialization
+system to function as designed.  For this reason, all <code style="white-space: normal">serialize</code>
+member functions should be <code style="white-space: normal">private</code>.
+
+<h4><a name="const"><code style="white-space: normal">const</code> Members</a></h4>
+Saving <code style="white-space: normal">const</code> members to an archive 
+requires no special considerations.
+Loading <code style="white-space: normal">const</code> members can be addressed by using a
+<code style="white-space: normal">const_cast</code>:
+<pre><code>
+    ar &amp; const_cast&lt;T &amp;&gt;(t);
+</code></pre>
+Note that this violates the spirit and intention of the <code style="white-space: normal">const</code>
+keyword. <code style="white-space: normal">const</code> members are intialized when a class instance
+is constructed and not changed thereafter.  However, this may
+be most appropriate in many cases.  Ultimately, it comes down to 
+the question about what <code style="white-space: normal">const</code> means in the context
+of serialization. 
+
+<h4><a name="templates"></a>Templates</h4>
+Implementation serialization for templates is exactly the same process 
+as for normal classes and requires no additional considerations.  Among
+other things, this implies that serialization of compositions of templates
+are automatically generated when required if serialization of the 
+component templates is defined.  For example, this library includes
+definition of serialization for <code style="white-space: normal">boost::shared_ptr&lt;T&gt;</code> and for
+<code style="white-space: normal">std::list&lt;T&gt;</code>. If I have defined serialization for my own
+class <code style="white-space: normal">my_t</code>, then serialization for 
+<code style="white-space: normal">std::list&lt; boost::shared_ptr&lt; my_t&gt; &gt;</code> is already available
+for use.
+<p>
+See for an example that shows how this idea might be implemented for your own
+class templates, see
+<a href="../example/demo_auto_ptr.cpp" target="demo_auto_ptr.cpp">
+demo_auto_ptr.cpp</a>.
+This shows how non-intrusive serialization
+for the template <code style="white-space: normal">auto_ptr</code> from the standard library
+can be implemented.
+<p>
+A somewhat trickier addition of serialization to a standard template
+can be found in the example 
+<a href="../../../boost/serialization/shared_ptr.hpp" target="shared_ptr_hpp">
+shared_ptr.hpp
+</a>
+<!--
+Only the most minimal change to
+<code>shared_count.hpp</code>
+(to gain access to some private members) was necessary to achieve this.
+This should demonstrate how easy it is to non-intrusively
+implement serialization to any data type or template. 
+-->
+<p>
+In the specification of serialization for templates, its common
+to split <code style="white-space: normal">serialize</code> 
+into a <code style="white-space: normal">load/save</code> pair. 
+Note that the convenience macro described 
+<a href="#BOOST_SERIALIZATION_SPLIT_FREE">above</a>
+isn't helpful in these cases as the number and kind of
+template class arguments won't match those used when splitting
+<code style="white-space: normal">serialize</code> for a simple class.  Use the override
+syntax instead.
+
+<h3><a name="versioning">Versioning</a></h3>
+It will eventually occur that class definitions change after archives have
+been created. When a class instance is saved, the current version
+in included in the class information stored in the archive.  When the class instance
+is loaded from the archive, the original version number is passed as an
+argument to the loading function.  This permits the load function to include
+logic to accommodate older definitions for the class and reconcile them
+with latest version.  Save functions always save the current version.  So this
+results in automatically converting older format archives to the newest versions.
+Version numbers are maintained independently for each class.  This results in 
+a simple system for permitting access to older files and conversion of same.
+The current version of the class is assigned as a
+<a href="traits.html">Class Serialization Trait</a> described later in this manual.
+<pre><code>
+{
+    // invoke serialization of the base class 
+    ar &amp; boost::serialization::base_object&lt;base_class_of_T&gt;(*this);
+    // save/load class member variables
+    ar &amp; member1;
+    ar &amp; member2;
+    // if its a recent version of the class
+    if(1 &lt; file_version)
+        // save load recently added class members
+        ar &amp; member3;
+}
+</code></pre>
+
+<h3><a name="splitting">Splitting <code style="white-space: normal">serialize</code> into Save/Load</a></h3>
+There are times when it is inconvenient to use the same
+template for both save and load functions.  For example, this might occur if versioning
+gets complex.  
+
+<h4><a name="splittingmemberfunctions">Splitting Member Functions</a></h4>
+For member functions this can be addressed by including
+the header file <a href="../../../boost/serialization/split_member.hpp" target="split_member_hpp">
+boost/serialization/split_member.hpp</a> including code like this in the class:
+<pre><code>
+template&lt;class Archive&gt;
+void save(Archive &amp; ar, const unsigned int version) const
+{
+    // invoke serialization of the base class 
+    ar &lt;&lt; boost::serialization::base_object&lt;const base_class_of_T&gt;(*this);
+    ar &lt;&lt; member1;
+    ar &lt;&lt; member2;
+    ar &lt;&lt; member3;
+}
+
+template&lt;class Archive&gt;
+void load(Archive &amp; ar, const unsigned int version)
+{
+    // invoke serialization of the base class 
+    ar &gt;&gt; boost::serialization::base_object&lt;base_class_of_T&gt;(*this);
+    ar &gt;&gt; member1;
+    ar &gt;&gt; member2;
+    if(version &gt; 0)
+        ar &gt;&gt; member3;
+}
+
+template&lt;class Archive&gt;
+void serialize(
+    Archive &amp; ar,
+    const unsigned int file_version 
+){
+    boost::serialization::split_member(ar, *this, file_version);
+}
+</code></pre>
+This splits the serialization into two separate functions <code style="white-space: normal">save</code>
+and <code style="white-space: normal">load</code>.  Since the new <code style="white-space: normal">serialize</code> template
+is always the same it can be generated by invoking the macro
+BOOST_SERIALIZATION_SPLIT_MEMBER() defined in the header file
+<a href="../../../boost/serialization/split_member.hpp" target="split_member_hpp">
+boost/serialization/split_member.hpp
+</a>.
+So the entire <code style="white-space: normal">serialize</code> function above can be replaced with:
+<pre><code>
+BOOST_SERIALIZATION_SPLIT_MEMBER()
+</code></pre>
+<h4><a name="splittingfreefunctions">Splitting Free Functions</a></h4>
+The situation is same for non-intrusive serialization with the free
+<code style="white-space: normal">serialize</code> function template.
+
+<a name="BOOST_SERIALIZATION_SPLIT_FREE">
+To use <code style="white-space: normal">save</code> and 
+<code style="white-space: normal">load</code> function templates rather than 
+<code style="white-space: normal">serialize</code>:
+<pre><code>
+namespace boost { namespace serialization {
+template&lt;class Archive&gt;
+void save(Archive &amp; ar, const my_class &amp; t, unsigned int version)
+{
+    ...
+}
+template&lt;class Archive&gt;
+void load(Archive &amp; ar, my_class &amp; t, unsigned int version)
+{
+    ...
+}
+}}
+</code></pre>
+include the header file 
+<a href="../../../boost/serialization/split_free.hpp" target="split_free_hpp">
+boost/serialization/split_free.hpp
+</a>.
+and override the free <code style="white-space: normal">serialize</code> function template:
+<pre><code>
+namespace boost { namespace serialization {
+template&lt;class Archive&gt;
+inline void serialize(
+    Archive &amp; ar,
+    my_class &amp; t,
+    const unsigned int file_version
+){
+    split_free(ar, t, file_version); 
+}
+}}
+</code></pre>
+To shorten typing, the above template can be replaced with
+the macro:
+<pre><code>
+BOOST_SERIALIZATION_SPLIT_FREE(my_class)
+</code></pre>
+
+Note that although the functionality to split the <code style="white-space: normal">
+serialize</code> function into <code style="white-space: normal">save/load</code>
+has been provided, the usage of the <code style="white-space: normal">serialize</code>
+function with the corresponding <code style="white-space: normal">&amp;</code> operator
+is preferred.  The key to the serialization implementation is that objects are saved 
+and loaded in exactly the same sequence.  Using the <code style="white-space: normal">&amp;</code> 
+operator and <code style="white-space: normal">serialize</code>
+function guarantees that this is always the case and will minimize the
+occurence of hard to find errors related to synchronization of 
+<code style="white-space: normal">save</code> and <code style="white-space: normal">load</code> 
+functions.
+<p>
+Also note that <code style="white-space: normal">BOOST_SERIALIZATION_SPLIT_FREE</code>
+must be used outside of any namespace.
+
+<h2><a name="pointeroperators">Pointers</a></h2>
+A pointer to any class instance can be serialized with any of the archive 
+save/load operators.
+<p>
+To properly save and restore an object through a pointer the
+following situations must be addressed:
+<ol>
+    <li>If the same object is saved multiple times through different
+    pointers, only one copy of the object need be saved.
+    <li>If an object is loaded multiple times through different pointers,
+    only one new object should be created and all returned pointers
+    should point to it.
+    <li>The system must detect the case where an object is first
+    saved through a pointer then the object itself is saved.
+    Without taking extra precautions, loading would result in the
+    creation of multiple copies of the original object. This system detects
+    this case when saving and throws an exception - see below.
+    <li>An object of a derived class may be stored through a
+    pointer to the base class. The true type of the object must
+    be determined and saved. Upon restoration the correct type
+    must be created and its address correctly cast to the base
+    class. That is, polymorphic pointers have to be considered.
+    <li>NULL pointers must be dectected when saved and restored
+    to NULL when deserialized.
+</ol>
+
+This serialization library addresses all of the above
+considerations. The process of saving and loading an object
+through a pointer is non-trivial. It can be summarized as
+follows:
+<p>Saving a pointer:
+<ol>
+    <li>determine the true type of the object being pointed to.
+    <li>write a special tag to the archive
+    <li>if the object pointed to has not already been written
+    to the archive, do so now
+</ol>
+Loading a pointer:
+<ol>
+    <li>read a tag from the archive.
+    <li>determine the type of object to be created
+    <li>if the object has already been loaded, return it's address.
+    <li>otherwise, create a new instance of the object
+    <li>read the data back in using the operators described above
+    <li>return the address of the newly created object.
+</ol>
+
+Given that class instances are saved/loaded to/from the archive
+only once, regardless of how many times they are serialized with
+the <code style="white-space: normal">&lt;&lt;</code> 
+and <code style="white-space: normal">&gt;&gt;</code> operators
+<ul>
+    <li>Loading the same pointer object multiple times
+    results in only one object being created, thereby replicating
+    the original pointer configuration. 
+    <li>Structures such as collections of polymorphic pointers,
+    are handled with no special effort on the part of users of this library.
+</ul>
+Serialization of pointers of derived types through a pointer to the
+base class may require a little extra "help".  Also, the programmer
+may desire to modify the process described above for his own reasons.
+For example, it might be desired to suppress the tracking of objects
+as it is known a priori that the application in question can never
+create duplicate objects.  Serialization of pointers can be "fine tuned"
+via the specification of <a target="detail" href="traits.html#Traits">Class Serialization Traits</a>
+as described in
+<a target="detail" href="special.html#derivedpointers">
+another section of this manual
+</a>
+
+<h3><a name="constructors">Non-Default Constructors</a></h3>
+Serialization of pointers is implemented in the library with code
+similar to the following:
+<pre><code>
+// load data required for construction and invoke constructor in place
+template&lt;class Archive, class T&gt;
+inline void load_construct_data(
+    Archive &amp; ar, T * t, const unsigned int file_version
+){
+    // default just uses the default constructor to initialize
+    // previously allocated memory. 
+    ::new(t)T();
+}
+</code></pre>
+The default <code style="white-space: normal">load_construct_data</code> invokes the
+default constructor "in-place" to initialize the memory.
+<p>
+If there is no such default constructor, the function templates
+<code style="white-space: normal">load_construct_data</code> and 
+perhaps <code style="white-space: normal">save_construct_data</code>
+will have to be overridden.  Here is a simple example:
+<pre><code>
+class my_class {
+private:
+    friend class boost::serialization::access;
+    const int m_attribute;  // some immutable aspect of the instance
+    int m_state;            // mutable state of this instance
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp;ar, const unsigned int file_version){
+        ar &amp; m_state;
+    }
+public:
+    // no default construct guarentees that no invalid object
+    // ever exists
+    my_class(int attribute) :
+        m_attribute(attribute),
+        m_state(0)
+    {}
+};
+</code></pre>
+the overrides would be:
+<pre><code>
+namespace boost { namespace serialization {
+template&lt;class Archive&gt;
+inline void save_construct_data(
+    Archive &amp; ar, const my_class * t, const unsigned int file_version
+){
+    // save data required to construct instance
+    ar &lt;&lt; t-&gt;m_attribute;
+}
+
+template&lt;class Archive&gt;
+inline void load_construct_data(
+    Archive &amp; ar, my_class * t, const unsigned int file_version
+){
+    // retrieve data from archive required to construct new instance
+    int attribute;
+    ar &gt;&gt; attribute;
+    // invoke inplace constructor to initialize instance of my_class
+    ::new(t)my_class(attribute);
+}
+}} // namespace ...
+</code></pre>
+In addition to the deserialization of pointers, these overrides are used
+in the deserialization of STL containers whose element type has no default
+constructor.
+
+<h3><a name="derivedpointers">Pointers to Objects of Derived Classes</a></h3>
+<h4><a name="registration">Registration</a></h4>
+Consider the following:
+<pre><code>
+class base {
+    ...
+};
+class derived_one : public base {
+    ...
+};
+class derived_two : public base {
+    ...
+};
+main(){
+    ...
+    base *b;
+    ...
+    ar &amp; b; 
+}
+</code></pre>
+When saving <code style="white-space: normal">b</code> what kind of object should be saved? 
+When loading <code style="white-space: normal">b</code> what kind of object should be created? 
+Should it be an object of class <code style="white-space: normal">derived_one</code>,
+<code style="white-space: normal">derived_two</code>, or maybe <code style="white-space: normal">base</code>?
+<p>
+It turns out that the kind of object serialized depends upon whether the base class
+(<code style="white-space: normal">base</code> in this case) is polymophic or not.
+If <code style="white-space: normal">base</code> is not polymorphic, that is if it has no
+virtual functions, then an object of the type <code style="white-space: normal">base</code>
+will be serialized. Information in any derived classes will be lost. If this is what is desired
+(it usually isn't) then no other effort is required.
+<p>
+
+If the base class is polymorphic, an object of the most derived type
+(<code style="white-space: normal">derived_one</code>
+or <code style="white-space: normal">derived_two</code>
+in this case) will be serialized.  The question of which type of object is to be
+serialized is (almost) automatically handled by the library.
+<p>
+The system "registers" each class in an archive the first time an object of that
+class it is serialized and assigns a sequential number to it.  Next time an
+object of that class is serialized in that same archive, this number is written
+in the archive.  So every class is identified uniquely within the archive.  
+When the archive is read back in, each new sequence number is re-associated with 
+the class being read.  Note that this implies that "registration" has to occur
+during both save and load so that the class-integer table built on load
+is identical to the class-integer table built on save. In fact, the key to
+whole serialization system is that things are always saved and loaded in
+the same sequence.  This includes "registration".
+<p>
+Expanding our previous example:
+<pre><code>
+main(){
+    derived_one d1;
+    derived_two d2:
+    ...
+    ar &amp; d1;
+    ar &amp; d2;
+    // A side effect of serialization of objects d1 and d2 is that
+    // the classes derived_one and derived_two become known to the archive.
+    // So subsequent serialization of those classes by base pointer works
+    // without any special considerations.
+    base *b;
+    ...
+    ar &amp; b; 
+}
+</code></pre>
+When <code style="white-space: normal">b</code> is read it is
+preceded by a unique (to the archive) class identifier which
+has previously been related to class <code style="white-space: normal">derived_one</code> or
+<code style="white-space: normal">derived_two</code>.
+<p>
+If a derived class has NOT been automatically "registered" as described
+above, an <a target="detail" href="exceptions.html#unregistered_class">
+<code style="white-space: normal">unregistered_class</code></a> exception 
+will be thrown when serialization is invoked.
+<p>
+This can be addressed by registering the derived class explicitly.  All archives are
+derived from a base class which implements the following template:
+<pre><code>
+template&lt;class T&gt;
+register_type();
+</code></pre>
+So our problem could just as well be addressed by writing:
+<pre><code>
+main(){
+    ...
+    ar.template register_type&lt;derived_one&gt;();
+    ar.template register_type&lt;derived_two&gt;();
+    base *b;
+    ...
+    ar &amp; b; 
+}
+</code></pre>
+Note that if the serialization function is split between save and load, both
+functions must include the registration.  This is required to keep the save
+and corresponding load in syncronization.
+
+<h4><a name="export">Export</a></h4>
+The above will work but may be inconvenient.  We don't always know which derived
+classes we are going to serialize when we write the code to serialize through
+a base class pointer.  Every time a new derived class is written we have to
+go back to all the places where the base class is serialized and update the
+code.
+<p>
+So we have another method:
+<pre><code>
+#include &lt;boost/serialization/export.hpp&gt;
+...
+BOOST_CLASS_EXPORT_GUID(derived_one, "derived_one")
+BOOST_CLASS_EXPORT_GUID(derived_two, "derived_two")
+
+main(){
+    ...
+    base *b;
+    ...
+    ar &amp; b; 
+}
+</code></pre>
+The macro <code style="white-space: normal">BOOST_CLASS_EXPORT_GUID</code> associates a string literal
+with a class. In the above example we've used a string rendering
+of the class name. If a object of such an "exported" class is serialized
+through a pointer and is otherwise unregistered, the "export" string is 
+included in the archive. When the archive 
+is later read, the string literal is used to find the class which 
+should be created by the serialization library.
+This permits each class to be in a separate header file along with its 
+string identifier. There is no need to maintain a separate "pre-registration" 
+of derived classes that might be serialized.  This method of
+registration is referred to as "key export".  More information on this
+topic is found in the section Class Traits - 
+<a target="detail" href="traits.html#export">Export Key</a>.
+<p>
+<h4><a name="instantiation">Instantiation</a></h4>
+Registration by means of any of the above methods fulfill another role 
+whose importance might not be obvious.  This system relies on templated
+functions of the form <code style="white-space: normal">template&lt;class Archive, class T&gt;</code>.
+This means that serialization code must be instantiated for each
+combination of archive and data type that is serialized in the program.
+<p>
+Polymorphic pointers of derived classes may never be referred to 
+explictly by the program so normally code to serialize such classes
+would never be instantiated.  So in addition to including export key
+strings in an archive, <code style="white-space: normal">BOOST_CLASS_EXPORT_GUID</code> explicitly
+instantiates the class serialization code for all archive classes used 
+by the program.  
+
+<h4><a name="selectivetracking">Selective Tracking</a></h4>
+Whether or not an object is tracked is determined by its
+<a target="detail" href="traits.html#tracking">object tracking trait</a>.
+The default setting for user defined types is <code style="white-space: normal">track_selectively</code>.
+That is, track objects if and only if they are serialized through pointers anywhere
+in the program. Any  objects that are "registered" by any of the above means are presumed
+to be serialized through pointers somewhere in the program and therefore
+would be tracked. In certain situations this could lead to an inefficiency.
+Suppose we have a class module used by multiple programs.  Because
+some programs serializes polymorphic pointers to objects of this class, we 
+<a target="detail" href="traits.html#export">export</a> a class
+identifier by specifying <code style="white-space: normal">BOOST_CLASS_EXPORT</code> in the
+class header.  When this module is included by another program,
+objects of this class will always be tracked even though it
+may not be necessary.  This situation could be addressed by using 
+<a target="detail" href="traits.html#tracking"><code style="white-space: normal">track_never</code></a>  
+in those programs.
+<p>
+It could also occur that even though a program serializes through 
+a pointer, we are more concerned with efficiency than avoiding the
+the possibility of creating duplicate objects.  It could be
+that we happen to know that there will be no duplicates.  It could
+also be that the creation of a few duplicates is benign and not
+worth avoiding given the runtime cost of tracking duplicates.
+Again, <a target="detail" href="traits.html#tracking"><code style="white-space: normal">track_never</code></a>  
+can be used.
+<h4><a name="runtimecasting">Runtime Casting</a></h4>
+In order to properly translate between base and derived pointers
+at runtime, the system requires each base/derived pair be found
+in a table.  A side effect of serializing a base object with
+<code style="white-space: normal">boost::serialization::base_object&lt;Base&gt;(Derived &)</code>
+is to ensure that the base/derived pair is added to the table
+before the <code style="white-space: normal">main</code> function is entered.
+This is very convenient and results in a clean syntax.  The only
+problem is that it can occur where a derived class serialized
+through a pointer has no need to invoke the serialization of
+its base class.  In such a case, there are two choices.  The obvious
+one is to invoke the base class serialization with <code style="white-space: normal">base_object</code>
+and specify an empty function for the base class serialization.
+The alternative is to "register" the Base/Derived relationship
+explicitly by invoking the template 
+<code style="white-space: normal">void_cast_register&lt;Derived, Base&gt;();</code>.
+Note that this usage of the term "register" is not related
+to its usage in the previous section.  Here is an example of how this is done:
+<pre><code>
+#include &lt;sstream&gt;
+#include &lt;boost/serialization/serialization.hpp&gt;
+#include &lt;boost/archive/text_iarchive.hpp&gt;
+#include &lt;boost/serialization/export.hpp&gt;
+
+class base {
+    friend class boost::serialization::access;
+    //...
+    // only required when using method 1 below
+    // no real serialization required - specify a vestigial one
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int file_version){}
+};
+
+class derived : public base {
+    friend class boost::serialization::access;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int file_version){
+        // method 1 : invoke base class serialization
+        boost::serialization::base_object&lt;base&gt;(*this);
+        // method 2 : explicitly register base/derived relationship
+        boost::serialization::void_cast_register&lt;derived, base&gt;(
+            static_cast&lt;derived *&gt;=NULL),
+            static_cast&lt;base *&gt;(NULL)
+        )
+    }
+};
+
+BOOST_CLASS_EXPORT_GUID(derived, "derived")
+
+main(){
+    //...
+    std::stringstream ss;
+    boost::archive::text_iarchive ar(ss);
+    base *b;
+    ar &gt;&gt; b; 
+}
+</code></pre>
+<p>
+
+In order for this template to be invoked in code compiled by non-conforming
+compilers, the following syntax may be used:
+<pre><code>
+boost::serialization::void_cast_register(
+    static_cast&lt;Derived *&gt;(NULL),
+    static_cast&lt;Base *&gt;(NULL)
+);
+</code></pre>
+For more information, see <a target="detail" href="implementation.html#tempatesyntax">Template Invocation syntax</a>
+
+<h3><a name="references"></a>References</h3>
+Classes that contain reference members will generally require
+non-default constructors as references can only be set when
+an instance is constructed. The example of the previous section
+is slightly more complex if the class has reference members.
+This raises the question of how and where the objects being
+referred to are stored and how are they created. Also there is the question about
+references to polymorphic base classes.  Basically, these
+are the same questions that arise regarding pointers.  This is
+no surprise as references are really a special kind of pointer.
+We address these questions by serializing references as though
+they were pointers.
+<pre><code>
+class object;
+class my_class {
+private:
+    friend class boost::serialization::access;
+    int member1;
+    object &amp; member2;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp;ar, const unsigned int file_version);
+public:
+    my_class(int m, object &amp; o) :
+        member1(m), 
+        member2(o)
+    {}
+};
+</code></pre>
+the overrides would be:
+<pre><code>
+namespace boost { namespace serialization {
+template&lt;class Archive&gt;
+inline void save_construct_data(
+    Archive &amp; ar, const my_class * t, const unsigned int file_version
+){
+    // save data required to construct instance
+    ar &lt;&lt; t.member1;
+    // serialize reference to object as a pointer
+    ar &lt;&lt; &amp; t.member2;
+}
+
+template&lt;class Archive&gt;
+inline void load_construct_data(
+    Archive &amp; ar, my_class * t, const unsigned int file_version
+){
+    // retrieve data from archive required to construct new instance
+    int m;
+    ar &gt;&gt; m;
+    // create and load data through pointer to object
+    // tracking handles issues of duplicates.
+    object * optr;
+    ar &gt;&gt; optr;
+    // invoke inplace constructor to initialize instance of my_class
+    ::new(t)my_class(m, *optr);
+}
+}} // namespace ...
+</code></pre>
+
+<h3><a name="arrays"></a>Arrays</h3>
+If <code style="white-space: normal">T</code> is a serializable type, 
+then any native C++ array of type T is a serializable type.
+That is, if <code style="white-space: normal">T</code>
+is a serializable type, then the following
+is automatically available and will function as expected:
+<pre><code>
+T t[4];
+ar &lt;&lt; t;
+    ...
+ar &gt;&gt; t;
+</code></pre>
+
+<h2><a href="traits.html">Class Serialization Traits</a></h2>
+
+<h2><a href="wrappers.html">Serialization Wrappers</a></h2>
+
+<h2><a name="models"></a>Models - Serialization Implementations Included in the Library</h2>
+The facilities described above are sufficient to implement 
+serialization for all STL containers.  In fact, this has been done
+and has been included in the library.  For example, in order to use
+the included serialization code for <code style="white-space: normal">std::list</code>, use:
+<pre><code>
+#include &lt;boost/serialization/list.hpp&gt;
+</code></pre>
+rather than
+<pre><code>
+#include &lt;list&gt;
+</code></pre>
+Since the former includes the latter, this all that is necessary.
+The same holds true for all STL collections as well as templates
+required to support them (e.g. <code style="white-space: normal">std::pair</code>).
+<p>
+As of this writing, the library contains serialization of the following boost clases:
+<ul>
+  <li>optional
+  <li>variant
+  <li>scoped_ptr
+  <li>shared_ptr
+  <li>auto_ptr (demo)
+</ul>
+Others are being added to the list so check the boost files section and headers for
+new implementations!
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/shared_ptr.html b/deal.II/contrib/boost/libs/serialization/doc/shared_ptr.html
new file mode 100644 (file)
index 0000000..932ab59
--- /dev/null
@@ -0,0 +1,233 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Template serialization - shared_ptr</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Template serialization - <code style="white-space: normal">shared_ptr&lt;class T&gt;</code></h2>
+    </td>
+  </tr>
+</table>
+<hr>
+All the code snippets included below are defined within the
+<code style="white-space: normal">boost::serialization</code> namespace.
+<p>
+<code style="white-space: normal">shared_ptr&lt;T&gt;</code> is defined in
+<a href="../../../boost/shared_ptr.hpp" target=shared_ptr.hpp>shared_ptr.hpp</a>.
+<p>
+The general class outline for a <code style="white-space: normal">shared_ptr&lt;T&gt;</code> is:
+<dl>
+    <dt><code style="white-space: normal">shared_ptr&lt;T&gt;</code> contains:
+    <dl>
+        <dt><code style="white-space: normal">T *px;</code>
+        <dt><code style="white-space: normal">shared_count pn;</code> which contains a pointer to:
+        <dl>
+            <dt><code style="white-space: normal">sp_counted_base_impl&lt;T, ...&gt;</code> which is
+derived from the polymorphic abstract class
+            <dl>
+                <dt><code style="white-space: normal">sp_counted_base</code>
+            </dl>
+        </dl>
+    </dl>
+</dl>
+The serialization process proceeds down the tree above.
+<p>
+The first cut at implementing serialization for <code style="white-space: normal">shared_ptr</code>
+just serializes the relevant members of <code style="white-space: normal">shared_ptr</code>.
+It's almost trivial:
+<pre><code>
+template&lt;class Archive, class T&gt;
+inline void serialize(
+    Archive &amp; ar,
+    shared_ptr&lt;T&gt; &amp; t,
+    const unsigned int file_version,
+    int
+){
+    ar &amp; t.px; // save the raw pointer
+    ar &amp; t.pn; // save the shared reference count
+}
+</code></pre>
+So far so good.  Now for the serialization of <code style="white-space: normal">shared_count</code>:
+<pre><code>
+template&lt;class Archive&gt;
+inline void save(
+    Archive &amp; ar,
+    const boost::detail::shared_count &amp; t,
+    const unsigned int file_version
+){
+    ar &lt;&lt; t.pi_;
+}
+
+template&lt;class Archive&gt;
+inline void load(
+    Archive &amp; ar,
+    boost::detail::shared_count &amp; t,
+    const unsigned int file_version
+){
+    ar &gt;&gt; t.pi_;
+}
+</code></pre>
+A key feature of this library is the ability to specify serialization
+of a class or template without changing the class or template declaration
+or definition.  This is referred to as <i>non-intrusive</i> serialization.
+<p>
+The <code style="white-space: normal">pi_</code>member of shared count is a pointer to an 
+instance of <code style="white-space: normal">sp_counted_base_impl<T, ...></code>.  Since this class
+doesn't have a default constructor, serialization requires
+specification of the following overload:
+<pre><code>
+template&lt;class Archive, class P, class D>
+inline void save_construct_data(
+    Archive &amp; ar,
+    const boost::detail::sp_counted_base_impl<P, D> * t, 
+    const unsigned int file_version
+){
+    // variables used for construction
+    ar &lt;&lt; t->ptr;
+    ar &lt;&lt; *t;
+}
+
+template<class Archive, class P, class D>
+inline void load_construct_data(
+    Archive &amp; ar,
+    boost::detail::sp_counted_base_impl<P, D> * t, 
+    const unsigned int file_version
+){
+    P ptr_;
+    ar &gt;&gt; ptr_;
+    // placement new
+    ::new(t)boost::detail::sp_counted_base_impl<P, D>(ptr_,  D());
+    ar &gt;&gt;; *t;
+}
+</code></pre>
+The statement <code style="white-space: normal">ar &gt;&gt; ptr_</code> is key. This deserializes
+the same pointer deserialzed above.  Default object tracking will ensure
+that no more than one instance of the object is created and that the
+pointer returned by multiple deserializations are all the same. Hence,
+regardless of how many instances of <code style="white-space: normal">shared_ptr/shared_count</code>
+corresponding to a particular object are created, the will all point
+to the same object.
+<p>
+Since <code style="white-space: normal">sp_counted_base_impl&lt;P, D&gt;</code> is derived from 
+<code style="white-space: normal">sp_counted_base</code>, the following is needed:
+
+<pre><code>
+template&lt;class Archive, class P, class D&gt;
+inline void serialize(
+    Archive &amp; ar,
+    boost::detail::sp_counted_base_impl&lt;P, D&gt; &amp; t,
+    const unsigned int file_version,
+    int
+){
+    ar & boost::serialization::base_object&lt;
+       boost::detail::sp_counted_base
+    &gt;(*this);
+}
+</code></pre>
+which will in turn require serialization of its base class:
+<pre><code>
+inline void serialize(
+    Archive &amp; ar,
+    boost::detail::sp_counted &amp; t,
+    const unsigned int file_version,
+    int
+){
+}
+</code></pre>
+It would seem we're done, running the test program,
+<a href="../example/demo_shared_ptr.cpp" target="demo_shared_ptr_cpp">
+demo_shared_ptr.cpp
+</a>,
+with this code produces the following output.
+<pre><code>
+a = 0x003017A0 use count = 2
+a1 = 0x003017A0 use count = 2
+unique element count = 1
+a = 0x00000000 use count = 0
+a1 = 0x00000000 use count = 0
+unique element count = 0
+a = 0x00303060 use count = 1
+a1 = 0x00303060 use count = 1
+unique element count = 1
+</code></pre>
+This indicates that we're not quite done.  Due to default object
+tracking, <code style="white-space: normal">sp_counted_base_impl&lt;P, D&gt;</code> is only
+created once regardless of how many shared pointers point to the
+same object.  Of course, it has to be this way. The reference
+count starts at 1 and is never incrememented.  Code must be added
+to the serialization functions to maintain the proper reference
+count.
+<p>
+The process of serialization of an empty base class - 
+<code style="white-space: normal">sp_counted_base</code> - seems like additional overhead.
+Examination of code in 
+<a href="../../../boost/serialization/base_object.hpp" target="base_object_hpp">
+base_object.hpp
+</a>
+reveals that <code style="white-space: normal">base_object.hpp</code> provides two functions:
+<ul>
+    <li>invokes serialization of the base class data
+    <li>as a side effect, "registers" the fact base/derived relationship
+so that conversions of pointers between base and derived classes can be
+made at runtime.
+</ul>
+In this case we need only the latter function so we can replace the
+base object serialization with:
+<pre><code>
+// register the relationship between each derived class
+// its polymorphic base
+void_cast_register&lt;
+    boost::detail::sp_counted_base_impl&lt;P, D&gt;
+    boost::detail::sp_counted_base, 
+&gt;();
+</code></pre>
+and we don't have to include a trival serializer for <code style="white-space: normal">sp_counted_base</code>
+<p>
+Finally we need to specify name-value pair wrappers if we want to be able
+to use this serialization with XML archives.
+<p>
+Actually, even this is really just a start. Among the issues not addressed in
+this implementation are:
+<ul>
+    <li><code style="white-space: normal">weak_ptr</code> is not addressed.  I haven't even looked into this.
+    <li>Other smart pointers that might interact with <code style="white-space: normal">shared_ptr</code>
+    haven't been addressed at all.  To be confident that the implementation is
+    complete and correct, all these should be addressed as well.
+    <li>Exception handling hasn't been exhaustively considered.
+    <li>Other issues yet to be discovered.
+</ul>
+One thing that has been considered is export of shared_ptr. The header which
+declares shared pointer serialization includes some special macros for exporting
+shared pointers:
+<code><pre>
+BOOST_SHARED_POINTER_EXPORT(T)
+BOOST_SHARED_POINTER_EXPORT_GUID(T, K)
+</pre></code>
+These are specialize versions of the macros used for exporting classes serialized through raw pointers.
+<p>
+Clearly, complete, correct and exception safe serialization of smart pointers is going to
+be a challenge.  I hope that this implementation provides a useful
+starting point for such an effort.
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/shared_ptr2.html b/deal.II/contrib/boost/libs/serialization/doc/shared_ptr2.html
new file mode 100644 (file)
index 0000000..0e831b7
--- /dev/null
@@ -0,0 +1,103 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Template serialization - shared_ptr</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code style="white-space: normal">shared_ptr&lt;class T&gt;</code> Revisited</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+The previously described serialization of <code style="white-space: normal">shared_ptr</code>
+illustrates the straightforward way of serializing a moderately complicated class structure.
+Unfortunately, this way of doing it suffered from some undesirable features
+<ul>
+  <li>It was dependent on the Boost implementation of <code style="white-space: normal">shared_ptr</code>.
+  The <code style="white-space: normal">shared_ptr</code> interface has been included
+  in <code style="white-space: normal">std::tr1</code> and may someday be included in the standard
+  C++ library. An implementation which depends only on the public interface can be guaranteed to
+  function with any other future implementation of <code style="white-space: normal">shared_ptr</code>.
+  <li>It required extra macros for export.
+</ul>
+
+<pre><code>
+template&lt;class Archive, class T&gt;
+inline void save(
+    Archive & ar,
+    const boost::shared_ptr&ltT&gt; &t,
+    const unsigned int /* file_version */
+){
+    const T * t_ptr = t.get();
+    // just serialize the underlying raw pointer
+    ar &lt;&lt: boost::serialization::make_nvp("px", t_ptr);
+}
+
+template&lt;class Archive, class T&gt
+inline void load(
+    Archive & ar,
+    boost::shared_ptr&lt;T&gt; &t,
+    const unsigned int file_version
+){
+    T* r;
+    // recover the underlying raw pointer
+    ar >> boost::serialization::make_nvp("px", r);
+
+    // To Do - match up with other shared pointers which 
+    // use this same raw pointer.
+    ...
+}
+</code></pre>
+
+In principle, this is very much simpler than the original implementation.  Completion of
+this code requires:
+
+<ol>
+  <li>Filling in the "To Do".  This required making an extra map for
+  <code style="white-space: normal">shared_ptr</code> instances.
+  <li>A method for identifying pointers to the same objects from pointers to their base classes.
+  <li>Backward compatibility with pointers serialized by the previous method.  This exploits
+  the serialization class versioning.
+  <li>Proper handling of <code style="white-space: normal">weak_ptr</code>.
+</ol>
+
+The result of this effort can be found in 
+<a target = serialization_shared_ptr href="../../../boost/serialization/shared_ptr.hpp">
+<code style="white-space: normal">boost::serialization::shared_ptr.hpp</code>
+</a>
+<p>
+Note that if your code needs to read archives created under boost version 1.32, you will
+have to include the following
+
+<pre><code>
+#include &lt;boost/serialization/shared_ptr_132.hpp&gt;
+#include &lt;boost/serialization/shared_ptr.hpp&gt;
+</code></pre>
+rather than just
+<pre><code>
+#include &lt;boost/serialization/shared_ptr.hpp&gt;
+</code></pre>
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/simple_log.html b/deal.II/contrib/boost/libs/serialization/doc/simple_log.html
new file mode 100644 (file)
index 0000000..1a6281e
--- /dev/null
@@ -0,0 +1,95 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-10 Robert Ramey - http://www.rrsd.com .
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Derivation from an Existing Archive</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">A Simple Logging Archive Class</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+The purpose of this example help clarify the usage of the
+<a href="archives.html"><strong>Archive Concept</strong></a> 
+so that one can implement his own archive classes.  
+<a href="../example/simple_log_archive.hpp" target="simple_archive_hpp">
+<code>simple_log_archive.hpp</code></a> implements a simple but useful
+archive class. This class can be used to send any serializable types
+on an output text stream in a readable format. Usage of this facility
+is trivially easy:
+
+<pre><code>
+#include "simple_log_archive.hpp"
+...
+// display the complete schedule
+simple_log_archive log(std::cout);
+log << schedule;
+</code></pre>
+
+and it produces the following output
+
+<pre><code>
+schedule 
+ count 6
+ item 
+  first 
+   driver bob
+   hour 6
+   minute 24
+  second -> 
+   stops 
+    count 3
+    item -> 
+     latitude 
+      degrees 34
+      minutes 135
+      seconds 52.56
+     longitude 
+      degrees 134
+      minutes 22
+      seconds 78.3
+...
+</code></pre>
+
+The complete example is <a href="../example/demo_simple_log.cpp" target="demo_simple_log_cpp">
+<code>demo_simple_log.cpp</code></a>.  Look at 
+<a href="archive_reference.html#trivial">Trivial Archive</a> to get a 
+better understanding of how this works.
+
+Also, note the following:
+<ul>
+  <li>Only 160 lines of code.
+  <li>Header only - linking with the serialization library not required.
+  <li>Displays ALL <a href="serialization.html"><strong>Serializable</strong></a> types.
+  <li>Lacks some features.
+  <ul>
+    <li>it will not display the data from the derived type given the pointer to a 
+    polymorphic base class.  That is, only displays the information of the base class.
+    To add that see the next example.
+    <li>doesn't display information serialized as binary data
+  </ul>
+</ul>
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2010. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/singleton.html b/deal.II/contrib/boost/libs/serialization/doc/singleton.html
new file mode 100644 (file)
index 0000000..80f71c8
--- /dev/null
@@ -0,0 +1,256 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - singleton</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code style="white-space: normal">singleton</code></h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#motivation">Motivation</a>
+  <dt><a href="#features">Features</a>
+  <dt><a href="#classinterface">Class Interface</a>
+  <dt><a href="#requirements">Requirements</a>
+  <dt><a href="#example">Examples</a>
+  <dt><a href="#multithreading">Multi-Threading</a>
+</dl>
+
+<h3><a name="motivation">Motivation</a></h3>
+The serialization library relies on the existence of a number
+of static variables and tables to store information related
+to runtime types.  Examples are tables which relate exported
+names to types and tables which relate base classes to derived
+classes.  Construction, destruction and usage of these variables
+requires consideration of the following issues:
+<ul>
+  <li>Some static data variables and constants  entries refer to others.  
+  The sequence of initialization cannot be arbitrary but must be in proper
+  sequence.</li>
+  <li>A number of static variables aren't referred explicitly and, without
+  special precautions, will be stripped by most code optimizers</li>
+  <li>Many of these variables are created by templates and special care must
+  be taken to be sure that they are instantiated</li>
+  <li>In a multi-threading system, its possible that these static variables
+  will be accessed concurrently by separate threads.  This would create a
+  race condition with unpredictabe behavior</li>
+</ul>
+This singleton class addresses all of the above issues.
+
+<h3><a name="features">Features</a></h3>
+This singleton implementation has the following features:
+<ul>
+  <li>
+    Any instance will be constructed before any attempt is made to access it.</li>
+  <li>
+    Any instance created with a template is guarenteed to be instantiated.
+  <li>
+    Regardless of whether or not an instance has been explicitly
+    referred to, it will not be stripped by the optimizer when the
+    executable is built in release mode.
+  <li>
+    All instances are constructed before 
+    <code style="white-space: normal">main</code> is called
+    regardless of where they might be referenced within the program.
+    In a multi-tasking system, this guarentees that there will be no 
+    race conditions during the construction of any instance.  No
+    thread locking is required to guarentee this.
+  <li>
+    The above implies that any <code style="white-space: normal">const</code>
+    instances are thread-safe during the whole program.  Again, no
+    thread locking is required.
+  <li>
+    If a mutable instance is created, and such an instance is modified
+    after main is called in a mult-threading system, there exists
+    the possibility that a race condition will occur.  The serialization
+    library takes care that in the few places where a mutable
+    singleton is required, it is not altered after 
+    <code style="white-space: normal">main</code> is called.
+    For a more general purpose usage, thread locking on this
+    singleton could easily be implemented.  But as the serialization
+    library didn't require it, it wasn't implemented.
+</ul>
+
+<h3><a name="classinterface">Class Interface</a></h3>
+<pre><code>
+namespace boost { 
+namespace serialization {
+
+template <class T>
+class singleton : public boost::noncopyable
+{
+public:
+    static const T & get_const_instance();
+    static T & get_mutable_instance();
+    static bool is_destroyed();
+};
+
+} // namespace serialization 
+} // namespace boost
+</code></pre>
+
+<dl>
+
+<dt><h4><pre><code>
+static const T & get_const_instance();
+</code></pre></h4></dt>
+<dd>
+Retrieve a constant reference to the singleton for this type.
+</dd>
+
+<dt><h4><pre><code>
+static T & get_mutable_instance();
+</code></pre></h4></dt>
+<dd>
+Retrieve a mutable reference to the singleton for this type.
+</dd>
+
+<dt><h4><pre><code>
+static bool is_destroyed();
+</code></pre></h4></dt>
+<dd>
+Return <code>true</code> if the destructor on this singleton has been 
+called.  Otherwise, return <code>false</code>.
+</dd>
+
+</dl>
+
+<h3><a name="requirements">Requirements</a></h3>
+In order to be used as 
+<a target="singleton.hpp" href = "../../../boost/serialization/singleton.hpp">
+<code style="white-space: normal">
+singleton&lt;T&gt;
+</code> 
+</a>
+, the type T must be default constructable.
+It doesn't require static variables - though it may have them.
+Since the library guarentees that only one instance of 
+<a target="singleton.hpp" href = "../../../boost/serialization/singleton.hpp">
+<code style="white-space: normal">
+singleton&lt;T&gt;
+</code> 
+</a>
+and all accesss is through the above static interface
+functions, common member functions of T become
+the functional equivalent of 
+<code style="white-space: normal">static</code> functions.
+
+<h3><a name="example">Examples</a></h3>
+There are at least two different ways to use this class template.
+Both are used in the serialization library.
+<p>
+The first way is illustrated by and excerpt from the file
+<code style="white-space: normal"><a target="extended_type_info" href="../src/extended_type_info.cpp">extended_type_info.cpp</a></code>.
+which contains the following code:
+
+<pre><code>
+typedef std::set<const extended_type_info *, key_compare> ktmap;
+...
+void
+extended_type_info::key_register(const char *key) {
+    ...
+    result = singleton<ktmap>::get_mutable_instance().insert(this);
+    ...
+}
+</code></pre>
+Just by referring to the singleton instance anywhere in the program
+will guarentee that one and only one instance for the specified
+type (<code style="white-space: normal">ktmap</code> in this example) 
+will exist throughout the program.  There is no need for anyother
+declaration or definition.
+<p>
+A second way is to use 
+<a target="singleton.hpp" href = "../../../boost/serialization/singleton.hpp">
+<code style="white-space: normal">
+singleton&lt;T&gt;
+</code> 
+</a>
+as one of the base classes of the type.  This is illustrated by a simplified
+excerpt from
+<a target="extended_type_info_typeid.hpp" href = "../../../boost/serialization/extended_type_info_typeid.hpp">
+<code style="white-space: normal">
+extended_type_info_typeid.hpp
+</code> 
+</a>
+
+<pre><code>
+template&lt;class T&gt;
+class extended_type_info_typeid : 
+    public detail::extended_type_info_typeid_0,
+    public singleton&lt;extended_type_info_typeid&lt;const T&gt; &gt;
+{
+    friend class singleton&lt;extended_type_info_typeid&lt;const T&gt; &gt;;
+private:
+    // private constructor to inhibit any existence other than the 
+    // static one.  Note: not all compilers support this !!!
+    extended_type_info_typeid() :
+        detail::extended_type_info_typeid_0()
+    {
+        type_register(typeid(T));
+    }
+    ~extended_type_info_typeid(){}
+    ...
+};
+</code></pre>
+
+This usage will permit a more natural syntax to be used:
+<pre><code>
+extended_type_info_typeid&lt;T&gt;::get_const_instance()
+</code></pre>
+
+Again, including one or more of the above statements anywhere
+in the program will guarentee that one and only one instance
+is created and referred to.
+
+<h3><a name="multithreading">Multi-Threading</a></h3>
+This singleton CAN be safely used in multi-threading applications if one
+is careful follow a simple rule:
+<p>
+<b>Do not call get_mutable_instance when more than one thread is running!</b>
+<'>
+All singletons used in the serialization library follow this rule.  
+In order to help detect accidental violations of this rule there
+exists an singleton lock/unlock functions.
+<pre><code>
+void boost::serialization::singleton_module::lock();
+void boost::serialization::singleton_module::unlock();
+bool boost::serialization::singleton_module::is_locked();
+</code></pre>
+In a program compiled for debug, any invocation of 
+<code style="white-space: normal">get_mutable_instance()</code>
+while the library is in a "locked" state will trap in an assertion.
+The singleton module lock state is initialized as "unlocked" to permit
+alteration of static variables before 
+<code style="white-space: normal">main</code> is called. 
+The <code style="white-space: normal">lock()</code> and
+<code style="white-space: normal">unlock()</code> are "global"
+in they affect ALL the singletons defined by this template.
+All serialization tests invoke <code style="white-space: normal">lock()</code>
+at the start of the progam.  For programs compiled in release
+mode these functions have no effect.
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2007. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/smart_cast.html b/deal.II/contrib/boost/libs/serialization/doc/smart_cast.html
new file mode 100644 (file)
index 0000000..1d43e8a
--- /dev/null
@@ -0,0 +1,155 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - BOOST_STATIC_WARNING</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code>smart_cast</code></h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<h3>Motivation</h3>
+To cast from one type to another related type, C++ provides the following
+operators:
+
+<dl>
+  <dt><code>static_cast&lt;T *<&gt;(U *)<br>static_cast&lt;T &<&gt;(U &)</code></dt>
+  <dd>
+    <ul>
+      <li>required if neither T nor U are not polymorphic
+      <li>permitted in other cases.
+      <li>fails to detect erroneas casts of polymophic pointers/references at runtime.
+      <li>does not permit "cross casting"
+      <li>inline function calls can be optimized away during compile time.
+    </ul>
+  </dd>
+  <p>
+  <dt><code>dynamic_cast&lt;T *<&gt;(U *)<br>dynamic_cast&lt;T &<&gt;(U &)</code></dt>
+  <dd>
+    <ul>
+      <li>permitted if either T or U are polymorphic
+      <li>prohibited in other cases.
+      <li>throws exception on detecting erroneas casts of polymorphic pointers/references
+          at runtime.
+      <li>permits "cross casting"
+      <li>cannot optimise inline virtual functions at compile time.
+    </ul>
+  </dd>
+</dl>
+
+These rules can make it difficult to use casting with a function template argument.
+Consider the following example:
+
+<pre><code>
+#include &lt;boost/serialization/smart_cast.hpp&gt;
+
+struct top {
+};
+
+struct base1 : public top {
+    bool is_storable() const {
+        return true;
+    }
+    virtual ~base1();
+};
+
+struct base2 {
+    virtual ~base2();
+};
+
+struct derived1 :
+    public base1
+{
+    derived1();
+};
+
+struct derived2 :
+    public base1, 
+    public base2
+{
+    derived2();
+};
+
+template&lt;class T&gt;
+bool is_storable(T &amp;t){
+    // what type of cast to use here?
+
+    // this fails at compiler time when T == base2
+    // return static_cast&lt;base1 &amp;&gt;(t).is_storable();
+
+    // this fails at compiler time when T == top
+    // otherwise it works but cannot optimize inline function call
+    // return dynamic_cast&lt;base1 &amp;&gt;(t).is_storable();
+
+    // this always works - and is guarenteed to generate the fastest code !
+    return (boost::smart_cast_reference&lt;base1 &amp;&gt;(t)).is_storable();
+}
+
+int main(){
+    derived1 d1;
+    top &amp; t1 = d1;
+    derived2 d2;
+    base2 &amp; b2 = d2;
+
+    bool result;
+    result = is_storable(d1);   
+    result = is_storable(d2);   
+    result = is_storable(b2);
+    result = is_storable(b2);
+    result = is_storable(t1);
+    return 0;
+}
+</code></pre>
+The serialization library includes a mix of classes which use
+both static polymorphism (<strong>CRTP</strong>) and dynamic
+polymorphism via virtual functions.  <code style="white-space: normal">smart_cast</code> 
+was written to address the more problematic manifestations of the
+situation exmplified above.
+
+<h3>Usage</h3>
+The following syntax is supported:
+<pre><code>
+smart_cast&lt;Target *, Source *&gt;(Source * s);
+smart_cast&lt;Target *>(Source * s);
+smart_cast&lt;Target &, Source &amp;&gt(Source &amp; s);
+</code></pre>
+Note that the above syntax doesn't include 
+<pre><code>
+smart_cast&lt;Target &amp; &gt(Source &amp; s)
+</code></pre>
+but the same functionality is supported the the following special syntax
+<pre><code>
+smart_cast_reference&lt;Target &amp;&gt(Source &amp; s)
+</code></pre>
+
+<h3>Requirements</h3>
+<code style="white-space: normal">smart_cast</code> can be used only on compilers that support partial
+template specialization or on types for which have be specified with the
+macro <code style="white-space: normal">
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(&lt;type&gt;)</code>
+has been applied.
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/special.html b/deal.II/contrib/boost/libs/serialization/doc/special.html
new file mode 100644 (file)
index 0000000..ea95bf6
--- /dev/null
@@ -0,0 +1,591 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Special Considerations</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Special Considerations</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#objecttracking">Object Tracking</a>
+  <dt><a href="#classinfo">Class Information</a>
+  <dt><a href="#portability">Archive Portability</a>
+  <dl class="page-index">
+    <dt><a href="#numerics">Numerics</a>
+    <dt><a href="#traits">Traits</a>
+  </dl>
+  <dt><a href="#binary_archives">Binary Archives</a>
+  <dt><a href="#xml_archives">XML Archives</a>
+  <dt><a href="#export">Exporting Class Serialization</a>
+  <dt><a href="#static_libraries">Static Libraries and Serialization</a>
+  <dt><a href="#dlls">DLLS - Serialization and Runtime Linking</a>
+  <dt><a href="#plugins">Plugins</a>
+  <dt><a href="#multi_threading">Multi-Threading</a>
+  <dt><a href="#optimizations">Optimizations</a>
+  <dt><a href="exceptions.html">Archive Exceptions</a>
+  <dt><a href="exception_safety.html">Exception Safety</a>
+</dl>
+
+<h3><a name="objecttracking">Object Tracking</a></h3>
+Depending on how the class is used and other factors, serialized objects
+may be tracked by memory address.  This prevents the same object from being
+written to or read from an archive multiple times. These stored addresses
+can also be used to delete objects created during a loading process
+that has been interrupted by throwing of an exception.  
+<p>
+This could cause problems in 
+progams where the copies of different objects are saved from the same address.
+<pre><code>
+template&lt;class Archive&gt;
+void save(boost::basic_oarchive  &amp; ar, const unsigned int version) const
+{
+    for(int i = 0; i &lt; 10; ++i){
+        A x = a[i];
+        ar &lt;&lt; x;
+    }
+}
+</code></pre>
+In this case, the data to be saved exists on the stack.  Each iteration
+of the loop updates the value on the stack.  So although the data changes
+each iteration, the address of the data doesn't.  If a[i] is an array of
+objects being tracked by memory address, the library will skip storing
+objects after the first as it will be assumed that objects at the same address
+are really the same object.
+<p>
+To help detect such cases, output archive operators expect to be passed
+<code style="white-space: normal">const</code> reference arguments.
+<p>
+Given this, the above code will invoke a compile time assertion.
+The obvious fix in this example is to use
+<pre><code>
+template&lt;class Archive&gt;
+void save(boost::basic_oarchive &amp; ar, const unsigned int version) const
+{
+    for(int i = 0; i &lt; 10; ++i){
+        ar &lt;&lt; a[i];
+    }
+}
+</code></pre>
+which will compile and run without problem.  
+The usage of <code style="white-space: normal">const</code> by the output archive operators
+will ensure that the process of serialization doesn't
+change the state of the objects being serialized.  An attempt to do this
+would constitute augmentation of the concept of saving of state with
+some sort of non-obvious side effect. This would almost surely be a mistake 
+and a likely source of very subtle bugs.
+<p>
+Unfortunately, implementation issues currently prevent the detection of this kind of
+error when the data item is wrapped as a name-value pair.
+<p>
+A similar problem can occur when different objects are loaded to and address
+which is different from the final location:
+<pre><code>
+template&lt;class Archive&gt;
+void load(boost::basic_oarchive  &amp; ar, const unsigned int version) const
+{
+    for(int i = 0; i &lt; 10; ++i){
+        A x;
+        ar &gt;&gt; x;
+        std::m_set.insert(x);
+    }
+}
+</code></pre>
+In this case, the address of <code>x</code> is the one that is tracked rather than
+the address of the new item added to the set.  Left unaddressed
+this will break the features that depend on tracking such as loading object through a pointer.
+Subtle bugs will be introduced into the program.  This can be
+addressed by altering the above code thusly:
+
+<pre><code>
+template&lt;class Archive&gt;
+void load(boost::basic_iarchive  &amp; ar, const unsigned int version) const
+{
+    for(int i = 0; i &lt; 10; ++i){
+        A x;
+        ar &gt;&gt; x;
+        std::pair&lt;std::set::const_iterator, bool&gt; result;
+        result = std::m_set.insert(x);
+        ar.reset_object_address(& (*result.first), &x);
+    }
+}
+</code></pre>
+This will adjust the tracking information to reflect the final resting place of 
+the moved variable and thereby rectify the above problem.
+<p>
+If it is known a priori that no pointer
+values are duplicated, overhead associated with object tracking can
+be eliminated by setting the object tracking class serialization trait
+appropriately.
+<p>
+By default, data types designated primitive by 
+<a target="detail" href="traits.html#level">Implementation Level</a>
+class serialization trait are never tracked. If it is desired to
+track a shared primitive object through a pointer (e.g. a
+<code style="white-space: normal">long</code> used as a reference count), It should be wrapped
+in a class/struct so that it is an identifiable type.
+The alternative of changing the implementation level of a <code style="white-space: normal">long</code>
+would affect all <code style="white-space: normal">long</code>s serialized in the whole
+program - probably not what one would intend.
+<p>
+It is possible that we may want to track addresses even though
+the object is never serialized through a pointer.  For example,
+a virtual base class need be saved/loaded only once.  By setting
+this serialization trait to <code style="white-space: normal">track_always</code>, we can suppress 
+redundant save/load operations.
+<pre><code>
+BOOST_CLASS_TRACKING(my_virtual_base_class, boost::serialization::track_always)
+</code></pre>
+
+<h3><a name="classinfo">Class Information</a></h3>
+By default, for each class serialized, class information is written to the archive.
+This information includes version number, implementation level and tracking
+behavior.  This is necessary so that the archive can be correctly
+deserialized even if a subsequent version of the program changes
+some of the current trait values for a class.  The space overhead for
+this data is minimal.  There is a little bit of runtime overhead
+since each class has to be checked to see if it has already had its
+class information included in the archive.  In some cases, even this
+might be considered too much.  This extra overhead can be eliminated
+by setting the 
+<a target="detail" href="traits.html#level">implementation level</a>
+class trait to: <code style="white-space: normal">boost::serialization::object_serializable</code>. 
+<p>
+<i>Turning off tracking and class information serialization will result
+in pure template inline code that in principle could be optimised down
+to a simple stream write/read.</i>  Elimination of all serialization overhead
+in this manner comes at a cost.  Once archives are released to users, the
+class serialization traits cannot be changed without invalidating the old
+archives.  Including the class information in the archive assures us
+that they will be readable in the future even if the class definition
+is revised.  A light weight structure such as display pixel might be
+declared in a header like this:
+
+<pre><code>
+#include &lt;boost/serialization/serialization.hpp&gt;
+#include &lt;boost/serialization/level.hpp&gt;
+#include &lt;boost/serialization/tracking.hpp&gt;
+
+// a pixel is a light weight struct which is used in great numbers.
+struct pixel
+{
+    unsigned char red, green, blue;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int /* version */){
+        ar &lt;&lt; red &lt;&lt; green &lt;&lt; blue;
+    }
+};
+
+// elminate serialization overhead at the cost of
+// never being able to increase the version.
+BOOST_CLASS_IMPLEMENTATION(pixel, boost::serialization::object_serializable);
+
+// eliminate object tracking (even if serialized through a pointer)
+// at the risk of a programming error creating duplicate objects.
+BOOST_CLASS_TRACKING(pixel, boost::serialization::track_never)
+</code></pre>
+
+<h3><a name="portability">Archive Portability</a></h3>
+Several archive classes create their data in the form of text or portable a binary format.  
+It should be possible to save such an of such a class on one platform and load it on another.  
+This is subject to a couple of conditions.
+<h4><a name="numerics">Numerics</a></h4>
+The architecture of the machine reading the archive must be able hold the data
+saved.  For example, the gcc compiler reserves 4 bytes to store a variable of type
+<code style="white-space: normal">wchar_t</code> while other compilers reserve only 2 bytes.  
+So its possible that   a value could be written that couldn't be represented by the loading program.  This is a
+fairly obvious situation and easily handled by using the numeric types in
+<a target="cstding" href="../../../boost/cstdint.hpp">&lt;boost/cstdint.hpp&gt;</a>
+<P>
+A special integral type is <code>std::size_t</code> which is a typedef
+of an integral types guaranteed to be large enough
+to hold the size of any collection, but its actual size can differ depending
+on the platform. The 
+<a href="wrappers.html#collection_size_type"><code>collection_size_type</code></a>
+wrapper exists to enable a portable serialization of collection sizes by an archive.
+Recommended choices for a portable serialization of collection sizes are to 
+use either 64-bit or variable length integer representation.
+
+
+<h4><a name="traits">Traits</a></h4>
+Another potential problem is illustrated by the following example:
+<pre><code>
+template&lt;class T&gt;
+struct my_wrapper {
+    template&lt;class Archive&gt;
+    Archive & serialize ...
+};
+
+...
+
+class my_class {
+    wchar_t a;
+    short unsigned b;
+    template&lt;class Archive&gt;
+    Archive & serialize(Archive & ar, unsigned int version){
+        ar & my_wrapper(a);
+        ar & my_wrapper(b);
+    }
+};
+</code></pre>
+If <code style="white-space: normal">my_wrapper</code> uses default serialization
+traits there could be a problem.  With the default traits, each time a new type is
+added to the archive, bookkeeping information is added. So in this example, the
+archive would include such bookkeeping information for 
+<code style="white-space: normal">my_wrapper&lt;wchar_t&gt;</code> and for
+<code style="white-space: normal">my_wrapper&lt;short_unsigned&gt;</code>.
+Or would it?  What about compilers that treat 
+<code style="white-space: normal">wchar_t</code> as a
+synonym for <code style="white-space: normal">unsigned short</code>?
+In this case there is only one distinct type - not two.  If archives are passed between
+programs with compilers that differ in their treatment 
+of <code style="white-space: normal">wchar_t</code> the load operation will fail
+in a catastrophic way.
+<p>
+One remedy for this is to assign serialization traits to the template
+<code style="white-space: normal">my_template</code> such that class
+information for instantiations of this template is never serialized.  This 
+process is described <a target="detail" href="traits.html#templates">above</a> and
+has been used for <a target="detail" href="wrappers.html#nvp"><strong>Name-Value Pairs</strong></a>.
+Wrappers would typically be assigned such traits.
+<p>
+Another way to avoid this problem is to assign serialization traits
+to all specializations of the template <code style="white-space: normal">my_wrapper</code>
+for all primitive types so that class information is never saved.  This is what has
+been done for our implementation of serializations for STL collections.
+
+<h3><a name="binary_archives">Binary Archives</a></h3>
+Standard stream i/o on some systems will expand linefeed characters to carriage-return/linefeed 
+on output. This creates a problem for binary archives.  The easiest way to handle this is to 
+open streams for binary archives in "binary mode" by using the flag 
+<code style="white-space: normal">ios::binary</code>.  If this is not done, the archive generated
+will be unreadable.
+<p>
+Unfortunately, no way has been found to detect this error before loading the archive.  Debug builds
+will assert when this is detected so that may be helpful in catching this error.
+
+<h3><a name="xml_archives">XML Archives</a></h3>
+XML archives present a somewhat special case. 
+XML format has a nested structure that maps well to the "recursive class member visitor" pattern 
+used by the serialization system. However, XML differs from other formats in that it 
+requires a name for each data member. Our goal is to add this information to the 
+class serialization specification while still permiting the the serialization code to be 
+used with any archive. This is achived by requiring that all data serialized to an XML archive
+be serialized as a <a target="detail" href="wrappers.html#nvp">name-value pair</a>.
+The first member is the name to be used as the XML tag for the
+data item while the second is a reference to the data item itself. Any attempt to serialize data
+not wrapped in a in a <a target="detail" href="wrappers.html#nvp">name-value pair</a> will
+be trapped at compile time. The system is implemented in such a way that for other archive classes,
+just the value portion of the data is serialized. The name portion is discarded during compilation.
+So by always using <a target="detail" href="wrappers.html#nvp">name-value pairs</a>, it will
+be guarenteed that all data can be serialized to all archive classes with maximum efficiency.
+
+<h3><a name="export">Exporting Class Serialization</a></h3>
+<a target="detail" href="traits.html#export">Elsewhere</a> in this manual, we have described 
+<code style="white-space: normal">BOOST_CLASS_EXPORT</code>. 
+Export implies two things:
+<ul>
+<li>Instantiates code which is not otherwise referred to.
+<li>Associates an external identifier with the class to be serialized.
+The fact that the class isn't explicitly referred to implies this
+requirement.
+</ul>
+In C++, usage of code not explicitly referred to is implemented via
+virtual functions.  Hence, the need for export is implied by the 
+usage of a derived class that is manipulated via a pointer or
+reference to it's base class.
+
+<p>
+<code style="white-space: normal">BOOST_CLASS_EXPORT</code> in the same
+source module that includes any of the archive class headers will
+instantiate code required to serialize polymorphic pointers of
+the indicated type to the all those archive classes. If no
+archive class headers are included, then no code will be instantiated.
+
+<p>
+Note that the implemenation of this functionality requires
+that the <code style="white-space: normal">BOOST_CLASS_EXPORT</code>
+macro appear <b>after</b> and the inclusion of any archive
+class headers for which code is to be instantiated.
+So, code that uses <code style="white-space: normal">BOOST_CLASS_EXPORT</code>
+will look like the following:
+<pre><code>
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+... // other archives
+
+#include "a.hpp" // header declaration for class a
+BOOST_CLASS_EXPORT(a)
+... // other class headers and exports
+</code></pre>
+This will be true regardless of whether the is part
+of a stand alone executable, a static library or
+a dyanmic or shared library.  
+<p>
+Including
+<code style="white-space: normal">BOOST_CLASS_EXPORT</code>
+in the "a.hpp" header itself as one would do with
+other serialization traits will make it difficult
+or impossible to follow the rule above regarding
+inclusion of archive headers before
+<code style="white-space: normal">BOOST_CLASS_EXPORT</code>
+is invoked. This can best be addressed by using
+<code style="white-space: normal">BOOST_CLASS_EXPORT_KEY</code>
+in the header declarations and
+<code style="white-space: normal">BOOST_CLASS_EXPORT_IMPLEMENT</code>
+in the class definition file.
+
+<p>
+This system has certain implications for placing code in static or shared
+libraries.  Placing <code style="white-space: normal">BOOST_CLASS_EXPORT</code>
+in library code will have no effect unless archive class headers are
+also included.  So when building a library, one should include all headers
+for all the archive classes which he anticipates using. Alternatively,
+one can include headers for just the
+<a href="archive_reference.html#polymorphic">Polymoprhic Archives</a>.
+
+<p>
+Strictly speaking, export should not be necessary if all pointer serialization
+occurs through the most derived class.  However, in order to detect
+what would be catastophic error, the library traps ALL serializations through
+a pointer to a polymorphic which are not exported or otherwise registered.
+So, in practice, be prepared to register or export all classes with one
+or more virtual functions which are serialized through a pointer. 
+
+<p>
+Note that the implementation of this functionality depends upon vendor
+specific extensions to the C++ language.  So, there is no guarenteed portability
+of programs which use this facility.  However, all C++ compilers which
+are tested with boost provide the required extensions.  The library
+includes the extra declarations required by each of these compilers.
+It's reasonable to expect that future C++ compilers will support
+these extensions or something equivalent.
+
+<h3><a name="static_libraries">Static Libraries and Serialization</a></h3>
+Code for serialization of data types can be saved in libraries
+just as it can for the rest of the type implementation.
+This works well, and can save huge amount of compilation time.
+<ul>
+<li>Only compile serialization definitions in the library.
+<li>Explicitly instantiate serialization code for ALL
+archive classes you intend to use in the library.
+<li>For exported types, only use <code style="white-space: normal">BOOST_CLASS_EXPORT_KEY</code>
+in headers.
+<li>For exported types, only use <code style="white-space: normal">BOOST_CLASS_EXPORT_IMPLEMENT</code>
+in definitions compiled in the library.  For any particular type,
+there should be only one file which contains
+<code style="white-space: normal">BOOST_CLASS_EXPORT_IMPLEMENT</code>
+for that type.  This ensures that only one copy
+of serialization code will exist within the program.  It avoids
+wasted space and the possibility of having different
+versions of the serialization code in the same program.
+Including
+<code style="white-space: normal">BOOST_CLASS_EXPORT_IMPLEMENT</code>
+in multiple files could result in a failure
+to link due to duplicated symbols or the throwing
+of a runtime exception.
+<li> Code for serialization should be only in the library,
+<li>Familiarize yourself with the <b>PIMPL</b> idiom.
+</ul>
+This is illustrated by
+<a href = "../example/demo_pimpl.cpp" target="demo_pimpl">
+<code style="white-space: normal">demo_pimpl.cpp</code>
+</a>,
+<a href = "../example/demo_pimpl_A.cpp" target="demo_pimpl">
+<code style="white-space: normal">demo_pimpl_A.cpp</code>
+</a>
+and
+<a href = "../example/demo_pimpl_A.hpp" target="demo_pimpl">
+<code style="white-space: normal">demo_pimpl_A.hpp</code>
+</a>
+where implementation of serializaton is in a static library 
+completely separate from the main program.
+
+<h3><a name="dlls">DLLS - Serialization and Runtime Linking</a></h3>
+Serialization code can be placed in libraries to be linked at runtime.  That is,
+code can be placed in DLLS(Windows) Shared Libraries(*nix), or static libraries
+as well as the main executable.  The best technique is the
+same as that described above for libraries.  The serialization
+library test suite includes the following programs
+to illustrate how this works:
+<p>
+
+<a href = "../test/test_dll_simple.cpp" target="test_dll_simple">
+<code style="white-space: normal">test_dll_simple</code>
+</a>,
+and
+<a href = "../test/dll_a.cpp" target="dll_a">
+<code style="white-space: normal">dll_a.cpp</code>
+</a>
+where implementation of serializaton is also completely separate
+from the main program but the code is loaded at runtime.  In this
+example, this code is loaded automatically when the program which
+uses it starts up, but it could just as well be loaded and unloaded 
+with an OS dependent API call.
+<p>
+Also included are
+<a href = "../test/test_dll_exported.cpp" target="test_dll_exported">
+<code style="white-space: normal">test_dll_exported.cpp</code>
+</a>,
+and
+<a href = "../test/polymorphic_derived2.cpp" target="polymorphic_derived2">
+<code style="white-space: normal">polymorphic_derived2.cpp</code>
+</a>
+which are similar to the above but include tests of the export
+and no_rtti facilities in the context of DLLS.
+<p>
+For best results, write your code to conform to the following
+guidelines:
+<ul>
+  <li>Don't include <code>inline</code> code in classes used in DLLS.
+This will generate duplicate code in the DLLS and mainline. This
+needlessly duplicates code.  Worse, it makes is possible for 
+different versions of the same code exist simultaneously.  This
+type of error turns out to be excruciatingly difficult to debug.
+Finally, it opens the possibility that module being referred to
+might be explictly unloaded which would (hopefully) result in
+a runtime error. This is another bug that is not always 
+reproducible or easy to find. For class member templates use something like
+
+<pre><code>
+template&lt;class Archive&gt;
+void serialize(Archive & ar, const unsigned int version);
+</code></pre>
+in the header, and
+
+<pre><code>
+template&lt;class Archive&gt;
+void myclass::serialize(Archive & ar, const unsigned int version){
+       ...
+}
+
+BOOST_EXPORT_CLASS_IMPLEMENT(my_class)
+
+#include &lt;boost/archive/text_oarchive&gt;
+#include &lt;boost/archive/text_iarchive&lt;
+template myclass::serialize(boost::archive::text_oarchive & ar, const unsigned int version);
+template myclass::serialize(boost::archive::text_iarchive & ar, const unsigned int version);
+... // repeat for each archive class to be used.
+</code></pre>
+in the implementation file.  This will result in generation of all code
+required in only one place.  The library does not detect this type of error for you.
+  <li>If DLLS are to be loaded an unloaded explicitly (e.g. using <code>dlopen</code> in *nix or 
+<code>LoadLibrary</code> in Windows).  Try to arrange that they are unloaded in the reverse
+sequence.  This should guarentee that problems are avoided even if the
+above guidline hasn't been followed.
+
+</ul>
+
+<h3><a name="plugins">Plugins</a></h3>
+In order to implement the library, various facilities for runtime
+manipulation of types are runtime were required.  These
+are <a target="detail" href="extended_type_info.html"><code>extended_type_info</code></a>
+for associating classes with external identifying strings (<b>GUID</b>)
+and <a target="detail" href="void_cast.html"><code>void_cast</code></a>
+for casting between pointers of related types.
+
+To complete the functionality of 
+<a target="detail" href="extended_type_info.html"><code>extended_type_info</code></a>
+the ability to construct and destroy corresponding types has been
+added.  In order to use this functionality, one must specify
+how each type is created.  This should be done at the time
+a class is exported.  So, a more complete example of the code above would be:
+
+<pre><code>
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+... // other archives
+
+#include "a.hpp" // header declaration for class a
+
+// this class has a default constructor
+BOOST_SERIALIZATION_FACTORY_0(a)
+// as well as one that takes one integer argument
+BOOST_SERIALIZATION_FACTORY_1(a, int)
+
+// specify the GUID for this class
+BOOST_CLASS_EXPORT(a)
+... // other class headers and exports
+</code></pre>
+
+With this in place, one can construct, serialize and destroy
+about which only is know the <b>GUID</b> and a base class.
+
+
+<h3><a name="multi_threading">Multi-Threading</a></h3>
+The fundamental purpose of serialization would conflict with multiple 
+thread concurrently writing/reading from/to a single open archive instance.
+The library implementation presumes that the application avoids such an situtation.
+<p>
+However, Writing/Reading different archives simultaneously
+in different tasks is permitted as each archive instance is (almost) 
+completely independent from any other archive instance.  The only shared 
+information are some type tables which have been implemented using a 
+lock-free thread-safe 
+<a target="detail" href="singleton.html">
+<code style="white-space: normal">singleton</code>
+</a>
+described elsewhere in this documentation.
+<p>
+This singleton implementation guarentees that all of this shared
+information is initialized when the code module which contains
+them is loaded.  The serialization library takes care to
+ensure that these data structures are not subsequently
+modified. The only time there could be a problem would
+be if code is loaded/unloaded while another task is
+serializing data.  This could only occur for types whose 
+serialization is implemented in a dynamically loaded/unload DLL
+or shared library.  So if the following is avoided:
+<ul>
+    <li>Accessing the same archive instance from different tasks.
+    <li>Loading/Unloading DLLS or shared libraries while any archive
+    instances are open.
+</ul>
+The library should be thread safe.
+
+<h3><a name="optimizations">Optimizations</a></h3>
+In performance critical applications that serialize large sets of contiguous data of homogeneous
+types one wants to avoid the overhead of serializing each element individually, which is
+the motivation for the <a href="wrappers.html#arrays"><code>array</code></a>
+wrapper.
+
+Serialization functions for data types containing contiguous arrays of homogeneous
+types, such as for <code>std::vector</code>, <code>std::valarray</code> or  
+<code>boost::multiarray</code> should serialize them using an
+<a href="wrappers.html#arrays"><code>array</code></a> wrapper to make use of 
+these optimizations.
+
+Archive types that can provide optimized serialization for contiguous arrays of 
+homogeneous types should implement these by overloading the serialization of
+the  <a href="wrappers.html#arrays"><code>array</code></a> wrapper, as is done
+for the binary archives.
+
+
+<h3><a href="exceptions.html">Archive Exceptions</a></h3>
+<h3><a href="exception_safety.html">Exception Safety</a></h3>
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/state_saver.html b/deal.II/contrib/boost/libs/serialization/doc/state_saver.html
new file mode 100644 (file)
index 0000000..1fc1bd5
--- /dev/null
@@ -0,0 +1,82 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - <code style="white-space: normal">state_saver</code></title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code style="white-space: normal">state_saver</code</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<p>
+Sometimes a certain value has to change only for a limited scope. 
+This class wrapper saves a copy of the current state of some object, 
+and resets the object's state at destruction time, undoing any change the object 
+may have gone through.  Here is the interface:
+
+<pre><code>
+template<class T>
+// T requirements:
+//  - POD or object semantic (cannot be reference, function, ...)
+//  - copy constructor
+//  - operator = (no-throw one preferred)
+class state_saver : private boost::noncopyable
+{
+private:
+    ... // implementation
+
+public:
+    state_saver(T & object);
+    ~state_saver();
+};
+</code></pre>
+
+The complete implementation can be found
+<a target="state_saver" href="../../../boost/serialization/state_saver.hpp">here</a>
+
+The following illustrates how this is expected to be used.
+
+<pre><code>
+#include &lt;boost/state_saver.hpp&gt;
+
+void func(A & a)
+    boost::state_saver&lt;A&gt; s(a);
+    ... // alter state of a by calling non-const functions
+    ... // call other functions
+    // original state of a automatically restored on exit
+}
+</pre></code>
+
+<h3>History</h3>
+This is a generalization of Daryle Walker's 
+<a href="../../../libs/io/doc/ios_state.html">io_state_saver</a> library.
+<p>
+Robert Ramey made an initial version for the serialization library.
+<p>
+Pavel Vozenilek made several non-obvious refinements to make it more
+secure and boost friendly
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/static_warning.html b/deal.II/contrib/boost/libs/serialization/doc/static_warning.html
new file mode 100644 (file)
index 0000000..050f154
--- /dev/null
@@ -0,0 +1,53 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - BOOST_STATIC_WARNING</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code>BOOST_STATIC_WARNING</code></h2>
+    </td>
+  </tr>
+</table>
+<hr>
+
+The header <code>&lt;boost/serialization/static_warning.hpp&gt;</code> supplies a single macro 
+<code style="white-space: normal">BOOST_STATIC_WARNING(x)</code>, which generates a compile time warning message if 
+the integral-constant-expression x is not true. 
+<p>
+Note that if the condition is true, then the macro will generate neither 
+code nor data - and the macro can also be used at either namespace, 
+class or function scope. When used in a template, the expression x 
+will be evaluated at the time the template is instantiated; this is 
+particularly useful for validating template parameters. 
+<p>
+It is intended that the functioning of <code style="white-space: normal">BOOST_STATIC_WARNING(x)</code>
+be identical to that of <code style="white-space: normal">BOOST_STATIC_ASSERT(x)</code>
+except that rather than resulting in a compilation error, it will result in
+a compiler warning.  In all other respects it should be the same.  So
+for more information on using <code style="white-space: normal">BOOST_STATIC_WARNING(x)</code>
+consult the documentation for <code style="white-space: normal">BOOST_STATIC_ASSERT(x)</code>
+<a href="../../../doc/html/boost_staticassert.html">here</a>.
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/strong_typedef.html b/deal.II/contrib/boost/libs/serialization/doc/strong_typedef.html
new file mode 100644 (file)
index 0000000..bc8f25d
--- /dev/null
@@ -0,0 +1,91 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - BOOST_STATIC_WARNING</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code style="white-space: normal">BOOST_STRONG_TYPEDEF</code></h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<h3>Motivation</h3>
+<code style="white-space: normal">typedef</code> creates an alias for an existing type.  It does not create
+a new type that can be used for matching either function or template parameters.
+This can be shown by trying to compile the following example.
+<pre></code>
+typedef int a;
+void f(int x);  // (1) function to handle simple integers
+void f(a x);    // (2) special function to handle integers of type a 
+int main(){
+    int x = 1;
+    a y;
+    y = x;      // other operations permitted as a is converted as necessary
+    f(x);       // chooses (1)
+    f(y);       // chooses (2)
+}
+</code></pre>
+Since typedef doesn't create a new type, this program can't compile to code
+that implements its obvious intention.  
+<p>
+Usage of BOOST_STRONG_TYPEDEF
+addresses this.
+<pre></code>
+<a target="strong_typedef" href="../../../boost/strong_typedef.hpp">
+#include &lt;boost/serialization/strong_typedef.hpp&gt;
+</a>
+
+BOOST_STRONG_TYPEDEF(int, a)
+void f(int x);  // (1) function to handle simple integers
+void f(a x);    // (2) special function to handle integers of type a 
+int main(){
+    int x = 1;
+    a y;
+    y = x;      // other operations permitted as a is converted as necessary
+    f(x);       // chooses (1)
+    f(y);       // chooses (2)
+}
+</code></pre>
+The program will now compile and run as expected.
+
+<h3>Usage</h3>
+Syntax of <code style="white-space: normal">BOOST_STRONG_TYPEDEF</code>
+has been designed to be similar to the standard
+<code style="white-space: normal">typedef</code>.  So
+
+<pre><code>
+BOOST_STRONG_TYPEDEF(primitive type, name)
+</code></pre>
+
+will create a new type "name" which will be substitutable for the original
+type but still of distinct type.
+
+<h3>Implemenation</h3>
+<code style="white-space: normal">BOOST_STRONG_TYPEDEF</code> is a macro
+which generates a class named "name" wraps and instance of its
+primitive type and provides appropriate conversion operators in order
+to make the new type substitutable for the one that it wraps.
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/style.css b/deal.II/contrib/boost/libs/serialization/doc/style.css
new file mode 100644 (file)
index 0000000..de95898
--- /dev/null
@@ -0,0 +1,15 @@
+pre{
+  BORDER-RIGHT: gray 1pt solid;
+  BORDER-TOP: gray 1pt solid;
+  BORDER-LEFT: gray 1pt solid;
+  BORDER-BOTTOM: gray 1pt solid;
+  MARGIN-LEFT: 0pt;
+  background-color: #EEEEEE;
+}
+
+/*
+(C) Copyright 2008 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+*/
\ No newline at end of file
diff --git a/deal.II/contrib/boost/libs/serialization/doc/todo.html b/deal.II/contrib/boost/libs/serialization/doc/todo.html
new file mode 100644 (file)
index 0000000..873feb4
--- /dev/null
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - To Do</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">To Do</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="index">
+  <dt><a href="#portablebinaryarchives">Portable Binary Archives</a></dt>
+  <dt><a href="#performancetesting">Performance Testing and Profiling</a></dt>
+  <dt><a href="#backversioning">Back Versioning</a></dt>
+  <dt><a href="#nortti">Testing for Environments with No RTTI</a></dt>
+  <dt><a href="new_case_studies.html">Additional Case Studies</a></dt>
+</dl>
+
+These are enhancements that the serialization library needs but have not been done.
+Some of these projects, though tricky, are not huge and would be suitable
+for someone who has a limited time to spend on them.  In particular, they
+might be of interest as student projects such as the Google Summer of Code.
+
+<h2><a name="portablebinaryarchives"></a>Portable Binary Archives</h2>
+Currently there is a portable binary archive in the examples directory.
+It is not regularly submitted to the exhaustive boost testing regimen
+but it is tested occasionally and has been used in production code.
+<p>
+Its missing the following:
+<ul>
+  <li>Addition of portable floating point types.  This is not trivial.  In addition to
+  handling floating point types of varying sizes, It requires
+  handling invalid floating point numbers (NaNs) in a portable manner.
+  <li>Some way to test archive portability within the Boost testing regimen.
+  <li>Integration into the Boost testing similar to the other archive classes.
+</ul>
+
+<h2><a name="performancetesting"></a>Performance Testing and Profiling</h2>
+
+I've managed to setup performance profiling using the following:
+<ul>
+  <li>current (as I write this) Boost.Build tools.
+  <li>the gcc compiler.
+  <li>and a shell script - profile.sh
+  <li>library_status program from the tools/regression/src directory
+</ul>
+Invoking profile script produces a 
+<a href="performance_status.html">table</a>
+which shows the results of each test and links to the actual
+profile.
+<p>
+The first thing I did was include some of the serialization library tests.
+It became immediatly apparent that these tests were totally unsuitable
+for performance testing and that new tests needed to be written for this 
+purpose.  These tests would highlight the location of any performance
+bottlenecks in the serialization library.  Whenever I've subjected my
+code in the past to this type of analysis, I've always been suprised
+to find bottlenecks in totally unanticipated places and fixing those
+has always lead to large improvements in performance.  I expect that
+this project would have a huge impact on the utility of the serialization
+library.
+
+<h2><a name="backversioning"></a>Back Versioning</h2>
+
+It has been suggested that a useful feature of the library would be
+the ability to create "older versions" of archives.  Currently,
+the library permits one make programs that are guarenteed
+the ability to load archives with classes of a previous version. 
+But there is not way to save classes in accordance with a
+previous version.  At first I dismissed this a a huge project
+with small demand.  A cursory examination of the code revealed
+that this would not be very difficult.  It would require some
+small changes in code and some additional tests.  Also it
+would require special treatment in the documentation - perhaps
+a case study.
+
+
+<h2><a name="nortti"></a>Environments without RTTI</h2>
+
+I note that some have commented that this library requires RTTI.
+This is not strictly true.  The examples and almost all the
+tests presume the existence of RTTI.  But it should be possible
+to use the library without it.  The example used for testing is an 
+<code style="white-space: normal">extended_typeinfo</code> 
+implemenation which presumes that all classes names have been exported. 
+So, to make this library compatible for platforms without RTTI, 
+a set of tests, examples and new manual section would have to be created
+
+<hr>
+<p>Revised 1 November, 2008 
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2008. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/traits.html b/deal.II/contrib/boost/libs/serialization/doc/traits.html
new file mode 100644 (file)
index 0000000..64d6c53
--- /dev/null
@@ -0,0 +1,807 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Class Serialization Traits</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Class Serialization Traits</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#version">Version</a>
+  <dt><a href="#level">Implementation Level</a>
+  <dt><a href="#tracking">Object Tracking</a>
+  <dt><a href="#export">Export Key</a>
+  <dt><a href="#abstract">Abstract</a>
+  <dt><a href="#typeinfo">Type Information Implementation</a>
+  <dt><a href="#wrappers">Wrappers</a>
+  <dt><a href="#bitwise">Bitwise Serialization</a>
+  <dt><a href="#templates">Template Serialization Traits</a>
+  <dt><a href="#compiletime_messages">Compile Time Warnings and Errors</a>
+</dl>
+Serialization of data depends on the type of the data.  For example, for
+primitive types such as an <code style="white-space: normal">int</code>, it wouldn't make sense to save
+a version number in the archive. Likewise, for a data type that is never
+serialized through a pointer, it would (almost) never make sense to track
+the address of objects saved to/loaded from the archive as it will never
+be saved/loaded more than once in any case.  Details of
+serialization for a particular data type will vary depending on the
+type, the way it is used and specifications of the programmer. 
+<p>
+One can alter the manner in which a particular data type is serialized
+by specifying one or more <strong>class serialization traits</strong>.
+It is not generally necessary for the programmer to explictly assign
+traits to his classes as there are default values for all traits.
+If the default values are not appropriate they can be assigned by the programmer.
+A template is used to associate a typename with a constant.  For example
+see <a href="../../../boost/serialization/version.hpp" target="version_hpp">
+version.hpp</a>.  
+<h3><a name="version">Version</a></h3>
+This header file includes the following code:
+
+<pre><code>
+namespace boost { 
+namespace serialization {
+template&lt;class T&gt;
+struct version
+{
+    BOOST_STATIC_CONSTANT(unsigned int, value = 0);
+};
+} // namespace serialization
+} // namespace boost
+</code></pre>
+
+For any class <code style="white-space: normal">T</code>, The default definition 
+of <code style="white-space: normal">boost::serialization::version&lt;T&gt;::value</code> is 0. 
+If we want to assign a value of 2 as the version for class <code style="white-space: normal">my_class</code>
+we specialize the version template:
+<pre><code>
+namespace boost { 
+namespace serialization {
+struct version&lt;my_class&gt;
+{
+    BOOST_STATIC_CONSTANT(unsigned int, value = 2);
+};
+} // namespace serialization
+} // namespace boost
+</code></pre>
+Now whenever the version number for class <code style="white-space: normal">my_class</code> is required,
+the value 2 will be returned rather than the default value of 0.
+<p>
+To diminish typing and enhance readability, a macro is defined
+so that instead of the above, we could write:
+<pre><code>
+BOOST_CLASS_VERSION(my_class, 2)
+</code></pre>
+which expands to the code above.
+
+<h3><a name="level">Implementation Level</a></h3>
+In the same manner as the above, the "level" of implementation of serialization is
+specified.  The header file <a href="../../../boost/serialization/level.hpp" 
+target="level_hpp">level.hpp</a> defines the following.
+<pre><code>
+// names for each level
+enum level_type
+{
+    // Don't serialize this type. An attempt to do so should
+    // invoke a compile time assertion.
+    not_serializable = 0,
+    // write/read this type directly to the archive. In this case
+    // serialization code won't be called.  This is the default
+    // case for fundamental types.  It presumes a member function or
+    // template in the archive class that can handle this type.
+    // there is no runtime overhead associated reading/writing
+    // instances of this level
+    primitive_type = 1,
+    // Serialize the objects of this type using the objects "serialize"
+    // function or template. This permits values to be written/read
+    // to/from archives but includes no class or version information. 
+    object_serializable = 2,
+    ///////////////////////////////////////////////////////////////////
+    // once an object is serialized at one of the above levels, the
+    // corresponding archives cannot be read if the implementation level
+    // for the archive object is changed.  
+    ///////////////////////////////////////////////////////////////////
+    // Add class information to the archive.  Class information includes
+    // implementation level, class version and class name if available.
+    object_class_info = 3,
+};
+</code></pre>
+Using a macro defined in <code style="white-space: normal">level.hpp</code> we can specify
+that <code style="white-space: normal">my_class</code> should be serialized along with its version number:
+<pre><code>
+BOOST_CLASS_IMPLEMENTATION(my_class, boost::serialization::object_class_info)
+</code></pre>
+If implementation level is not explicitly assigned, the system uses
+a default according to the following rules.
+<ul>
+  <li>if the data type is <code style="white-space: normal">volatile</code> 
+assign <code style="white-space: normal">not_serializable</code>
+  <li>else if it's an enum or fundamental type assign <code style="white-space: normal">primitive_type</code>
+  <li>else assign <code style="white-space: normal">object_class_info</code>
+</ul>
+That is, for most user defined types, objects will be serialized along with
+class version information. This will permit one to maintain backward
+compatibility with archives which contain previous versions.  However, with this 
+ability comes a small runtime cost.  For types whose definition will "never" 
+change, efficiency can be gained by specifying <code style="white-space: normal">object_serializable</code> 
+to override the default setting of <code style="white-space: normal">object_class_info</code>.  
+For example, 
+this has been done for the  
+<a href="../../../boost/serialization/binary_object.hpp" target="binary_object_hpp">
+binary_object wrapper</a>
+
+<h3><a name="tracking">Object Tracking</a></h3>
+Depending on the way a type is used, it may be necessary or convenient to
+track the address of objects saved and loaded.  For example, this is generally
+necessary while serializing objects through a pointer in order to be sure
+that multiple identical objects are not created when an archive is loaded.
+This "tracking behavior" is controlled by the type trait defined in the header
+file <a href="../../../boost/serialization/tracking.hpp" target="tracking_hpp">tracking.hpp</a>
+which defines the following:
+<pre><code>
+// names for each tracking level
+enum tracking_type
+{
+    // never track this type
+    track_never = 0,
+    // track objects of this type if the object is serialized through a 
+    // pointer.
+    track_selectively = 1,
+    // always track this type
+    track_always = 2
+};
+</code></pre>
+A corresponding macro is defined so that we can use:
+<pre><code>
+BOOST_CLASS_TRACKING(my_class, boost::serialization::track_never)
+</code></pre>
+Default tracking traits are:
+<ul>
+  <li>For primitive, <code style="white-space: normal">track_never</code>.
+  <li>For pointers, <code style="white-space: normal">track_never</code>.
+  That is, addresses of addresses are not tracked by default.
+  <li>All current serialization wrappers such as <code style="white-space: normal">boost::serialization::nvp</code>,
+  <code style="white-space: normal">track_never</code>.
+  <li>For all other types, <code style="white-space: normal">track_selectively</code>.
+  That is addresses of serialized objects are tracked if and only if
+  one or more of the following is true:
+  <ul>
+  <li>an object of this type is anywhere in the program serialized
+  through a pointer.
+  <li>the class is explicitly "exported" - see below.
+  <li>the class is explicitly "registered" in the archive
+  </ul>
+</ul>
+
+<p>
+The default behavior is almost always the most convenient one.  However,
+there a few cases where it would be desirable to override the
+default.  One case is that of a virtual base class. In a diamond
+heritance structure with a virtual base class, object tracking
+will prevent redundant save/load invocations.  So here is one
+case where it might be convenient to override the default tracking
+trait. <i>(Note: in a future version the default will be reimplemented
+to automatically track classes used as virtual bases).</i> This 
+situation is demonstrated by 
+<a href="../test/test_diamond.cpp" target="test_diamond_cpp">test_diamond.cpp</a>
+included with the library.
+
+<h3><a name="export">Export Key</a></h3>
+
+When serializing a derived class through a virtual base class pointer,
+two issues may arise.
+<ul>
+<li> The code in the derived class might never be explicitly
+referred to.  Such code will never be instantiated.
+<p>
+This is addressed by invoking 
+<code style="white-space: normal">BOOST_CLASS_EXPORT_IMPLEMENT(T)</code>
+in the file which defines (implements) the class T.
+This ensures that code for the derived class T will
+be explicity instantiated.
+<li> There needs to be some sort of identifier which can
+be used to select the code to be invoked when the object
+is loaded.
+Standard C++ does implement <code style="white-space: normal">typeid()</code> which can be
+used to return a unique string for the class.  This is not entirely
+statisfactory for our purposes for the following reasons:
+<ul>
+  <li>There is no guarantee that the string is the same across platforms.
+  This would then fail to support portable archives.
+  <li>In using code modules from various sources, classes may have
+  to be wrapped in different namespaces in different programs.
+  <li>There might be classes locally defined in different code modules
+  that have the same name. 
+  <li>There might be classes with different names that we want to
+  consider equivalent for purposes of of serialization.
+</ul>
+<p>
+So in the serialization library, this is addressed by invoking
+<code style="white-space: normal">BOOST_CLASS_EXPORT_KEY2(my_class, "my_class_external_identifier")</code>
+in the header file which declares he class.
+In a large majority of applications, the class name works just fine
+for the external identifier string so the following short cut is
+defined -
+<code style="white-space: normal">BOOST_CLASS_EXPORT_KEY(my_class)</code>.
+</ul>
+For programs which consist of only one module - that is 
+programs which do not use DLLS, one can specify
+<code style="white-space: normal">BOOST_CLASS_EXPORT(my_class)</code>
+or
+<code style="white-space: normal">BOOST_CLASS_EXPORT_GUID(my_class, "my_class_external_identifier")</code>
+in either he declaration header or definition.  These macros
+expand to invocation of the of both of the macros described above.
+<i>(<b>GUID</b> stands for <b>G</b>lobally <b>U</b>nique <b>ID</b>entfier.)</i>
+<p>
+<i>(<a target="detail" href="special.html#export">Elsewhere</a>
+in this manual, the serialization of derived classes is addressed in detail.)</i>
+<p>
+The header file
+<a href="../../../boost/serialization/export.hpp" target="export_hpp">export.hpp</a>
+contains all macro definitions described here.
+The library will throw a runtime exception if
+<ul>
+<li> A type not explicitly referred to is not exported.
+<li> Serialization code for the same type is instantiated
+in more than one module (or DLL).
+</ul>
+
+<h3><a name="abstract">Abstract</a></h3>
+When serializing an object through a pointer to its base class,
+the library needs to determine whether or not the bas is abstract
+(i.e. has at least one virtual function).  The library uses the
+type trait macro <code style="white-space: normal">BOOST_IS_ABSTRACT(T)</code>
+to do this.  Not all compilers support this type trait and corresponding
+macro.  To address this, the macro <code style="white-space: normal">
+BOOST_SERIALIZATION_ASSUME_ABSTRACT(T)</code> has been
+implemented to permit one to explicitly indicate that a specified
+type is in fact abstract.  This will guarentee that
+<code style="white-space: normal">BOOST_IS_ABSTRACT</code>
+will return the correct value for all compilers.
+
+<h3><a name="typeinfo">Type Information Implementation</a></h3>
+This last trait is also related to the serialization of objects
+through a base class pointer.  The implementation of this facility
+requires the ability to determine at run time the true type of the
+object that a base class pointer points to.  Different serialization
+systems do this in different ways.  In our system, the default method
+is to use the function <code style="white-space: normal">typeid(...)</code> which is available 
+in systems which support <b>RTTI</b> (<b>R</b>un <b>T</b>ime 
+<b>T</b>ype <b>I</b>nformation).
+This will be satisfactory in almost all cases and most users of this 
+library will lose nothing in skipping this section of the manual.
+<p>
+However, there are some cases where the default type determination
+system is not convenient.  Some platforms might not support
+RTTI or it may have been disabled in order to speed execution
+or for some other reason.  Some applications, E.G. runtime linking
+of plug-in modules, can't depend on C++ RTTI to determine the
+true derived class.  RTTI only returns the correct type for polymorphic
+classes - classes with at least one virtual function.  If any of these
+situations applies, one may substitute his own implementation of
+<code style="white-space: normal">extended_type_info</code>
+<p>
+The interface to facilities required to implement serialization is defined in
+<a href="../../../boost/serialization/extended_type_info.hpp" 
+target="extended_type_info_hpp">extended_type_info.hpp</a>.
+
+Default implementation of these facilities based on <code style="white-space: normal">typeid(...)</code>
+is defined in
+
+<a href="../../../boost/serialization/extended_type_info_typeid.hpp" 
+target="extended_type_info_typeid_hpp">extended_type_info_typeid.hpp</a>.
+
+An alternative implementation based on exported class identifiers
+is defined in
+<a href="../../../boost/serialization/extended_type_info_no_rtti.hpp" 
+target="extended_type_info_rtti_hpp">extended_type_info_no_rtti.hpp</a>.
+<p>
+By invoking the macro:
+<pre><code>
+BOOST_CLASS_TYPE_INFO(
+    my_class, 
+    extended_type_info_no_rtti&lt;my_class&gt;
+)
+</code></pre>
+we can assign the type information implementation to each class on a case by
+case basis.  There is no requirement that all classes in a program use the same 
+implementation of <code style="white-space: normal">extended_type_info</code>.  This supports the concept
+that serialization of each class is specified "once and for all" in a header
+file that can be included in any project without change.
+<p>
+This is illustrated by the test program
+<a href="../test/test_no_rtti.cpp" target="test_no_rtti_cpp">test_no_rtti.cpp</a>.
+Other implementations are possible and might be necessary for
+certain special cases.
+
+version.hpp</a>.  
+<h3><a name="wrappers">Wrappers</a></h3>
+Archives need to treat wrappers diffently from other types since, for example,
+they usually are non-const object while output archives require that any
+serialized object (with the exception of a wrapper) be const. 
+
+This header file <a href="../../../boost/serialization/wrapper.hpp">wrapper.hpp</a>
+includes the following code:
+
+<pre><code>
+namespace boost { 
+namespace serialization {
+template&lt;class T&gt;
+struct is_wrapper
+ : public mpl::false_
+{};
+} // namespace serialization
+} // namespace boost
+</code></pre>
+
+For any class <code style="white-space: normal">T</code>, The default definition 
+of <code style="white-space: normal">boost::serialization::is_wrapper&lt;T&gt;::value</code> is thus false.
+If we want to declare that a class <code style="white-space: normal">my_class</code>
+is a wrapper we specialize the version template:
+<pre><code>
+namespace boost { 
+namespace serialization {
+struct is_wrapper&lt;my_class&gt;
+ : mpl::true_
+{};
+} // namespace serialization
+} // namespace boost
+</code></pre>
+<p>
+To diminish typing and enhance readability, a macro is defined
+so that instead of the above, we could write:
+<pre><code>
+BOOST_CLASS_IS_WRAPPER(my_class)
+</code></pre>
+which expands to the code above.
+
+<h3><a name="bitwise">Bitwise Serialization</a></h3>
+Some simple classes could be serialized just by directly copying all bits
+of the class. This is, in particular, the case for POD data types containing
+no pointer members, and which are neither versioned nor tracked. Some archives, 
+such as non-portable binary archives can make us of this information to 
+substantially speed up serialization.
+
+To indicate the possibility of bitwise serialization the type trait defined 
+in the header
+file <a href="../../../boost/serialization/is_bitwise_serializable.hpp" target="is_bitwise_serializable">is_bitwise_serializable.hpp</a>
+is used:
+<pre><code>
+namespace boost { namespace serialization {
+    template<class T>
+    struct is_bitwise_serializable
+     : public is_arithmetic<T>
+    {};
+} }
+</code></pre>
+is used, and can be specialized for other classes. The specialization
+is made easy by the corresponding macro:
+<pre><code>
+BOOST_IS_BITWISE_SERIALIZABLE(my_class)
+</code></pre>
+
+<h3><a name="templates">Template Serialization Traits</a></h3>
+In some instances it might be convenient to assign serialization traits
+to a whole group of classes at once.  Consider, the name-value pair
+wrapper 
+<pre><code>
+template&lt;class T&gt;
+struct nvp : public std::pair&lt;const char *, T *&gt;
+{
+    ...
+};
+</code></pre>
+used by XML archives to associate a name with a data variable of type T.
+These data types are never tracked and never versioned.  So one might
+want to specify:
+<pre><code>
+BOOST_CLASS_IMPLEMENTATION(nvp&lt;T&gt;, boost::serialization::level_type::object_serializable)
+BOOST_CLASS_TRACKING(nvp&lt;T&gt;, boost::serialization::track_never)
+</code></pre>
+Examination of the definition of these macros reveals that they won't expand
+to sensible code when used with a template argument.  So rather than using the
+convenience macros, use the original definitions
+<pre><code>
+template&lt;class T&gt;
+struct implementation_level&lt;nvp&lt;T&gt; &gt;
+{
+    typedef mpl::integral_c_tag tag;
+    typedef mpl::int_&lt;object_serializable&gt; type;
+    BOOST_STATIC_CONSTANT(
+        int,
+        value = implementation_level::type::value
+    );
+};
+
+// nvp objects are generally created on the stack and are never tracked
+template&lt;class T&gt;
+struct tracking_level&lt;nvp&lt;T&gt; &gt;
+{
+    typedef mpl::integral_c_tag tag;
+    typedef mpl::int_&lt;track_never&gt; type;
+    BOOST_STATIC_CONSTANT(
+        int, 
+        value = tracking_level::type::value
+    );
+};
+</code></pre>
+to assign serialization traits to all classes generated by the template
+<code style="white-space: normal">nvp&lt;T&gt;</code>
+<p>
+
+Note that it is only possible to use the above method to assign traits to 
+templates when using compilers which correctly support Partial Template Specialization.
+
+One's first impulse might be to do something like:
+
+<pre><code>
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+template&lt;class T&gt;
+struct implementation_level&lt;nvp&lt;T&gt; &gt;
+{
+   ... // see above
+};
+
+// nvp objects are generally created on the stack and are never tracked
+template&lt;class T&gt;
+struct tracking_level&lt;nvp&lt;T&gt; &gt;
+{
+   ... // see above
+};
+#endif
+</code></pre>
+This can be problematic when one wants to make his code <strong>and archives</strong>
+portable to other platforms.  It means the she objects will be serialized differently
+depending on the platform used.  This implies that objects saved from one platform
+won't be loaded properly on another.  In other words, archives won't be portable.
+<p>
+This problem is addressed by creating another method of assigning serialization traits
+to user classes.  This is illustrated by the serialization for a 
+<a target="nvp" href="../../../boost/serialization/nvp.hpp"><strong>name-value</strong> pair</a>.
+<p>
+Specifically, this entails deriving the template from a special class
+<a target="traits" href="../../../boost/serialization/traits.hpp">
+<code style="white-space: normal">boost::serialization::traits</code></a> which is specialized for a specific
+combination of serialization traits.  
+When looking up the serialization traits, the library first checks to see if this class has been
+used as a base class. If so, the corresponding traits are used.  Otherwise, the standard defaults
+are used. By deriving from a serialization traits class rather than relying upon Partial Template
+Specializaton, one can a apply serialization traits to a template and those traits will be
+the same across all known platforms.
+<p>
+The signature for the traits template is:
+<pre><code>
+template&lt;
+    class T,       
+    int Level, 
+    int Tracking,
+    unsigned int Version = 0,
+    class ETII = BOOST_SERIALIZATION_DEFAULT_TYPE_INFO(T),
+    class IsWrapper = mpl::false_
+&gt;
+struct traits
+</code></pre>
+and template parameters should be assigned according to the following table:
+<p>
+<table border>
+<tr><th align=left>parameter</th><th align=left>description</th><th align=left>permitted values</th><th align=left>default value</th></tr>
+<tr><td><code>T</code></td><td>target class</td><td>class name<T></td><td>none</td></tr>            
+<tr><td><code>Level</code></td><td>implementation level</td><td><code>not_serializable<br>primitive_type<br>object_serializable<br>object_class_info</code></td><td>none</td></tr>  
+<tr><td><code>Tracking</code></td><td>tracking level</td><td><code>track_never<br>track_selectivly<br>track_always</code></td><td>none</td></tr>
+<tr><td><code>Version</code></td><td><code>class version</td><td>unsigned integer</td><td><code>0</code></td></tr>
+<tr><td><code>ETTI</code></td><td><code>type_info</code> implementation</td><td><code>extended_type_info_typeid<br>extended_type_info_no_rtti</code></td><td>default <code>type_info implementation</code></td></tr>
+<tr><td><code>IsWrapper</code></td><td><code></code>is the type a wrapper?</td><td><code>mpl::false_<br>mpl::true_</code></td><td><code>mpl::false_</code></td></tr>
+</table>
+
+<h3><a name="compiletime_messages">Compile Time Warnings and Errors</a></h3>
+Some serialization traits can conflict with other ones.  Sometimes these conflicts
+will result in erroneous behavior (E.G. creating of archives which could not be read)
+and other times they represent a probable misconception on the part of the
+library user which could result in suprising behavior.  The extent possible,
+these conflicts are detected at compile time and errors (BOOST_STATIC_ASSERT) 
+or warnings (BOOST_STATIC_WARNING) are generated. The are generated in a
+compiler dependent way manner which should show an chain of instantiation
+to the point where the error/warning is detected.  Without this capability,
+it would be very hard to track down errors or unexpected behavior in library
+usage.  Here is list of the conflicts trapped:
+
+<dl>
+<dt><h2><a name="object_level">object_level</a> - error</h2></dt>
+<dd>
+This error traps attempts to serialize types whose
+implentation level is set to non_serializable.
+</dd>
+<dt><h2><a name="object_versioning">object_versioning</a> - error</h2></dt>
+<dd>
+It's possible that for efficiency reasons, a type can be
+assigned a serialization level which doesn't include type information 
+in the archive.  This would preclude the assignment
+of a new version number to the type.  This error
+traps attempts to assign a version number in this case.
+This has to be a user error.
+</dd>
+
+<dt><h2><a name="object_tracking">object_tracking</a> - warning</h2></dt>
+<dd>
+The following code will display a message when compiled:
+
+<code style="white-space: normal"><pre>
+T t;
+ar &lt;&lt; t;
+</pre></code>
+
+unless the tracking_level serialization trait is set to "track_never". The following
+will compile without problem:
+
+<code style="white-space: normal"><pre>
+const T t
+ar &lt;&lt; t;
+</pre></code>
+
+Likewise, the following code will trap at compile time:
+
+<code style="white-space: normal"><pre>
+T * t;
+ar >> t;
+</pre></code>
+
+if the tracking_level serialization trait is set to "track_never".
+<p>
+
+The following case illustrates the function of this message.
+It was originally used as an example in the
+mailing list by Peter Dimov.
+
+<code style="white-space: normal"><pre>
+class construct_from 
+{ 
+    ... 
+}; 
+
+void main(){ 
+    ... 
+    Y y; 
+    construct_from x(y); 
+    ar &lt;&lt; x; 
+} 
+</pre></code>
+
+Suppose that the above message is not displayed and the code is used as is.
+<ol>
+  <li>this example compiles and executes fine. No tracking is done because 
+  construct_from has never been serialized through a pointer. Now some time 
+  later, the next programmer(2) comes along and makes an enhancement. He 
+  wants the archive to be sort of a log. 
+
+<code style="white-space: normal"><pre>
+void main(){ 
+    ... 
+    Y y; 
+    construct_from x(y); 
+    ar &lt;&lt; x; 
+    ... 
+    x.f(); // change x in some way 
+   ... 
+    ar &lt;&lt; x 
+} 
+</pre></code>
+  <p>
+  Again no problem. He gets two different of copies in the archive, each one is different. 
+  That is he gets exactly what he expects and is naturally delighted. 
+  <p>
+  <li>Now sometime later, a third programmer(3) sees construct_from and says - 
+  oh cool, just what I need. He writes a function in a totally disjoint 
+  module. (The project is so big, he doesn't even realize the existence of 
+  the original usage) and writes something like: 
+
+<code style="white-space: normal"><pre>
+class K { 
+    shared_ptr &lt;construct_from&gt; z; 
+    template &lt;class Archive&gt; 
+    void serialize(Archive & ar, const unsigned version){ 
+        ar &lt;&lt; z; 
+    } 
+}; 
+</pre></code>
+
+  <p>
+  He builds and runs the program and tests his new functionality. It works 
+  great and he's delighted. 
+  <p>
+  <li>Things continue smoothly as before.  A month goes by and it's 
+  discovered that when loading the archives made in the last month (reading the 
+  log). Things don't work. The second log entry is always the same as the 
+  first. After a series of very long and increasingly acrimonius email exchanges, 
+its discovered 
+  that programmer (3) accidently broke programmer(2)'s code .This is because by 
+  serializing via a pointer, the "log" object now being tracked.  This is because
+  the default tracking behavior is "track_selectively".  This means that class
+  instances are tracked only if they are serialized through pointers anywhere in
+  the program. Now multiple saves from the same address result in only the first one 
+  being written to the archive. Subsequent saves only add the address - even though the 
+  data might have been changed.  When it comes time to load the data, all instances of the log record show the same data.
+  In this way, the behavior of a functioning piece of code is changed due the side
+  effect of a change in an otherwise disjoint module.
+  Worse yet, the data has been lost and cannot not be now recovered from the archives.
+  People are really upset and disappointed with boost (at least the serialization system).
+  <p>
+  <li>
+  After a lot of investigation, it's discovered what the source of the problem
+  and class construct_from is marked "track_never" by including:
+<code style="white-space: normal"><pre>
+BOOST_CLASS_TRACKING(construct_from, track_never) 
+</pre></code>
+  <li>Now everything works again. Or - so it seems.
+  <p>
+  <li><code style="white-space: normal">shared_ptr&lt;construct_from&gt;</code>
+is not going to have a single raw pointer shared amongst the instances. Each loaded 
+<code style="white-space: normal">shared_ptr&lt;construct_from&gt;</code> is going to 
+have its own distinct raw pointer. This will break 
+<code style="white-space: normal">shared_ptr</code> and cause a memory leak.  Again,
+The cause of this problem is very far removed from the point of discovery.  It could 
+well be that the problem is not even discovered until after the archives are loaded.
+Now we not only have difficult to find and fix program bug, but we have a bunch of
+invalid archives and lost data.
+</ol>
+
+<p>Now consider what happens when the message is displayed:
+
+<ol>
+  <p>
+  <li>Right away, the program traps at 
+<code style="white-space: normal"><pre>
+ar &lt;&lt; x; 
+</pre></code>
+  <p>
+  <li>The programmer curses (another %^&*&* hoop to jump through). If he's in a 
+  hurry (and who isn't) and would prefer not to <code style="white-space: normal">const_cast</code>
+  - because it looks bad.  So he'll just make the following change an move on. 
+<code style="white-space: normal"><pre>
+Y y; 
+const construct_from x(y); 
+ar &lt;&lt; x; 
+</pre></code>
+  <p>
+  Things work fine and he moves on. 
+  <p>
+  <li>Now programer (2) wants to make his change - and again another 
+  annoying const issue; 
+<code style="white-space: normal"><pre>
+Y y; 
+const construct_from x(y); 
+... 
+x.f(); // change x in some way ; compile error f() is not const 
+... 
+ar &lt;&lt; x 
+</pre></code>
+  <p>
+  He's mildly annoyed now he tries the following: 
+  <ul>
+    <li>He considers making f() a const - but presumable that shifts the const 
+    error to somewhere else. And his doesn't want to fiddle with "his" code to 
+    work around a quirk in the serializaition system 
+    <p>
+    <li>He removes the <code style="white-space: normal">const</code>
+    from <code style="white-space: normal">const construct_from</code> above - damn now he 
+    gets the trap. If he looks at the comment code where the 
+    <code style="white-space: normal">BOOST_STATIC_ASSERT</code>
+    occurs, he'll do one of two things 
+    <ol>
+      <p>
+      <li>This is just crazy. Its making my life needlessly difficult and flagging 
+      code that is just fine. So I'll fix this with a <code style="white-space: normal">const_cast</code>
+      and fire off a complaint to the list and mabe they will fix it. 
+      In this case, the story branches off to the previous scenario.
+      <p>
+      <li>Oh, this trap is suggesting that the default serialization isn't really 
+      what I want. Of course in this particular program it doesn't matter. But 
+      then the code in the trap can't really evaluate code in other modules (which 
+      might not even be written yet). OK, I'll add the following to my 
+      construct_from.hpp to solve the problem. 
+<code style="white-space: normal"><pre>
+BOOST_CLASS_TRACKING(construct_from, track_never) 
+</pre></code>
+    </ol>
+  </ul>
+  <p>
+  <li>Now programmer (3) comes along and make his change. The behavior of the 
+  original (and distant module) remains unchanged because the 
+  <code style="white-space: normal">construct_from</code> trait has been set to 
+  "track_never" so he should always get copies and the log should be what we expect.
+  <p>
+  <li>But now he gets another trap - trying to save an object of a 
+  class marked "track_never" through a pointer. So he goes back to 
+  construct_from.hpp and comments out the 
+  <code style="white-space: normal">BOOST_CLASS_TRACKING</code> that 
+  was inserted. Now the second trap is avoided, But damn - the first trap is 
+  popping up again. Eventually, after some code restructuring, the differing
+  requirements of serializating <code style="white-space: normal">construct_from</code>
+  are reconciled.
+</ol>
+Note that in this second scenario
+<ul>
+  <li>all errors are trapped at compile time.
+  <li>no invalid archives are created.
+  <li>no data is lost.
+  <li>no runtime errors occur.
+</ul>
+
+It's true that these messages may sometimes flag code that is currently correct and
+that this may be annoying to some programmers.  However, this example illustrates
+my view that these messages are useful and that any such annoyance is small price to
+pay to avoid particularly vexing programming errors.
+
+</dd>
+
+<dt><h2><a name="pointer_level">pointer_level</a> - warning</h2></dt>
+<dd>
+This trap addresses the following situaion when serializing 
+a pointer:
+<ul>
+<li>A type doesn't save class information in the
+archive. That is, the serialization trait implementation
+level <= object_serializable.
+<li>Tracking for this type is set to "track selectively"
+in this case, indication that an object is tracked is
+not stored in the archive itself - see level == object_serializable.
+Since class information is not saved in the archive, the existence
+or absense of the operation ar << T * anywhere else in the 
+program is used to infer that an object of this type should be tracked.
+<p>
+A problem arises when a program which reads an archive
+includes the operation ar >> T * so that tracking information
+will be included in the archive. When a program which
+creates the archive doesn't include ar << T it is presumed
+that the archive doesn't include tracking information and
+the archive will fail to load.  Also the reverse situation could 
+trigger a similar problem.
+<p>
+Though this situation is unlikely for several reasones, 
+it is possible - hence this warning. 
+</ul>
+So if your program traps here, consider changing the 
+tracking or implementation level traits - or not
+serializing via a pointer.
+</dd>
+
+<dt><h2><a name="pointer_tracking">pointer_tracking</a> - warning</h2></dt>
+<dd>
+Serializing an object of a type marked "track_never" through a pointer
+could result in creating more objects than were saved! There are cases
+in which a user might really want to do this so we leave it as a warning.
+</dd>
+
+<dt><h2><a name="const_loading">const_loading</a> - error</h2></dt>
+<dd>
+One cannot load data into a "const" object unless it's a
+wrapper around some other non-const object.
+</dd>
+</dl>
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004 and Matthias Troyer 2006. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/tutorial.html b/deal.II/contrib/boost/libs/serialization/doc/tutorial.html
new file mode 100644 (file)
index 0000000..8154611
--- /dev/null
@@ -0,0 +1,584 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Tutorial</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr>
+    <td valign="top" width="300">
+       <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top">
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Tutorial</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#simplecase">A Very Simple Case</a>
+  <dt><a href="#nonintrusiveversion">Non Intrusive Version</a>
+  <dt><a href="#serializablemembers">Serializable Members</a>
+  <dt><a href="#derivedclasses">Derived Classes</a>
+  <dt><a href="#pointers">Pointers</a>
+  <dt><a href="#arrays">Arrays</a>
+  <dt><a href="#stl">STL Collections</a>
+  <dt><a href="#versioning">Class Versioning</a>
+  <dt><a href="#splitting">Splitting <code style="white-space: normal">serialize</code> into <code style="white-space: normal">save/load</code></a>
+  <dt><a href="#archives">Archives</a>
+  <dt><a href="#examples">List of examples</a>
+</dl>
+An output archive is similar to an output data stream. Data can be saved to the archive
+with either the &lt;&lt; or the &amp; operator:
+<pre><code>
+ar &lt;&lt; data;
+ar &amp; data;
+</code></pre>
+An input archive is similar to an input datastream.  Data can be loaded from the archive
+with either the &gt;&gt; or the &amp; operator.
+<pre><code>
+ar &gt;&gt; data;
+ar &amp; data;
+</code></pre>
+<p>
+When these operators are invoked for primitive data types, the data is simply saved/loaded
+to/from the archive. When invoked for class data types, the class
+<code style="white-space: normal">serialize</code> function is invoked. Each
+<code style="white-space: normal">serialize</code> function is uses the above operators
+to save/load its data members.  This process will continue in a recursive manner until
+all the data contained in the class is saved/loaded.
+
+<h3><a name="simplecase">A Very Simple Case</a></h3>
+These operators are used inside the <code style="white-space: normal">serialize</code>
+function to save and load class data members.
+<p>
+Included in this library is a program called
+<a href="../example/demo.cpp" target="demo_cpp">demo.cpp</a> which illustrates how
+to use this system. Below we excerpt code from this program to
+illustrate with the simplest possible case how this library is
+intended to be used.
+<pre>
+<code>
+#include &lt;fstream&gt;
+
+// include headers that implement a archive in simple text format
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+#include &lt;boost/archive/text_iarchive.hpp&gt;
+
+/////////////////////////////////////////////////////////////
+// gps coordinate
+//
+// illustrates serialization for a simple type
+//
+class gps_position
+{
+private:
+    friend class boost::serialization::access;
+    // When the class Archive corresponds to an output archive, the
+    // &amp; operator is defined similar to &lt;&lt;.  Likewise, when the class Archive
+    // is a type of input archive the &amp; operator is defined similar to &gt;&gt;.
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        ar &amp; degrees;
+        ar &amp; minutes;
+        ar &amp; seconds;
+    }
+    int degrees;
+    int minutes;
+    float seconds;
+public:
+    gps_position(){};
+    gps_position(int d, int m, float s) :
+        degrees(d), minutes(m), seconds(s)
+    {}
+};
+
+int main() {
+    // create and open a character archive for output
+    std::ofstream ofs("filename");
+
+    // create class instance
+    const gps_position g(35, 59, 24.567f);
+
+    // save data to archive
+    {
+        boost::archive::text_oarchive oa(ofs);
+        // write class instance to archive
+        oa &lt;&lt; g;
+       // archive and stream closed when destructors are called
+    }
+
+    // ... some time later restore the class instance to its orginal state
+    gps_position newg;
+    {
+        // create and open an archive for input
+        std::ifstream ifs("filename");
+        boost::archive::text_iarchive ia(ifs);
+        // read class state from archive
+        ia &gt;&gt; newg;
+        // archive and stream closed when destructors are called
+    }
+    return 0;
+}
+</code>
+</pre>
+<p>For each class to be saved via serialization, there must exist a function to
+save all the class members which define the state of the class.
+For each class to be loaded via serialization, there must exist a function to
+load theese class members in the same sequence as they were saved.
+In the above example, these functions are generated by the
+template member function <code style="white-space: normal">serialize</code>.
+
+<h3><a name="nonintrusiveversion">Non Intrusive Version</a></h3>
+<p>The above formulation is intrusive. That is, it requires
+that classes whose instances are to be serialized be
+altered. This can be inconvenient in some cases.
+An equivalent alternative formulation permitted by the
+system would be:
+<pre><code>
+#include &lt;boost/archive/text_oarchive.hpp&gt;
+#include &lt;boost/archive/text_iarchive.hpp&gt;
+
+class gps_position
+{
+public:
+    int degrees;
+    int minutes;
+    float seconds;
+    gps_position(){};
+    gps_position(int d, int m, float s) :
+        degrees(d), minutes(m), seconds(s)
+    {}
+};
+
+namespace boost {
+namespace serialization {
+
+template&lt;class Archive&gt;
+void serialize(Archive &amp; ar, gps_position &amp; g, const unsigned int version)
+{
+    ar &amp; g.degrees;
+    ar &amp; g.minutes;
+    ar &amp; g.seconds;
+}
+
+} // namespace serialization
+} // namespace boost
+</code></pre>
+<p>
+In this case the generated serialize functions are not members of the
+<code style="white-space: normal">gps_position</code> class.  The two formulations function
+in exactly the same way.
+<p>
+The main application of non-intrusive serialization is to permit serialization
+to be implemented for classes without changing the class definition.
+In order for this to be possible, the class must expose enough information
+to reconstruct the class state.  In this example, we presumed that the
+class had <code style="white-space: normal">public</code> members - not a common occurence.  Only
+classes which expose enough information to save and restore the class
+state will be serializable without changing the class definition.
+<h3><a name="serializablemembers">Serializable Members</a></h3>
+<p>
+A serializable class with serializable members would look like this:
+<pre><code>
+class bus_stop
+{
+    friend class boost::serialization::access;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        ar &amp; latitude;
+        ar &amp; longitude;
+    }
+    gps_position latitude;
+    gps_position longitude;
+protected:
+    bus_stop(const gps_position &amp; lat_, const gps_position &amp; long_) :
+    latitude(lat_), longitude(long_)
+    {}
+public:
+    bus_stop(){}
+    // See item # 14 in Effective C++ by Scott Meyers.
+    // re non-virtual destructors in base classes.
+    virtual ~bus_stop(){}
+};
+</code></pre>
+<p>That is, members of class type are serialized just as
+members of primitive types are.
+<p>
+Note that saving an instance of the class <code style="white-space: normal">bus_stop</code>
+with one of the archive operators will invoke the
+<code style="white-space: normal">serialize</code> function which saves
+<code style="white-space: normal">latitude</code> and
+<code style="white-space: normal">longitude</code>. Each of these in turn will be saved by invoking
+<code style="white-space: normal">serialize</code> in the definition of
+<code style="white-space: normal">gps_position</code>.  In this manner the whole
+data structure is saved by the application of an archive operator to
+just its root item.
+
+
+<h3><a name="derivedclasses">Derived Classes</a></h3>
+<p>Derived classes should include serializations of their base classes.
+<pre><code>
+#include &lt;boost/serialization/base_object.hpp&gt;
+
+class bus_stop_corner : public bus_stop
+{
+    friend class boost::serialization::access;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        // serialize base class information
+        ar &amp; boost::serialization::base_object&lt;bus_stop&gt;(*this);
+        ar &amp; street1;
+        ar &amp; street2;
+    }
+    std::string street1;
+    std::string street2;
+    virtual std::string description() const
+    {
+        return street1 + " and " + street2;
+    }
+public:
+    bus_stop_corner(){}
+    bus_stop_corner(const gps_position &amp; lat_, const gps_position &amp; long_,
+        const std::string &amp; s1_, const std::string &amp; s2_
+    ) :
+        bus_stop(lat_, long_), street1(s1_), street2(s2_)
+    {}
+};
+</code>
+</pre>
+<p>
+Note the serialization of the base classes from the derived
+class. Do <b>NOT</b> directly call the base class serialize
+functions. Doing so might seem to work but will bypass the code
+that tracks instances written to storage to eliminate redundancies.
+It will also bypass the writing of class version information into
+the archive. For this reason, it is advisable to always make member
+<code style="white-space: normal">serialize</code> functions private.  The declaration
+<code style="white-space: normal">friend boost::serialization::access</code> will grant to the
+serialization library access to private member variables and functions.
+<p>
+<h3><a name="pointers">Pointers</a></h3>
+Suppose we define a bus route as an array of bus stops.  Given that
+<ol>
+    <li>we might have several types of bus stops (remember bus_stop is
+a base class)
+    <li>a given bus_stop might appear in more than one route.
+</ol>
+it's convenient to represent a bus route with an array of pointers
+to <code style="white-space: normal">bus_stop</code>.
+<pre>
+<code>
+class bus_route
+{
+    friend class boost::serialization::access;
+    bus_stop * stops[10];
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        int i;
+        for(i = 0; i &lt 10; ++i)
+            ar &amp; stops[i];
+    }
+public:
+    bus_route(){}
+};
+</code>
+</pre>
+Each member of the array <code style="white-space: normal">stops</code> will be serialized.
+But remember each member is a pointer - so what can this really
+mean?  The whole object of this serialization is to permit
+reconstruction of the original data structures at another place
+and time.  In order to accomplish this with a pointer, it is
+not sufficient to save the value of the pointer, rather the
+object it points to must be saved.  When the member is later
+loaded, a new object has to be created and a new pointer has
+to be loaded into the class member.
+<p>
+If the same pointer is serialized more than once, only one instance
+is be added to the archive.  When read back, no data is read back in.
+The only operation that occurs is for the second pointer is set equal to the first
+<p>
+Note that, in this example, the array consists of polymorphic pointers.
+That is, each array element point to one of several possible 
+kinds of bus stops.  So when the pointer is saved, some sort of class
+identifier must be saved.  When the pointer is loaded, the class
+identifier must be read and and instance of the corresponding class
+must be constructed. Finally the data can be loaded to newly created
+instance of the correct type.
+
+As can be seen in 
+<a href="../example/demo.cpp" target="demo_cpp">demo.cpp</a>,
+serialization of pointers to derived classes through a base
+clas pointer may require explicit enumeration of the derived
+classes to be serialized. This is referred to as "registration" or "export"
+of derived classes.  This requirement and the methods of
+satisfying it are explained in detail
+<a href="serialization.html#derivedpointers">here</a>
+<p>
+All this is accomplished automatically by the serialization
+library.  The above code is all that is necessary to accomplish
+the saving and loading of objects accessed through pointers.
+<p>
+<h3><a name="arrays">Arrays</a></h3>
+The above formulation is in fact more complex than necessary.
+The serialization library detects when the object being
+serialized is an array and emits code equivalent to the above.
+So the above can be shortened to:
+<pre>
+<code>
+class bus_route
+{
+    friend class boost::serialization::access;
+    bus_stop * stops[10];
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        ar &amp; stops;
+    }
+public:
+    bus_route(){}
+};
+</code>
+</pre>
+<h3><a name="stl">STL Collections</a></h3>
+The above example uses an array of members.  More likely such
+an application would use an STL collection for such a purpose.
+The serialization library contains code for serialization
+of all STL classes.  Hence, the reformulation below will
+also work as one would expect.
+<pre>
+<code>
+#include &lt;boost/serialization/list.hpp&gt;
+
+class bus_route
+{
+    friend class boost::serialization::access;
+    std::list&lt;bus_stop *&gt; stops;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        ar &amp; stops;
+    }
+public:
+    bus_route(){}
+};
+</code>
+</pre>
+<h3><a name="versioning">Class Versioning</a></h3>
+<p>
+Suppose we're satisfied with our <code style="white-space: normal">bus_route</code> class, build a program
+that uses it and ship the product.  Some time later, it's decided
+that the program needs enhancement and the <code style="white-space: normal">bus_route</code> class is
+altered to include the name of the driver of the route. So the
+new version looks like:
+<pre>
+<code>
+#include &lt;boost/serialization/list.hpp&gt;
+#include &lt;boost/serialization/string.hpp&gt;
+
+class bus_route
+{
+    friend class boost::serialization::access;
+    std::list&lt;bus_stop *&gt; stops;
+    std::string driver_name;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        ar &amp; driver_name;
+        ar &amp; stops;
+    }
+public:
+    bus_route(){}
+};
+</code>
+</pre>
+Great, we're all done. Except... what about people using our application
+who now have a bunch of files created under the previous program.
+How can these be used with our new program version?
+<p>
+In general, the serialization library stores a version number in the
+archive for each class serialized.  By default this version number is 0.
+When the archive is loaded, the version number under which it was saved
+is read.  The above code can be altered to exploit this
+<pre>
+<code>
+#include &lt;boost/serialization/list.hpp&gt;
+#include &lt;boost/serialization/string.hpp&gt;
+#include &lt;boost/serialization/version.hpp&gt;
+
+class bus_route
+{
+    friend class boost::serialization::access;
+    std::list&lt;bus_stop *&gt; stops;
+    std::string driver_name;
+    template&lt;class Archive&gt;
+    void serialize(Archive &amp; ar, const unsigned int version)
+    {
+        // only save/load driver_name for newer archives
+        if(version &gt; 0)
+            ar &amp; driver_name;
+        ar &amp; stops;
+    }
+public:
+    bus_route(){}
+};
+
+BOOST_CLASS_VERSION(bus_route, 1)
+</code>
+</pre>
+By application of versioning to each class, there is no need to
+try to maintain a versioning of files.  That is, a file version
+is the combination of the versions of all its constituent classes.
+
+This system permits programs to be always compatible with archives
+created by all previous versions of a program with no more
+effort than required by this example.
+
+<h3><a name="splitting">Splitting <code style="white-space: normal">serialize</code>
+into <code style="white-space: normal">save/load</code></a></h3>
+The <code style="white-space: normal">serialize</code> function is simple, concise, and guarantees
+that class members are saved and loaded in the same sequence
+- the key to the serialization system.  However, there are cases
+where the load and save operations are not as similar as the examples
+used here.  For example, this could occur with a class that has evolved through
+multiple versions.  The above class can be reformulated as:
+<pre>
+<code>
+#include &lt;boost/serialization/list.hpp&gt;
+#include &lt;boost/serialization/string.hpp&gt;
+#include &lt;boost/serialization/version.hpp&gt;
+#include &lt;boost/serialization/split_member.hpp&gt;
+
+class bus_route
+{
+    friend class boost::serialization::access;
+    std::list&lt;bus_stop *&gt; stops;
+    std::string driver_name;
+    template&lt;class Archive&gt;
+    void save(Archive &amp; ar, const unsigned int version) const
+    {
+        // note, version is always the latest when saving
+        ar  &amp; driver_name;
+        ar  &amp; stops;
+    }
+    template&lt;class Archive&gt;
+    void load(Archive &amp; ar, const unsigned int version)
+    {
+        if(version &gt; 0)
+            ar &amp; driver_name;
+        ar  &amp; stops;
+    }
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+public:
+    bus_route(){}
+};
+
+BOOST_CLASS_VERSION(bus_route, 1)
+</code>
+</pre>
+The macro <code style="white-space: normal">BOOST_SERIALIZATION_SPLIT_MEMBER()</code> generates
+code which invokes the <code style="white-space: normal">save</code>
+or <code style="white-space: normal">load</code>
+depending on whether the archive is used for saving or loading.
+<h3><a name="archives">Archives</a></h3>
+Our discussion here has focused on adding serialization
+capability to classes.  The actual rendering of the data to be serialized
+is implemented in the archive class.  Thus the stream of serialized
+data is a product of the serialization of the class and the
+archive selected.  It is a key design decision that these two
+components be independent.  This permits any serialization specification
+to be usable with any archive.
+<p>
+In this tutorial, we have used a particular
+archive class - <code style="white-space: normal">text_oarchive</code> for saving and
+<code style="white-space: normal">text_iarchive</code> for loading.
+text archives render data as text and are portable across platforms.  In addition
+to text archives, the library includes archive class for native binary data
+and xml formatted data.  Interfaces to all archive classes are all identical.
+Once serialization has been defined for a class, that class can be serialized to 
+any type of archive.
+<p>
+If the current set of archive classes doesn't provide the
+attributes, format, or behavior needed for a particular application,
+one can either make a new archive class or derive from an existing one.
+This is described later in the manual.
+
+<h3><a name="examples">List of Examples</h3>
+<dl>
+    <dt><a href="../example/demo.cpp" target="demo_cpp">demo.cpp</a>
+    <dd>This is the completed example used in this tutorial.
+    It does the following:
+    <ol>
+        <li>Creates a structure of differing kinds of stops, routes and schedules
+        <li>Displays it
+        <li>Serializes it to a file named "testfile.txt" with one
+        statement
+        <li>Restores to another structure
+        <li>Displays the restored structure
+    </ol>
+    <a href="../example/demo_output.txt" target="demo_output">Output of
+    this program</a> is sufficient to verify that all the
+    originally stated requirements for a serialization system
+    are met with this system. The <a href="../example/demofile.txt"
+    target="test_file">contents of the archive file</a> can
+    also be displayed as serialization files are ASCII text.
+
+    <dt><a href="../example/demo_xml.cpp" target="demo_xml_cpp">demo_xml.cpp</a>
+    <dd>This is a variation the original demo which supports xml archives in addition
+    to the others. The extra wrapping macro, BOOST_SERIALIZATION_NVP(name), is 
+    needed to associate a data item name with the corresponding xml 
+    tag. It is importanted that 'name' be a valid xml tag, else it 
+    will be impossible to restore the archive. 
+    For more information see
+    <a target="detail" href="wrappers.html#nvp">Name-Value Pairs</a>.
+    <a href="../example/demo_save.xml" target="demo_save_xml">Here</a>
+    is what an xml archive looks like.
+
+    <dt><a href="../example/demo_xml_save.cpp" target="demo_xml_save_cpp">demo_xml_save.cpp</a>
+    and <a href="../example/demo_xml_load.cpp" target="demo_xml_load_cpp">demo_xml_load.cpp</a>
+    <dd>Note also that though our examples save and load the program data
+    to an archive within the same program, this merely a convenience
+    for purposes of illustration.  In general, the archive may or may
+    not be loaded by the same program that created it.
+</dl>
+<p>
+The astute reader might notice that these examples contain a subtle but important flaw.
+They leak memory. The bus stops are created in the <code style="white-space: normal">
+main</code> function.  The bus schedules may refer to these bus stops
+any number of times.  At the end of the main function after the bus schedules are destroyed,
+the bus stops are destroyed.  This seems fine.  But what about the structure
+<code style="white-space: normal">new_schedule</code> data item created by the
+process of loading from an archive? This contains its own separate set of bus stops
+that are not referenced outside of the bus schedule.  These won't be destroyed
+anywhere in the program - a memory leak.
+<p>
+There are couple of ways of fixing this.  One way is to explicitly manage the bus stops.
+However, a more robust and transparent is to use 
+<code style="white-space: normal">shared_ptr</code> rather than raw pointers. Along
+with serialization implemenations for the Standard Library, the serialization library
+includes implementation of serialization for 
+<code style="white-space: normal">boost::shared ptr</code>.  Given this, it should be
+easy to alter any of these examples to eliminate the memory leak. This is left 
+as an excercise for the reader.
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/void_cast.html b/deal.II/contrib/boost/libs/serialization/doc/void_cast.html
new file mode 100644 (file)
index 0000000..51c0bae
--- /dev/null
@@ -0,0 +1,104 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - BOOST_STATIC_WARNING</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center"><code>void_cast</code></h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<h3>Motivation</h3>
+C++ includes the operator <code style="white-space: normal">dynamic_cast&lt;T&gt;(U * u)</code>
+for casting a pointer at runtime between two related types. However, this can only be 
+used for polymorphic classes.  That is, it can only be used with related classes which have at least one virtual function.
+Limiting the serializaton of pointers to only such class would diminish the applicability
+of the library.
+
+<h3>Usage</h3>
+
+The following functions are defined in the header
+<a target="void_cast" href="../../../boost/serialization/void_cast.hpp">void_cast.hpp</a>.
+They are declared in the namespace
+<code style="white-space: normal">boost::serialization</code>.
+
+<dl>
+<dt><h4><pre><code>
+template&lt;class Derived, class Base&gt;
+const void_cast_detail::void_caster &
+void_cast_register(
+    Derived const * derived = NULL, 
+    Base * const base = NULL
+)
+</code></pre></h4></dt>
+<dd>
+This function "registers" a pair of related types.  It stores the fact that
+<code style="white-space: normal">Derived</code> is immediately derived from 
+<code style="white-space: normal">Base</code> in a global table. 
+<ul>
+  <li>This "registration" can be invoked anywhere in the program.  The table is built at
+  pre-runtime and is available anywhere else in the program.
+  <li>only adjacent base/derived pairs need be registered.  That is,
+  <pre><code>
+  void_cast_register&lt;A, B&gt;();
+  void_cast_register&lt;B, C&gt;();
+  </code></pre>
+  automatically derives the fact that A can be upcast to C and vice-versa.
+</ul>
+</dd>
+
+<dt><h4><pre><code>
+void *
+void_upcast(
+    extended_type_info const & derived_type,
+    extended_type_info const & base_type,
+    void * const t 
+);
+</code></pre></h4></dt>
+
+<dt><h4><pre><code>
+void *
+void_downcast(
+    extended_type_info const & derived_type,
+    extended_type_info const & base_type,
+    void * const t 
+);
+</code></pre></h4></dt>
+<dd>
+These functions cast a void pointer from one type to another.  The source and
+definition types are specified by passing references to the corresponding
+<a href="extended_type_info.html"><code style="white-space: normal">
+extended_type_info</code></a>
+records.  An attempt to cast between types not "registered" with
+<code style="white-space: normal">void_cast_register</code> 
+will throw a
+<a href="exceptions.html"><code style="white-space: normal">boost::archive::archive_exception</code></a>
+with value equal to
+<code style="white-space: normal">unregistered_cast</code>
+</dd>
+</dl>
+
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
diff --git a/deal.II/contrib/boost/libs/serialization/doc/wrappers.html b/deal.II/contrib/boost/libs/serialization/doc/wrappers.html
new file mode 100644 (file)
index 0000000..79107ac
--- /dev/null
@@ -0,0 +1,213 @@
+<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="../../../boost.css">
+<link rel="stylesheet" type="text/css" href="style.css">
+<title>Serialization - Serialization Wrappers</title>
+</head>
+<body link="#0000ff" vlink="#800080">
+<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
+  <tr> 
+    <td valign="top" width="300"> 
+      <h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
+    </td>
+    <td valign="top"> 
+      <h1 align="center">Serialization</h1>
+      <h2 align="center">Serialization Wrappers</h2>
+    </td>
+  </tr>
+</table>
+<hr>
+<dl class="page-index">
+  <dt><a href="#binaryobjects">Binary Objects</a>
+  <dt><a href="#arrays">Arrays</a>
+  <dt><a href="#strong_type"><code style="white-space: normal">BOOST_STRONG_TYPEDEF</code></a>
+  <dt><a href="#collection_size_type">Collection Sizes</a>
+  <dt><a href="#nvp">Name-Value Pairs</a>
+  <dt><a href="#composition">Composition</a>
+</dl>
+Sometimes it convenient to create a temporary object just to support serialization
+of some underlying data. This permits an archive class to define special
+handling of this type.  The library includes several such types for varying 
+purposes.
+<p>
+Wrappers need to be treated in a special way by some archives, and hence
+the <A href="traits.html#wrappers"><code>is_wrapper</code></a> trait for 
+these wrapper classes is set to true.
+
+<h3><a name="binaryobjects">Binary Objects</a></h3>
+A binary object is just an sequence of bytes stored as raw
+binary data.  This would most likely be used for a large amount
+of "light weight" data such as a pixel map or embedded binary file.
+The header file 
+<a href="../../../boost/serialization/binary_object.hpp" target="binary_object_hpp">
+binary_object.hpp
+</a>
+includes the constructors:
+<pre><code>
+boost::serialization::binary_object(void * t, size_t size);
+boost::serialization::make_binary_object(void * t, size_t size);
+</code></pre>
+which will construct a temporary binary object that can be serialized just like any other object.
+Its default serialization is to use archive class primitives 
+<code style="white-space: normal">save_binary</code> and <code>load_binary</code>.  
+Note that it doesn't allocated any storage or create any objects.
+Its sole purpose is to pass the data size and address as pair to the archive class.  
+
+
+<h3><a name="arrays">Arrays</a></h3>
+An array is a contiguous sequence of homogeneous data types, such as a builtin
+C-array, a <code>boost::array&lt;T></code> or a <code>std::vector&lt;T></code>. 
+The purpose of this wrapper is to support archive types (such as binary
+archives) that provide optimized serialization for contiguous sequences of 
+objects of the same type. 
+
+The header file 
+<a href="../../../boost/serialization/array.hpp" target="array_hpp">
+array.hpp
+</a>
+includes the function
+<pre><code>
+template &lt;T>
+boost::serialization::make_array(T* t, std::size_t size);
+</code></pre>
+which will construct a temporary <code>array</code> object
+<pre><code>
+template<class T>
+class array
+{
+public:    
+    typedef T value_type;
+    array(value_type* t, std::size_t s);
+    value_type* address() const;
+    std::size_t count() const;
+};
+</code></pre>
+that can be serialized just like any other object.
+Its default serialization is to use serialize each array element.  
+Note that it doesn't allocated any storage or create any objects.
+Its sole purpose is to pass the data type, size and address to the archive class.
+
+Archive types that can provide optimized implementations for contiguous
+arrays of homogeneous data types should overload the serialization of
+<code>array</code>.
+
+<h3><a name="strong_type"><code style="white-space: normal">BOOST_STRONG_TYPEDEF</code></h3>
+Another example of a serialization wrapper is the 
+<a href="strong_typedef.html"><code style="white-space: normal">BOOST_STRONG_TYPEDEF</code></a> template.
+The serialization libraries uses these to pass particular kinds of integers such
+as object_id, version, etc. to an archive class. Given that these integers
+are now distinguishable according to their type,  XML archives can apply
+special handling to these types.  For example, a version number is rendered
+as an XML attribute in the form "version=12".  In the absence of any specific override,
+these types are automatically converted to the underlying integer type so the
+special overrides used for XML archives aren't needed for other archives.
+
+
+
+<h3><a name="collection_size_type">Collection Sizes</h3>
+An example of a strong typedef is the <code>collection_size_type</code> in the
+header file
+<a href="../../../boost/serialization/collection_size_type.hpp" target="collection_size_type_hpp">
+collection_size_type.hpp
+</a>. This type should be used for serializaing the size of a C++ collection, so
+that the archive can pick the best integral representation for the serialization
+of collection sizes. This is necessary since, although <code>std::size_t</code>
+is guaranteed to be an integral type large enough to represent the size of
+a collection on a specific platform, the archive might want to serialize
+the size differently than this type. For example, the <code>collection_size_type</code>
+might be serialized as a variable length integer in a portable binary archive.
+
+
+
+
+
+
+<h3><a name="nvp">Name-Value Pairs</h3>
+XML archives present a somewhat special case. XML format has a nested
+structure that maps well to the "recursive class member visitor" pattern used
+by the serialization system.  However, XML differs from other formats
+in that it requires a name for each class data member.  Our goal is to
+add this information to the class serialization specification while
+still permiting the the serialization code to be used with any archive.
+<p>
+Our solution is to wrap class members to be serialized in a
+<strong>name-value-pair</strong>. This structure is defined in
+<a href="../../../boost/serialization/nvp.hpp" target="nvp_hpp">nvp.hpp</a>.
+It is just a reference to the data member coupled with a pointer to
+to a <code style="white-space: normal">const char *</code> which 
+corresponds to the XML name.  It implements the default
+serialization functions for a name-value pair.  This default
+action is to just ignore the item name and serialize the
+data value in the normal manner.  For archive classes that
+don't make any special provision for name-value pairs, this
+is the action which will be invoked when the name-value pair
+is serialized.  Hence, wrapping a data value into a name-value
+pair will have no effect when used with archives which
+make no special provision for this wrapper.
+<p>
+The xml archive classes contain code similar to:
+<pre><code>
+// special treatment for name-value pairs.
+template&lt;class T&gt;
+xml_oarchive & operator&(const boost::serialization::nvp<T> & t)
+{
+    // write an xml start tag
+    start_tag(t.name());
+
+    // serialize the data as usual
+    *this & t.value();
+
+    // write an xml end tag
+    end_tag(t.name());
+}
+</code></pre>
+The most obvious and convient name to assign to as the XML data item name
+is - surpise! - the name of the C++ class data member.  So our serialization
+code will look like:
+<pre><code>
+ar & make_nvp("my_variable", my_variable);
+</code></pre>
+To simplify typing and enhance readability a macro is defined so we can write:
+<pre><code>
+ar & BOOST_SERIALIZATION_NVP(my_variable);
+</code></pre>
+Similarly there exists a macro definition that permits us to write:
+<pre><code>
+BOOST_SERIALIZATION_BASE_OBJECT_NVP(my_base_class)
+</code></pre>
+
+Note that these macros must be used in the namespace of the class, 
+and without qualifying the namespace in the argument. 
+
+<p>
+<a href="../example/demo_gps.hpp" target="demo_gps_hpp">demo_gps.hpp<a>
+includes NVP wrappers or all data members.
+<a href="../example/demo_xml.cpp" target="demo_xml_cpp">demo_xml.cpp<a>
+saves and loads data to an XML archive.
+<a href="../example/demo_save.xml" target="demo_save_xml">Here</a>
+is example of the XML Archive corresponding to our tutorial example.
+
+<h3><a name="composition">Composition</h3>
+Wrappers should be designed so that they can be composed as necessary.
+For example, to pass binary data as a name value pair use:
+<pre><code>
+ar & make_nvp("named_binary_object", make_binary_object(address, size));
+</code></pre>
+</html>
+<hr>
+<p><i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2004. 
+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)
+</i></p>
+</body>
+</html>
+
diff --git a/deal.II/contrib/boost/libs/serialization/example/Jamfile.v2 b/deal.II/contrib/boost/libs/serialization/example/Jamfile.v2
new file mode 100644 (file)
index 0000000..ab4d258
--- /dev/null
@@ -0,0 +1,57 @@
+# Boost serialization Library Build Jamfile
+#  (C) Copyright Robert Ramey 2002-2004.
+#  Use, modification, and distribution are subject to 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)
+#
+#  See http://www.boost.org/libs/serialization for the library home page.
+
+project libs/serialization/example
+    : id serialization_example
+    : requirements <library>../build//boost_serialization
+    ;
+
+rule demo_bsl_run ( demo-name : othersources * : requirements * )
+{
+    return [ run
+        # sources
+            $(demo-name).cpp 
+            $(othersources).cpp
+        : # command
+        : # input files
+        : # requirements
+            # toolset suppress-warnings
+            <toolset>gcc:<cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy"
+            <toolset>msvc-8.0:<cxxflags>"-wd4996"
+            <toolset>borland:<cxxflags>"-w-8080 -w-8071 -w-8057 -w-8062 -w-8008 -w-0018 -w-8066"
+            # toolset optimizations
+            <toolset>gcc:<cxxflags>"-ftemplate-depth-255"
+            <toolset>msvc:<cxxflags>"-Gy"
+            # toolset shared library support
+            <toolset>como,<runtime-link>shared:<build>no
+            <toolset>msvc,<stdlib>stlport,<runtime-link>shared:<build>no
+            <toolset>cw,<runtime-link>static:<build>no
+            $(requirements)
+         : # test name
+            $(demo-name)
+       ]
+    ;
+}
+
+test-suite "demo-suite" :
+    # demos
+    [ demo_bsl_run demo ]
+    [ demo_bsl_run demo_auto_ptr ]
+    [ demo_bsl_run demo_exception ]
+    [ demo_bsl_run demo_log : log_archive ]
+    [ demo_bsl_run demo_pimpl : demo_pimpl_A ]
+    [ demo_bsl_run demo_polymorphic : demo_polymorphic_A ]
+    [ demo_bsl_run demo_portable_archive : portable_binary_iarchive portable_binary_oarchive ]
+    [ demo_bsl_run demo_shared_ptr ]
+    [ demo_bsl_run demo_simple_log ]
+    [ demo_bsl_run demo_trivial_archive ]
+    [ demo_bsl_run demo_xml ]
+    [ demo_bsl_run demo_xml_save ]
+    [ demo_bsl_run demo_xml_load : : <dependency>demo_xml_save ]
+;
+
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo.cpp b/deal.II/contrib/boost/libs/serialization/example/demo.cpp
new file mode 100644 (file)
index 0000000..98e987f
--- /dev/null
@@ -0,0 +1,377 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo.cpp
+//
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <cstddef> // NULL
+#include <iomanip>
+#include <iostream>
+#include <fstream>
+#include <string>
+
+#include <boost/archive/tmpdir.hpp>
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/utility.hpp>
+#include <boost/serialization/list.hpp>
+#include <boost/serialization/assume_abstract.hpp>
+
+/////////////////////////////////////////////////////////////
+// The intent of this program is to serve as a tutorial for
+// users of the serialization package.  An attempt has been made
+// to illustrate most of the facilities of the package.  
+//
+// The intent is to create an example suffciently complete to
+// illustrate the usage and utility of the package while
+// including a minimum of other code. 
+//
+// This illustration models the bus system of a small city.
+// This includes, multiple bus stops,  bus routes and schedules.
+// There are different kinds of stops.  Bus stops in general will
+// will appear on multiple routes.  A schedule will include
+// muliple trips on the same route.
+
+/////////////////////////////////////////////////////////////
+// gps coordinate
+//
+// llustrates serialization for a simple type
+//
+class gps_position
+{
+    friend std::ostream & operator<<(std::ostream &os, const gps_position &gp);
+    friend class boost::serialization::access;
+    int degrees;
+    int minutes;
+    float seconds;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & degrees & minutes & seconds;
+    }
+public:
+    // every serializable class needs a constructor
+    gps_position(){};
+    gps_position(int _d, int _m, float _s) : 
+        degrees(_d), minutes(_m), seconds(_s)
+    {}
+};
+std::ostream & operator<<(std::ostream &os, const gps_position &gp)
+{
+    return os << ' ' << gp.degrees << (unsigned char)186 << gp.minutes << '\'' << gp.seconds << '"';
+}
+
+/////////////////////////////////////////////////////////////
+// One bus stop
+//
+// illustrates serialization of serializable members
+//
+
+class bus_stop
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const bus_stop &gp);
+    virtual std::string description() const = 0;
+    gps_position latitude;
+    gps_position longitude;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar & latitude;
+        ar & longitude;
+    }
+protected:
+    bus_stop(const gps_position & _lat, const gps_position & _long) :
+        latitude(_lat), longitude(_long)
+    {}
+public:
+    bus_stop(){}
+    virtual ~bus_stop(){}
+};
+
+BOOST_SERIALIZATION_ASSUME_ABSTRACT(bus_stop)
+
+std::ostream & operator<<(std::ostream &os, const bus_stop &bs)
+{
+    return os << bs.latitude << bs.longitude << ' ' << bs.description();
+}
+
+/////////////////////////////////////////////////////////////
+// Several kinds of bus stops
+//
+// illustrates serialization of derived types
+//
+class bus_stop_corner : public bus_stop
+{
+    friend class boost::serialization::access;
+    std::string street1;
+    std::string street2;
+    virtual std::string description() const
+    {
+        return street1 + " and " + street2;
+    }
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        // save/load base class information
+        ar & boost::serialization::base_object<bus_stop>(*this);
+        ar & street1 & street2;
+    }
+
+public:
+    bus_stop_corner(){}
+    bus_stop_corner(const gps_position & _lat, const gps_position & _long,
+        const std::string & _s1, const std::string & _s2
+    ) :
+        bus_stop(_lat, _long), street1(_s1), street2(_s2)
+    {
+    }
+};
+
+class bus_stop_destination : public bus_stop
+{
+    friend class boost::serialization::access;
+    std::string name;
+    virtual std::string description() const
+    {
+        return name;
+    }
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar & boost::serialization::base_object<bus_stop>(*this) & name;
+    }
+public:
+    
+    bus_stop_destination(){}
+    bus_stop_destination(
+        const gps_position & _lat, const gps_position & _long, const std::string & _name
+    ) :
+        bus_stop(_lat, _long), name(_name)
+    {
+    }
+};
+
+/////////////////////////////////////////////////////////////
+// a bus route is a collection of bus stops
+//
+// illustrates serialization of STL collection templates.
+//
+// illustrates serialzation of polymorphic pointer (bus stop *);
+//
+// illustrates storage and recovery of shared pointers is correct
+// and efficient.  That is objects pointed to by more than one
+// pointer are stored only once.  In such cases only one such
+// object is restored and pointers are restored to point to it
+//
+class bus_route
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const bus_route &br);
+    typedef bus_stop * bus_stop_pointer;
+    std::list<bus_stop_pointer> stops;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        // in this program, these classes are never serialized directly but rather
+        // through a pointer to the base class bus_stop. So we need a way to be
+        // sure that the archive contains information about these derived classes.
+        //ar.template register_type<bus_stop_corner>();
+        ar.register_type(static_cast<bus_stop_corner *>(NULL));
+        //ar.template register_type<bus_stop_destination>();
+        ar.register_type(static_cast<bus_stop_destination *>(NULL));
+        // serialization of stl collections is already defined
+        // in the header
+        ar & stops;
+    }
+public:
+    bus_route(){}
+    void append(bus_stop *_bs)
+    {
+        stops.insert(stops.end(), _bs);
+    }
+};
+std::ostream & operator<<(std::ostream &os, const bus_route &br)
+{
+    std::list<bus_stop *>::const_iterator it;
+    // note: we're displaying the pointer to permit verification
+    // that duplicated pointers are properly restored.
+    for(it = br.stops.begin(); it != br.stops.end(); it++){
+        os << '\n' << std::hex << "0x" << *it << std::dec << ' ' << **it;
+    }
+    return os;
+}
+
+/////////////////////////////////////////////////////////////
+// a bus schedule is a collection of routes each with a starting time
+//
+// Illustrates serialization of STL objects(pair) in a non-intrusive way.
+// See definition of operator<< <pair<F, S> >(ar, pair) and others in
+// serialization.hpp
+// 
+// illustrates nesting of serializable classes
+//
+// illustrates use of version number to automatically grandfather older
+// versions of the same class.
+
+class bus_schedule
+{
+public:
+    // note: this structure was made public. because the friend declarations
+    // didn't seem to work as expected.
+    struct trip_info
+    {
+        template<class Archive>
+        void serialize(Archive &ar, const unsigned int file_version)
+        {
+            // in versions 2 or later
+            if(file_version >= 2)
+                // read the drivers name
+                ar & driver;
+            // all versions have the follwing info
+            ar & hour & minute;
+        }
+
+        // starting time
+        int hour;
+        int minute;
+        // only after system shipped was the driver's name added to the class
+        std::string driver;
+
+        trip_info(){}
+        trip_info(int _h, int _m, const std::string &_d) :
+            hour(_h), minute(_m), driver(_d)
+        {}
+    };
+private:
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const bus_schedule &bs);
+    friend std::ostream & operator<<(std::ostream &os, const bus_schedule::trip_info &ti);
+    std::list<std::pair<trip_info, bus_route *> > schedule;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar & schedule;
+    }
+public:
+    void append(const std::string &_d, int _h, int _m, bus_route *_br)
+    {
+        schedule.insert(schedule.end(), std::make_pair(trip_info(_h, _m, _d), _br));
+    }
+    bus_schedule(){}
+};
+BOOST_CLASS_VERSION(bus_schedule::trip_info, 2)
+
+std::ostream & operator<<(std::ostream &os, const bus_schedule::trip_info &ti)
+{
+    return os << '\n' << ti.hour << ':' << ti.minute << ' ' << ti.driver << ' ';
+}
+std::ostream & operator<<(std::ostream &os, const bus_schedule &bs)
+{
+    std::list<std::pair<bus_schedule::trip_info, bus_route *> >::const_iterator it;
+    for(it = bs.schedule.begin(); it != bs.schedule.end(); it++){
+        os << it->first << *(it->second);
+    }
+    return os;
+}
+
+void save_schedule(const bus_schedule &s, const char * filename){
+    // make an archive
+    std::ofstream ofs(filename);
+    boost::archive::text_oarchive oa(ofs);
+    oa << s;
+}
+
+void
+restore_schedule(bus_schedule &s, const char * filename)
+{
+    // open the archive
+    std::ifstream ifs(filename);
+    boost::archive::text_iarchive ia(ifs);
+
+    // restore the schedule from the archive
+    ia >> s;
+}
+
+int main(int argc, char *argv[])
+{   
+    // make the schedule
+    bus_schedule original_schedule;
+
+    // fill in the data
+    // make a few stops
+    bus_stop *bs0 = new bus_stop_corner(
+        gps_position(34, 135, 52.560f),
+        gps_position(134, 22, 78.30f),
+        "24th Street", "10th Avenue"
+    );
+    bus_stop *bs1 = new bus_stop_corner(
+        gps_position(35, 137, 23.456f),
+        gps_position(133, 35, 54.12f),
+        "State street", "Cathedral Vista Lane"
+    );
+    bus_stop *bs2 = new bus_stop_destination(
+        gps_position(35, 136, 15.456f),
+        gps_position(133, 32, 15.300f),
+        "White House"
+    );
+    bus_stop *bs3 = new bus_stop_destination(
+        gps_position(35, 134, 48.789f),
+        gps_position(133, 32, 16.230f),
+        "Lincoln Memorial"
+    );
+
+    // make a  routes
+    bus_route route0;
+    route0.append(bs0);
+    route0.append(bs1);
+    route0.append(bs2);
+
+    // add trips to schedule
+    original_schedule.append("bob", 6, 24, &route0);
+    original_schedule.append("bob", 9, 57, &route0);
+    original_schedule.append("alice", 11, 02, &route0);
+
+    // make aother routes
+    bus_route route1;
+    route1.append(bs3);
+    route1.append(bs2);
+    route1.append(bs1);
+
+    // add trips to schedule
+    original_schedule.append("ted", 7, 17, &route1);
+    original_schedule.append("ted", 9, 38, &route1);
+    original_schedule.append("alice", 11, 47, &route1);
+
+    // display the complete schedule
+    std::cout << "original schedule";
+    std::cout << original_schedule;
+    
+    std::string filename(boost::archive::tmpdir());
+    filename += "/demofile.txt";
+
+    // save the schedule
+    save_schedule(original_schedule, filename.c_str());
+
+    // ... some time later
+    // make  a new schedule
+    bus_schedule new_schedule;
+
+    restore_schedule(new_schedule, filename.c_str());
+
+    // and display
+    std::cout << "\nrestored schedule";
+    std::cout << new_schedule;
+    // should be the same as the old one. (except for the pointer values)
+
+    delete bs0;
+    delete bs1;
+    delete bs2;
+    delete bs3;
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_auto_ptr.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_auto_ptr.cpp
new file mode 100644 (file)
index 0000000..c430b81
--- /dev/null
@@ -0,0 +1,135 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_auto_ptr.cpp
+
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <list>
+#include <memory>
+#include <fstream>
+#include <string>
+
+#include <cstdio> // remove, std::autoptr inteface wrong in dinkumware
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/tmpdir.hpp>
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
+#include <boost/serialization/split_free.hpp>
+
+namespace boost { 
+namespace serialization {
+
+/////////////////////////////////////////////////////////////
+// implement serialization for auto_ptr<T>
+// note: this must be added to the boost namespace in order to
+// be called by the library
+template<class Archive, class T>
+inline void save(
+    Archive & ar,
+    const std::auto_ptr<T> &t,
+    const unsigned int file_version
+){
+    // only the raw pointer has to be saved
+    // the ref count is rebuilt automatically on load
+    const T * const tx = t.get();
+    ar << tx;
+}
+
+template<class Archive, class T>
+inline void load(
+    Archive & ar,
+    std::auto_ptr<T> &t,
+    const unsigned int file_version
+){
+    T *pTarget;
+    ar >> pTarget;
+    // note that the reset automagically maintains the reference count
+    #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+        t.release();
+        t = std::auto_ptr<T>(pTarget);
+    #else
+        t.reset(pTarget);
+    #endif
+}
+
+// split non-intrusive serialization function member into separate
+// non intrusive save/load member functions
+template<class Archive, class T>
+inline void serialize(
+    Archive & ar,
+    std::auto_ptr<T> &t,
+    const unsigned int file_version
+){
+    boost::serialization::split_free(ar, t, file_version);
+}
+
+} // namespace serialization
+} // namespace boost
+
+/////////////////////////////////////////////////////////////
+// test auto_ptr serialization
+class A
+{
+private:
+    friend class boost::serialization::access;
+    int x;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & x;
+    }
+public:
+    A(){}    // default constructor
+    ~A(){}   // default destructor
+};
+
+void save(const std::auto_ptr<A> & spa, const char *filename)
+{
+    std::ofstream ofs(filename);
+    boost::archive::text_oarchive oa(ofs);
+    oa << spa;
+}
+
+void load(std::auto_ptr<A> & spa, const char *filename)
+{
+    // open the archive
+    std::ifstream ifs(filename);
+    boost::archive::text_iarchive ia(ifs);
+
+    // restore the schedule from the archive
+    ia >> spa;
+}
+
+int main(int argc, char *argv[])
+{
+    std::string filename = boost::archive::tmpdir();
+    filename += "/testfile";
+
+    // create  a new auto pointer to ta new object of type A
+    std::auto_ptr<A> spa(new A);
+    // serialize it
+    save(spa, filename.c_str());
+    // reset the auto pointer to NULL
+    // thereby destroying the object of type A
+    // note that the reset automagically maintains the reference count
+    #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+        spa.release();
+    #else
+        spa.reset();
+    #endif
+    // restore state to one equivalent to the original
+    // creating a new type A object
+    load(spa, filename.c_str());
+    // obj of type A gets destroyed
+    // as auto_ptr goes out of scope
+    std::remove(filename.c_str());
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_dll.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_dll.cpp
new file mode 100644 (file)
index 0000000..31556e7
--- /dev/null
@@ -0,0 +1,50 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_derived_class.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include "B.hpp"
+#include "A.ipp"
+
+int test_main( int argc, char* argv[] )
+{
+  const char * testfile = boost::archive::tmpnam(NULL);
+  
+  BOOST_REQUIRE(NULL != testfile);
+
+    B b, b1;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("b", b);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("b1", b1);
+    }
+    BOOST_CHECK(b == b1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_dll_a.hpp b/deal.II/contrib/boost/libs/serialization/example/demo_dll_a.hpp
new file mode 100644 (file)
index 0000000..222f0b2
--- /dev/null
@@ -0,0 +1,321 @@
+#ifndef BOOST_SERIALIZATION_TEST_A_HPP
+#define BOOST_SERIALIZATION_TEST_A_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// A.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cassert>
+#include <cstdlib> // for rand()
+#include <cmath> // for fabs()
+#include <cstddef> // size_t
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+    using ::fabs;
+    using ::size_t;
+}
+#endif
+
+//#include <boost/test/test_exec_monitor.hpp>
+#include <boost/limits.hpp>
+#include <boost/cstdint.hpp>
+
+#include <boost/detail/workaround.hpp>
+#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+#include <boost/archive/dinkumware.hpp>
+#endif
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/string.hpp>
+#include <boost/serialization/access.hpp>
+
+class A
+{
+private:
+    friend class boost::serialization::access;
+    // note: from an aesthetic perspective, I would much prefer to have this
+    // defined out of line.  Unfortunately, this trips a bug in the VC 6.0
+    // compiler. So hold our nose and put it her to permit running of tests.
+    template<class Archive>
+    void serialize(
+        Archive &ar,
+        const unsigned int /* file_version */
+    ){
+        ar & BOOST_SERIALIZATION_NVP(b);
+        #ifndef BOOST_NO_INT64_T
+        ar & BOOST_SERIALIZATION_NVP(f);
+        ar & BOOST_SERIALIZATION_NVP(g);
+        #endif
+        #if BOOST_WORKAROUND(__BORLANDC__,  <= 0x551 )
+            int i;
+            if(BOOST_DEDUCED_TYPENAME Archive::is_saving::value){
+                i = l;
+                ar & BOOST_SERIALIZATION_NVP(i);
+            }
+            else{
+                ar & BOOST_SERIALIZATION_NVP(i);
+                l = i;
+            }
+        #else
+            ar & BOOST_SERIALIZATION_NVP(l);
+        #endif
+        ar & BOOST_SERIALIZATION_NVP(m);
+        ar & BOOST_SERIALIZATION_NVP(n);
+        ar & BOOST_SERIALIZATION_NVP(o);
+        ar & BOOST_SERIALIZATION_NVP(p);
+        ar & BOOST_SERIALIZATION_NVP(q);
+        #ifndef BOOST_NO_CWCHAR
+        ar & BOOST_SERIALIZATION_NVP(r);
+        #endif
+        ar & BOOST_SERIALIZATION_NVP(c);
+        ar & BOOST_SERIALIZATION_NVP(s);
+        ar & BOOST_SERIALIZATION_NVP(t);
+        ar & BOOST_SERIALIZATION_NVP(u);
+        ar & BOOST_SERIALIZATION_NVP(v);
+        ar & BOOST_SERIALIZATION_NVP(w);
+        ar & BOOST_SERIALIZATION_NVP(x);
+        ar & BOOST_SERIALIZATION_NVP(y);
+        #ifndef BOOST_NO_STD_WSTRING
+        ar & BOOST_SERIALIZATION_NVP(z);
+        #endif
+    }
+    bool b;
+    #ifndef BOOST_NO_INT64_T
+    boost::int64_t f;
+    boost::uint64_t g;
+    #endif
+    enum h {
+        i = 0,
+        j,
+        k
+    } l;
+    std::size_t m;
+    signed long n;
+    unsigned long o;
+    signed  short p;
+    unsigned short q;
+    #ifndef BOOST_NO_CWCHAR
+    wchar_t r;
+    #endif
+    char c;
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+    std::string y;
+    #ifndef BOOST_NO_STD_WSTRING
+    std::wstring z;
+    #endif
+public:
+    A();
+    bool operator==(const A &rhs) const;
+    bool operator!=(const A &rhs) const;
+    bool operator<(const A &rhs) const; // used by less
+    // hash function for class A
+    operator std::size_t () const;
+    friend std::ostream & operator<<(std::ostream & os, A const & a);
+    friend std::istream & operator>>(std::istream & is, A & a);
+};
+
+//BOOST_TEST_DONT_PRINT_LOG_VALUE(A);
+
+template<class S>
+void randomize(S &x)
+{
+    assert(0 == x.size());
+    for(;;){
+        unsigned int i = std::rand() % 27;
+        if(0 == i)
+            break;
+        x += static_cast<BOOST_DEDUCED_TYPENAME S::value_type>('a' - 1 + i);
+    }
+}
+
+template<class T>
+void accumulate(std::size_t & s, const T & t){
+    const char * tptr = (const char *)(& t);
+    unsigned int count = sizeof(t);
+    while(count-- > 0){
+        s += *tptr++;
+    }
+}
+
+A::operator std::size_t () const {
+    std::size_t retval = 0;
+    accumulate(retval, b);
+    #ifndef BOOST_NO_INT64_T
+    accumulate(retval, f);
+    accumulate(retval, g);
+    #endif
+    accumulate(retval, l);
+    accumulate(retval, m);
+    accumulate(retval, n);
+    accumulate(retval, o);
+    accumulate(retval, p);
+    accumulate(retval, q);
+    #ifndef BOOST_NO_CWCHAR
+    accumulate(retval, r);
+    #endif
+    accumulate(retval, c);
+    accumulate(retval, s);
+    accumulate(retval, t);
+    accumulate(retval, u);
+    accumulate(retval, v);
+    return retval;
+}
+
+inline A::A() :
+    b(true),
+    #ifndef BOOST_NO_INT64_T
+    f(std::rand() * std::rand()),
+    g(std::rand() * std::rand()),
+    #endif
+    l(static_cast<enum h>(std::rand() % 3)),
+    m(std::rand()),
+    n(std::rand()),
+    o(std::rand()),
+    p(std::rand()),
+    q(std::rand()),
+    #ifndef BOOST_NO_CWCHAR
+    r(std::rand()),
+    #endif
+    c(std::rand()),
+    s(std::rand()),
+    t(std::rand()),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand()),
+    x((double)std::rand())
+{
+    randomize(y);
+    #ifndef BOOST_NO_STD_WSTRING
+    randomize(z);
+    #endif
+}
+
+inline bool A::operator==(const A &rhs) const
+{
+    if(b != rhs.b)
+        return false;
+    if(l != rhs.l)
+        return false;
+    #ifndef BOOST_NO_INT64_T
+    if(f != rhs.f)
+        return false;
+    if(g != rhs.g)
+        return false;
+    #endif
+    if(m != rhs.m)
+        return false;
+    if(n != rhs.n)
+        return false;
+    if(o != rhs.o)
+        return false;
+    if(p != rhs.p)
+        return false; 
+    if(q != rhs.q)
+        return false;
+    #ifndef BOOST_NO_CWCHAR
+    if(r != rhs.r)
+        return false; 
+    #endif
+    if(c != rhs.c)
+        return false;
+    if(s != rhs.s)
+        return false;
+    if(t != rhs.t)
+        return false;
+    if(u != rhs.u)
+        return false; 
+    if(v != rhs.v)
+        return false; 
+    if(w == 0 && std::fabs(rhs.w) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(std::fabs(rhs.w/w - 1.0) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(x == 0 && std::fabs(rhs.x - x) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(std::fabs(rhs.x/x - 1.0) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(0 != y.compare(rhs.y))
+        return false;
+    #ifndef BOOST_NO_STD_WSTRING
+    if(0 != z.compare(rhs.z))
+        return false;
+    #endif      
+    return true;
+}
+
+inline bool A::operator!=(const A &rhs) const
+{
+    return ! (*this == rhs);
+}
+
+inline bool A::operator<(const A &rhs) const
+{
+    if(b != rhs.b)
+        return b < rhs.b;
+    #ifndef BOOST_NO_INT64_T
+    if(f != rhs.f)
+        return f < rhs.f;
+    if(g != rhs.g)
+        return g < rhs.g;
+    #endif
+    if(l != rhs.l )
+        return l < rhs.l;
+    if(m != rhs.m )
+        return m < rhs.m;
+    if(n != rhs.n )
+        return n < rhs.n;
+    if(o != rhs.o )
+        return o < rhs.o;
+    if(p != rhs.p )
+        return p < rhs.p;
+    if(q != rhs.q )
+        return q < rhs.q;
+    #ifndef BOOST_NO_CWCHAR
+    if(r != rhs.r )
+        return r < rhs.r;
+    #endif
+    if(c != rhs.c )
+        return c < rhs.c;
+    if(s != rhs.s )
+        return s < rhs.s;
+    if(t != rhs.t )
+        return t < rhs.t;
+    if(u != rhs.u )
+        return u < rhs.u; 
+    if(v != rhs.v )
+        return v < rhs.v;
+    if(w != rhs.w )
+        return w < rhs.w; 
+    if(x != rhs.x )
+        return x < rhs.x;
+    int i = y.compare(rhs.y);
+    if(i !=  0 )
+        return i < 0;
+    #ifndef BOOST_NO_STD_WSTRING
+    int j = z.compare(rhs.z);
+    if(j !=  0 )
+        return j < 0;
+    #endif
+    return false;
+}
+
+#endif // BOOST_SERIALIZATION_TEST_A_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_dll_a.ipp b/deal.II/contrib/boost/libs/serialization/example/demo_dll_a.ipp
new file mode 100644 (file)
index 0000000..222f0b2
--- /dev/null
@@ -0,0 +1,321 @@
+#ifndef BOOST_SERIALIZATION_TEST_A_HPP
+#define BOOST_SERIALIZATION_TEST_A_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// A.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cassert>
+#include <cstdlib> // for rand()
+#include <cmath> // for fabs()
+#include <cstddef> // size_t
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+    using ::fabs;
+    using ::size_t;
+}
+#endif
+
+//#include <boost/test/test_exec_monitor.hpp>
+#include <boost/limits.hpp>
+#include <boost/cstdint.hpp>
+
+#include <boost/detail/workaround.hpp>
+#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+#include <boost/archive/dinkumware.hpp>
+#endif
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/string.hpp>
+#include <boost/serialization/access.hpp>
+
+class A
+{
+private:
+    friend class boost::serialization::access;
+    // note: from an aesthetic perspective, I would much prefer to have this
+    // defined out of line.  Unfortunately, this trips a bug in the VC 6.0
+    // compiler. So hold our nose and put it her to permit running of tests.
+    template<class Archive>
+    void serialize(
+        Archive &ar,
+        const unsigned int /* file_version */
+    ){
+        ar & BOOST_SERIALIZATION_NVP(b);
+        #ifndef BOOST_NO_INT64_T
+        ar & BOOST_SERIALIZATION_NVP(f);
+        ar & BOOST_SERIALIZATION_NVP(g);
+        #endif
+        #if BOOST_WORKAROUND(__BORLANDC__,  <= 0x551 )
+            int i;
+            if(BOOST_DEDUCED_TYPENAME Archive::is_saving::value){
+                i = l;
+                ar & BOOST_SERIALIZATION_NVP(i);
+            }
+            else{
+                ar & BOOST_SERIALIZATION_NVP(i);
+                l = i;
+            }
+        #else
+            ar & BOOST_SERIALIZATION_NVP(l);
+        #endif
+        ar & BOOST_SERIALIZATION_NVP(m);
+        ar & BOOST_SERIALIZATION_NVP(n);
+        ar & BOOST_SERIALIZATION_NVP(o);
+        ar & BOOST_SERIALIZATION_NVP(p);
+        ar & BOOST_SERIALIZATION_NVP(q);
+        #ifndef BOOST_NO_CWCHAR
+        ar & BOOST_SERIALIZATION_NVP(r);
+        #endif
+        ar & BOOST_SERIALIZATION_NVP(c);
+        ar & BOOST_SERIALIZATION_NVP(s);
+        ar & BOOST_SERIALIZATION_NVP(t);
+        ar & BOOST_SERIALIZATION_NVP(u);
+        ar & BOOST_SERIALIZATION_NVP(v);
+        ar & BOOST_SERIALIZATION_NVP(w);
+        ar & BOOST_SERIALIZATION_NVP(x);
+        ar & BOOST_SERIALIZATION_NVP(y);
+        #ifndef BOOST_NO_STD_WSTRING
+        ar & BOOST_SERIALIZATION_NVP(z);
+        #endif
+    }
+    bool b;
+    #ifndef BOOST_NO_INT64_T
+    boost::int64_t f;
+    boost::uint64_t g;
+    #endif
+    enum h {
+        i = 0,
+        j,
+        k
+    } l;
+    std::size_t m;
+    signed long n;
+    unsigned long o;
+    signed  short p;
+    unsigned short q;
+    #ifndef BOOST_NO_CWCHAR
+    wchar_t r;
+    #endif
+    char c;
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+    std::string y;
+    #ifndef BOOST_NO_STD_WSTRING
+    std::wstring z;
+    #endif
+public:
+    A();
+    bool operator==(const A &rhs) const;
+    bool operator!=(const A &rhs) const;
+    bool operator<(const A &rhs) const; // used by less
+    // hash function for class A
+    operator std::size_t () const;
+    friend std::ostream & operator<<(std::ostream & os, A const & a);
+    friend std::istream & operator>>(std::istream & is, A & a);
+};
+
+//BOOST_TEST_DONT_PRINT_LOG_VALUE(A);
+
+template<class S>
+void randomize(S &x)
+{
+    assert(0 == x.size());
+    for(;;){
+        unsigned int i = std::rand() % 27;
+        if(0 == i)
+            break;
+        x += static_cast<BOOST_DEDUCED_TYPENAME S::value_type>('a' - 1 + i);
+    }
+}
+
+template<class T>
+void accumulate(std::size_t & s, const T & t){
+    const char * tptr = (const char *)(& t);
+    unsigned int count = sizeof(t);
+    while(count-- > 0){
+        s += *tptr++;
+    }
+}
+
+A::operator std::size_t () const {
+    std::size_t retval = 0;
+    accumulate(retval, b);
+    #ifndef BOOST_NO_INT64_T
+    accumulate(retval, f);
+    accumulate(retval, g);
+    #endif
+    accumulate(retval, l);
+    accumulate(retval, m);
+    accumulate(retval, n);
+    accumulate(retval, o);
+    accumulate(retval, p);
+    accumulate(retval, q);
+    #ifndef BOOST_NO_CWCHAR
+    accumulate(retval, r);
+    #endif
+    accumulate(retval, c);
+    accumulate(retval, s);
+    accumulate(retval, t);
+    accumulate(retval, u);
+    accumulate(retval, v);
+    return retval;
+}
+
+inline A::A() :
+    b(true),
+    #ifndef BOOST_NO_INT64_T
+    f(std::rand() * std::rand()),
+    g(std::rand() * std::rand()),
+    #endif
+    l(static_cast<enum h>(std::rand() % 3)),
+    m(std::rand()),
+    n(std::rand()),
+    o(std::rand()),
+    p(std::rand()),
+    q(std::rand()),
+    #ifndef BOOST_NO_CWCHAR
+    r(std::rand()),
+    #endif
+    c(std::rand()),
+    s(std::rand()),
+    t(std::rand()),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand()),
+    x((double)std::rand())
+{
+    randomize(y);
+    #ifndef BOOST_NO_STD_WSTRING
+    randomize(z);
+    #endif
+}
+
+inline bool A::operator==(const A &rhs) const
+{
+    if(b != rhs.b)
+        return false;
+    if(l != rhs.l)
+        return false;
+    #ifndef BOOST_NO_INT64_T
+    if(f != rhs.f)
+        return false;
+    if(g != rhs.g)
+        return false;
+    #endif
+    if(m != rhs.m)
+        return false;
+    if(n != rhs.n)
+        return false;
+    if(o != rhs.o)
+        return false;
+    if(p != rhs.p)
+        return false; 
+    if(q != rhs.q)
+        return false;
+    #ifndef BOOST_NO_CWCHAR
+    if(r != rhs.r)
+        return false; 
+    #endif
+    if(c != rhs.c)
+        return false;
+    if(s != rhs.s)
+        return false;
+    if(t != rhs.t)
+        return false;
+    if(u != rhs.u)
+        return false; 
+    if(v != rhs.v)
+        return false; 
+    if(w == 0 && std::fabs(rhs.w) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(std::fabs(rhs.w/w - 1.0) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(x == 0 && std::fabs(rhs.x - x) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(std::fabs(rhs.x/x - 1.0) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(0 != y.compare(rhs.y))
+        return false;
+    #ifndef BOOST_NO_STD_WSTRING
+    if(0 != z.compare(rhs.z))
+        return false;
+    #endif      
+    return true;
+}
+
+inline bool A::operator!=(const A &rhs) const
+{
+    return ! (*this == rhs);
+}
+
+inline bool A::operator<(const A &rhs) const
+{
+    if(b != rhs.b)
+        return b < rhs.b;
+    #ifndef BOOST_NO_INT64_T
+    if(f != rhs.f)
+        return f < rhs.f;
+    if(g != rhs.g)
+        return g < rhs.g;
+    #endif
+    if(l != rhs.l )
+        return l < rhs.l;
+    if(m != rhs.m )
+        return m < rhs.m;
+    if(n != rhs.n )
+        return n < rhs.n;
+    if(o != rhs.o )
+        return o < rhs.o;
+    if(p != rhs.p )
+        return p < rhs.p;
+    if(q != rhs.q )
+        return q < rhs.q;
+    #ifndef BOOST_NO_CWCHAR
+    if(r != rhs.r )
+        return r < rhs.r;
+    #endif
+    if(c != rhs.c )
+        return c < rhs.c;
+    if(s != rhs.s )
+        return s < rhs.s;
+    if(t != rhs.t )
+        return t < rhs.t;
+    if(u != rhs.u )
+        return u < rhs.u; 
+    if(v != rhs.v )
+        return v < rhs.v;
+    if(w != rhs.w )
+        return w < rhs.w; 
+    if(x != rhs.x )
+        return x < rhs.x;
+    int i = y.compare(rhs.y);
+    if(i !=  0 )
+        return i < 0;
+    #ifndef BOOST_NO_STD_WSTRING
+    int j = z.compare(rhs.z);
+    if(j !=  0 )
+        return j < 0;
+    #endif
+    return false;
+}
+
+#endif // BOOST_SERIALIZATION_TEST_A_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_dll_b.hpp b/deal.II/contrib/boost/libs/serialization/example/demo_dll_b.hpp
new file mode 100644 (file)
index 0000000..245ce37
--- /dev/null
@@ -0,0 +1,112 @@
+#ifndef BOOST_SERIALIZATION_TEST_B_HPP
+#define BOOST_SERIALIZATION_TEST_B_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// B.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstdlib> // for rand()
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+}
+#endif
+
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/base_object.hpp>
+
+#include "A.hpp"
+
+///////////////////////////////////////////////////////
+// Derived class test
+class B : public A
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        // write any base class info to the archive
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+
+        // write out members
+        ar << BOOST_SERIALIZATION_NVP(s);
+        ar << BOOST_SERIALIZATION_NVP(t);
+        ar << BOOST_SERIALIZATION_NVP(u);
+        ar << BOOST_SERIALIZATION_NVP(v);
+        ar << BOOST_SERIALIZATION_NVP(w);
+        ar << BOOST_SERIALIZATION_NVP(x);
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int file_version)
+    {
+        // read any base class info to the archive
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+        switch(file_version){
+        case 1:
+        case 2:
+            ar >> BOOST_SERIALIZATION_NVP(s);
+            ar >> BOOST_SERIALIZATION_NVP(t);
+            ar >> BOOST_SERIALIZATION_NVP(u);
+            ar >> BOOST_SERIALIZATION_NVP(v);
+            ar >> BOOST_SERIALIZATION_NVP(w);
+            ar >> BOOST_SERIALIZATION_NVP(x);
+        default:
+            break;
+        }
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+public:
+    B();
+    virtual ~B(){};
+    bool operator==(const B &rhs) const;
+};
+
+B::B() :
+    s(std::rand()),
+    t(std::rand()),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand() / std::rand()),
+    x((double)std::rand() / std::rand())
+{
+}
+
+BOOST_CLASS_VERSION(B, 2)
+
+inline bool B::operator==(const B &rhs) const
+{
+    return
+        A::operator==(rhs)
+        && s == rhs.s 
+        && t == rhs.t 
+        && u == rhs.u 
+        && v == rhs.v 
+        && std::fabs(w - rhs.w) <= std::numeric_limits<float>::round_error()
+        && std::fabs(x - rhs.x) <= std::numeric_limits<float>::round_error()
+    ;
+}
+
+#endif // BOOST_SERIALIZATION_TEST_B_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_dll_b.ipp b/deal.II/contrib/boost/libs/serialization/example/demo_dll_b.ipp
new file mode 100644 (file)
index 0000000..245ce37
--- /dev/null
@@ -0,0 +1,112 @@
+#ifndef BOOST_SERIALIZATION_TEST_B_HPP
+#define BOOST_SERIALIZATION_TEST_B_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// B.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstdlib> // for rand()
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+}
+#endif
+
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/base_object.hpp>
+
+#include "A.hpp"
+
+///////////////////////////////////////////////////////
+// Derived class test
+class B : public A
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        // write any base class info to the archive
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+
+        // write out members
+        ar << BOOST_SERIALIZATION_NVP(s);
+        ar << BOOST_SERIALIZATION_NVP(t);
+        ar << BOOST_SERIALIZATION_NVP(u);
+        ar << BOOST_SERIALIZATION_NVP(v);
+        ar << BOOST_SERIALIZATION_NVP(w);
+        ar << BOOST_SERIALIZATION_NVP(x);
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int file_version)
+    {
+        // read any base class info to the archive
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+        switch(file_version){
+        case 1:
+        case 2:
+            ar >> BOOST_SERIALIZATION_NVP(s);
+            ar >> BOOST_SERIALIZATION_NVP(t);
+            ar >> BOOST_SERIALIZATION_NVP(u);
+            ar >> BOOST_SERIALIZATION_NVP(v);
+            ar >> BOOST_SERIALIZATION_NVP(w);
+            ar >> BOOST_SERIALIZATION_NVP(x);
+        default:
+            break;
+        }
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+public:
+    B();
+    virtual ~B(){};
+    bool operator==(const B &rhs) const;
+};
+
+B::B() :
+    s(std::rand()),
+    t(std::rand()),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand() / std::rand()),
+    x((double)std::rand() / std::rand())
+{
+}
+
+BOOST_CLASS_VERSION(B, 2)
+
+inline bool B::operator==(const B &rhs) const
+{
+    return
+        A::operator==(rhs)
+        && s == rhs.s 
+        && t == rhs.t 
+        && u == rhs.u 
+        && v == rhs.v 
+        && std::fabs(w - rhs.w) <= std::numeric_limits<float>::round_error()
+        && std::fabs(x - rhs.x) <= std::numeric_limits<float>::round_error()
+    ;
+}
+
+#endif // BOOST_SERIALIZATION_TEST_B_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_exception.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_exception.cpp
new file mode 100644 (file)
index 0000000..122a05a
--- /dev/null
@@ -0,0 +1,258 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_exception.cpp
+
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// Example of safe exception handling for pointer de-serialization
+// 
+// This example was prepared by Robert Ramey to demonstrate and test 
+// safe exception handling during the de-serialization of pointers in
+// a non-trivial example.
+//
+// Hopefully, this addresses exception issues raised by
+// Vahan Margaryan who spent considerable time and effort
+// in the analysis and testing of issues of exception safety 
+// of the serialization library.
+
+#include <algorithm>
+#include <iostream>
+#include <cstddef> // NULL
+#include <fstream>
+#include <string>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/tmpdir.hpp>
+
+#ifndef BOOST_NO_EXCEPTIONS
+#include <exception>
+#endif
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+
+#include <boost/serialization/list.hpp>
+#include <boost/serialization/split_member.hpp>
+
+template<class TPTR>
+struct deleter
+{
+    void operator()(TPTR t){
+        delete t;
+    }
+};
+
+class Course;
+class Student;
+
+class Student
+{
+public:
+    static int count;
+    Student(){
+        count++;
+    }
+    ~Student(){
+        some_courses.clear();
+        count--;
+    }
+    std::list<Course *> some_courses;
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & some_courses;
+    }
+};
+
+int Student::count = 0;
+
+class Course
+{
+public:
+    static int count;
+    Course(){
+        count++;
+    }
+    ~Course(){
+        // doesnt delete pointers in list
+        // since it doesn't "own" them
+        some_students.clear();
+        count--;
+    }
+    std::list<Student *> some_students;
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & some_students;
+    }
+};
+
+int Course::count = 0;
+
+class School
+{
+public:
+    ~School(){
+        // must delete all the students because
+        // it "owns" them
+        std::for_each(all_students.begin(), all_students.end(), deleter<Student *>());
+        all_students.clear();
+        // as well as courses
+        std::for_each(all_courses.begin(), all_courses.end(), deleter<Course *>());
+        all_courses.clear();
+    }
+    std::list<Student *> all_students;
+    std::list<Course *> all_courses;
+private:
+    friend class boost::serialization::access;
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+    template<class Archive>
+    void save(Archive & ar, const unsigned int file_version) const;
+    template<class Archive>
+    void load(Archive & ar, const unsigned int file_version);
+};
+
+#if 0
+// case 1:
+template<class Archive>
+void School::serialize(Archive & ar, const unsigned int /* file_version */){
+    // if an exeception occurs while loading courses
+    // the structure courses may have some courses each
+    // with students
+    ar & all_courses;
+    // while all_students will have no members.
+    ar & all_students; // create students that have no courses
+    // so ~School() will delete all members of courses
+    // but this will NOT delete any students - see above
+    // a memory leak will be the result.
+}
+
+// switching the order of serialization doesn't help in this case
+// case 2:
+template<class Archive>
+void School::serialize(Archive & ar, const unsigned int /* file_version */){
+    ar & all_students;
+    ar >> all_courses;  // create any courses that have no students
+}
+#endif
+
+template<class Archive>
+void School::save(Archive & ar, const unsigned int /* file_version */) const {
+    ar << all_students;
+    ar << all_courses;
+}
+
+template<class Archive>
+void School::load(Archive & ar, const unsigned int /* file_version */){
+    // if an exeception occurs while loading courses
+    // the structure courses may have some courses each
+    // with students
+    try{
+        // deserialization of a Course * will in general provoke the
+        // deserialization of Student * which are added to the list of
+        // students for a class.  That is, this process will result
+        // in the copying of a pointer.
+        ar >> all_courses;
+        ar >> all_students; // create students that have no courses
+    }
+    catch(std::exception){
+        // elminate any dangling references
+        all_courses.clear();
+        all_students.clear();
+        throw;
+    }
+}
+
+void init(School *school){
+    Student *bob = new Student();
+    Student *ted = new Student();
+    Student *carol = new Student();
+    Student *alice = new Student();
+
+    school->all_students.push_back(bob);
+    school->all_students.push_back(ted);
+    school->all_students.push_back(carol);
+    school->all_students.push_back(alice);
+
+    Course *math = new Course();
+    Course *history = new Course();
+    Course *literature = new Course();
+    Course *gym = new Course();
+
+    school->all_courses.push_back(math);
+    school->all_courses.push_back(history);
+    school->all_courses.push_back(literature);
+    school->all_courses.push_back(gym);
+
+    bob->some_courses.push_back(math);
+    math->some_students.push_back(bob);
+    bob->some_courses.push_back(literature);
+    literature->some_students.push_back(bob);
+
+    ted->some_courses.push_back(math);
+    math->some_students.push_back(ted);
+    ted->some_courses.push_back(history);
+    history->some_students.push_back(ted);
+
+    alice->some_courses.push_back(literature);
+    literature->some_students.push_back(alice);
+    alice->some_courses.push_back(history);
+    history->some_students.push_back(alice);
+
+    // no students signed up for gym
+    // carol has no courses
+}
+
+void save(const School * const school, const char *filename){
+    std::ofstream ofile(filename);
+    boost::archive::text_oarchive ar(ofile);
+    ar << school;
+}
+
+void load(School * & school, const char *filename){
+    std::ifstream ifile(filename);
+    boost::archive::text_iarchive ar(ifile);
+    try{
+        ar >> school;
+    }
+    catch(std::exception){
+        // eliminate dangling reference
+        school = NULL;
+    }
+}
+
+int main(int argc, char *argv[]){
+    std::string filename(boost::archive::tmpdir());
+    filename += "/demofile.txt";
+
+    School *school = new School();
+    std::cout << "1. student count = " << Student::count << std::endl;
+    std::cout << "2. class count = " << Course::count << std::endl;
+    init(school);
+    std::cout << "3. student count = " << Student::count << std::endl;
+    std::cout << "4. class count = " << Course::count << std::endl;
+    save(school, filename.c_str());
+    delete school;
+    school = NULL;
+    std::cout << "5. student count = " << Student::count << std::endl;
+    std::cout << "6. class count = " << Course::count << std::endl;
+    load(school, filename.c_str());
+    std::cout << "7. student count = " << Student::count << std::endl;
+    std::cout << "8. class count = " << Course::count << std::endl;
+    delete school;
+    std::cout << "9. student count = " << Student::count << std::endl;
+    std::cout << "10. class count = " << Course::count << std::endl;
+    std::remove(filename.c_str());
+    return Student::count + Course::count;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_fast_archive.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_fast_archive.cpp
new file mode 100644 (file)
index 0000000..0f28ef7
--- /dev/null
@@ -0,0 +1,181 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_fast_binary_archive.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+#include <sstream>
+
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_array.hpp>
+#include <boost/serialization/pfto.hpp>
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/binary_oarchive_impl.hpp>
+#include <boost/archive/binary_iarchive_impl.hpp>
+#include <boost/archive/detail/register_archive.hpp>
+
+// include template definitions for base classes used.  Otherwise
+// you'll get link failure with undefined symbols
+#include <boost/archive/impl/basic_binary_oprimitive.ipp>
+#include <boost/archive/impl/basic_binary_iprimitive.ipp>
+#include <boost/archive/impl/basic_binary_oarchive.ipp>
+#include <boost/archive/impl/basic_binary_iarchive.ipp>
+
+using namespace boost::archive;
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// "Fast" output binary archive.  This is a variation of the native binary 
+class fast_binary_oarchive :
+    // don't derive from binary_oarchive !!!
+    public binary_oarchive_impl<
+        fast_binary_oarchive, 
+        std::ostream::char_type, 
+        std::ostream::traits_type
+    >
+{
+    typedef fast_binary_oarchive derived_t;
+    typedef binary_oarchive_impl<
+        fast_binary_oarchive, 
+        std::ostream::char_type, 
+        std::ostream::traits_type
+    > base_t;
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+public:
+#else
+    friend class boost::archive::detail::interface_oarchive<derived_t>;
+    friend class basic_binary_oarchive<derived_t>;
+    friend class basic_binary_oprimitive<
+        derived_t, 
+        std::ostream::char_type, 
+        std::ostream::traits_type
+    >;
+    friend class boost::archive::save_access;
+#endif
+    // add base class to the places considered when matching
+    // save function to a specific set of arguments.  Note, this didn't
+    // work on my MSVC 7.0 system using 
+    // binary_oarchive_impl<derived_t>::load_override;
+    // so we use the sure-fire method below.  This failed to work as well
+    template<class T>
+    void save_override(T & t, BOOST_PFTO int){
+        base_t::save_override(t, 0);
+        // verify that this program is in fact working by making sure
+        // that arrays are getting passed here
+        BOOST_STATIC_ASSERT(! (boost::is_array<T>::value) );
+    }
+    template<int N>
+    void save_override(const int (& t)[N] , int){
+        save_binary(t, sizeof(t));
+    }
+    template<int N>
+    void save_override(const unsigned int (& t)[N], int){
+        save_binary(t, sizeof(t));
+    }
+    template<int N>
+    void save_override(const long (& t)[N], int){
+        save_binary(t, sizeof(t));
+    }
+    template<int N>
+    void save_override(const unsigned long (& t)[N], int){
+        save_binary(t, sizeof(t));
+    }
+public:
+    fast_binary_oarchive(std::ostream & os, unsigned flags = 0) :
+       base_t(os, flags)
+    {}
+    fast_binary_oarchive(std::streambuf & bsb, unsigned int flags = 0) :
+        base_t(bsb, flags)
+    {}
+};
+
+// required by export
+BOOST_SERIALIZATION_REGISTER_ARCHIVE(fast_binary_oarchive)
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// "Fast" input binary archive.  This is a variation of the native binary 
+class fast_binary_iarchive :
+    // don't derive from binary_oarchive !!!
+    public binary_iarchive_impl<
+        fast_binary_iarchive, 
+        std::istream::char_type, 
+        std::istream::traits_type
+    >
+{
+    typedef fast_binary_iarchive derived_t;
+    typedef binary_iarchive_impl<
+        fast_binary_iarchive, 
+        std::istream::char_type, 
+        std::istream::traits_type
+    > base_t;
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+public:
+#else
+    friend class boost::archive::detail::interface_iarchive<derived_t>;
+    friend class basic_binary_iarchive<derived_t>;
+    friend class basic_binary_iprimitive<
+        derived_t, 
+        std::ostream::char_type, 
+        std::ostream::traits_type
+    >;
+    friend class boost::archive::load_access;
+#endif
+    // add base class to the places considered when matching
+    // save function to a specific set of arguments.  Note, this didn't
+    // work on my MSVC 7.0 system using 
+    // binary_oarchive_impl<derived_t>::load_override;
+    // so we use the sure-fire method below.  This failed to work as well
+    template<class T>
+    void load_override(T & t, BOOST_PFTO int){
+        base_t::load_override(t, 0);
+        BOOST_STATIC_ASSERT(! (boost::is_array<T>::value) );
+    }
+    template<int N>
+    void load_override(int (& t)[N], int){
+        load_binary(t, sizeof(t));
+    }
+    template<int N>
+    void load_override(unsigned int (& t)[N], int){
+        load_binary(t, sizeof(t));
+    }
+    template<int N>
+    void load_override(long (& t)[N], int){
+        load_binary(t, sizeof(t));
+    }
+    template<int N>
+    void load_override(unsigned long (& t)[N], int){
+        load_binary(t, sizeof(t));
+    }
+public:
+    fast_binary_iarchive(std::istream & is, unsigned int flags = 0) :
+        base_t(is, flags)
+    {}
+    fast_binary_iarchive(std::streambuf & bsb, unsigned int flags = 0) :
+        base_t(bsb, flags)
+    {}
+};
+
+// required by export
+BOOST_SERIALIZATION_REGISTER_ARCHIVE(fast_binary_iarchive)
+
+int main( int argc, char* argv[] )
+{
+    const int a[3] = {1, 2, 3};
+    int a1[3] = {4, 5, 6};
+
+    std::stringstream ss;
+    {   
+        fast_binary_oarchive pboa(ss);
+        pboa << a;
+    }
+    {
+        fast_binary_iarchive pbia(ss);
+        pbia >> a1;
+    }
+    return (a[0] != a1[0]) || (a[1] != a1[1]) || (a[2] != a1[2]);
+}
+
+
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_gps.hpp b/deal.II/contrib/boost/libs/serialization/example/demo_gps.hpp
new file mode 100644 (file)
index 0000000..1830db3
--- /dev/null
@@ -0,0 +1,284 @@
+#ifndef BOOST_SERIALIZATION_EXAMPLE_DEMO_GPS_HPP
+#define BOOST_SERIALIZATION_EXAMPLE_DEMO_GPS_HPP
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_gps.hpp
+//
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <iomanip>
+#include <iostream>
+#include <fstream>
+
+#include <boost/serialization/string.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/utility.hpp>
+#include <boost/serialization/list.hpp>
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/assume_abstract.hpp>
+
+// This illustration models the bus system of a small city.
+// This includes, multiple bus stops,  bus routes and schedules.
+// There are different kinds of stops.  Bus stops in general will
+// will appear on multiple routes.  A schedule will include
+// muliple trips on the same route.
+
+/////////////////////////////////////////////////////////////
+// gps coordinate
+//
+// llustrates serialization for a simple type
+//
+class gps_position
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const gps_position &gp);
+
+    int degrees;
+    int minutes;
+    float seconds;
+
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar  & BOOST_SERIALIZATION_NVP(degrees)
+            & BOOST_SERIALIZATION_NVP(minutes)
+            & BOOST_SERIALIZATION_NVP(seconds);
+    }
+
+public:
+    // every serializable class needs a constructor
+    gps_position(){};
+    gps_position(int _d, int _m, float _s) : 
+        degrees(_d), minutes(_m), seconds(_s)
+    {}
+};
+
+std::ostream & operator<<(std::ostream &os, const gps_position &gp)
+{
+    return os << ' ' << gp.degrees << (unsigned char)186 << gp.minutes << '\'' << gp.seconds << '"';
+}
+
+/////////////////////////////////////////////////////////////
+// One bus stop
+//
+// illustrates serialization of serializable members
+//
+
+class bus_stop
+{
+    friend class boost::serialization::access;
+    virtual std::string description() const = 0;
+    gps_position latitude;
+    gps_position longitude;
+
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar & BOOST_SERIALIZATION_NVP(latitude);
+        ar & BOOST_SERIALIZATION_NVP(longitude);
+    }
+
+protected:
+    bus_stop(const gps_position & _lat, const gps_position & _long) :
+        latitude(_lat), longitude(_long)
+    {}
+public:
+    bus_stop(){}
+    friend std::ostream & operator<<(std::ostream &os, const bus_stop &gp);
+    virtual ~bus_stop(){}
+};
+
+BOOST_SERIALIZATION_ASSUME_ABSTRACT(bus_stop)
+
+std::ostream & operator<<(std::ostream &os, const bus_stop &bs)
+{
+    return os << bs.latitude << bs.longitude << ' ' << bs.description();
+}
+
+/////////////////////////////////////////////////////////////
+// Several kinds of bus stops
+//
+// illustrates serialization of derived types
+//
+class bus_stop_corner : public bus_stop
+{
+    friend class boost::serialization::access;
+    std::string street1;
+    std::string street2;
+    virtual std::string description() const
+    {
+        return street1 + " and " + street2;
+    }
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        // save/load base class information
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(bus_stop);
+        ar & BOOST_SERIALIZATION_NVP(street1);
+        ar & BOOST_SERIALIZATION_NVP(street2);
+    }
+public:
+    bus_stop_corner(){}
+    bus_stop_corner(const gps_position & _lat, const gps_position & _long,
+        const std::string & _s1, const std::string & _s2
+    ) :
+        bus_stop(_lat, _long), street1(_s1), street2(_s2)
+    {
+    }
+};
+
+class bus_stop_destination : public bus_stop
+{
+    friend class boost::serialization::access;
+    std::string name;
+    virtual std::string description() const
+    {
+        return name;
+    }
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar  & BOOST_SERIALIZATION_BASE_OBJECT_NVP(bus_stop)
+            & BOOST_SERIALIZATION_NVP(name);
+    }
+public:
+    bus_stop_destination(){}
+    bus_stop_destination(
+        const gps_position & _lat, const gps_position & _long, const std::string & _name
+    ) :
+        bus_stop(_lat, _long), name(_name)
+    {
+    }
+};
+
+/////////////////////////////////////////////////////////////
+// a bus route is a collection of bus stops
+//
+// illustrates serialization of STL collection templates.
+//
+// illustrates serialzation of polymorphic pointer (bus stop *);
+//
+// illustrates storage and recovery of shared pointers is correct
+// and efficient.  That is objects pointed to by more than one
+// pointer are stored only once.  In such cases only one such
+// object is restored and pointers are restored to point to it
+//
+class bus_route
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const bus_route &br);
+    typedef bus_stop * bus_stop_pointer;
+    std::list<bus_stop_pointer> stops;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        // in this program, these classes are never serialized directly but rather
+        // through a pointer to the base class bus_stop. So we need a way to be
+        // sure that the archive contains information about these derived classes.
+        //ar.template register_type<bus_stop_corner>();
+        ar.register_type(static_cast<bus_stop_corner *>(NULL));
+        //ar.template register_type<bus_stop_destination>();
+        ar.register_type(static_cast<bus_stop_destination *>(NULL));
+        // serialization of stl collections is already defined
+        // in the header
+        ar & BOOST_SERIALIZATION_NVP(stops);
+    }
+public:
+    bus_route(){}
+    void append(bus_stop *_bs)
+    {
+        stops.insert(stops.end(), _bs);
+    }
+};
+std::ostream & operator<<(std::ostream &os, const bus_route &br)
+{
+    std::list<bus_stop *>::const_iterator it;
+    // note: we're displaying the pointer to permit verification
+    // that duplicated pointers are properly restored.
+    for(it = br.stops.begin(); it != br.stops.end(); it++){
+        os << '\n' << std::hex << "0x" << *it << std::dec << ' ' << **it;
+    }
+    return os;
+}
+
+/////////////////////////////////////////////////////////////
+// a bus schedule is a collection of routes each with a starting time
+//
+// Illustrates serialization of STL objects(pair) in a non-intrusive way.
+// See definition of operator<< <pair<F, S> >(ar, pair)
+// 
+// illustrates nesting of serializable classes
+//
+// illustrates use of version number to automatically grandfather older
+// versions of the same class.
+
+class bus_schedule
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const bus_schedule &bs);
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar & BOOST_SERIALIZATION_NVP(schedule);
+    }
+    // note: this structure was made public. because the friend declarations
+    // didn't seem to work as expected.
+public:
+    struct trip_info
+    {
+        template<class Archive>
+        void serialize(Archive &ar, const unsigned int file_version)
+        {
+            // in versions 2 or later
+            if(file_version >= 2)
+                // read the drivers name
+                ar & BOOST_SERIALIZATION_NVP(driver);
+            // all versions have the follwing info
+            ar  & BOOST_SERIALIZATION_NVP(hour)
+                & BOOST_SERIALIZATION_NVP(minute);
+        }
+
+        // starting time
+        int hour;
+        int minute;
+        // only after system shipped was the driver's name added to the class
+        std::string driver;
+
+        trip_info(){}
+        trip_info(int _h, int _m, const std::string &_d) :
+            hour(_h), minute(_m), driver(_d)
+        {}
+        ~trip_info(){
+        }
+    };
+//  friend std::ostream & operator<<(std::ostream &os, const trip_info &ti);
+private:
+    std::list<std::pair<trip_info, bus_route *> > schedule;
+public:
+    void append(const std::string &_d, int _h, int _m, bus_route *_br)
+    {
+        schedule.insert(schedule.end(), std::make_pair(trip_info(_h, _m, _d), _br));
+    }
+    bus_schedule(){}
+};
+
+BOOST_CLASS_VERSION(bus_schedule::trip_info, 3)
+BOOST_CLASS_VERSION(bus_schedule, 2)
+
+std::ostream & operator<<(std::ostream &os, const bus_schedule::trip_info &ti)
+{
+    return os << '\n' << ti.hour << ':' << ti.minute << ' ' << ti.driver << ' ';
+}
+std::ostream & operator<<(std::ostream &os, const bus_schedule &bs)
+{
+    std::list<std::pair<bus_schedule::trip_info, bus_route *> >::const_iterator it;
+    for(it = bs.schedule.begin(); it != bs.schedule.end(); it++){
+        os << it->first << *(it->second);
+    }
+    return os;
+}
+
+#endif // BOOST_SERIALIZATION_EXAMPLE_DEMO_GPS_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_log.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_log.cpp
new file mode 100644 (file)
index 0000000..55fc535
--- /dev/null
@@ -0,0 +1,76 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_log.cpp
+//
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <iostream>
+#include <cstdio>
+
+#include "demo_gps.hpp"
+#include "log_archive.hpp"
+
+int main(int argc, char *argv[])
+{   
+    // make the schedule
+    bus_schedule schedule;
+
+    // fill in the data
+    // make a few stops
+    bus_stop *bs0 = new bus_stop_corner(
+        gps_position(34, 135, 52.560f),
+        gps_position(134, 22, 78.30f),
+        "24th Street", "10th Avenue"
+    );
+    bus_stop *bs1 = new bus_stop_corner(
+        gps_position(35, 137, 23.456f),
+        gps_position(133, 35, 54.12f),
+        "State street", "Cathedral Vista Lane"
+    );
+    bus_stop *bs2 = new bus_stop_destination(
+        gps_position(35, 136, 15.456f),
+        gps_position(133, 32, 15.300f),
+        "White House"
+    );
+    bus_stop *bs3 = new bus_stop_destination(
+        gps_position(35, 134, 48.789f),
+        gps_position(133, 32, 16.230f),
+        "Lincoln Memorial"
+    );
+
+    // make a  routes
+    bus_route route0;
+    route0.append(bs0);
+    route0.append(bs1);
+    route0.append(bs2);
+
+    // add trips to schedule
+    schedule.append("bob", 6, 24, &route0);
+    schedule.append("bob", 9, 57, &route0);
+    schedule.append("alice", 11, 02, &route0);
+
+    // make aother routes
+    bus_route route1;
+    route1.append(bs3);
+    route1.append(bs2);
+    route1.append(bs1);
+
+    // add trips to schedule
+    schedule.append("ted", 7, 17, &route1);
+    schedule.append("ted", 9, 38, &route1);
+    schedule.append("alice", 11, 47, &route1);
+
+    // display the complete schedule
+    log_archive oa(std::cout);
+    //oa << BOOST_SERIALIZATION_NVP(schedule);
+    oa << schedule;
+
+    delete bs0;
+    delete bs1;
+    delete bs2;
+    delete bs3;
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_output.txt b/deal.II/contrib/boost/libs/serialization/example/demo_output.txt
new file mode 100644 (file)
index 0000000..306bdbd
--- /dev/null
@@ -0,0 +1,51 @@
+original schedule
+6:24 bob 
+0x003265C8  34º135'52.56" 134º22'78.3" 24th Street and 10th Avenue
+0x00326648  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+0x00326768  35º136'15.456" 133º32'15.3" White House
+9:57 bob 
+0x003265C8  34º135'52.56" 134º22'78.3" 24th Street and 10th Avenue
+0x00326648  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+0x00326768  35º136'15.456" 133º32'15.3" White House
+11:2 alice 
+0x003265C8  34º135'52.56" 134º22'78.3" 24th Street and 10th Avenue
+0x00326648  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+0x00326768  35º136'15.456" 133º32'15.3" White House
+7:17 ted 
+0x003267D0  35º134'48.789" 133º32'16.23" Lincoln Memorial
+0x00326768  35º136'15.456" 133º32'15.3" White House
+0x00326648  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+9:38 ted 
+0x003267D0  35º134'48.789" 133º32'16.23" Lincoln Memorial
+0x00326768  35º136'15.456" 133º32'15.3" White House
+0x00326648  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+11:47 alice 
+0x003267D0  35º134'48.789" 133º32'16.23" Lincoln Memorial
+0x00326768  35º136'15.456" 133º32'15.3" White House
+0x00326648  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+restored schedule
+6:24  
+0x0032A2F8  34º135'52.56" 134º22'78.3" 24th Street and 10th Avenue
+0x0032A508  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+0x0032A628  35º136'15.456" 133º32'15.3" White House
+9:57  
+0x0032A2F8  34º135'52.56" 134º22'78.3" 24th Street and 10th Avenue
+0x0032A508  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+0x0032A628  35º136'15.456" 133º32'15.3" White House
+11:2  
+0x0032A2F8  34º135'52.56" 134º22'78.3" 24th Street and 10th Avenue
+0x0032A508  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+0x0032A628  35º136'15.456" 133º32'15.3" White House
+7:17  
+0x0032A8C0  35º134'48.789" 133º32'16.23" Lincoln Memorial
+0x0032A628  35º136'15.456" 133º32'15.3" White House
+0x0032A508  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+9:38  
+0x0032A8C0  35º134'48.789" 133º32'16.23" Lincoln Memorial
+0x0032A628  35º136'15.456" 133º32'15.3" White House
+0x0032A508  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+11:47  
+0x0032A8C0  35º134'48.789" 133º32'16.23" Lincoln Memorial
+0x0032A628  35º136'15.456" 133º32'15.3" White House
+0x0032A508  35º137'23.456" 133º35'54.12" State street and Cathedral Vista Lane
+*** No errors detected
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_pimpl.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_pimpl.cpp
new file mode 100644 (file)
index 0000000..2d5446d
--- /dev/null
@@ -0,0 +1,34 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_pimpl.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <sstream>
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+
+#include "demo_pimpl_A.hpp"
+
+int main(int argc, char* argv[])
+{
+    std::stringstream ss;
+
+    const A a;
+    {
+        boost::archive::text_oarchive oa(ss);
+        oa << a;
+    }
+    A a1;
+    {
+        boost::archive::text_iarchive ia(ss);
+        ia >> a1;
+    }
+    return 0;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_pimpl_A.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_pimpl_A.cpp
new file mode 100644 (file)
index 0000000..455b71e
--- /dev/null
@@ -0,0 +1,45 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_pimpl_A.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+
+#include "demo_pimpl_A.hpp"
+
+// "hidden" definition of class B
+struct B {
+    int b;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & b;
+    }
+};
+
+A::A() :
+    pimpl(new B)
+{}
+A::~A(){
+    delete pimpl;
+}
+// now we can define the serialization for class A
+template<class Archive>
+void A::serialize(Archive & ar, const unsigned int /* file_version */){
+    ar & pimpl;
+}
+// without the explicit instantiations below, the program will
+// fail to link for lack of instantiantiation of the above function
+// note: the following failed to fix link errors for vc 7.0 !
+template void A::serialize<boost::archive::text_iarchive>(
+    boost::archive::text_iarchive & ar, 
+    const unsigned int file_version
+);
+template void A::serialize<boost::archive::text_oarchive>(
+    boost::archive::text_oarchive & ar, 
+    const unsigned int file_version
+);
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_pimpl_A.hpp b/deal.II/contrib/boost/libs/serialization/example/demo_pimpl_A.hpp
new file mode 100644 (file)
index 0000000..8697de8
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef BOOST_SERIALIZATION_EXAMPLE_DEMO_PIMPL_A_HPP
+#define BOOST_SERIALIZATION_EXAMPLE_DEMO_PIMPL_A_HPP
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_pimpl_A.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// class whose declaration is hidden by a pointer
+struct B;
+
+struct A {
+    // class a contains a pointer to a "hidden" declaration
+    B *pimpl;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int file_version);
+    A();
+    ~A();
+};
+
+#endif // BOOST_SERIALIZATION_EXAMPLE_DEMO_PIMPL_A_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_polymorphic.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_polymorphic.cpp
new file mode 100644 (file)
index 0000000..3c91745
--- /dev/null
@@ -0,0 +1,65 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_polymorphic.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <sstream>
+
+#include <boost/archive/polymorphic_text_iarchive.hpp>
+#include <boost/archive/polymorphic_text_oarchive.hpp>
+
+#include <boost/archive/polymorphic_binary_iarchive.hpp>
+#include <boost/archive/polymorphic_binary_oarchive.hpp>
+
+#include "demo_polymorphic_A.hpp"
+
+int main(int argc, char* argv[])
+{
+    const A a;
+    A a1;
+    {
+        // test with a text archive
+        std::stringstream ss;
+        {
+            // instantiate archive which inhertis polymorphic interface
+            // and the normal text archive implementation
+            boost::archive::polymorphic_text_oarchive oa(ss);
+            boost::archive::polymorphic_oarchive & oa_interface = oa; 
+            // we can just just the interface for saving
+            oa_interface << a;
+        }
+        {
+            // or we can use the implementation directly
+            boost::archive::polymorphic_text_iarchive ia(ss);
+            ia >> a1;
+        }
+    }
+    if(! (a == a1))
+        return 1;
+    {
+        //test with a binary archive
+        std::stringstream ss;
+        {
+            // instantiate archive which inhertis polymorphic interface
+            // and the normal binary archive implementation
+            boost::archive::polymorphic_binary_oarchive oa(ss);
+            oa << a;
+        }
+        {
+            // see above
+            boost::archive::polymorphic_binary_iarchive ia(ss);
+            boost::archive::polymorphic_iarchive & ia_interface = ia; 
+            // use just the polymorphic interface for loading.
+            ia_interface >> a1;
+        }
+    }
+    if(! (a == a1))
+        return 1;
+    return 0;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_polymorphic_A.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_polymorphic_A.cpp
new file mode 100644 (file)
index 0000000..c32d4a1
--- /dev/null
@@ -0,0 +1,26 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_polymorphic_A.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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/archive/polymorphic_iarchive.hpp>
+#include <boost/archive/polymorphic_oarchive.hpp>
+
+#include "demo_polymorphic_A.hpp"
+
+// explicitly instantiate templates for polymorphic archives
+// used by this demo.
+template
+void A::serialize<boost::archive::polymorphic_iarchive>(
+    boost::archive::polymorphic_iarchive &, 
+    const unsigned int
+);
+template
+void A::serialize<boost::archive::polymorphic_oarchive>(
+    boost::archive::polymorphic_oarchive &, 
+    const unsigned int
+);
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_polymorphic_A.hpp b/deal.II/contrib/boost/libs/serialization/example/demo_polymorphic_A.hpp
new file mode 100644 (file)
index 0000000..17f9758
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef BOOST_SERIALIZATION_EXAMPLE_DEMO_POLYMORPHIC_A_HPP
+#define BOOST_SERIALIZATION_EXAMPLE_DEMO_POLYMORPHIC_A_HPP
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// demo_polymorphic_A.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+namespace boost {
+namespace archive {
+
+class polymorphic_iarchive;
+class polymorphic_oarchive;
+
+} // namespace archive
+} // namespace boost
+
+struct A {
+    // class a contains a pointer to a "hidden" declaration
+    template<class Archive>
+    void serialize(
+        Archive & ar, 
+        const unsigned int file_version
+    ){
+        ar & data;
+    }
+    int data;
+    bool operator==(const A & rhs) const {
+        return data == rhs.data;
+    }
+    A() :
+        data(0)
+    {}
+};
+
+#endif // BOOST_SERIALIZATION_EXAMPLE_DEMO_POLYMORPHIC_A_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_portable_archive.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_portable_archive.cpp
new file mode 100644 (file)
index 0000000..2149585
--- /dev/null
@@ -0,0 +1,102 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_portable_archive.cpp
+//
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// note:: this example can only be built with the static library
+// (at least with MSVC - due to conflicts related to import of library
+// code and instantiation of templates.
+#include <sstream>
+
+#include "portable_binary_oarchive.hpp"
+#include "portable_binary_iarchive.hpp"
+
+#include <cstdlib>
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ using ::rand; }
+#endif
+
+class A
+{
+    friend class boost::serialization::access;
+    char c;
+    int i;
+    int i2; // special tricky case to check sign extension
+    unsigned int ui;
+    long l;
+    unsigned long ul;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* version */){
+        ar & c & i & i2 & ui & l & ul ;
+    }
+public:
+    bool operator==(const A & rhs) const {
+        return
+            c == rhs.c
+            && i == rhs.i
+            && i2 == rhs.i2
+            && ui == rhs.ui 
+            && l == rhs.l 
+            && ul == rhs.ul
+        ;
+    }
+    A() :
+        c(0xFF & std::rand()),
+        i(std::rand()),
+        i2(0x80),
+        ui(std::rand()),
+        l(std::rand() * std::rand()),
+        ul(std::rand())
+    {}
+};
+
+int main( int /* argc */, char* /* argv */[] )
+{
+    const A a;
+    A a1;
+
+    std::stringstream ss;
+    {   
+        portable_binary_oarchive pboa(ss);
+        pboa << a;
+    }
+    {
+        portable_binary_iarchive pbia(ss);
+        pbia >> a1;
+    }
+    if(! (a == a1))
+        return 1;
+
+    ss.clear();
+    {   
+        portable_binary_oarchive pboa(ss, endian_big);
+        pboa << a;
+    }
+    {
+        portable_binary_iarchive pbia(ss, endian_big);
+        pbia >> a1;
+    }
+    if(! (a == a1))
+        return 1;
+
+    ss.clear();
+    {   
+        portable_binary_oarchive pboa(ss, endian_big);
+        pboa << a;
+    }
+    {
+        portable_binary_iarchive pbia(ss, endian_big);
+        pbia >> a1;
+    }
+
+    return !(a == a1);
+}
+
+
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_save.xml b/deal.II/contrib/boost/libs/serialization/example/demo_save.xml
new file mode 100644 (file)
index 0000000..c5a28c8
--- /dev/null
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<!DOCTYPE boost_serialization>
+<boost_serialization signature="serialization::archive" version="3">
+<s class_id="0" tracking_level="0" version="2">
+       <schedule class_id="1" tracking_level="0">
+               <count>6</count>
+               <item class_id="2" tracking_level="0">
+                       <first class_id="3" tracking_level="0" version="3">
+                               <driver>bob</driver>
+                               <hour>6</hour>
+                               <minute>24</minute>
+                       </first>
+                       <second class_id="4" tracking_level="1" object_id="_0">
+                               <stops class_id="7" tracking_level="0">
+                                       <count>3</count>
+                                       <item class_id="5" tracking_level="1" object_id="_1">
+                                               <bus_stop class_id="8" tracking_level="0">
+                                                       <latitude class_id="9" tracking_level="0">
+                                                               <degrees>34</degrees>
+                                                               <minutes>135</minutes>
+                                                               <seconds>52.560001</seconds>
+                                                       </latitude>
+                                                       <longitude>
+                                                               <degrees>134</degrees>
+                                                               <minutes>22</minutes>
+                                                               <seconds>78.300003</seconds>
+                                                       </longitude>
+                                               </bus_stop>
+                                               <street1>24th Street</street1>
+                                               <street2>10th Avenue</street2>
+                                       </item>
+                                       <item class_id_reference="5" object_id="_2">
+                                               <bus_stop>
+                                                       <latitude>
+                                                               <degrees>35</degrees>
+                                                               <minutes>137</minutes>
+                                                               <seconds>23.455999</seconds>
+                                                       </latitude>
+                                                       <longitude>
+                                                               <degrees>133</degrees>
+                                                               <minutes>35</minutes>
+                                                               <seconds>54.119999</seconds>
+                                                       </longitude>
+                                               </bus_stop>
+                                               <street1>State street</street1>
+                                               <street2>Cathedral Vista Lane</street2>
+                                       </item>
+                                       <item class_id="6" tracking_level="1" object_id="_3">
+                                               <bus_stop>
+                                                       <latitude>
+                                                               <degrees>35</degrees>
+                                                               <minutes>136</minutes>
+                                                               <seconds>15.456</seconds>
+                                                       </latitude>
+                                                       <longitude>
+                                                               <degrees>133</degrees>
+                                                               <minutes>32</minutes>
+                                                               <seconds>15.3</seconds>
+                                                       </longitude>
+                                               </bus_stop>
+                                               <name>White House</name>
+                                       </item>
+                               </stops>
+                       </second>
+               </item>
+               <item>
+                       <first>
+                               <driver>bob</driver>
+                               <hour>9</hour>
+                               <minute>57</minute>
+                       </first>
+                       <second class_id_reference="4" object_id_reference="_0"></second>
+               </item>
+               <item>
+                       <first>
+                               <driver>alice</driver>
+                               <hour>11</hour>
+                               <minute>2</minute>
+                       </first>
+                       <second class_id_reference="4" object_id_reference="_0"></second>
+               </item>
+               <item>
+                       <first>
+                               <driver>ted</driver>
+                               <hour>7</hour>
+                               <minute>17</minute>
+                       </first>
+                       <second class_id_reference="4" object_id="_4">
+                               <stops>
+                                       <count>3</count>
+                                       <item class_id_reference="6" object_id="_5">
+                                               <bus_stop>
+                                                       <latitude>
+                                                               <degrees>35</degrees>
+                                                               <minutes>134</minutes>
+                                                               <seconds>48.789001</seconds>
+                                                       </latitude>
+                                                       <longitude>
+                                                               <degrees>133</degrees>
+                                                               <minutes>32</minutes>
+                                                               <seconds>16.23</seconds>
+                                                       </longitude>
+                                               </bus_stop>
+                                               <name>Lincoln Memorial</name>
+                                       </item>
+                                       <item class_id_reference="6" object_id_reference="_3"></item>
+                                       <item class_id_reference="5" object_id_reference="_2"></item>
+                               </stops>
+                       </second>
+               </item>
+               <item>
+                       <first>
+                               <driver>ted</driver>
+                               <hour>9</hour>
+                               <minute>38</minute>
+                       </first>
+                       <second class_id_reference="4" object_id_reference="_4"></second>
+               </item>
+               <item>
+                       <first>
+                               <driver>alice</driver>
+                               <hour>11</hour>
+                               <minute>47</minute>
+                       </first>
+                       <second class_id_reference="4" object_id_reference="_4"></second>
+               </item>
+       </schedule>
+</s>
+</boost_serialization>
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_shared_ptr.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_shared_ptr.cpp
new file mode 100644 (file)
index 0000000..c464516
--- /dev/null
@@ -0,0 +1,164 @@
+// demo_shared_ptr.cpp : demonstrates adding serialization to a template
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . Polymorphic
+// derived pointer example by David Tonge.
+
+// Use, modification and distribution is subject to 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)
+//
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <iomanip>
+#include <iostream>
+#include <cstddef> // NULL
+#include <fstream>
+#include <string>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/tmpdir.hpp>
+
+#include <boost/serialization/shared_ptr.hpp>
+
+///////////////////////////
+// test shared_ptr serialization
+class A
+{
+private:
+    friend class boost::serialization::access;
+    int x;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & x;
+    }
+public:
+    static int count;
+    A(){++count;}    // default constructor
+    virtual ~A(){--count;}   // default destructor
+};
+
+BOOST_SERIALIZATION_SHARED_PTR(A)
+
+/////////////////
+// ADDITION BY DT
+class B : public A
+{
+private:
+    friend class boost::serialization::access;
+    int x;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & boost::serialization::base_object<A>(*this);
+    }
+public:
+    static int count;
+    B() : A() {};
+    virtual ~B() {};
+};
+
+BOOST_SERIALIZATION_SHARED_PTR(B)
+
+/////////////////
+
+int A::count = 0;
+
+void display(boost::shared_ptr<A> &spa, boost::shared_ptr<A> &spa1)
+{
+    std::cout << "a = 0x" << std::hex << spa.get() << " ";
+    if (spa.get()) std::cout << "is a " << typeid(*(spa.get())).name() << "* ";
+    std::cout << "use count = " << std::dec << spa.use_count() << std::endl;
+    std::cout << "a1 = 0x" << std::hex << spa1.get() << " ";
+    if (spa1.get()) std::cout << "is a " << typeid(*(spa1.get())).name() << "* ";
+    std::cout << "use count = " << std::dec << spa1.use_count() << std::endl;
+    std::cout << "unique element count = " << A::count << std::endl;
+}
+
+int main(int /* argc */, char /* *argv[] */)
+{
+    std::string filename(boost::archive::tmpdir());
+    filename += "/testfile";
+
+    // create  a new shared pointer to ta new object of type A
+    boost::shared_ptr<A> spa(new A);
+    boost::shared_ptr<A> spa1;
+    spa1 = spa;
+    display(spa, spa1);
+    // serialize it
+    {
+        std::ofstream ofs(filename.c_str());
+        boost::archive::text_oarchive oa(ofs);
+        oa << spa;
+        oa << spa1;
+    }
+    // reset the shared pointer to NULL
+    // thereby destroying the object of type A
+    spa.reset();
+    spa1.reset();
+    display(spa, spa1);
+    // restore state to one equivalent to the original
+    // creating a new type A object
+    {
+        // open the archive
+        std::ifstream ifs(filename.c_str());
+        boost::archive::text_iarchive ia(ifs);
+
+        // restore the schedule from the archive
+        ia >> spa;
+        ia >> spa1;
+    }
+    display(spa, spa1);
+    spa.reset();
+    spa1.reset();
+
+    std::cout << std::endl;
+    std::cout << std::endl;
+    std::cout << "New tests" << std::endl;
+
+    /////////////////
+    // ADDITION BY DT
+    // create  a new shared pointer to ta new object of type A
+    spa = boost::shared_ptr<A>(new B);
+    spa1 = spa;
+    display(spa, spa1);
+    // serialize it
+    {
+        std::ofstream ofs(filename.c_str());
+        boost::archive::text_oarchive oa(ofs);
+        oa.register_type(static_cast<B *>(NULL));
+        oa << spa;
+        oa << spa1;
+    }
+    // reset the shared pointer to NULL
+    // thereby destroying the object of type B
+    spa.reset();
+    spa1.reset();
+    display(spa, spa1);
+    // restore state to one equivalent to the original
+    // creating a new type B object
+    {
+        // open the archive
+        std::ifstream ifs(filename.c_str());
+        boost::archive::text_iarchive ia(ifs);
+
+        // restore the schedule from the archive
+        ia.register_type(static_cast<B *>(NULL));
+        ia >> spa;
+        ia >> spa1;
+    }
+    display(spa, spa1);
+    ///////////////
+    std::remove(filename.c_str());
+
+    // obj of type A gets destroyed
+    // as smart_ptr goes out of scope
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_simple_log.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_simple_log.cpp
new file mode 100644 (file)
index 0000000..da80b5a
--- /dev/null
@@ -0,0 +1,75 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_log.cpp
+//
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <iostream>
+#include <cstdio>
+
+#include "demo_gps.hpp"
+#include "simple_log_archive.hpp"
+
+int main(int argc, char *argv[])
+{   
+    // make the schedule
+    bus_schedule schedule;
+
+    // fill in the data
+    // make a few stops
+    bus_stop *bs0 = new bus_stop_corner(
+        gps_position(34, 135, 52.560f),
+        gps_position(134, 22, 78.30f),
+        "24th Street", "10th Avenue"
+    );
+    bus_stop *bs1 = new bus_stop_corner(
+        gps_position(35, 137, 23.456f),
+        gps_position(133, 35, 54.12f),
+        "State street", "Cathedral Vista Lane"
+    );
+    bus_stop *bs2 = new bus_stop_destination(
+        gps_position(35, 136, 15.456f),
+        gps_position(133, 32, 15.300f),
+        "White House"
+    );
+    bus_stop *bs3 = new bus_stop_destination(
+        gps_position(35, 134, 48.789f),
+        gps_position(133, 32, 16.230f),
+        "Lincoln Memorial"
+    );
+
+    // make a  routes
+    bus_route route0;
+    route0.append(bs0);
+    route0.append(bs1);
+    route0.append(bs2);
+
+    // add trips to schedule
+    schedule.append("bob", 6, 24, &route0);
+    schedule.append("bob", 9, 57, &route0);
+    schedule.append("alice", 11, 02, &route0);
+
+    // make aother routes
+    bus_route route1;
+    route1.append(bs3);
+    route1.append(bs2);
+    route1.append(bs1);
+
+    // add trips to schedule
+    schedule.append("ted", 7, 17, &route1);
+    schedule.append("ted", 9, 38, &route1);
+    schedule.append("alice", 11, 47, &route1);
+
+    // display the complete schedule
+    simple_log_archive log(std::cout);
+    log << schedule;
+
+    delete bs0;
+    delete bs1;
+    delete bs2;
+    delete bs3;
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_trivial_archive.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_trivial_archive.cpp
new file mode 100644 (file)
index 0000000..a713832
--- /dev/null
@@ -0,0 +1,94 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_trivial_archive.cpp
+//
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <cstddef> // std::size_t
+#include <boost/mpl/bool.hpp>
+
+/////////////////////////////////////////////////////////////////////////
+// class trivial_oarchive
+class trivial_oarchive {
+
+public:
+    //////////////////////////////////////////////////////////
+    // public interface used by programs that use the
+    // serialization library
+    typedef boost::mpl::bool_<true> is_saving; 
+    typedef boost::mpl::bool_<false> is_loading;
+    template<class T> register_type(){}
+    template<class T> trivial_oarchive & operator<<(const T & t){
+        return *this;
+    }
+    template<class T> trivial_oarchive & operator&(const T & t){
+        return *this << t;
+    }
+    void save_binary(void *address, std::size_t count){};
+};
+
+#include "demo_gps.hpp"
+
+int main(int argc, char *argv[])
+{   
+    // make the schedule
+    bus_schedule schedule;
+
+    // fill in the data
+    // make a few stops
+    bus_stop *bs0 = new bus_stop_corner(
+        gps_position(34, 135, 52.560f),
+        gps_position(134, 22, 78.30f),
+        "24th Street", "10th Avenue"
+    );
+    bus_stop *bs1 = new bus_stop_corner(
+        gps_position(35, 137, 23.456f),
+        gps_position(133, 35, 54.12f),
+        "State street", "Cathedral Vista Lane"
+    );
+    bus_stop *bs2 = new bus_stop_destination(
+        gps_position(35, 136, 15.456f),
+        gps_position(133, 32, 15.300f),
+        "White House"
+    );
+    bus_stop *bs3 = new bus_stop_destination(
+        gps_position(35, 134, 48.789f),
+        gps_position(133, 32, 16.230f),
+        "Lincoln Memorial"
+    );
+
+    // make a  routes
+    bus_route route0;
+    route0.append(bs0);
+    route0.append(bs1);
+    route0.append(bs2);
+
+    // add trips to schedule
+    schedule.append("bob", 6, 24, &route0);
+    schedule.append("bob", 9, 57, &route0);
+    schedule.append("alice", 11, 02, &route0);
+
+    // make aother routes
+    bus_route route1;
+    route1.append(bs3);
+    route1.append(bs2);
+    route1.append(bs1);
+
+    // add trips to schedule
+    schedule.append("ted", 7, 17, &route1);
+    schedule.append("ted", 9, 38, &route1);
+    schedule.append("alice", 11, 47, &route1);
+
+    // display the complete schedule
+    trivial_oarchive ta;
+    ta << schedule;
+
+    delete bs0;
+    delete bs1;
+    delete bs2;
+    delete bs3;
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_xml.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_xml.cpp
new file mode 100644 (file)
index 0000000..c9524ae
--- /dev/null
@@ -0,0 +1,127 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_xml.cpp
+//
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <iomanip>
+#include <iostream>
+#include <fstream>
+#include <string>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/tmpdir.hpp>
+#include <boost/archive/xml_iarchive.hpp>
+#include <boost/archive/xml_oarchive.hpp>
+
+#include "demo_gps.hpp"
+
+void save_schedule(const bus_schedule &s, const char * filename){
+    // make an archive
+    std::ofstream ofs(filename);
+    assert(ofs.good());
+    boost::archive::xml_oarchive oa(ofs);
+    oa << BOOST_SERIALIZATION_NVP(s);
+}
+
+void
+restore_schedule(bus_schedule &s, const char * filename)
+{
+    // open the archive
+    std::ifstream ifs(filename);
+    assert(ifs.good());
+    boost::archive::xml_iarchive ia(ifs);
+
+    // restore the schedule from the archive
+    ia >> BOOST_SERIALIZATION_NVP(s);
+}
+
+int main(int argc, char *argv[])
+{   
+    // make the schedule
+    bus_schedule original_schedule;
+
+    // fill in the data
+    // make a few stops
+    bus_stop *bs0 = new bus_stop_corner(
+        gps_position(34, 135, 52.560f),
+        gps_position(134, 22, 78.30f),
+        "24th Street", "10th Avenue"
+    );
+    bus_stop *bs1 = new bus_stop_corner(
+        gps_position(35, 137, 23.456f),
+        gps_position(133, 35, 54.12f),
+        "State street", "Cathedral Vista Lane"
+    );
+    bus_stop *bs2 = new bus_stop_destination(
+        gps_position(35, 136, 15.456f),
+        gps_position(133, 32, 15.300f),
+        "White House"
+    );
+    bus_stop *bs3 = new bus_stop_destination(
+        gps_position(35, 134, 48.789f),
+        gps_position(133, 32, 16.230f),
+        "Lincoln Memorial"
+    );
+
+    // make a  routes
+    bus_route route0;
+    route0.append(bs0);
+    route0.append(bs1);
+    route0.append(bs2);
+
+    // add trips to schedule
+    original_schedule.append("bob", 6, 24, &route0);
+    original_schedule.append("bob", 9, 57, &route0);
+    original_schedule.append("alice", 11, 02, &route0);
+
+    // make aother routes
+    bus_route route1;
+    route1.append(bs3);
+    route1.append(bs2);
+    route1.append(bs1);
+
+    // add trips to schedule
+    original_schedule.append("ted", 7, 17, &route1);
+    original_schedule.append("ted", 9, 38, &route1);
+    original_schedule.append("alice", 11, 47, &route1);
+
+    // display the complete schedule
+    std::cout << "original schedule";
+    std::cout << original_schedule;
+    
+    std::string filename(boost::archive::tmpdir());
+    filename += "/demo.xml";
+
+    // save the schedule
+    save_schedule(original_schedule, filename.c_str());
+
+    // ... some time later
+    // make  a new schedule
+    bus_schedule new_schedule;
+
+    restore_schedule(new_schedule, filename.c_str());
+
+    // and display
+    std::cout << "\nrestored schedule";
+    std::cout << new_schedule;
+    // should be the same as the old one. (except for the pointer values)
+
+    std::remove(filename.c_str());
+
+    delete bs0;
+    delete bs1;
+    delete bs2;
+    delete bs3;
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_xml.hpp b/deal.II/contrib/boost/libs/serialization/example/demo_xml.hpp
new file mode 100644 (file)
index 0000000..408412a
--- /dev/null
@@ -0,0 +1,284 @@
+#ifndef BOOST_SERIALIZATION_EXAMPLE_DEMO_XML_HPP
+#define BOOST_SERIALIZATION_EXAMPLE_DEMO_XML_HPP
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_xml.hpp
+//
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <string>
+#include <iomanip>
+#include <iostream>
+#include <fstream>
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/utility.hpp>
+#include <boost/serialization/list.hpp>
+#include <boost/serialization/version.hpp>
+
+// This illustration models the bus system of a small city.
+// This includes, multiple bus stops,  bus routes and schedules.
+// There are different kinds of stops.  Bus stops in general will
+// will appear on multiple routes.  A schedule will include
+// muliple trips on the same route.
+
+/////////////////////////////////////////////////////////////
+// gps coordinate
+//
+// llustrates serialization for a simple type
+//
+class gps_position
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const gps_position &gp);
+
+    int degrees;
+    int minutes;
+    float seconds;
+
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar  & BOOST_SERIALIZATION_NVP(degrees)
+            & BOOST_SERIALIZATION_NVP(minutes)
+            & BOOST_SERIALIZATION_NVP(seconds);
+    }
+
+public:
+    // every serializable class needs a constructor
+    gps_position(){};
+    gps_position(int _d, int _m, float _s) : 
+        degrees(_d), minutes(_m), seconds(_s)
+    {}
+};
+
+std::ostream & operator<<(std::ostream &os, const gps_position &gp)
+{
+    return os << ' ' << gp.degrees << (unsigned char)186 << gp.minutes << '\'' << gp.seconds << '"';
+}
+
+/////////////////////////////////////////////////////////////
+// One bus stop
+//
+// illustrates serialization of serializable members
+//
+
+class bus_stop
+{
+    friend class boost::serialization::access;
+    virtual std::string description() const = 0;
+    gps_position latitude;
+    gps_position longitude;
+
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar & BOOST_SERIALIZATION_NVP(latitude);
+        ar & BOOST_SERIALIZATION_NVP(longitude);
+    }
+
+protected:
+    bus_stop(const gps_position & _lat, const gps_position & _long) :
+        latitude(_lat), longitude(_long)
+    {}
+public:
+    bus_stop(){}
+    friend std::ostream & operator<<(std::ostream &os, const bus_stop &gp);
+    virtual ~bus_stop(){}
+};
+
+BOOST_IS_ABSTRACT(bus_stop)
+
+std::ostream & operator<<(std::ostream &os, const bus_stop &bs)
+{
+    return os << bs.latitude << bs.longitude << ' ' << bs.description();
+}
+
+/////////////////////////////////////////////////////////////
+// Several kinds of bus stops
+//
+// illustrates serialization of derived types
+//
+class bus_stop_corner : public bus_stop
+{
+    friend class boost::serialization::access;
+    std::string street1;
+    std::string street2;
+    virtual std::string description() const
+    {
+        return street1 + " and " + street2;
+    }
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        // save/load base class information
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(bus_stop);
+        ar & BOOST_SERIALIZATION_NVP(street1);
+        ar & BOOST_SERIALIZATION_NVP(street2);
+    }
+public:
+    bus_stop_corner(){}
+    bus_stop_corner(const gps_position & _lat, const gps_position & _long,
+        const std::string & _s1, const std::string & _s2
+    ) :
+        bus_stop(_lat, _long), street1(_s1), street2(_s2)
+    {
+    }
+};
+
+class bus_stop_destination : public bus_stop
+{
+    friend class boost::serialization::access;
+    std::string name;
+    virtual std::string description() const
+    {
+        return name;
+    }
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar  & BOOST_SERIALIZATION_BASE_OBJECT_NVP(bus_stop)
+            & BOOST_SERIALIZATION_NVP(name);
+    }
+public:
+    bus_stop_destination(){}
+    bus_stop_destination(
+        const gps_position & _lat, const gps_position & _long, const std::string & _name
+    ) :
+        bus_stop(_lat, _long), name(_name)
+    {
+    }
+};
+
+/////////////////////////////////////////////////////////////
+// a bus route is a collection of bus stops
+//
+// illustrates serialization of STL collection templates.
+//
+// illustrates serialzation of polymorphic pointer (bus stop *);
+//
+// illustrates storage and recovery of shared pointers is correct
+// and efficient.  That is objects pointed to by more than one
+// pointer are stored only once.  In such cases only one such
+// object is restored and pointers are restored to point to it
+//
+class bus_route
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const bus_route &br);
+    typedef bus_stop * bus_stop_pointer;
+    std::list<bus_stop_pointer> stops;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        // in this program, these classes are never serialized directly but rather
+        // through a pointer to the base class bus_stop. So we need a way to be
+        // sure that the archive contains information about these derived classes.
+        //ar.template register_type<bus_stop_corner>();
+        ar.register_type(static_cast<bus_stop_corner *>(NULL));
+        //ar.template register_type<bus_stop_destination>();
+        ar.register_type(static_cast<bus_stop_destination *>(NULL));
+        // serialization of stl collections is already defined
+        // in the header
+        ar & BOOST_SERIALIZATION_NVP(stops);
+    }
+public:
+    bus_route(){}
+    void append(bus_stop *_bs)
+    {
+        stops.insert(stops.end(), _bs);
+    }
+};
+std::ostream & operator<<(std::ostream &os, const bus_route &br)
+{
+    std::list<bus_stop *>::const_iterator it;
+    // note: we're displaying the pointer to permit verification
+    // that duplicated pointers are properly restored.
+    for(it = br.stops.begin(); it != br.stops.end(); it++){
+        os << '\n' << std::hex << "0x" << *it << std::dec << ' ' << **it;
+    }
+    return os;
+}
+
+/////////////////////////////////////////////////////////////
+// a bus schedule is a collection of routes each with a starting time
+//
+// Illustrates serialization of STL objects(pair) in a non-intrusive way.
+// See definition of operator<< <pair<F, S> >(ar, pair)
+// 
+// illustrates nesting of serializable classes
+//
+// illustrates use of version number to automatically grandfather older
+// versions of the same class.
+
+class bus_schedule
+{
+    friend class boost::serialization::access;
+    friend std::ostream & operator<<(std::ostream &os, const bus_schedule &bs);
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int version)
+    {
+        ar & BOOST_SERIALIZATION_NVP(schedule);
+    }
+    // note: this structure was made public. because the friend declarations
+    // didn't seem to work as expected.
+public:
+    struct trip_info
+    {
+        template<class Archive>
+        void serialize(Archive &ar, const unsigned int file_version)
+        {
+            // in versions 2 or later
+            if(file_version >= 2)
+                // read the drivers name
+                ar & BOOST_SERIALIZATION_NVP(driver);
+            // all versions have the follwing info
+            ar  & BOOST_SERIALIZATION_NVP(hour)
+                & BOOST_SERIALIZATION_NVP(minute);
+        }
+
+        // starting time
+        int hour;
+        int minute;
+        // only after system shipped was the driver's name added to the class
+        std::string driver;
+
+        trip_info(){}
+        trip_info(int _h, int _m, const std::string &_d) :
+            hour(_h), minute(_m), driver(_d)
+        {}
+        ~trip_info(){
+        }
+    };
+//  friend std::ostream & operator<<(std::ostream &os, const trip_info &ti);
+private:
+    std::list<std::pair<trip_info, bus_route *> > schedule;
+public:
+    void append(const std::string &_d, int _h, int _m, bus_route *_br)
+    {
+        schedule.insert(schedule.end(), std::make_pair(trip_info(_h, _m, _d), _br));
+    }
+    bus_schedule(){}
+};
+
+BOOST_CLASS_VERSION(bus_schedule::trip_info, 3)
+BOOST_CLASS_VERSION(bus_schedule, 2)
+
+std::ostream & operator<<(std::ostream &os, const bus_schedule::trip_info &ti)
+{
+    return os << '\n' << ti.hour << ':' << ti.minute << ' ' << ti.driver << ' ';
+}
+std::ostream & operator<<(std::ostream &os, const bus_schedule &bs)
+{
+    std::list<std::pair<bus_schedule::trip_info, bus_route *> >::const_iterator it;
+    for(it = bs.schedule.begin(); it != bs.schedule.end(); it++){
+        os << it->first << *(it->second);
+    }
+    return os;
+}
+
+#endif // BOOST_SERIALIZATION_EXAMPLE_DEMO_XML_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_xml_load.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_xml_load.cpp
new file mode 100644 (file)
index 0000000..cd8e03c
--- /dev/null
@@ -0,0 +1,45 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_xml_load.cpp
+//
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <iostream>
+#include <string>
+#include <boost/archive/tmpdir.hpp>
+
+#include <boost/archive/xml_iarchive.hpp>
+
+#include "demo_gps.hpp"
+
+void
+restore_schedule(bus_schedule &s, const char * filename)
+{
+    // open the archive
+    std::ifstream ifs(filename);
+    assert(ifs.good());
+    boost::archive::xml_iarchive ia(ifs);
+
+    // restore the schedule from the archive
+    ia >> BOOST_SERIALIZATION_NVP(s);
+}
+
+int main(int argc, char *argv[])
+{   
+    // make  a new schedule
+    bus_schedule new_schedule;
+
+    std::string filename(boost::archive::tmpdir());
+    filename += "/demo_save.xml";
+
+    restore_schedule(new_schedule, filename.c_str());
+
+    // and display
+    std::cout << "\nrestored schedule";
+    std::cout << new_schedule;
+
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demo_xml_save.cpp b/deal.II/contrib/boost/libs/serialization/example/demo_xml_save.cpp
new file mode 100644 (file)
index 0000000..ff03d54
--- /dev/null
@@ -0,0 +1,91 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+//
+// demo_xml_save.cpp
+//
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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 <iostream>
+#include <string>
+#include <boost/archive/tmpdir.hpp>
+
+#include <boost/archive/xml_oarchive.hpp>
+
+#include "demo_gps.hpp"
+
+void save_schedule(const bus_schedule &s, const char * filename){
+    // make an archive
+    std::ofstream ofs(filename);
+    assert(ofs.good());
+    boost::archive::xml_oarchive oa(ofs);
+    oa << BOOST_SERIALIZATION_NVP(s);
+}
+
+int main(int argc, char *argv[])
+{   
+    // make the schedule
+    bus_schedule original_schedule;
+
+    // fill in the data
+    // make a few stops
+    bus_stop *bs0 = new bus_stop_corner(
+        gps_position(34, 135, 52.560f),
+        gps_position(134, 22, 78.30f),
+        "24th Street", "10th Avenue"
+    );
+    bus_stop *bs1 = new bus_stop_corner(
+        gps_position(35, 137, 23.456f),
+        gps_position(133, 35, 54.12f),
+        "State street", "Cathedral Vista Lane"
+    );
+    bus_stop *bs2 = new bus_stop_destination(
+        gps_position(35, 136, 15.456f),
+        gps_position(133, 32, 15.300f),
+        "White House"
+    );
+    bus_stop *bs3 = new bus_stop_destination(
+        gps_position(35, 134, 48.789f),
+        gps_position(133, 32, 16.230f),
+        "Lincoln Memorial"
+    );
+
+    // make a  routes
+    bus_route route0;
+    route0.append(bs0);
+    route0.append(bs1);
+    route0.append(bs2);
+
+    // add trips to schedule
+    original_schedule.append("bob", 6, 24, &route0);
+    original_schedule.append("bob", 9, 57, &route0);
+    original_schedule.append("alice", 11, 02, &route0);
+
+    // make aother routes
+    bus_route route1;
+    route1.append(bs3);
+    route1.append(bs2);
+    route1.append(bs1);
+
+    // add trips to schedule
+    original_schedule.append("ted", 7, 17, &route1);
+    original_schedule.append("ted", 9, 38, &route1);
+    original_schedule.append("alice", 11, 47, &route1);
+
+    // display the complete schedule
+    std::cout << "original schedule";
+    std::cout << original_schedule;
+    
+    std::string filename(boost::archive::tmpdir());
+    filename += "/demo_save.xml";
+
+    // save the schedule
+    save_schedule(original_schedule, filename.c_str());
+
+    delete bs0;
+    delete bs1;
+    delete bs2;
+    delete bs3;
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/example/demofile.txt b/deal.II/contrib/boost/libs/serialization/example/demofile.txt
new file mode 100644 (file)
index 0000000..59ae12f
--- /dev/null
@@ -0,0 +1,13 @@
+22 serialization::archive 3 0 2 0 0 6 0 0 0 0 6 24 4 1 0
+0 0 0 3 5 1 0
+1 0 0 0 0 34 135 52.560001 134 22 78.300003 11 24th Street 11 10th Avenue 5
+2 35 137 23.455999 133 35 54.119999 12 State street 20 Cathedral Vista Lane 6 1 0
+3 35 136 15.456 133 32 15.3 11 White House 9 57 4
+0 11 2 4
+0 7 17 4
+4 3 6
+5 35 134 48.789001 133 32 16.23 16 Lincoln Memorial 6
+3 5
+2 9 38 4
+4 11 47 4
+4
\ No newline at end of file
diff --git a/deal.II/contrib/boost/libs/serialization/example/log_archive.cpp b/deal.II/contrib/boost/libs/serialization/example/log_archive.cpp
new file mode 100644 (file)
index 0000000..86c3631
--- /dev/null
@@ -0,0 +1,32 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// log_archive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+//#define BOOST_ARCHIVE_SOURCE
+#include "log_archive.hpp"
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of xml stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_xml_oarchive.ipp>
+#include <boost/archive/impl/xml_oarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<log_archive>;
+template class basic_xml_oarchive<log_archive> ;
+template class xml_oarchive_impl<log_archive> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/example/log_archive.hpp b/deal.II/contrib/boost/libs/serialization/example/log_archive.hpp
new file mode 100644 (file)
index 0000000..67d848f
--- /dev/null
@@ -0,0 +1,76 @@
+#ifndef LOG_ARCHIVE_HPP
+#define LOG_ARCHIVE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// log_archive.hpp
+
+// (C) Copyright 2010 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/archive/xml_oarchive.hpp>
+
+/////////////////////////////////////////////////////////////////////////
+// log data to an output stream.  This illustrates a simpler implemenation
+// of text output which is useful for getting a formatted display of
+// any serializable class.  Intended to be useful as a debugging aid.
+class log_archive :
+    /* protected ? */ 
+    public boost::archive::xml_oarchive_impl<log_archive>
+{
+    typedef boost::archive::xml_oarchive_impl<log_archive> base;
+    // give serialization implementation access to this clas
+    friend class boost::archive::detail::interface_oarchive<log_archive>;
+    friend class boost::archive::basic_xml_oarchive<log_archive>;
+    friend boost::archive::save_access;
+
+    /////////////////////////////////////////////////////////////////////
+    // Override functions defined in basic_xml_oarchive
+
+    // Anything not an attribute and not a name-value pair is an
+    // error and should be trapped here.  Note the usage of
+    // function argument matching (BOOST_PFTO) to permit usage
+    // with compilers which fail to properly support 
+    // function template ordering
+    template<class T>
+    void save_override(T & t, BOOST_PFTO int){
+        // make it a name-value pair and pass it on.
+        // this permits this to be used even with data types which
+        // are not wrapped with the name
+        base::save_override(boost::serialization::make_nvp(NULL, t), 0);
+    }
+    template<class T>
+    void save_override(const boost::serialization::nvp<T> & t, int){
+        // this is here to remove the "const" requirement.  Since
+        // this class is to be used only for output, it's not required.
+        base::save_override(t, 0);
+    }
+    // specific overrides for attributes - not name value pairs so we
+    // want to trap them before the above "fall through"
+    // since we don't want to see these in the output - make them no-ops.
+    void save_override(const boost::archive::object_id_type & t, int){}
+    void save_override(const boost::archive::object_reference_type & t, int){}
+    void save_override(const boost::archive::version_type & t, int){}
+    void save_override(const boost::archive::class_id_type & t, int){}
+    void save_override(const boost::archive::class_id_optional_type & t, int){}
+    void save_override(const boost::archive::class_id_reference_type & t, int){}
+    void save_override(const boost::archive::class_name_type & t, int){}
+    void save_override(const boost::archive::tracking_type & t, int){}
+public:
+    log_archive(std::ostream & os, unsigned int flags = 0) :
+        boost::archive::xml_oarchive_impl<log_archive>(
+            os, 
+            flags | boost::archive::no_header
+        )
+    {}
+};
+
+#endif // LOG_ARCHIVE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_iarchive.cpp b/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_iarchive.cpp
new file mode 100644 (file)
index 0000000..7f2f23e
--- /dev/null
@@ -0,0 +1,34 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_portable_binary_iarchive.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <istream>
+
+#define BOOST_ARCHIVE_SOURCE
+#include "polymorphic_portable_binary_iarchive.hpp"
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/basic_binary_iarchive.ipp>
+#include <boost/archive/impl/archive_pointer_iserializer.ipp>
+#include <boost/archive/impl/basic_binary_iprimitive.ipp>
+
+namespace boost {
+namespace archive {
+
+template class binary_iarchive_impl<
+    polymorphic_portable_binary_iarchive, 
+    std::istream::char_type, 
+    std::istream::traits_type
+>;
+template class detail::archive_pointer_iserializer<
+    polymorphic_portable_binary_iarchive
+> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_iarchive.hpp b/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_iarchive.hpp
new file mode 100644 (file)
index 0000000..95c5469
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef BOOST_ARCHIVE_POLYMORPHIC_PORTABLE_BINARY_IARCHIVE_HPP
+#define BOOST_ARCHIVE_POLYMORPHIC_PORTABLE_BINARY_IARCHIVE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_portable_binary_iarchive.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/archive/detail/polymorphic_iarchive_dispatch.hpp>
+#include "portable_binary_iarchive.hpp"
+
+typedef boost::archive::detail::polymorphic_iarchive_dispatch<
+    portable_binary_iarchive
+> polymorphic_portable_binary_iarchive;
+
+#include <boost/version.hpp>
+#if BOOST_VERSION > 103401
+    // required by export
+    BOOST_SERIALIZATION_REGISTER_ARCHIVE(
+        polymorphic_portable_binary_iarchive
+    )
+#endif
+
+#endif // BOOST_ARCHIVE_POLYMORPHIC_PORTABLE_BINARY_OARCHIVE_HPP
+
diff --git a/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_oarchive.cpp b/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_oarchive.cpp
new file mode 100644 (file)
index 0000000..f77b902
--- /dev/null
@@ -0,0 +1,35 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_portable_binary_oarchive.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <ostream>
+
+#define BOOST_ARCHIVE_SOURCE
+#include "polymorphic_portable_binary_oarchive.hpp"
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/basic_binary_oarchive.ipp>
+#include <boost/archive/impl/archive_pointer_oserializer.ipp>
+#include <boost/archive/impl/basic_binary_oprimitive.ipp>
+
+namespace boost {
+namespace archive {
+
+// explicitly instantiate for this type of binary stream
+template class binary_oarchive_impl<
+    polymorphic_portable_binary_oarchive, 
+    std::ostream::char_type, 
+    std::ostream::traits_type
+>;
+template class detail::archive_pointer_oserializer<
+    polymorphic_portable_binary_oarchive
+> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_oarchive.hpp b/deal.II/contrib/boost/libs/serialization/example/polymorphic_portable_binary_oarchive.hpp
new file mode 100644 (file)
index 0000000..d247464
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef BOOST_ARCHIVE_POLYMORPHIC_PORTABLE_BINARY_OARCHIVE_HPP
+#define BOOST_ARCHIVE_POLYMORPHIC_PORTABLE_BINARY_OARCHIVE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_portable_binary_oarchive.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/archive/detail/polymorphic_oarchive_dispatch.hpp>
+#include "portable_binary_oarchive.hpp"
+
+typedef boost::archive::detail::polymorphic_oarchive_dispatch<
+    portable_binary_oarchive
+ > polymorphic_portable_binary_oarchive;
+
+#include <boost/version.hpp>
+#if BOOST_VERSION > 103401
+    // required by export
+    BOOST_SERIALIZATION_REGISTER_ARCHIVE(
+        polymorphic_portable_binary_oarchive
+    )
+#endif
+
+#endif // BOOST_ARCHIVE_POLYMORPHIC_PORTABLE_BINARY_OARCHIVE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/portable_binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/example/portable_binary_archive.hpp
new file mode 100644 (file)
index 0000000..ee23888
--- /dev/null
@@ -0,0 +1,47 @@
+#ifndef PORTABLE_BINARY_ARCHIVE_HPP
+#define PORTABLE_BINARY_ARCHIVE_HPP
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#include <boost/config.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/serialization/pfto.hpp>
+#include <boost/static_assert.hpp>
+
+#include <climits>
+#if CHAR_BIT != 8
+#error This code assumes an eight-bit byte.
+#endif
+
+#include <boost/archive/basic_archive.hpp>
+#include <boost/detail/endian.hpp>
+
+enum portable_binary_archive_flags {
+    endian_big        = 0x4000,
+    endian_little     = 0x8000
+};
+
+//#if ( endian_big <= boost::archive::flags_last )
+//#error archive flags conflict
+//#endif
+
+inline void
+reverse_bytes(char size, char *address){
+    char * first = address;
+    char * last = first + size - 1;
+    for(;first < last;++first, --last){
+        char x = *last;
+        *last = *first;
+        *first = x;
+    }
+}
+
+#endif // PORTABLE_BINARY_ARCHIVE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/portable_binary_iarchive.cpp b/deal.II/contrib/boost/libs/serialization/example/portable_binary_iarchive.cpp
new file mode 100644 (file)
index 0000000..445d69b
--- /dev/null
@@ -0,0 +1,127 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// portable_binary_iarchive.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <istream>
+#include <string>
+
+#include <boost/detail/endian.hpp>
+#include <boost/serialization/throw_exception.hpp>
+#include <boost/archive/archive_exception.hpp>
+
+#include "portable_binary_iarchive.hpp"
+
+void 
+portable_binary_iarchive::load_impl(boost::intmax_t & l, char maxsize){
+    char size;
+    l = 0;
+    this->primitive_base_t::load(size);
+
+    if(0 == size){
+        return;
+    }
+
+    bool negative = (size < 0);
+    if(negative)
+        size = -size;
+
+    if(size > maxsize)
+        boost::serialization::throw_exception(
+            portable_binary_iarchive_exception()
+        );
+
+    char * cptr = reinterpret_cast<char *>(& l);
+    #ifdef BOOST_BIG_ENDIAN
+        cptr += (sizeof(boost::intmax_t) - size);
+    #endif
+    this->primitive_base_t::load_binary(cptr, size);
+
+    #ifdef BOOST_BIG_ENDIAN
+        if(m_flags & endian_little)
+    #else
+        if(m_flags & endian_big)
+    #endif
+            reverse_bytes(size, cptr);
+    
+    if(negative)
+        l = -l;
+}
+
+void
+portable_binary_iarchive::load_override(
+    boost::archive::class_name_type & t, int
+){
+    std::string cn;
+    cn.reserve(BOOST_SERIALIZATION_MAX_KEY_SIZE);
+    load_override(cn, 0);
+    if(cn.size() > (BOOST_SERIALIZATION_MAX_KEY_SIZE - 1))
+        boost::serialization::throw_exception(
+            boost::archive::archive_exception(
+                boost::archive::archive_exception::invalid_class_name)
+            );
+    std::memcpy(t, cn.data(), cn.size());
+    // borland tweak
+    t.t[cn.size()] = '\0';
+}
+
+void 
+portable_binary_iarchive::init(unsigned int flags){
+    if(0 == (flags & boost::archive::no_header)){
+        // read signature in an archive version independent manner
+        std::string file_signature;
+        * this >> file_signature;
+        if(file_signature != boost::archive::BOOST_ARCHIVE_SIGNATURE())
+            boost::serialization::throw_exception(
+                boost::archive::archive_exception(
+                    boost::archive::archive_exception::invalid_signature
+                )
+            );
+        // make sure the version of the reading archive library can
+        // support the format of the archive being read
+        boost::archive::version_type input_library_version;
+        * this >> input_library_version;
+
+        // extra little .t is to get around borland quirk
+        if(boost::archive::BOOST_ARCHIVE_VERSION() < input_library_version.t)
+            boost::serialization::throw_exception(
+                boost::archive::archive_exception(
+                    boost::archive::archive_exception::unsupported_version
+                )
+            );
+        
+        #if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3205))
+        this->set_library_version(input_library_version);
+        //#else
+        //#if ! BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
+        //detail::
+        //#endif
+        boost::archive::detail::basic_iarchive::set_library_version(
+            input_library_version
+        );
+        #endif
+    }
+    unsigned char x;
+    load(x);
+    m_flags = x << CHAR_BIT;
+}
+
+#include <boost/archive/impl/basic_binary_iprimitive.ipp>
+
+
+namespace boost {
+namespace archive {
+
+template class basic_binary_iprimitive<
+    portable_binary_iarchive,
+    std::istream::char_type, 
+    std::istream::traits_type
+> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/example/portable_binary_iarchive.hpp b/deal.II/contrib/boost/libs/serialization/example/portable_binary_iarchive.hpp
new file mode 100644 (file)
index 0000000..6c3af4f
--- /dev/null
@@ -0,0 +1,192 @@
+#ifndef PORTABLE_BINARY_IARCHIVE_HPP
+#define PORTABLE_BINARY_IARCHIVE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#if defined(_MSC_VER)
+#pragma warning( push )
+#pragma warning( disable : 4244 )
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// portable_binary_iarchive.hpp
+
+// (C) Copyright 2002-7 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <istream>
+#include <boost/serialization/string.hpp>
+#include <boost/archive/archive_exception.hpp>
+#include <boost/archive/basic_binary_iprimitive.hpp>
+#include <boost/archive/detail/common_iarchive.hpp>
+#include <boost/archive/shared_ptr_helper.hpp>
+#include <boost/archive/detail/register_archive.hpp>
+
+#include "portable_binary_archive.hpp"
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// exception to be thrown if integer read from archive doesn't fit
+// variable being loaded
+class portable_binary_iarchive_exception : 
+    public virtual boost::archive::archive_exception
+{
+public:
+    typedef enum {
+        incompatible_integer_size 
+    } exception_code;
+    portable_binary_iarchive_exception(exception_code c = incompatible_integer_size ) :
+        boost::archive::archive_exception(boost::archive::archive_exception::other_exception)
+    {}
+    virtual const char *what( ) const throw( )
+    {
+        const char *msg = "programmer error";
+        switch(code){
+        case incompatible_integer_size:
+            msg = "integer cannot be represented";
+            break;
+        default:
+            msg = boost::archive::archive_exception::what();
+            assert(false);
+            break;
+        }
+        return msg;
+    }
+};
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// "Portable" input binary archive.  It addresses integer size and endienness so 
+// that binary archives can be passed across systems. Note:floating point types
+// not addressed here
+class portable_binary_iarchive :
+    public boost::archive::basic_binary_iprimitive<
+        portable_binary_iarchive,
+        std::istream::char_type, 
+        std::istream::traits_type
+    >,
+    public boost::archive::detail::common_iarchive<
+        portable_binary_iarchive
+    >
+    ,
+    public boost::archive::detail::shared_ptr_helper
+    {
+    typedef boost::archive::basic_binary_iprimitive<
+        portable_binary_iarchive,
+        std::istream::char_type, 
+        std::istream::traits_type
+    > primitive_base_t;
+    typedef boost::archive::detail::common_iarchive<
+        portable_binary_iarchive
+    > archive_base_t;
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+public:
+#else
+    friend archive_base_t;
+    friend primitive_base_t; // since with override load below
+    friend class boost::archive::detail::interface_iarchive<
+        portable_binary_iarchive
+    >;
+    friend class boost::archive::load_access;
+protected:
+#endif
+    unsigned int m_flags;
+    void load_impl(boost::intmax_t & l, char maxsize);
+
+    // default fall through for any types not specified here
+    template<class T>
+    void load(T & t){
+        boost::intmax_t l;
+        load_impl(l, sizeof(T));
+        // use cast to avoid compile time warning
+        t = static_cast<T>(l);
+    }
+    void load(std::string & t){
+        this->primitive_base_t::load(t);
+    }
+    #ifndef BOOST_NO_STD_WSTRING
+    void load(std::wstring & t){
+        this->primitive_base_t::load(t);
+    }
+    #endif
+    void load(float & t){
+        this->primitive_base_t::load(t);
+        // floats not supported
+        //BOOST_STATIC_ASSERT(false);
+    }
+    void load(double & t){
+        this->primitive_base_t::load(t);
+        // doubles not supported
+        //BOOST_STATIC_ASSERT(false);
+    }
+    void load(char & t){
+        this->primitive_base_t::load(t);
+    }
+    void load(unsigned char & t){
+        this->primitive_base_t::load(t);
+    }
+    // intermediate level to support override of operators
+    // fot templates in the absence of partial function 
+    // template ordering
+    typedef boost::archive::detail::common_iarchive<portable_binary_iarchive> 
+        detail_common_iarchive;
+    template<class T>
+    void load_override(T & t, BOOST_PFTO int){
+        this->detail_common_iarchive::load_override(t, 0);
+    }
+    void load_override(boost::archive::class_name_type & t, int);
+    // binary files don't include the optional information 
+    void load_override(
+        boost::archive::class_id_optional_type & /* t */, 
+        int
+    ){}
+
+    void init(unsigned int flags);
+public:
+    portable_binary_iarchive(std::istream & is, unsigned flags = 0) :
+        primitive_base_t(
+            * is.rdbuf(), 
+            0 != (flags & boost::archive::no_codecvt)
+        ),
+        archive_base_t(flags),
+        m_flags(0)
+    {
+        init(flags);
+    }
+
+    portable_binary_iarchive(
+        std::basic_streambuf<
+            std::istream::char_type, 
+            std::istream::traits_type
+        > & bsb, 
+        unsigned int flags
+    ) :
+        primitive_base_t(
+            bsb, 
+            0 != (flags & boost::archive::no_codecvt)
+        ),
+        archive_base_t(flags),
+        m_flags(0)
+    {
+        init(flags);
+    }
+};
+
+// required by export in boost version > 1.34
+#ifdef BOOST_SERIALIZATION_REGISTER_ARCHIVE
+    BOOST_SERIALIZATION_REGISTER_ARCHIVE(portable_binary_iarchive)
+#endif
+
+// required by export in boost <= 1.34
+#define BOOST_ARCHIVE_CUSTOM_IARCHIVE_TYPES portable_binary_iarchive
+
+#if defined(_MSC_VER)
+#pragma warning( pop )
+#endif
+
+#endif // PORTABLE_BINARY_IARCHIVE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/portable_binary_oarchive.cpp b/deal.II/contrib/boost/libs/serialization/example/portable_binary_oarchive.cpp
new file mode 100644 (file)
index 0000000..8079937
--- /dev/null
@@ -0,0 +1,93 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// portable_binary_oarchive.cpp
+
+// (C) Copyright 2002-7 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <ostream>
+#include <boost/detail/endian.hpp>
+#include "portable_binary_oarchive.hpp"
+
+void 
+portable_binary_oarchive::save_impl(
+    const boost::intmax_t l,
+    const char maxsize
+){
+    char size = 0;
+
+    if(l == 0){
+        this->primitive_base_t::save(size);
+        return;
+    }
+
+    boost::intmax_t ll;
+    bool negative = (l < 0);
+    if(negative)
+        ll = -l;
+    else
+        ll = l;
+
+    do{
+        ll >>= CHAR_BIT;
+        ++size;
+    }while(ll != 0);
+
+    this->primitive_base_t::save(
+        static_cast<char>(negative ? -size : size)
+    );
+
+    if(negative)
+        ll = -l;
+    else
+        ll = l;
+    char * cptr = reinterpret_cast<char *>(& ll);
+    #ifdef BOOST_BIG_ENDIAN
+        cptr += (sizeof(boost::intmax_t) - size);
+        if(m_flags & endian_little)
+            reverse_bytes(size, cptr);
+    #else
+        if(m_flags & endian_big)
+            reverse_bytes(size, cptr);
+    #endif
+    this->primitive_base_t::save_binary(cptr, size);
+}
+
+void 
+portable_binary_oarchive::init(unsigned int flags) {
+    if(m_flags == (endian_big | endian_little)){
+        boost::serialization::throw_exception(
+            portable_binary_oarchive_exception()
+        );
+    }
+    if(0 == (flags & boost::archive::no_header)){
+        // write signature in an archive version independent manner
+        const std::string file_signature(
+            boost::archive::BOOST_ARCHIVE_SIGNATURE()
+        );
+        * this << file_signature;
+        // write library version
+        const boost::archive::version_type v(
+            boost::archive::BOOST_ARCHIVE_VERSION()
+        );
+        * this << v;
+    }
+    save(static_cast<unsigned char>(m_flags >> CHAR_BIT));
+}
+
+#include <boost/archive/impl/basic_binary_oprimitive.ipp>
+
+namespace boost {
+namespace archive {
+
+template class basic_binary_oprimitive<
+    portable_binary_oarchive,
+    std::ostream::char_type, 
+    std::ostream::traits_type
+> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/example/portable_binary_oarchive.hpp b/deal.II/contrib/boost/libs/serialization/example/portable_binary_oarchive.hpp
new file mode 100644 (file)
index 0000000..05c9f80
--- /dev/null
@@ -0,0 +1,192 @@
+#ifndef PORTABLE_BINARY_OARCHIVE_HPP
+#define PORTABLE_BINARY_OARCHIVE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+#if defined(_MSC_VER)
+#pragma warning( push )
+#pragma warning( disable : 4244 )
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// portable_binary_oarchive.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <ostream>
+#include <boost/serialization/string.hpp>
+#include <boost/archive/archive_exception.hpp>
+#include <boost/archive/basic_binary_oprimitive.hpp>
+#include <boost/archive/detail/common_oarchive.hpp>
+#include <boost/archive/detail/register_archive.hpp>
+
+#include "portable_binary_archive.hpp"
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// exception to be thrown if integer read from archive doesn't fit
+// variable being loaded
+class portable_binary_oarchive_exception : 
+    public virtual boost::archive::archive_exception
+{
+public:
+    typedef enum {
+        invalid_flags 
+    } exception_code;
+    portable_binary_oarchive_exception(exception_code c = invalid_flags )
+    {}
+    virtual const char *what( ) const throw( )
+    {
+        const char *msg = "programmer error";
+        switch(code){
+        case invalid_flags:
+            msg = "cannot be both big and little endian";
+        default:
+            boost::archive::archive_exception::what();
+        }
+        return msg;
+    }
+};
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// "Portable" output binary archive.  This is a variation of the native binary 
+// archive. it addresses integer size and endienness so that binary archives can
+// be passed across systems. Note:floating point types not addressed here
+
+class portable_binary_oarchive :
+    public boost::archive::basic_binary_oprimitive<
+        portable_binary_oarchive,
+        std::ostream::char_type, 
+        std::ostream::traits_type
+    >,
+    public boost::archive::detail::common_oarchive<
+        portable_binary_oarchive
+    >
+{
+    typedef boost::archive::basic_binary_oprimitive<
+        portable_binary_oarchive,
+        std::ostream::char_type, 
+        std::ostream::traits_type
+    > primitive_base_t;
+    typedef boost::archive::detail::common_oarchive<
+        portable_binary_oarchive
+    > archive_base_t;
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+public:
+#else
+    friend archive_base_t;
+    friend primitive_base_t; // since with override save below
+    friend class boost::archive::detail::interface_oarchive<
+        portable_binary_oarchive
+    >;
+    friend class boost::archive::save_access;
+protected:
+#endif
+    unsigned int m_flags;
+    void save_impl(const boost::intmax_t l, const char maxsize);
+    // add base class to the places considered when matching
+    // save function to a specific set of arguments.  Note, this didn't
+    // work on my MSVC 7.0 system so we use the sure-fire method below
+    // using archive_base_t::save;
+
+    // default fall through for any types not specified here
+    template<class T>
+    void save(const T & t){
+        save_impl(t, sizeof(T));
+    }
+    void save(const std::string & t){
+        this->primitive_base_t::save(t);
+    }
+    #ifndef BOOST_NO_STD_WSTRING
+    void save(const std::wstring & t){
+        this->primitive_base_t::save(t);
+    }
+    #endif
+    void save(const float & t){
+        this->primitive_base_t::save(t);
+        // floats not supported
+        //BOOST_STATIC_ASSERT(false);
+    }
+    void save(const double & t){
+        this->primitive_base_t::save(t);
+        // doubles not supported
+        //BOOST_STATIC_ASSERT(false);
+    }
+    void save(const char & t){
+        this->primitive_base_t::save(t);
+    }
+    void save(const unsigned char & t){
+        this->primitive_base_t::save(t);
+    }
+
+    // default processing - kick back to base class.  Note the
+    // extra stuff to get it passed borland compilers
+    typedef boost::archive::detail::common_oarchive<portable_binary_oarchive> 
+        detail_common_oarchive;
+    template<class T>
+    void save_override(T & t, BOOST_PFTO int){
+        this->detail_common_oarchive::save_override(t, 0);
+    }
+    // explicitly convert to char * to avoid compile ambiguities
+    void save_override(const boost::archive::class_name_type & t, int){
+        const std::string s(t);
+        * this << s;
+    }
+    // binary files don't include the optional information 
+    void save_override(
+        const boost::archive::class_id_optional_type & /* t */, 
+        int
+    ){}
+
+    void init(unsigned int flags);
+public:
+    portable_binary_oarchive(std::ostream & os, unsigned flags = 0) :
+        primitive_base_t(
+            * os.rdbuf(),
+            0 != (flags & boost::archive::no_codecvt)
+        ),
+        archive_base_t(flags),
+        m_flags(flags & (endian_big | endian_little))
+    {
+        init(flags);
+    }
+
+    portable_binary_oarchive(
+        std::basic_streambuf<
+            std::ostream::char_type, 
+            std::ostream::traits_type
+        > & bsb, 
+        unsigned int flags
+    ) :
+        primitive_base_t(
+            bsb, 
+            0 != (flags & boost::archive::no_codecvt)
+        ),
+        archive_base_t(flags),
+        m_flags(0)
+    {
+        init(flags);
+    }
+};
+
+
+// required by export in boost version > 1.34
+#ifdef BOOST_SERIALIZATION_REGISTER_ARCHIVE
+    BOOST_SERIALIZATION_REGISTER_ARCHIVE(portable_binary_oarchive)
+#endif
+
+// required by export in boost <= 1.34
+#define BOOST_ARCHIVE_CUSTOM_OARCHIVE_TYPES portable_binary_oarchive
+
+#if defined(_MSC_VER)
+#pragma warning( pop )
+#endif
+
+#endif // PORTABLE_BINARY_OARCHIVE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/example/simple_log_archive.hpp b/deal.II/contrib/boost/libs/serialization/example/simple_log_archive.hpp
new file mode 100644 (file)
index 0000000..d70b7cc
--- /dev/null
@@ -0,0 +1,166 @@
+#ifndef BOOST_SIMPLE_LOG_ARCHIVE_HPP
+#define BOOST_SIMPLE_LOG_ARCHIVE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// simple_log_archive.hpp
+
+// (C) Copyright 2010 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <ostream>
+#include <cstddef> // std::size_t
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::size_t; 
+} // namespace std
+#endif
+
+#include <boost/type_traits/is_enum.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/equal_to.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/array.hpp>
+#include <boost/serialization/string.hpp>
+#include <boost/serialization/access.hpp>
+
+/////////////////////////////////////////////////////////////////////////
+// log data to an output stream.  This illustrates a simpler implemenation
+// of text output which is useful for getting a formatted display of
+// any serializable class.  Intended to be useful as a debugging aid.
+class simple_log_archive {
+    std::ostream & m_os;
+    unsigned int m_depth;
+
+    template<class Archive>
+    struct save_enum_type {
+        template<class T>
+        static void invoke(Archive &ar, const T &t){
+            ar.m_os << static_cast<int>(t);
+        }
+    };
+    template<class Archive>
+    struct save_primitive {
+        template<class T>
+        static void invoke(Archive & ar, const T & t){
+            ar.m_os << t;
+        }
+    };
+    template<class Archive>
+    struct save_only {
+        template<class T>
+        static void invoke(Archive & ar, const T & t){
+            // make sure call is routed through the highest interface that might
+            // be specialized by the user.
+            boost::serialization::serialize_adl(
+                ar, 
+                const_cast<T &>(t), 
+                ::boost::serialization::version<T>::value
+            );
+        }
+    };
+    template<class T>
+    void save(const T &t){
+        typedef 
+            BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<boost::is_enum<T>,
+                boost::mpl::identity<save_enum_type<simple_log_archive> >,
+            //else
+            BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<
+                // if its primitive
+                    boost::mpl::equal_to<
+                        boost::serialization::implementation_level<T>,
+                        boost::mpl::int_<boost::serialization::primitive_type>
+                    >,
+                    boost::mpl::identity<save_primitive<simple_log_archive> >,
+            // else
+                boost::mpl::identity<save_only<simple_log_archive> >
+            > >::type typex;
+        typex::invoke(*this, t);
+    }    
+    #ifndef BOOST_NO_STD_WSTRING
+    void save(const std::wstring &ws){
+        m_os << "wide string types not suported in log archive";
+    }
+    #endif
+
+public:
+    ///////////////////////////////////////////////////
+    // Implement requirements for archive concept
+
+    typedef boost::mpl::bool_<false> is_loading;
+    typedef boost::mpl::bool_<true> is_saving;
+
+    // this can be a no-op since we ignore pointer polymorphism
+    template<class T>
+    void register_type(const T * = NULL){}
+
+    unsigned int get_library_version(){
+        return 0;
+    }
+
+    void 
+    save_binary(const void *address, std::size_t count){
+        m_os << "save_binary not implemented";
+    }
+
+    // the << operators 
+    template<class T>
+    simple_log_archive & operator<<(T const & t){
+        m_os << ' ';
+        save(t);
+        return * this;
+    }
+    template<class T>
+    simple_log_archive & operator<<(T * const t){
+        m_os << " ->";
+        if(NULL == t)
+            m_os << " null";
+        else
+            *this << * t;
+        return * this;
+    }
+    template<class T, int N>
+    simple_log_archive & operator<<(const T (&t)[N]){
+        ar << serialization::make_array(
+            static_cast<value_type const*>(&t[0]),count
+        );
+    }
+    template<class T>
+    simple_log_archive & operator<<(const ::boost::serialization::nvp<T> & t){
+        m_os << '\n'; // start line with each named object
+        // indent according to object depth
+        for(unsigned int i = 0; i < m_depth; ++i)
+            m_os << ' ';
+        ++m_depth;
+        m_os << t.name(); // output the name of the object
+        * this << t.const_value();
+        --m_depth;
+        return * this;
+    }
+
+    // the & operator 
+    template<class T>
+    simple_log_archive & operator&(const T & t){
+            return * this << t;
+    }
+    ///////////////////////////////////////////////
+
+    simple_log_archive(std::ostream & os) :
+        m_os(os),
+        m_depth(0)
+    {}
+};
+
+#endif // BOOST_SIMPLE_LOG_ARCHIVE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/index.html b/deal.II/contrib/boost/libs/serialization/index.html
new file mode 100644 (file)
index 0000000..ad01a7c
--- /dev/null
@@ -0,0 +1,15 @@
+<html>
+<!--
+(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
+-->
+<head>
+<meta http-equiv="refresh" content="0; URL=doc/index.html">
+</head>
+<body>
+Automatic redirection failed, please go to
+<a href="doc/index.html">doc/index.html</a>.
+</body>
+</html>
\ No newline at end of file
diff --git a/deal.II/contrib/boost/libs/serialization/performance/Jamfile.v2 b/deal.II/contrib/boost/libs/serialization/performance/Jamfile.v2
new file mode 100644 (file)
index 0000000..5ec2a29
--- /dev/null
@@ -0,0 +1,48 @@
+# Boost serialization Library performance test Jamfile
+
+#  (C) Copyright Robert Ramey 2002-2004.
+#  Use, modification, and distribution are subject to 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)
+#
+
+project libs/serialization/performance
+    : default-build release
+    : id serialization_performance
+    ;
+
+# import rules from the boost serialization test
+# import ../util/test : test-bsl-run-no-lib ;
+import ../util/test :
+    run-template
+    run-invoke
+    run-winvoke
+    test-bsl-run-no-lib
+    test-bsl-run
+    test-bsl-run_archive
+    test-bsl-run_files
+    test-bsl-run_polymorphic_archive
+;
+
+BOOST_ARCHIVE_LIST = [ modules.peek : BOOST_ARCHIVE_LIST ] ;
+
+test-suite "performance" :
+    [ test-bsl-run_files peformance_array : ../test/A ]
+#    [ test-bsl-run_files performance_binary ]
+#    [ test-bsl-run_files performance_polymorphic ]
+#    [ test-bsl-run_files performance_vector ]
+#    [ test-bsl-run_files performance_no_rtti ]
+#    [ test-bsl-run_files performance_simple_class ]
+#    [ test-bsl-run_polymorphic_archive performance_polymorphic : ../test/test_polymorphic_A ]
+    
+    [ test-bsl-run-no-lib performance_iterators ]
+    [ test-bsl-run-no-lib performance_iterators_base64 ]
+#    [ test-bsl-run-no-lib performance_utf8_codecvt 
+#        : ../src/utf8_codecvt_facet
+#        : # <dependency>../../config/test/all//BOOST_NO_STD_WSTREAMBUF
+#    ]
+#    [ test-bsl-run-no-lib performance_codecvt_null 
+#        : ../src/codecvt_null 
+#        : # <dependency>../../config/test/all//BOOST_NO_STD_WSTREAMBUF
+#    ]
+;
diff --git a/deal.II/contrib/boost/libs/serialization/performance/binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/binary_archive.hpp
new file mode 100644 (file)
index 0000000..3569bcf
--- /dev/null
@@ -0,0 +1,22 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+// binary_archive
+#include <boost/archive/binary_oarchive.hpp>
+typedef boost::archive::binary_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/binary_iarchive.hpp>
+typedef boost::archive::binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS std::ios::binary
+
diff --git a/deal.II/contrib/boost/libs/serialization/performance/binary_warchive.hpp b/deal.II/contrib/boost/libs/serialization/performance/binary_warchive.hpp
new file mode 100644 (file)
index 0000000..929f3a3
--- /dev/null
@@ -0,0 +1,14 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// binary_warchive
+#include <boost/archive/binary_woarchive.hpp>
+typedef boost::archive::binary_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/binary_wiarchive.hpp>
+typedef boost::archive::binary_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
+#define TEST_STREAM_FLAGS std::wios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/performance/peformance_array.cpp b/deal.II/contrib/boost/libs/serialization/performance/peformance_array.cpp
new file mode 100644 (file)
index 0000000..4015901
--- /dev/null
@@ -0,0 +1,118 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_array.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <fstream>
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "../test/test_tools.hpp"
+
+#include <boost/preprocessor/stringize.hpp>
+//#include <boost/preprocessor/cat.hpp>
+// the following fails with (only!) gcc 3.4 
+// #include BOOST_PP_STRINGIZE(BOOST_PP_CAT(../test/,BOOST_ARCHIVE_TEST))
+// just copy over the files from the test directory
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/archive/archive_exception.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include "../test/A.hpp"
+#include "../test/A.ipp"
+
+struct array_equal_to //: public std::binary_function<T, T, bool>
+{
+template<class T, class U>
+    bool operator()(const T & _Left, const U & _Right) const
+    {
+        // consider alignment
+        int count_left = sizeof(_Left) /    (
+            static_cast<const char *>(static_cast<const void *>(&_Left[1])) 
+            - static_cast<const char *>(static_cast<const void *>(&_Left[0]))
+        );
+        int count_right = sizeof(_Right) /  (
+            static_cast<const char *>(static_cast<const void *>(&_Right[1])) 
+            - static_cast<const char *>(static_cast<const void *>(&_Right[0]))
+        );
+        if(count_right != count_left)
+            return false;
+        while(count_left-- > 0){
+            if(_Left[count_left] == _Right[count_left])
+                continue;
+            return false;
+        }
+        return true;
+    }
+};
+
+template <class T>
+int test_array(T)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    const T a_array[10]={T(),T(),T(),T(),T(),T(),T(),T(),T(),T()};
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a_array", a_array);
+    }
+    {
+        T a_array1[10];
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a_array", a_array1);
+
+        array_equal_to/*<A[10]>*/ Compare;
+        BOOST_CHECK(Compare(a_array, a_array1));
+    }
+    {
+        T a_array1[9];
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        BOOST_TRY {
+            test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+            bool exception_invoked = false;
+            BOOST_TRY {
+                ia >> boost::serialization::make_nvp("a_array", a_array1);
+            }
+            BOOST_CATCH (boost::archive::archive_exception ae){
+                BOOST_CHECK(
+                    boost::archive::archive_exception::array_size_too_short
+                    == ae.code
+                );
+                exception_invoked = true;
+            }
+            BOOST_CATCH_END
+            BOOST_CHECK(exception_invoked);
+        }
+        BOOST_CATCH (boost::archive::archive_exception ae){}
+        BOOST_CATCH_END
+    }
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+   int res = test_array(A());
+    // test an int array for which optimized versions should be available
+   if (res == EXIT_SUCCESS)
+     res = test_array(0);  
+   return res;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_binary.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_binary.cpp
new file mode 100644 (file)
index 0000000..7c817b2
--- /dev/null
@@ -0,0 +1,96 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_simple_class.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <fstream>
+
+#include <cstdlib> // for rand()
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::rand; 
+    using ::remove;
+}
+#endif
+
+#include "../test/test_tools.hpp"
+#include <boost/preprocessor/stringize.hpp>
+// #include <boost/preprocessor/cat.hpp>
+// the following fails with (only!) gcc 3.4 
+// #include BOOST_PP_STRINGIZE(BOOST_PP_CAT(../test/,BOOST_ARCHIVE_TEST))
+// just copy over the files from the test directory
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/binary_object.hpp>
+
+class A {
+    friend class boost::serialization::access;
+    char data[150];
+    // note: from an aesthetic perspective, I would much prefer to have this
+    // defined out of line.  Unfortunately, this trips a bug in the VC 6.0
+    // compiler. So hold our nose and put it her to permit running of tests.
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & boost::serialization::make_nvp(
+            "data",
+            boost::serialization::make_binary_object(data, sizeof(data))
+        );
+    }
+
+public:
+    A();
+    bool operator==(const A & rhs) const;
+};
+
+A::A(){
+    int i = sizeof(data);
+    while(i-- > 0)
+        data[i] = 0xff & std::rand();
+}
+
+bool A::operator==(const A & rhs) const {
+    int i = sizeof(data);
+    while(i-- > 0)
+        if(data[i] != rhs.data[i])
+            return false;
+    return true;
+}
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A a;
+    A a1;
+    const int i = 12345;
+    int i1 = 34790;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << BOOST_SERIALIZATION_NVP(a);
+        // note: add a little bit on the end of the archive to detect
+        // failure of text mode binary.
+        oa << BOOST_SERIALIZATION_NVP(i);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> BOOST_SERIALIZATION_NVP(a1);
+        ia >> BOOST_SERIALIZATION_NVP(i1);
+    }
+    BOOST_CHECK(i == i1);
+    BOOST_CHECK(a == a1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_codecvt_null.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_codecvt_null.cpp
new file mode 100644 (file)
index 0000000..70dd573
--- /dev/null
@@ -0,0 +1,136 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_codecvt_null.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution.  Note: compilation with compilers
+// which use wchar_t as 2 byte objects will emit warnings.  These should be
+// ignored.
+
+#include <algorithm>
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <locale>
+#include <vector>
+#include <cstddef>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/archive/add_facet.hpp>
+#include <boost/archive/codecvt_null.hpp>
+#include <boost/archive/iterators/ostream_iterator.hpp>
+#include <boost/archive/iterators/istream_iterator.hpp>
+
+template<std::size_t S>
+struct test_data
+{
+    static wchar_t wchar_encoding[];
+};
+
+template<>
+wchar_t test_data<2>::wchar_encoding[] = {
+    0x0001,
+    0x007f,
+    0x0080,
+    0x07ff,
+    0x0800,
+    0x7fff
+};
+
+template<>
+wchar_t test_data<4>::wchar_encoding[] = {
+    0x00000001,
+    0x0000007f,
+    0x00000080,
+    0x000007ff,
+    0x00000800,
+    0x0000ffff,
+    0x00010000,
+    0x0010ffff,
+    0x001fffff,
+    0x00200000,
+    0x03ffffff,
+    0x04000000,
+    0x7fffffff
+};
+
+#include <iostream>
+
+int test_main( int /* argc */, char* /* argv */[] ) {
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    std::locale old_loc;
+    std::locale * null_locale = 
+        boost::archive::add_facet(old_loc, new boost::archive::codecvt_null<wchar_t>);
+
+    typedef test_data<sizeof(wchar_t)> td;
+    {
+        std::wofstream ofs;
+        ofs.imbue(*null_locale);
+        ofs.open(testfile, std::ios::binary);
+        std::copy(
+            td::wchar_encoding,
+            #if ! defined(__BORLANDC__)
+                // borland 5.60 complains about this
+                td::wchar_encoding + sizeof(td::wchar_encoding)/sizeof(wchar_t),
+            #else
+                // so use this instead
+                td::wchar_encoding + 6,
+            #endif
+            boost::archive::iterators::ostream_iterator<wchar_t>(ofs)
+        );
+    }
+    bool ok = false;
+    {
+        std::wifstream ifs;
+        ifs.imbue(*null_locale);
+        ifs.open(testfile, std::ios::binary);
+        ok = std::equal(
+            td::wchar_encoding,
+            #if ! defined(__BORLANDC__)
+                // borland 5.60 complains about this
+                td::wchar_encoding + sizeof(td::wchar_encoding)/sizeof(wchar_t),
+            #else
+                // so use this instead
+                td::wchar_encoding + 6,
+            #endif
+            boost::archive::iterators::istream_iterator<wchar_t>(ifs)
+        );
+    }
+
+    BOOST_CHECK(ok);
+    {
+        std::wofstream ofs("testfile2");
+        ofs.imbue(*null_locale);
+        int i = 10;
+        ofs << i;
+        ofs.close();
+        
+        std::wifstream ifs("testfile2");
+        ifs.imbue(*null_locale);
+        int i2;
+        ifs >> i2;
+        std::cout << "i=" << i << std::endl;
+        std::cout << "i2=" << i2 << std::endl;
+        BOOST_CHECK(i == i2);
+        ifs.close();
+    }
+    delete null_locale;
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_iterators.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_iterators.cpp
new file mode 100644 (file)
index 0000000..869b6ed
--- /dev/null
@@ -0,0 +1,213 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_iterators.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <algorithm>
+#include <vector>
+#include <cstdlib> // for rand
+#include <functional>
+#include <sstream> // used to test stream iterators
+
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STDC_NAMESPACE
+namespace std{
+    using ::rand; 
+}
+#endif
+
+#include <boost/detail/workaround.hpp>
+#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+#include <boost/archive/dinkumware.hpp>
+#endif
+
+#ifndef BOOST_NO_CWCHAR
+#include <boost/archive/iterators/mb_from_wchar.hpp>
+#include <boost/archive/iterators/wchar_from_mb.hpp>
+#endif
+#include <boost/archive/iterators/xml_escape.hpp>
+#include <boost/archive/iterators/xml_unescape.hpp>
+#include <boost/archive/iterators/transform_width.hpp>
+#include <boost/archive/iterators/istream_iterator.hpp>
+#include <boost/archive/iterators/ostream_iterator.hpp>
+
+#include "../test/test_tools.hpp"
+
+#ifndef BOOST_NO_CWCHAR
+
+void test_wchar_from_mb(const wchar_t *la, const char * a, const unsigned int size){
+    typedef boost::archive::iterators::wchar_from_mb<const char *> translator;
+    BOOST_CHECK((
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(a)),
+            translator(BOOST_MAKE_PFTO_WRAPPER(a + size)),
+            la
+        )
+    ));
+}
+
+void test_mb_from_wchar(const char * a, const wchar_t *la, const unsigned int size){
+    typedef boost::archive::iterators::mb_from_wchar<const wchar_t *> translator;
+    BOOST_CHECK(
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(la)), 
+            translator(BOOST_MAKE_PFTO_WRAPPER(la + size)), 
+            a
+        )
+    );
+}
+
+#endif
+
+template<class CharType>
+void test_xml_escape(
+    const CharType * xml_escaped, 
+    const CharType * xml, 
+    unsigned int size
+){
+    typedef boost::archive::iterators::xml_escape<const CharType *> translator;
+
+    BOOST_CHECK(
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml)),
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml + size)),
+            xml_escaped
+        )
+    );
+}
+
+template<class CharType>
+void test_xml_unescape(
+    const CharType * xml, 
+    const CharType * xml_escaped, 
+    unsigned int size
+){
+
+    // test xml_unescape
+    typedef boost::archive::iterators::xml_unescape<const CharType *> translator;
+
+    BOOST_CHECK(
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml_escaped)),
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml_escaped + size)),
+            xml
+        )
+    );
+}
+
+template<int BitsOut, int BitsIn>
+void test_transform_width(unsigned int size){
+    // test transform_width
+    char rawdata[8];
+    
+    char * rptr;
+    for(rptr = rawdata + 6; rptr-- > rawdata;)
+        *rptr = std::rand();
+
+    // convert 8 to 6 bit characters
+    typedef boost::archive::iterators::transform_width<
+        char *, BitsOut, BitsIn 
+    > translator1;
+
+    std::vector<char> v6;
+
+    std::copy(
+        translator1(BOOST_MAKE_PFTO_WRAPPER(static_cast<char *>(rawdata))),
+        translator1(BOOST_MAKE_PFTO_WRAPPER(rawdata + size)),
+        std::back_inserter(v6)
+    );
+
+    // check to see we got the expected # of characters out
+    if(0 ==  size)
+        BOOST_CHECK(v6.size() == 0);
+    else
+        BOOST_CHECK(v6.size() == (size * BitsIn - 1 ) / BitsOut + 1);
+
+    typedef boost::archive::iterators::transform_width<
+        std::vector<char>::iterator, BitsIn, BitsOut
+    > translator2;
+
+    BOOST_CHECK(
+        std::equal(
+            rawdata,
+            rawdata + size,
+            translator2(BOOST_MAKE_PFTO_WRAPPER(v6.begin()))
+        )
+    );
+
+}
+
+template<class CharType>
+void test_stream_iterators(
+    const CharType * test_data, 
+    unsigned int size
+){
+    std::basic_stringstream<CharType> ss;
+    boost::archive::iterators::ostream_iterator<CharType> osi =
+        boost::archive::iterators::ostream_iterator<CharType>(ss);
+    std::copy(test_data, test_data + size, osi);
+
+    BOOST_CHECK(size == ss.str().size());
+
+    boost::archive::iterators::istream_iterator<CharType> isi =
+        boost::archive::iterators::istream_iterator<CharType>(ss);
+    BOOST_CHECK(std::equal(test_data, test_data + size,isi));
+}
+
+int
+test_main(int /* argc */, char* /* argv */ [] )
+{
+    const char xml[] = "<+>+&+\"+'";
+    const char xml_escaped[] = "&lt;+&gt;+&amp;+&quot;+&apos;";
+    test_xml_escape<const char>(
+        xml_escaped, 
+        xml, 
+        sizeof(xml) / sizeof(char) - 1
+    );
+    test_xml_unescape<const char>(
+        xml, 
+        xml_escaped, 
+        sizeof(xml_escaped) / sizeof(char) - 1
+    );
+
+    const char a[] = "abcdefghijklmnopqrstuvwxyz";
+
+    #ifndef BOOST_NO_CWCHAR
+    const wchar_t wxml[] = L"<+>+&+\"+'";
+    const wchar_t wxml_escaped[] = L"&lt;+&gt;+&amp;+&quot;+&apos;";
+    test_xml_escape<const wchar_t>(
+        wxml_escaped, 
+        wxml, 
+        sizeof(wxml) / sizeof(wchar_t) - 1
+    );
+    test_xml_unescape<const wchar_t>(
+        wxml, 
+        wxml_escaped, 
+        sizeof(wxml_escaped) / sizeof(wchar_t) - 1
+    );
+
+    const wchar_t la[] = L"abcdefghijklmnopqrstuvwxyz";
+
+    test_wchar_from_mb(la, a, sizeof(a) / sizeof(char) - 1);
+    test_mb_from_wchar(a, la, sizeof(la) / sizeof(wchar_t) - 1);
+
+    test_stream_iterators<wchar_t>(la, sizeof(la)/sizeof(wchar_t) - 1);
+    #endif
+
+    test_stream_iterators<char>(a, sizeof(a) - 1);
+
+    test_transform_width<6, 8>(0);
+    test_transform_width<6, 8>(1);
+    test_transform_width<6, 8>(2);
+    test_transform_width<6, 8>(3);
+    test_transform_width<6, 8>(4);
+    test_transform_width<6, 8>(5);
+    test_transform_width<6, 8>(6);
+    test_transform_width<6, 8>(7);
+    test_transform_width<6, 8>(8);
+
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_iterators_base64.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_iterators_base64.cpp
new file mode 100644 (file)
index 0000000..662ea6c
--- /dev/null
@@ -0,0 +1,100 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_iterators.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <algorithm>
+#include <list>
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <cstdlib>
+#include <cstddef> // size_t
+
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STDC_NAMESPACE
+namespace std{ 
+    using ::rand; 
+    using ::size_t;
+}
+#endif
+
+#include <boost/serialization/pfto.hpp>
+
+#include <boost/archive/iterators/binary_from_base64.hpp>
+#include <boost/archive/iterators/base64_from_binary.hpp>
+#include <boost/archive/iterators/insert_linebreaks.hpp>
+#include <boost/archive/iterators/remove_whitespace.hpp>
+#include <boost/archive/iterators/transform_width.hpp>
+
+#include "../test/test_tools.hpp"
+
+#include <iostream>
+
+template<typename CharType>
+void test_base64(){
+    CharType rawdata[150];
+    std::size_t size = sizeof(rawdata) / sizeof(CharType);
+    CharType * rptr;
+    for(rptr = rawdata + size; rptr-- > rawdata;)
+        *rptr = std::rand();
+
+    // convert to base64
+    typedef std::list<CharType> text_base64_type;
+    text_base64_type text_base64;
+
+    typedef 
+        boost::archive::iterators::insert_linebreaks<
+            boost::archive::iterators::base64_from_binary<
+                boost::archive::iterators::transform_width<
+                    CharType *
+                    ,6
+                    ,sizeof(CharType) * 8
+                >
+            > 
+            ,72
+        > 
+        translate_out;
+
+    std::copy(
+        translate_out(BOOST_MAKE_PFTO_WRAPPER(static_cast<CharType *>(rawdata))),
+        translate_out(BOOST_MAKE_PFTO_WRAPPER(rawdata + size)),
+        std::back_inserter(text_base64)
+    );
+
+    // convert from base64 to binary and compare with the original 
+    typedef 
+        boost::archive::iterators::transform_width<
+            boost::archive::iterators::binary_from_base64<
+                boost::archive::iterators::remove_whitespace<
+                    BOOST_DEDUCED_TYPENAME text_base64_type::iterator
+                >
+            >,
+            sizeof(CharType) * 8,
+            6
+        > translate_in;
+    
+    BOOST_CHECK(
+        std::equal(
+            rawdata,
+            rawdata + size,
+            translate_in(BOOST_MAKE_PFTO_WRAPPER(text_base64.begin()))
+        )
+    );
+
+}
+
+int
+test_main( int argc, char* argv[] )
+{
+    test_base64<char>();
+    #ifndef BOOST_NO_CWCHAR
+    test_base64<wchar_t>();
+    #endif
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_no_rtti.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_no_rtti.cpp
new file mode 100644 (file)
index 0000000..bebafe7
--- /dev/null
@@ -0,0 +1,222 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_no_rtti.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// note: this program tests the inter-operability of different
+// extended typeinfo systems.  In this example, one class is
+// identified using the default RTTI while the other uses a custom
+// system based on the export key.
+// 
+// As this program uses RTTI for one of the types, the test will fail
+// on a system for which RTTI is not enabled or not existent.
+
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/archive/archive_exception.hpp>
+#include "../test/test_tools.hpp"
+#include <boost/preprocessor/stringize.hpp>
+// #include <boost/preprocessor/cat.hpp>
+// the following fails with (only!) gcc 3.4 
+// #include BOOST_PP_STRINGIZE(BOOST_PP_CAT(../test/,BOOST_ARCHIVE_TEST))
+// just copy over the files from the test directory
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/extended_type_info_no_rtti.hpp>
+
+class polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */){
+    }
+public:
+    virtual const char * get_key() const = 0;
+    virtual ~polymorphic_base(){};
+};
+
+BOOST_IS_ABSTRACT(polymorphic_base)
+BOOST_CLASS_TYPE_INFO(
+    polymorphic_base,
+    extended_type_info_no_rtti<polymorphic_base>
+)
+// note: types which use ...no_rtti MUST be exported
+BOOST_CLASS_EXPORT(polymorphic_base)
+
+class polymorphic_derived1 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int  /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+public:
+    virtual const char * get_key() const ;
+};
+
+BOOST_CLASS_TYPE_INFO(
+    polymorphic_derived1,
+    extended_type_info_no_rtti<polymorphic_derived1>
+)
+BOOST_CLASS_EXPORT(polymorphic_derived1)
+
+const char * polymorphic_derived1::get_key() const {
+    const boost::serialization::extended_type_info *eti
+        = boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_instance();
+    return eti->get_key();
+}
+
+class polymorphic_derived2 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+public:
+    virtual const char * get_key() const ;
+};
+
+// note the mixing of type_info systems is supported.
+BOOST_CLASS_TYPE_INFO(
+    polymorphic_derived2,
+    boost::serialization::extended_type_info_typeid<polymorphic_derived2>
+)
+
+BOOST_CLASS_EXPORT(polymorphic_derived2)
+
+const char * polymorphic_derived2::get_key() const {
+    // use the exported key as the identifier
+    const boost::serialization::extended_type_info *eti
+        = boost::serialization::type_info_implementation<polymorphic_derived2>
+        ::type::get_instance();
+    return eti->get_key();
+}
+
+// save derived polymorphic class
+void save_derived(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_derived1 *rd1 = new polymorphic_derived1;
+    polymorphic_derived2 *rd2 = new polymorphic_derived2;
+
+    oa << BOOST_SERIALIZATION_NVP(rd1);
+    oa << BOOST_SERIALIZATION_NVP(rd2);
+
+    // the above opereration registers the derived classes as a side
+    // effect.  Hence, instances can now be correctly serialized through
+    // a base class pointer.
+    polymorphic_base *rb1 =  rd1;
+    polymorphic_base *rb2 =  rd2;
+    oa << BOOST_SERIALIZATION_NVP(rb1);
+    oa << BOOST_SERIALIZATION_NVP(rb2);
+
+    delete rd1;
+    delete rd2;
+}
+
+// save derived polymorphic class
+void load_derived(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_derived1 *rd1 = NULL;
+    polymorphic_derived2 *rd2 = NULL;
+
+    ia >> BOOST_SERIALIZATION_NVP(rd1);
+
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_instance()
+        == boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_derived_extended_type_info(*rd1),
+        "restored pointer d1 not of correct type"
+    );
+
+    ia >> BOOST_SERIALIZATION_NVP(rd2);
+
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_instance()
+        == boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_derived_extended_type_info(*rd2),
+        "restored pointer d2 not of correct type"
+    );
+
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+
+    // the above opereration registers the derived classes as a side
+    // effect.  Hence, instances can now be correctly serialized through
+    // a base class pointer.
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+
+    BOOST_CHECK_MESSAGE(
+        rb1 == dynamic_cast<polymorphic_base *>(rd1),
+        "serialized pointers not correctly restored"
+    );
+
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_instance()
+        == boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_derived_extended_type_info(*rb1),
+        "restored pointer b1 not of correct type"
+    );
+
+    ia >> BOOST_SERIALIZATION_NVP(rb2);
+
+    BOOST_CHECK_MESSAGE(
+        rb2 ==  dynamic_cast<polymorphic_base *>(rd2),
+        "serialized pointers not correctly restored"
+    );
+
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_instance()
+        == boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_derived_extended_type_info(*rb2),
+        "restored pointer b2 not of correct type"
+    );
+
+    delete rb1;
+    delete rb2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    
+    BOOST_REQUIRE(NULL != testfile);
+
+    save_derived(testfile);
+    load_derived(testfile);
+
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_polymorphic.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_polymorphic.cpp
new file mode 100644 (file)
index 0000000..50bc21b
--- /dev/null
@@ -0,0 +1,104 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_polymorphic.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "../test/test_tools.hpp"
+
+#if !defined(BOOST_ARCHIVE_TEST)
+#define BOOST_ARCHIVE_TEST polymorphic_text_archive.hpp
+#endif
+
+// the following is to ensure that when one of the libraries changes
+// BJAM rebuilds and relinks the test.
+/*
+#include "polymorphic_text_archive.hpp"
+#include "polymorphic_text_warchive.hpp"
+#include "polymorphic_binary_archive.hpp"
+#include "polymorphic_xml_archive.hpp"
+#include "polymorphic_xml_warchive.hpp"
+*/
+
+#include <boost/preprocessor/stringize.hpp>
+// #include <boost/preprocessor/cat.hpp>
+// the following fails with (only!) gcc 3.4 
+// #include BOOST_PP_STRINGIZE(BOOST_PP_CAT(../test/,BOOST_ARCHIVE_TEST))
+// just copy over the files from the test directory
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#include <boost/archive/polymorphic_oarchive.hpp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include "../test/test_polymorphic_A.hpp"
+
+int test_main(int /* argc */, char * /* argv */ [])
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    const data d;
+    data d1;
+    // test using using polymorphic interface
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa_implementation(os);
+        boost::archive::polymorphic_oarchive & oa_interface = oa_implementation;
+        oa_interface << BOOST_SERIALIZATION_NVP(d);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive  ia_implementation(is);
+        boost::archive::polymorphic_iarchive & ia_interface = ia_implementation;
+        ia_interface >> BOOST_SERIALIZATION_NVP(d1);
+    }
+    BOOST_CHECK(d == d1);
+    std::remove(testfile);
+
+    // test using using polymorphic implementation.
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa_implementation(os);
+        oa_implementation << BOOST_SERIALIZATION_NVP(d);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive  ia_implementation(is);
+        ia_implementation >> BOOST_SERIALIZATION_NVP(d1);
+    }
+    BOOST_CHECK(d == d1);
+    std::remove(testfile);
+
+    // test using using polymorphic implementation.
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_oarchive * oa_implementation 
+            = new test_oarchive(os);
+        *oa_implementation << BOOST_SERIALIZATION_NVP(d);
+        delete oa_implementation;
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_iarchive * ia_implementation
+            = new test_iarchive(is);
+        *ia_implementation >> BOOST_SERIALIZATION_NVP(d1);
+        delete ia_implementation;
+    }
+    BOOST_CHECK(d == d1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_simple_class.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_simple_class.cpp
new file mode 100644 (file)
index 0000000..3f93607
--- /dev/null
@@ -0,0 +1,55 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_simple_class.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// invoke header for a custom archive test.
+
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "../test/test_tools.hpp"
+#include <boost/preprocessor/stringize.hpp>
+// #include <boost/preprocessor/cat.hpp>
+// the following fails with (only!) gcc 3.4 
+// #include BOOST_PP_STRINGIZE(BOOST_PP_CAT(../test/,BOOST_ARCHIVE_TEST))
+// just copy over the files from the test directory
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#include <boost/serialization/nvp.hpp>
+#include "../test/A.hpp"
+
+int 
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    A a, a1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK_EQUAL(a, a1);
+    std::remove(testfile);
+    return (a == a1) ? EXIT_SUCCESS : EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_utf8_codecvt.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_utf8_codecvt.cpp
new file mode 100644 (file)
index 0000000..2562f4a
--- /dev/null
@@ -0,0 +1,248 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_utf8_codecvt.cpp
+
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <algorithm>
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <locale>
+#include <vector>
+#include <string>
+
+#include <cstddef> // size_t
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::size_t; 
+} // namespace std
+#endif
+
+#include <cwchar>
+#ifdef BOOST_NO_STDC_NAMESPACE
+namespace std{ using ::wcslen; }
+#endif
+
+#include "../test/test_tools.hpp"
+#include <boost/archive/iterators/istream_iterator.hpp>
+#include <boost/archive/iterators/ostream_iterator.hpp>
+
+#include <boost/archive/add_facet.hpp>
+#include <boost/archive/detail/utf8_codecvt_facet.hpp>
+
+template<std::size_t s>
+struct test_data
+{
+    static unsigned char utf8_encoding[];
+    static wchar_t wchar_encoding[];
+};
+
+template<>
+unsigned char test_data<2>::utf8_encoding[] = {
+    0x01,
+    0x7f,
+    0xc2, 0x80,
+    0xdf, 0xbf,
+    0xe0, 0xa0, 0x80,
+    0xe7, 0xbf, 0xbf
+};
+
+template<>
+wchar_t test_data<2>::wchar_encoding[] = {
+    0x0001,
+    0x007f,
+    0x0080,
+    0x07ff,
+    0x0800,
+    0x7fff
+};
+
+template<>
+unsigned char test_data<4>::utf8_encoding[] = {
+    0x01,
+    0x7f,
+    0xc2, 0x80,
+    0xdf, 0xbf,
+    0xe0, 0xa0, 0x80,
+    0xef, 0xbf, 0xbf,
+    0xf0, 0x90, 0x80, 0x80,
+    0xf4, 0x8f, 0xbf, 0xbf,
+    0xf7, 0xbf, 0xbf, 0xbf,
+    0xf8, 0x88, 0x80, 0x80, 0x80,
+    0xfb, 0xbf, 0xbf, 0xbf, 0xbf,
+    0xfc, 0x84, 0x80, 0x80, 0x80, 0x80,
+    0xfd, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf
+};
+
+template<>
+wchar_t test_data<4>::wchar_encoding[] = {
+    0x00000001,
+    0x0000007f,
+    0x00000080,
+    0x000007ff,
+    0x00000800,
+    0x0000ffff,
+    0x00010000,
+    0x0010ffff,
+    0x001fffff,
+    0x00200000,
+    0x03ffffff,
+    0x04000000,
+    0x7fffffff
+};
+
+int
+test_main(int /* argc */, char * /* argv */[]) {
+    std::locale old_loc;
+    std::locale * utf8_locale
+        = boost::archive::add_facet(
+            old_loc, 
+            new boost::archive::detail::utf8_codecvt_facet
+        );
+
+    typedef char utf8_t;
+    typedef test_data<sizeof(wchar_t)> td;
+
+    // Send our test UTF-8 data to file
+    {
+        std::ofstream ofs;
+        ofs.open("test.dat", std::ios::binary);
+        std::copy(
+            td::utf8_encoding,
+            #if ! defined(__BORLANDC__)
+                // borland 5.60 complains about this
+                td::utf8_encoding + sizeof(td::utf8_encoding) / sizeof(unsigned char),
+            #else
+                // so use this instead
+                td::utf8_encoding + 12,
+            #endif
+            boost::archive::iterators::ostream_iterator<utf8_t>(ofs)
+        );
+    }
+
+    // Read the test data back in, converting to UCS-4 on the way in
+    std::vector<wchar_t> from_file;
+    {
+        std::wifstream ifs;
+        ifs.imbue(*utf8_locale);
+        ifs.open("test.dat");
+
+        wchar_t item = 0;
+        // note can't use normal vector from iterator constructor because
+        // dinkumware doesn't have it.
+        for(;;){
+            item = ifs.get();
+            if(item == WEOF)
+                break;
+            //ifs >> item;
+            //if(ifs.eof())
+            //    break;
+            from_file.push_back(item);
+        }
+    }
+
+    // compare the data read back in with the orginal
+    #if ! defined(__BORLANDC__)
+        // borland 5.60 complains about this
+        BOOST_CHECK(from_file.size() == sizeof(td::wchar_encoding)/sizeof(wchar_t));
+    #else
+        // so use this instead
+        BOOST_CHECK(from_file.size() == 6);
+    #endif
+
+    BOOST_CHECK(std::equal(from_file.begin(), from_file.end(), td::wchar_encoding));
+  
+    // Send the UCS4_data back out, converting to UTF-8
+    {
+        std::wofstream ofs;
+        ofs.imbue(*utf8_locale);
+        ofs.open("test2.dat");
+        std::copy(
+            from_file.begin(),
+            from_file.end(),
+            boost::archive::iterators::ostream_iterator<wchar_t>(ofs)
+        );
+    }
+
+    // Make sure that both files are the same
+    {
+        typedef boost::archive::iterators::istream_iterator<utf8_t> is_iter;
+        is_iter end_iter;
+
+        std::ifstream ifs1("test.dat");
+        is_iter it1(ifs1);
+        std::vector<utf8_t> data1;
+        std::copy(it1, end_iter, std::back_inserter(data1));
+
+        std::ifstream ifs2("test2.dat");
+        is_iter it2(ifs2);
+        std::vector<utf8_t> data2;
+        std::copy(it2, end_iter, std::back_inserter(data2));
+
+        BOOST_CHECK(data1 == data2);
+    }
+
+    // some libraries have trouble that only shows up with longer strings
+    
+    wchar_t * test3_data = L"\
+    <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\
+    <!DOCTYPE boost_serialization>\
+    <boost_serialization signature=\"serialization::archive\" version=\"3\">\
+    <a class_id=\"0\" tracking_level=\"0\">\
+        <b>1</b>\
+        <f>96953204</f>\
+        <g>177129195</g>\
+        <l>1</l>\
+        <m>5627</m>\
+        <n>23010</n>\
+        <o>7419</o>\
+        <p>16212</p>\
+        <q>4086</q>\
+        <r>2749</r>\
+        <c>-33</c>\
+        <s>124</s>\
+        <t>28</t>\
+        <u>32225</u>\
+        <v>17543</v>\
+        <w>0.84431422</w>\
+        <x>1.0170664757130923</x>\
+        <y>tjbx</y>\
+        <z>cuwjentqpkejp</z>\
+    </a>\
+    </boost_serialization>\
+    ";
+    
+    // Send the UCS4_data back out, converting to UTF-8
+    std::size_t l = std::wcslen(test3_data);
+    {
+        std::wofstream ofs;
+        ofs.imbue(*utf8_locale);
+        ofs.open("test3.dat");
+        std::copy(
+            test3_data,
+            test3_data + l,
+            boost::archive::iterators::ostream_iterator<wchar_t>(ofs)
+        );
+    }
+
+    // Make sure that both files are the same
+    {
+        std::wifstream ifs;
+        ifs.imbue(*utf8_locale);
+        ifs.open("test3.dat");
+        BOOST_CHECK(
+            std::equal(
+                test3_data,
+                test3_data + l,
+                boost::archive::iterators::istream_iterator<wchar_t>(ifs)
+            )
+        );
+    }
+
+    delete utf8_locale;
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/performance/performance_vector.cpp b/deal.II/contrib/boost/libs/serialization/performance/performance_vector.cpp
new file mode 100644 (file)
index 0000000..f415c6e
--- /dev/null
@@ -0,0 +1,70 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_vector.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "../test/test_tools.hpp"
+#include <boost/preprocessor/stringize.hpp>
+// #include <boost/preprocessor/cat.hpp>
+// the following fails with (only!) gcc 3.4 
+// #include BOOST_PP_STRINGIZE(BOOST_PP_CAT(../test/,BOOST_ARCHIVE_TEST))
+// just copy over the files from the test directory
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+#include <boost/serialization/vector.hpp>
+
+#include "../test/A.hpp"
+
+template <class T>
+int test_vector(T)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    std::vector<T> avector;
+    avector.push_back(T());
+    avector.push_back(T());
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("avector", avector);
+    }
+    std::vector<T> avector1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("avector", avector1);
+    }
+    BOOST_CHECK(avector == avector1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+   int res = test_vector(A());
+    // test an int vector for which optimized versions should be available
+   if (res == EXIT_SUCCESS)
+     res = test_vector(0);  
+    // test a bool vector
+   if (res == EXIT_SUCCESS)
+     res = test_vector(false);  
+   return res;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/performance/polymorphic_array_binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/polymorphic_array_binary_archive.hpp
new file mode 100644 (file)
index 0000000..5097433
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_binary_oarchive.hpp>
+typedef boost::archive::polymorphic_binary_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_binary_iarchive.hpp>
+typedef boost::archive::polymorphic_binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS std::ios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/performance/polymorphic_binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/polymorphic_binary_archive.hpp
new file mode 100644 (file)
index 0000000..5097433
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_binary_oarchive.hpp>
+typedef boost::archive::polymorphic_binary_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_binary_iarchive.hpp>
+typedef boost::archive::polymorphic_binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS std::ios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/performance/polymorphic_text_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/polymorphic_text_archive.hpp
new file mode 100644 (file)
index 0000000..c8184b1
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_text_oarchive.hpp>
+typedef boost::archive::polymorphic_text_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_text_iarchive.hpp>
+typedef boost::archive::polymorphic_text_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
diff --git a/deal.II/contrib/boost/libs/serialization/performance/polymorphic_text_warchive.hpp b/deal.II/contrib/boost/libs/serialization/performance/polymorphic_text_warchive.hpp
new file mode 100644 (file)
index 0000000..4a5774c
--- /dev/null
@@ -0,0 +1,18 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+#include <boost/archive/polymorphic_text_woarchive.hpp>
+typedef boost::archive::polymorphic_text_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/polymorphic_text_wiarchive.hpp>
+typedef boost::archive::polymorphic_text_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
+#endif
diff --git a/deal.II/contrib/boost/libs/serialization/performance/polymorphic_xml_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/polymorphic_xml_archive.hpp
new file mode 100644 (file)
index 0000000..849d1a0
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_xml_oarchive.hpp>
+typedef boost::archive::polymorphic_xml_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_xml_iarchive.hpp>
+typedef boost::archive::polymorphic_xml_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
diff --git a/deal.II/contrib/boost/libs/serialization/performance/polymorphic_xml_warchive.hpp b/deal.II/contrib/boost/libs/serialization/performance/polymorphic_xml_warchive.hpp
new file mode 100644 (file)
index 0000000..1f5c5ff
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_xml_woarchive.hpp>
+typedef boost::archive::polymorphic_xml_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/polymorphic_xml_wiarchive.hpp>
+typedef boost::archive::polymorphic_xml_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
diff --git a/deal.II/contrib/boost/libs/serialization/performance/portable_binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/portable_binary_archive.hpp
new file mode 100644 (file)
index 0000000..c1377c9
--- /dev/null
@@ -0,0 +1,22 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.// file includes for testing a custom archive.
+// as an example this tests the portable binary archive
+
+// #include output archive header
+#include "../example/portable_binary_oarchive.hpp"
+// define output archive class to be used 
+typedef portable_binary_oarchive test_oarchive;
+// and corresponding stream
+typedef std::ofstream test_ostream;
+
+// repeat the above for correspondng input archive
+#include "../example/portable_binary_iarchive.hpp"
+typedef portable_binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+
+// and stream open flags
+#define TEST_STREAM_FLAGS std::ios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/performance/profile.sh b/deal.II/contrib/boost/libs/serialization/performance/profile.sh
new file mode 100755 (executable)
index 0000000..95ae420
--- /dev/null
@@ -0,0 +1,39 @@
+# build and run the tests leaving the executables in place
+
+# (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+# Use, modification and distribution is subject to 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)
+
+# profile.sh --toolset=gcc preserve-test-targets=on variant=profile
+if test $# -eq 0
+then
+    echo "Usage: $0 <bjam arguments>"
+    echo "Typical bjam arguements are:"
+    echo "  toolset=msvc-7.1,gcc"
+    echo "  link=static,shared"
+    echo "  threading=single,multi"
+    echo "  -sBOOST_ARCHIVE_LIST=<archive name>"
+else
+    bjam --dump-tests variant=profile preserve-test-targets=on $@ >bjam.log 2>&1
+    process_jam_log --v2 <bjam.log
+
+    # for each test directory
+
+    for dir in                                                             \
+        ../../../bin.v2/libs/serialization/performance/*/gcc*/profile   \
+        ../../../bin.v2/libs/serialization/performance/*/gcc*/*/profile
+    do
+        # execute test
+        for exe in $dir/*.exe
+        do
+            # execute the test
+            echo executing $exe
+            $exe
+            # copy profile to test directory
+            gprof $exe gmon.out >$dir/profile.txt
+        done
+    done
+
+    library_status library_status.html links.html
+fi
diff --git a/deal.II/contrib/boost/libs/serialization/performance/text_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/text_archive.hpp
new file mode 100644 (file)
index 0000000..e7e1b3c
--- /dev/null
@@ -0,0 +1,14 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// text_archive
+#include <boost/archive/text_oarchive.hpp>
+typedef boost::archive::text_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/text_iarchive.hpp>
+typedef boost::archive::text_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
diff --git a/deal.II/contrib/boost/libs/serialization/performance/text_warchive.hpp b/deal.II/contrib/boost/libs/serialization/performance/text_warchive.hpp
new file mode 100644 (file)
index 0000000..de7dea0
--- /dev/null
@@ -0,0 +1,19 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// text_warchive
+#include <boost/archive/text_woarchive.hpp>
+typedef boost::archive::text_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/text_wiarchive.hpp>
+typedef boost::archive::text_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
+
+
+
+
+
diff --git a/deal.II/contrib/boost/libs/serialization/performance/xml_archive.hpp b/deal.II/contrib/boost/libs/serialization/performance/xml_archive.hpp
new file mode 100644 (file)
index 0000000..1e3bdc1
--- /dev/null
@@ -0,0 +1,16 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// xml_archive
+#include <boost/archive/xml_oarchive.hpp>
+typedef boost::archive::xml_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/xml_iarchive.hpp>
+typedef boost::archive::xml_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
+
+
diff --git a/deal.II/contrib/boost/libs/serialization/performance/xml_warchive.hpp b/deal.II/contrib/boost/libs/serialization/performance/xml_warchive.hpp
new file mode 100644 (file)
index 0000000..3483e22
--- /dev/null
@@ -0,0 +1,16 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// xml_warchive
+#include <boost/archive/xml_woarchive.hpp>
+typedef boost::archive::xml_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/xml_wiarchive.hpp>
+typedef boost::archive::xml_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
+#define TEST_STREAM_FLAGS (std::ios_base::openmode)0
+
+
diff --git a/deal.II/contrib/boost/libs/serialization/src/archive_exception.cpp b/deal.II/contrib/boost/libs/serialization/src/archive_exception.cpp
new file mode 100644 (file)
index 0000000..08cbe48
--- /dev/null
@@ -0,0 +1,110 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// archive_exception.cpp:
+
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <exception>
+#include <cassert>
+#include <string>
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/archive_exception.hpp>
+
+namespace boost {
+namespace archive {
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+archive_exception::archive_exception(
+    exception_code c, 
+    const char * e1,
+    const char * e2
+) : 
+    code(c)
+{
+    m_msg = "programming error";
+    switch(code){
+    case no_exception:
+        m_msg = "uninitialized exception";
+        break;
+    case unregistered_class:
+        m_msg = "unregistered class";
+        if(NULL != e1){
+            m_msg += " - ";
+            m_msg += e1;
+        }    
+        break;
+    case invalid_signature:
+        m_msg = "invalid signature";
+        break;
+    case unsupported_version:
+        m_msg = "unsupported version";
+        break;
+    case pointer_conflict:
+        m_msg = "pointer conflict";
+        break;
+    case incompatible_native_format:
+        m_msg = "incompatible native format";
+        if(NULL != e1){
+            m_msg += " - ";
+            m_msg += e1;
+        }    
+        break;
+    case array_size_too_short:
+        m_msg = "array size too short";
+        break;
+    case stream_error:
+        m_msg = "stream error";
+        break;
+    case invalid_class_name:
+        m_msg = "class name too long";
+        break;
+    case unregistered_cast:
+        m_msg = "unregistered void cast ";
+        m_msg += (NULL != e1) ? e1 : "?";
+        m_msg += "<-";
+        m_msg += (NULL != e2) ? e2 : "?";
+        break;
+    case unsupported_class_version:
+        m_msg = "class version";
+        break;
+    case other_exception:
+        // if get here - it indicates a derived exception 
+        // was sliced by passing by value in catch
+        m_msg = "unknown derived exception";
+        break;
+    case multiple_code_instantiation:
+        m_msg = "code instantiated in more than one module";
+        if(NULL != e1){
+            m_msg += " - ";
+            m_msg += e1;
+        }    
+        break;
+    default:
+        assert(false);
+        break;
+    }
+}
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+archive_exception::~archive_exception() throw () {}
+
+BOOST_ARCHIVE_DECL(const char *)
+archive_exception::what( ) const throw()
+{
+    return m_msg.c_str();
+}
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+archive_exception::archive_exception() : 
+        code(no_exception)
+{}
+
+} // archive
+} // boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_archive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_archive.cpp
new file mode 100644 (file)
index 0000000..a2a7d83
--- /dev/null
@@ -0,0 +1,68 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_archive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+//////////////////////////////////////////////////////////////////////
+//
+//  objects are stored as
+//
+//      class_id*   // -1 for a null pointer
+//      if a new class id
+//      [
+//          exported key - class name*
+//          tracking level - always/never
+//          class version
+//      ]
+//
+//      if tracking
+//      [
+//          object_id
+//      ]
+//          
+//      [   // if a new object id
+//          data...
+//      ]
+//
+//  * required only for pointers - optional for objects
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/basic_archive.hpp>
+
+namespace boost {
+namespace archive {
+
+///////////////////////////////////////////////////////////////////////
+// constants used in archive signature
+//This should never ever change. note that is not an std::string
+// string.
+BOOST_ARCHIVE_DECL(const char *) 
+BOOST_ARCHIVE_SIGNATURE(){
+    return "serialization::archive";
+}
+
+// this should change if the capabilities are added to the library
+// such that archives can be created which can't be read by previous
+// versions of this library
+// 1 - initial version
+// 2 - made address tracking optional
+// 3 - numerous changes - can't guarentee compatibility with previous versions
+// 4 - Boost 1.34
+//     added register_version to properly support versioning for collections 
+// 5 - Boost 1.36
+//     changed serialization of collections: adding version even for primitive
+//     types caused backwards compatibility breaking change in 1.35
+// 6 - Boost 1.41, serializing collection sizes as std::size_t
+
+BOOST_ARCHIVE_DECL(version_type)
+BOOST_ARCHIVE_VERSION(){
+    return version_type(7);
+}
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_iarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_iarchive.cpp
new file mode 100644 (file)
index 0000000..50da890
--- /dev/null
@@ -0,0 +1,586 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_archive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp> // msvc 6.0 needs this to suppress warnings
+
+#include <cassert>
+#include <set>
+#include <list>
+#include <vector>
+#include <cstddef> // size_t, NULL
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::size_t; 
+} // namespace std
+#endif
+
+#include <boost/integer_traits.hpp>
+#include <boost/serialization/state_saver.hpp>
+#include <boost/serialization/throw_exception.hpp>
+#include <boost/serialization/tracking.hpp>
+
+#define BOOST_ARCHIVE_SOURCE
+#define BOOST_SERIALIZATION_SOURCE
+
+#include <boost/archive/archive_exception.hpp>
+
+#include <boost/archive/detail/decl.hpp>
+#include <boost/archive/basic_archive.hpp>
+#include <boost/archive/detail/basic_iserializer.hpp>
+#include <boost/archive/detail/basic_pointer_iserializer.hpp>
+#include <boost/archive/detail/basic_iarchive.hpp>
+
+#include <boost/archive/detail/auto_link_archive.hpp>
+
+using namespace boost::serialization;
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+class basic_iarchive_impl {
+    friend class basic_iarchive;
+    version_type m_archive_library_version;
+    unsigned int m_flags;
+
+    //////////////////////////////////////////////////////////////////////
+    // information about each serialized object loaded
+    // indexed on object_id
+    struct aobject
+    {
+        void * address;
+        bool loaded_as_pointer;
+        class_id_type class_id;
+        aobject(
+            void *a,
+            class_id_type class_id_
+        ) :
+            address(a),
+            loaded_as_pointer(false),
+            class_id(class_id_)
+        {}
+        aobject() : 
+            address(NULL),
+            loaded_as_pointer(false),
+            class_id(-2) 
+        {}
+    };
+    typedef std::vector<aobject> object_id_vector_type;
+    object_id_vector_type object_id_vector;
+
+    //////////////////////////////////////////////////////////////////////
+    // used to implement the reset_object_address operation.
+    object_id_type moveable_objects_start;
+    object_id_type moveable_objects_end;
+    object_id_type moveable_objects_recent;
+
+    void reset_object_address(
+        const void * new_address, 
+        const void *old_address
+    );
+
+    //////////////////////////////////////////////////////////////////////
+    // used by load object to look up class id given basic_serializer
+    struct cobject_type
+    {
+        const basic_iserializer * m_bis;
+        const class_id_type m_class_id;
+        cobject_type(
+            std::size_t class_id,
+            const basic_iserializer & bis
+        ) : 
+            m_bis(& bis),
+            m_class_id(class_id)
+        {}
+        cobject_type(const cobject_type & rhs) : 
+            m_bis(rhs.m_bis),
+            m_class_id(rhs.m_class_id)
+        {}
+        // the following cannot be defined because of the const
+        // member.  This will generate a link error if an attempt
+        // is made to assign.  This should never be necessary
+        cobject_type & operator=(const cobject_type & rhs);
+        bool operator<(const cobject_type &rhs) const
+        {
+            return *m_bis < *(rhs.m_bis);
+        }
+    };
+    typedef std::set<cobject_type> cobject_info_set_type;
+    cobject_info_set_type cobject_info_set;
+
+    //////////////////////////////////////////////////////////////////////
+    // information about each serialized class indexed on class_id
+    class cobject_id 
+    {
+    public:
+        cobject_id & operator=(const cobject_id & rhs){
+            bis_ptr = rhs.bis_ptr;
+            bpis_ptr = rhs.bpis_ptr;
+            file_version = rhs.file_version;
+            tracking_level = rhs.tracking_level;
+            initialized = rhs.initialized;
+            return *this;
+        }
+        const basic_iserializer * bis_ptr;
+        const basic_pointer_iserializer * bpis_ptr;
+        version_type file_version;
+        tracking_type tracking_level;
+        bool initialized;
+
+        cobject_id(const basic_iserializer & bis_) :
+            bis_ptr(& bis_),
+            bpis_ptr(NULL),
+            file_version(0),
+            tracking_level(track_never),
+            initialized(false)
+        {}
+        cobject_id(const cobject_id &rhs): 
+            bis_ptr(rhs.bis_ptr),
+            bpis_ptr(rhs.bpis_ptr),
+            file_version(rhs.file_version),
+            tracking_level(rhs.tracking_level),
+            initialized(rhs.initialized)
+        {}
+    };
+    typedef std::vector<cobject_id> cobject_id_vector_type;
+    cobject_id_vector_type cobject_id_vector;
+
+    //////////////////////////////////////////////////////////////////////
+    // address of the most recent object serialized as a poiner
+    // whose data itself is now pending serialization
+    void * pending_object;
+    const basic_iserializer * pending_bis;
+    version_type pending_version;
+
+    basic_iarchive_impl(unsigned int flags) :
+        m_archive_library_version(BOOST_ARCHIVE_VERSION()),
+        m_flags(flags),
+        moveable_objects_start(0),
+        moveable_objects_end(0),
+        moveable_objects_recent(0),
+        pending_object(NULL),
+        pending_bis(NULL),
+        pending_version(0)
+    {}
+    ~basic_iarchive_impl(){}
+    void set_library_version(version_type archive_library_version){
+        m_archive_library_version = archive_library_version;
+    }
+    bool
+    track(
+        basic_iarchive & ar,
+        void * & t
+    );
+    void
+    load_preamble(
+        basic_iarchive & ar,
+        cobject_id & co
+    );
+    class_id_type register_type(
+        const basic_iserializer & bis
+    );
+
+    // redirect through virtual functions to load functions for this archive
+    template<class T>
+    void load(basic_iarchive & ar, T & t){
+        ar.vload(t);
+    }
+
+//public:
+    void
+    next_object_pointer(void * t){
+        pending_object = t;
+    }
+    void delete_created_pointers();
+    class_id_type register_type(
+        const basic_pointer_iserializer & bpis
+    );
+    void load_object(
+        basic_iarchive & ar,
+        void * t,
+        const basic_iserializer & bis
+    );
+    const basic_pointer_iserializer * load_pointer(
+        basic_iarchive & ar,
+        void * & t, 
+        const basic_pointer_iserializer * bpis,
+        const basic_pointer_iserializer * (*finder)(
+            const boost::serialization::extended_type_info & type
+        )
+
+    );
+};
+
+inline void 
+basic_iarchive_impl::reset_object_address(
+    const void * new_address, 
+    const void *old_address
+){
+    // this code handles a couple of situations.
+    // a) where reset_object_address is applied to an untracked object.
+    //    In such a case the call is really superfluous and its really an
+    //    an error.  But we don't have access to the types here so we can't
+    //    know that.  However, this code will effectively turn this situation
+    //    into a no-op and every thing will work fine - albeat with a small
+    //    execution time penalty.
+    // b) where the call to reset_object_address doesn't immediatly follow
+    //    the << operator to which it corresponds.  This would be a bad idea
+    //    but the code may work anyway.  Naturally, a bad practice on the part
+    //    of the programmer but we can't detect it - as above.  So maybe we
+    //    can save a few more people from themselves as above.
+    object_id_type i;
+    for(i = moveable_objects_recent; i < moveable_objects_end; ++i){
+        if(old_address == object_id_vector[i].address)
+            break;
+    }
+    for(; i < moveable_objects_end; ++i){
+
+        // calculate displacement from this level
+        // warning - pointer arithmetic on void * is in herently non-portable
+        // but expected to work on all platforms in current usage
+        if(object_id_vector[i].address > old_address){
+            std::size_t member_displacement
+                = reinterpret_cast<std::size_t>(object_id_vector[i].address) 
+                - reinterpret_cast<std::size_t>(old_address);
+            object_id_vector[i].address = reinterpret_cast<void *>(
+                reinterpret_cast<std::size_t>(new_address) + member_displacement
+            );
+        }
+        else{
+            std::size_t member_displacement
+                = reinterpret_cast<std::size_t>(old_address)
+                - reinterpret_cast<std::size_t>(object_id_vector[i].address); 
+            object_id_vector[i].address = reinterpret_cast<void *>(
+                reinterpret_cast<std::size_t>(new_address) - member_displacement
+            );
+       }
+    }
+}
+
+inline void 
+basic_iarchive_impl::delete_created_pointers()
+{
+    object_id_vector_type::iterator i;
+    for(
+        i = object_id_vector.begin();
+        i != object_id_vector.end(); 
+        ++i
+    ){
+        if(i->loaded_as_pointer){
+            // borland complains without this minor hack
+            const int j = i->class_id;
+            const cobject_id & co = cobject_id_vector[j];
+            //const cobject_id & co = cobject_id_vector[i->class_id];
+            // with the appropriate input serializer, 
+            // delete the indicated object
+            co.bis_ptr->destroy(i->address);
+        }
+    }
+}
+
+inline class_id_type
+basic_iarchive_impl::register_type(
+    const basic_iserializer & bis
+){
+    assert(
+        cobject_info_set.size() 
+        <= 
+        boost::integer_traits<class_id_type>::const_max
+    );
+    class_id_type cid(static_cast<class_id_type>(
+        cobject_info_set.size()
+    ));
+    cobject_type co(cid, bis);
+    std::pair<cobject_info_set_type::const_iterator, bool>
+        result = cobject_info_set.insert(co);
+
+    if(result.second){
+        cobject_id_vector.push_back(cobject_id(bis));
+        assert(cobject_info_set.size() == cobject_id_vector.size());
+    }
+    cid = result.first->m_class_id;
+    // borland complains without this minor hack
+    const int tid = cid;
+    cobject_id & coid = cobject_id_vector[tid];
+    coid.bpis_ptr = bis.get_bpis_ptr();
+    return cid;
+}
+
+void
+basic_iarchive_impl::load_preamble(
+    basic_iarchive & ar,
+    cobject_id & co
+){
+    if(! co.initialized){
+        if(co.bis_ptr->class_info()){
+            class_id_optional_type cid;
+            load(ar, cid);    // to be thrown away
+            load(ar, co.tracking_level);
+            load(ar, co.file_version);
+        }
+        else{
+            // override tracking with indicator from class information
+            co.tracking_level = co.bis_ptr->tracking(m_flags);
+            co.file_version = version_type(
+                co.bis_ptr->version()
+            );
+        }
+        co.initialized = true;
+    }
+}
+
+bool
+basic_iarchive_impl::track(
+    basic_iarchive & ar,
+    void * & t
+){
+    object_id_type oid;
+    load(ar, oid);
+
+    // if its a reference to a old object
+    if(object_id_type(object_id_vector.size()) > oid){
+        // we're done
+        t = object_id_vector[oid].address;
+        return false;
+    }
+    return true;
+}
+
+inline void
+basic_iarchive_impl::load_object(
+    basic_iarchive & ar,
+    void * t,
+    const basic_iserializer & bis
+){
+    // if its been serialized through a pointer and the preamble's been done
+    if(t == pending_object && & bis == pending_bis){
+        // read data
+        (bis.load_object_data)(ar, t, pending_version);
+        return;
+    }
+
+    const class_id_type cid = register_type(bis);
+    const int i = cid;
+    cobject_id & co = cobject_id_vector[i];
+
+    load_preamble(ar, co);
+
+    // save the current move stack position in case we want to truncate it
+    boost::serialization::state_saver<object_id_type> w(moveable_objects_start);
+
+    // note: extra line used to evade borland issue
+    const bool tracking = co.tracking_level;
+
+    object_id_type this_id;
+    moveable_objects_start =
+    this_id = object_id_vector.size();
+
+    // if we tracked this object when the archive was saved
+    if(tracking){ 
+        // if it was already read
+        if(!track(ar, t))
+            // we're done
+            return;
+        // add a new enty into the tracking list
+        object_id_vector.push_back(aobject(t, cid));
+        // and add an entry for this object
+        moveable_objects_end = object_id_vector.size();
+    }
+    // read data
+    (bis.load_object_data)(ar, t, co.file_version);
+    moveable_objects_recent = this_id;
+}
+
+inline const basic_pointer_iserializer *
+basic_iarchive_impl::load_pointer(
+    basic_iarchive &ar,
+    void * & t,
+    const basic_pointer_iserializer * bpis_ptr,
+    const basic_pointer_iserializer * (*finder)(
+        const boost::serialization::extended_type_info & type_
+    )
+
+){
+    class_id_type cid;
+    load(ar, cid);
+
+    if(NULL_POINTER_TAG == cid){
+        t = NULL;
+        return bpis_ptr;
+    }
+
+    assert(
+        cobject_info_set.size() 
+        <= 
+        boost::integer_traits<class_id_type>::const_max
+    );
+    // if its a new class type - i.e. never been registered
+    if(class_id_type(cobject_info_set.size()) <= cid){
+        // if its either abstract
+        if(NULL == bpis_ptr
+        // or polymorphic
+        || bpis_ptr->get_basic_serializer().is_polymorphic()){
+            // is must have been exported
+            char key[BOOST_SERIALIZATION_MAX_KEY_SIZE];
+            class_name_type class_name(key);
+            load(ar, class_name);
+            // if it has a class name
+            const serialization::extended_type_info *eti = NULL;
+            if(0 != key[0])
+                eti = serialization::extended_type_info::find(key);
+            if(NULL == eti)
+                boost::serialization::throw_exception(
+                    archive_exception(archive_exception::unregistered_class)
+                );
+            bpis_ptr = (*finder)(*eti);
+        }
+        assert(NULL != bpis_ptr);
+        class_id_type new_cid = register_type(bpis_ptr->get_basic_serializer());
+        int i = cid;
+        cobject_id_vector[i].bpis_ptr = bpis_ptr;
+        assert(new_cid == cid);
+    }
+    int i = cid;
+    cobject_id & co = cobject_id_vector[i];
+    bpis_ptr = co.bpis_ptr;
+
+    load_preamble(ar, co);
+
+    // extra line to evade borland issue
+    const bool tracking = co.tracking_level;
+    // if we're tracking and the pointer has already been read
+    if(tracking && ! track(ar, t))
+        // we're done
+        return bpis_ptr;
+
+    // save state
+    serialization::state_saver<object_id_type> w_start(moveable_objects_start);
+
+    if(! tracking){
+        bpis_ptr->load_object_ptr(ar, t, co.file_version);
+    }
+    else{
+        serialization::state_saver<void *> x(pending_object);
+        serialization::state_saver<const basic_iserializer *> y(pending_bis);
+        serialization::state_saver<version_type> z(pending_version);
+
+        pending_bis = & bpis_ptr->get_basic_serializer();
+        pending_version = co.file_version;
+
+        // predict next object id to be created
+        const unsigned int ui = object_id_vector.size();
+
+        serialization::state_saver<object_id_type> w_end(moveable_objects_end);
+
+        // because the following operation could move the items
+        // don't use co after this
+        // add to list of serialized objects so that we can properly handle
+        // cyclic strucures
+        object_id_vector.push_back(aobject(t, cid));
+
+        bpis_ptr->load_object_ptr(
+            ar, 
+            object_id_vector[ui].address, 
+            co.file_version
+        );
+        t = object_id_vector[ui].address;
+        object_id_vector[ui].loaded_as_pointer = true;
+        assert(NULL != t);
+    }
+
+    return bpis_ptr;
+}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
+
+//////////////////////////////////////////////////////////////////////
+// implementation of basic_iarchive functions
+namespace boost {
+namespace archive {
+namespace detail {
+
+BOOST_ARCHIVE_DECL(void)
+basic_iarchive::next_object_pointer(void *t){
+    pimpl->next_object_pointer(t);
+}
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+basic_iarchive::basic_iarchive(unsigned int flags) : 
+    pimpl(new basic_iarchive_impl(flags))
+{}
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+basic_iarchive::~basic_iarchive()
+{
+    delete pimpl;
+}
+
+BOOST_ARCHIVE_DECL(void)
+basic_iarchive::set_library_version(version_type archive_library_version){
+    pimpl->set_library_version(archive_library_version);
+}
+
+BOOST_ARCHIVE_DECL(void)
+basic_iarchive::reset_object_address(
+    const void * new_address, 
+    const void * old_address
+){
+    pimpl->reset_object_address(new_address, old_address);
+}
+
+BOOST_ARCHIVE_DECL(void)
+basic_iarchive::load_object(
+    void *t, 
+    const basic_iserializer & bis
+){
+    pimpl->load_object(*this, t, bis);
+}
+
+// load a pointer object
+BOOST_ARCHIVE_DECL(const basic_pointer_iserializer *)
+basic_iarchive::load_pointer(
+    void * &t, 
+    const basic_pointer_iserializer * bpis_ptr,
+    const basic_pointer_iserializer * (*finder)(
+        const boost::serialization::extended_type_info & type_
+    )
+
+){
+    return pimpl->load_pointer(*this, t, bpis_ptr, finder);
+}
+
+BOOST_ARCHIVE_DECL(void)
+basic_iarchive::register_basic_serializer(const basic_iserializer & bis){
+    pimpl->register_type(bis);
+}
+
+BOOST_ARCHIVE_DECL(void)
+basic_iarchive::delete_created_pointers()
+{
+    pimpl->delete_created_pointers();
+}
+
+BOOST_ARCHIVE_DECL(unsigned int) 
+basic_iarchive::get_library_version() const{
+    return pimpl->m_archive_library_version;
+}
+
+BOOST_ARCHIVE_DECL(unsigned int) 
+basic_iarchive::get_flags() const{
+    return pimpl->m_flags;
+}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_iserializer.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_iserializer.cpp
new file mode 100644 (file)
index 0000000..e18e16f
--- /dev/null
@@ -0,0 +1,33 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_iserializer.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstddef> // NULL
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/basic_iserializer.hpp>
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_iserializer::basic_iserializer(
+    const boost::serialization::extended_type_info & eti
+) :
+    basic_serializer(eti), 
+    m_bpis(NULL)
+{}
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_iserializer::~basic_iserializer(){}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_oarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_oarchive.cpp
new file mode 100644 (file)
index 0000000..21d4287
--- /dev/null
@@ -0,0 +1,469 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_oarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp> // msvc 6.0 needs this for warning suppression
+
+#include <cassert>
+#include <set>
+#include <cstddef> // NULL
+
+#include <boost/limits.hpp>
+#include <boost/serialization/state_saver.hpp>
+#include <boost/serialization/throw_exception.hpp>
+
+// including this here to work around an ICC in intel 7.0
+// normally this would be part of basic_oarchive.hpp below.
+#define BOOST_ARCHIVE_SOURCE
+#define BOOST_SERIALIZATION_SOURCE
+
+#include <boost/archive/detail/decl.hpp>
+#include <boost/archive/basic_archive.hpp>
+#include <boost/archive/detail/basic_oserializer.hpp>
+#include <boost/archive/detail/basic_pointer_oserializer.hpp>
+#include <boost/archive/detail/basic_oarchive.hpp>
+#include <boost/archive/archive_exception.hpp>
+#include <boost/serialization/extended_type_info.hpp>
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4251 4231 4660 4275)
+#endif
+
+using namespace boost::serialization;
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+class basic_oarchive_impl {
+    friend class basic_oarchive;
+    unsigned int m_flags;
+
+    //////////////////////////////////////////////////////////////////////
+    // information about each serialized object saved
+    // keyed on address, class_id
+    struct aobject
+    {
+        const void * address;
+        class_id_type class_id;
+        object_id_type object_id;
+
+        bool operator<(const aobject &rhs) const
+        {
+            assert(NULL != address);
+            assert(NULL != rhs.address);
+            if( address < rhs.address )
+                return true;
+            if( address > rhs.address )
+                return false;
+            return class_id < rhs.class_id;
+        }
+        aobject & operator=(const aobject & rhs)
+        {
+            address = rhs.address;
+            class_id = rhs.class_id;
+            object_id = rhs.object_id;
+            return *this;
+        }
+        aobject(
+            const void *a,
+            class_id_type class_id_,
+            object_id_type object_id_
+        ) :
+            address(a),
+            class_id(class_id_),
+            object_id(object_id_)
+        {}
+        aobject() : address(NULL){}
+    };
+    // keyed on class_id, address
+    typedef std::set<aobject> object_set_type;
+    object_set_type object_set;
+
+    //////////////////////////////////////////////////////////////////////
+    // information about each serialized class saved
+    // keyed on type_info
+    struct cobject_type
+    {
+        const basic_oserializer * m_bos_ptr;
+        const class_id_type m_class_id;
+        bool m_initialized;
+        cobject_type(
+            std::size_t class_id,
+            const basic_oserializer & bos
+        ) :
+            m_bos_ptr(& bos),
+            m_class_id(
+                static_cast<class_id_type>(class_id)
+            ),
+            m_initialized(false)
+        {}
+        cobject_type(const basic_oserializer & bos)
+            : m_bos_ptr(& bos)
+        {}
+        cobject_type(
+            const cobject_type & rhs
+        ) :
+            m_bos_ptr(rhs.m_bos_ptr),
+            m_class_id(rhs.m_class_id),
+            m_initialized(rhs.m_initialized)
+        {}
+        // the following cannot be defined because of the const
+        // member.  This will generate a link error if an attempt
+        // is made to assign.  This should never be necessary
+        // use this only for lookup argument 
+        cobject_type & operator=(const cobject_type &rhs);
+        bool operator<(const cobject_type &rhs) const {
+            return *m_bos_ptr < *(rhs.m_bos_ptr);
+        }
+    };
+    // keyed on type_info
+    typedef std::set<cobject_type> cobject_info_set_type;
+    cobject_info_set_type cobject_info_set;
+
+    // list of objects initially stored as pointers - used to detect errors
+    // keyed on object id
+    std::set<object_id_type> stored_pointers;
+
+    // address of the most recent object serialized as a poiner
+    // whose data itself is now pending serialization
+    const void * pending_object;
+    const basic_oserializer * pending_bos;
+
+    basic_oarchive_impl(unsigned int flags) :
+        m_flags(flags),
+        pending_object(NULL),
+        pending_bos(NULL)
+    {}
+
+    const cobject_type &
+    find(const basic_oserializer & bos);
+    const basic_oserializer *  
+    find(const serialization::extended_type_info &ti) const;
+
+//public:
+    const cobject_type &
+    register_type(const basic_oserializer & bos);
+    void save_object(
+        basic_oarchive & ar,
+        const void *t,
+        const basic_oserializer & bos
+    );
+    void save_pointer(
+        basic_oarchive & ar,
+        const void * t, 
+        const basic_pointer_oserializer * bpos
+    );
+};
+
+//////////////////////////////////////////////////////////////////////
+// basic_oarchive implementation functions
+
+// given a type_info - find its bos
+// return NULL if not found
+inline const basic_oserializer *
+basic_oarchive_impl::find(const serialization::extended_type_info & ti) const {
+    #ifdef BOOST_MSVC
+    #  pragma warning(push)
+    #  pragma warning(disable : 4511 4512)
+    #endif
+    class bosarg : 
+        public basic_oserializer
+    {
+        bool class_info() const {
+            assert(false); 
+            return false;
+        }
+        // returns true if objects should be tracked
+        bool tracking(const unsigned int) const {
+            assert(false);
+            return false;
+        }
+        // returns class version
+        version_type version() const {
+            assert(false);
+            return version_type(0);
+        }
+        // returns true if this class is polymorphic
+        bool is_polymorphic() const{
+            assert(false);
+            return false;
+        }
+        void save_object_data(      
+            basic_oarchive & /*ar*/, const void * /*x*/
+        ) const {
+            assert(false);
+        }
+    public:
+        bosarg(const serialization::extended_type_info & eti) :
+          boost::archive::detail::basic_oserializer(eti)
+        {}
+    };
+    #ifdef BOOST_MSVC
+    #pragma warning(pop)
+    #endif
+    bosarg bos(ti);
+    cobject_info_set_type::const_iterator cit 
+        = cobject_info_set.find(cobject_type(bos));
+    // it should already have been "registered" - see below
+    if(cit == cobject_info_set.end()){
+        // if an entry is not found in the table it is because a pointer
+        // of a derived class has been serialized through its base class
+        // but the derived class hasn't been "registered" 
+        return NULL;
+    }
+    // return pointer to the real class
+    return cit->m_bos_ptr;
+}
+
+inline const basic_oarchive_impl::cobject_type &
+basic_oarchive_impl::find(const basic_oserializer & bos)
+{
+    assert(
+        cobject_info_set.size() 
+        <= 
+        boost::integer_traits<class_id_type>::const_max
+    );
+    std::pair<cobject_info_set_type::iterator, bool> cresult = 
+        cobject_info_set.insert(cobject_type(cobject_info_set.size(), bos));
+    return *(cresult.first);
+}
+
+inline const basic_oarchive_impl::cobject_type &
+basic_oarchive_impl::register_type(
+    const basic_oserializer & bos
+){
+    assert(
+        cobject_info_set.size() 
+        <= 
+        boost::integer_traits<class_id_type>::const_max
+    );
+    cobject_type co(cobject_info_set.size(), bos);
+    std::pair<cobject_info_set_type::const_iterator, bool>
+        result = cobject_info_set.insert(co);
+    return *(result.first);
+}
+
+inline void
+basic_oarchive_impl::save_object(
+    basic_oarchive & ar,
+    const void *t,
+    const basic_oserializer & bos
+){
+    // if its been serialized through a pointer and the preamble's been done
+    if(t == pending_object && pending_bos == & bos){
+        // just save the object data
+        ar.end_preamble();
+        (bos.save_object_data)(ar, t);
+        return;
+    }
+
+    // get class information for this object
+    const cobject_type & co = register_type(bos);
+    if(bos.class_info()){
+        if( ! co.m_initialized){
+            ar.vsave(class_id_optional_type(co.m_class_id));
+            ar.vsave(tracking_type(bos.tracking(m_flags)));
+            ar.vsave(version_type(bos.version()));
+            (const_cast<cobject_type &>(co)).m_initialized = true;
+        }
+    }
+
+    // we're not tracking this type of object
+    if(! bos.tracking(m_flags)){
+        // just windup the preamble - no object id to write
+        ar.end_preamble();
+        // and save the data
+        (bos.save_object_data)(ar, t);
+        return;
+    }
+
+    // look for an existing object id
+    object_id_type oid(object_set.size());
+    // lookup to see if this object has already been written to the archive
+    basic_oarchive_impl::aobject ao(t, co.m_class_id, oid);
+    std::pair<basic_oarchive_impl::object_set_type::const_iterator, bool>
+        aresult = object_set.insert(ao);
+    oid = aresult.first->object_id;
+
+    // if its a new object
+    if(aresult.second){
+        // write out the object id
+        ar.vsave(oid);
+        ar.end_preamble();
+        // and data
+        (bos.save_object_data)(ar, t);
+        return;
+    }
+
+    // check that it wasn't originally stored through a pointer
+    if(stored_pointers.end() != stored_pointers.find(oid)){
+        // this has to be a user error.  loading such an archive
+        // would create duplicate objects
+        boost::serialization::throw_exception(
+            archive_exception(archive_exception::pointer_conflict)
+        );
+    }
+    // just save the object id
+    ar.vsave(object_reference_type(oid));
+    ar.end_preamble();
+    return;
+}
+
+// save a pointer to an object instance
+inline void
+basic_oarchive_impl::save_pointer(
+    basic_oarchive & ar,
+    const void * t, 
+    const basic_pointer_oserializer * bpos_ptr
+){
+    const basic_oserializer & bos = bpos_ptr->get_basic_serializer();
+    std::size_t original_count = cobject_info_set.size();
+    const cobject_type & co = register_type(bos);
+    if(! co.m_initialized){
+        ar.vsave(co.m_class_id);
+        // if its a previously unregistered class 
+        if((cobject_info_set.size() > original_count)){
+            if(bos.is_polymorphic()){
+                const serialization::extended_type_info *eti = & bos.get_eti();
+                const char * key = NULL;
+                if(NULL != eti)
+                    key = eti->get_key();
+                if(NULL != key){
+                    // the following is required by IBM C++ compiler which
+                    // makes a copy when passing a non-const to a const.  This
+                    // is permitted by the standard but rarely seen in practice
+                    const class_name_type cn(key);
+                    // write out the external class identifier
+                    ar.vsave(cn);
+                }
+                else
+                    // without an external class name
+                    // we won't be able to de-serialize it so bail now
+                    boost::serialization::throw_exception(
+                        archive_exception(archive_exception::unregistered_class)
+                    );
+            }
+        }
+        if(bos.class_info()){
+            ar.vsave(tracking_type(bos.tracking(m_flags)));
+            ar.vsave(version_type(bos.version()));
+        }
+        (const_cast<cobject_type &>(co)).m_initialized = true;
+    }
+    else{
+        ar.vsave(class_id_reference_type(co.m_class_id));
+    }
+
+    // if we're not tracking
+    if(! bos.tracking(m_flags)){
+        // just save the data itself
+        ar.end_preamble();
+        serialization::state_saver<const void *> x(pending_object);
+        serialization::state_saver<const basic_oserializer *> y(pending_bos);
+        pending_object = t;
+        pending_bos = & bpos_ptr->get_basic_serializer();
+        bpos_ptr->save_object_ptr(ar, t);
+        return;
+    }
+
+    object_id_type oid(object_set.size());
+    // lookup to see if this object has already been written to the archive
+    basic_oarchive_impl::aobject ao(t, co.m_class_id, oid);
+    std::pair<basic_oarchive_impl::object_set_type::const_iterator, bool>
+        aresult = object_set.insert(ao);
+    oid = aresult.first->object_id;
+    // if the saved object already exists
+    if(! aresult.second){
+        // append the object id to he preamble
+        ar.vsave(object_reference_type(oid));
+        // and windup.
+        ar.end_preamble();
+        return;
+    }
+
+    // append id of this object to preamble
+    ar.vsave(oid);
+    ar.end_preamble();
+
+    // and save the object itself
+    serialization::state_saver<const void *> x(pending_object);
+    serialization::state_saver<const basic_oserializer *> y(pending_bos);
+    pending_object = t;
+    pending_bos = & bpos_ptr->get_basic_serializer();
+    bpos_ptr->save_object_ptr(ar, t);
+    // add to the set of object initially stored through pointers
+    stored_pointers.insert(oid);
+}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
+
+//////////////////////////////////////////////////////////////////////
+// implementation of basic_oarchive functions
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_oarchive::basic_oarchive(unsigned int flags)
+    : pimpl(new basic_oarchive_impl(flags))
+{}
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_oarchive::~basic_oarchive()
+{
+    delete pimpl;
+}
+
+BOOST_ARCHIVE_DECL(void) 
+basic_oarchive::save_object(
+    const void *x, 
+    const basic_oserializer & bos
+){
+    pimpl->save_object(*this, x, bos);
+}
+
+BOOST_ARCHIVE_DECL(void) 
+basic_oarchive::save_pointer(
+    const void * t, 
+    const basic_pointer_oserializer * bpos_ptr
+){
+    pimpl->save_pointer(*this, t, bpos_ptr);
+}
+
+BOOST_ARCHIVE_DECL(void) 
+basic_oarchive::register_basic_serializer(const basic_oserializer & bos){
+    pimpl->register_type(bos);
+}
+
+BOOST_ARCHIVE_DECL(unsigned int)
+basic_oarchive::get_library_version() const{
+    return BOOST_ARCHIVE_VERSION();
+}
+
+BOOST_ARCHIVE_DECL(unsigned int)
+basic_oarchive::get_flags() const{
+    return pimpl->m_flags;
+}
+
+BOOST_ARCHIVE_DECL(void) 
+basic_oarchive::end_preamble(){
+}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_oserializer.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_oserializer.cpp
new file mode 100644 (file)
index 0000000..0e21806
--- /dev/null
@@ -0,0 +1,33 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_oserializer.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstddef> // NULL
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/basic_oserializer.hpp>
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_oserializer::basic_oserializer(
+        const boost::serialization::extended_type_info & eti
+) :
+    basic_serializer(eti), 
+    m_bpos(NULL)
+{}
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_oserializer::~basic_oserializer(){}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_pointer_iserializer.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_pointer_iserializer.cpp
new file mode 100644 (file)
index 0000000..fac766f
--- /dev/null
@@ -0,0 +1,30 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_pointer_iserializer.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/basic_pointer_iserializer.hpp>
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_pointer_iserializer::basic_pointer_iserializer(
+    const boost::serialization::extended_type_info & eti
+) :
+    basic_serializer(eti)
+{}
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_pointer_iserializer::~basic_pointer_iserializer() {}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_pointer_oserializer.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_pointer_oserializer.cpp
new file mode 100644 (file)
index 0000000..9e9f1dd
--- /dev/null
@@ -0,0 +1,30 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_pointer_oserializer.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/basic_pointer_oserializer.hpp>
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_pointer_oserializer::basic_pointer_oserializer(
+    const boost::serialization::extended_type_info & eti
+) :
+    basic_serializer(eti)
+{}
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) 
+basic_pointer_oserializer::~basic_pointer_oserializer() {}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_serializer_map.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_serializer_map.cpp
new file mode 100644 (file)
index 0000000..429f3a4
--- /dev/null
@@ -0,0 +1,104 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// serializer_map.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <set>
+#include <utility>
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/archive_exception.hpp>
+#include <boost/serialization/throw_exception.hpp>
+
+#include <boost/archive/detail/basic_serializer.hpp>
+#include <boost/archive/detail/basic_serializer_map.hpp>
+
+namespace boost {
+    namespace serialization {
+        class extended_type_info;
+    }
+namespace archive {
+namespace detail {
+
+bool  
+basic_serializer_map::type_info_pointer_compare::operator()(
+    const basic_serializer * lhs, const basic_serializer * rhs
+) const {
+    return *lhs < *rhs;
+}
+
+BOOST_ARCHIVE_DECL(bool) 
+basic_serializer_map::insert(const basic_serializer * bs){
+    // attempt to insert serializer into it's map
+    const std::pair<map_type::iterator, bool> result =
+        m_map.insert(bs);
+    // the following is commented out - rather than being just
+    // deleted as a reminder not to try this.
+
+    // At first it seemed like a good idea.  It enforced the
+    // idea that a type be exported from at most one code module
+    // (DLL or mainline).  This would enforce a "one definition rule" 
+    // across code modules. This seems a good idea to me.  
+    // But it seems that it's just too hard for many users to implement.
+
+    // Ideally, I would like to make this exception a warning -
+    // but there isn't anyway to do that.
+
+    // if this fails, it's because it's been instantiated
+    // in multiple modules - DLLS - a recipe for problems.
+    // So trap this here
+    // if(!result.second){
+    //     boost::serialization::throw_exception(
+    //         archive_exception(
+    //             archive_exception::multiple_code_instantiation,
+    //             bs->get_debug_info()
+    //         )
+    //     );
+    // }
+    return true;
+}
+
+BOOST_ARCHIVE_DECL(void) 
+basic_serializer_map::erase(const basic_serializer * bs){
+    map_type::iterator it = m_map.begin();
+    map_type::iterator it_end = m_map.end();
+
+    while(it != it_end){
+        // note item 9 from Effective STL !!! it++
+        if(*it == bs)
+            m_map.erase(it++);
+        else
+            it++;
+    }
+    // note: we can't do this since some of the eti records
+    // we're pointing to might be expired and the comparison
+    // won't work.  Leave this as a reminder not to "optimize" this.
+    //it = m_map.find(bs);
+    //assert(it != m_map.end());
+    //if(*it == bs)
+    //    m_map.erase(it);
+}
+BOOST_ARCHIVE_DECL(const basic_serializer *)
+basic_serializer_map::find(
+    const boost::serialization::extended_type_info & eti
+) const {
+    const basic_serializer_arg bs(eti);
+    map_type::const_iterator it;
+    it = m_map.find(& bs);
+    assert(it != m_map.end());
+    return *it;
+}
+
+} // namespace detail
+} // namespace archive
+} // namespace boost
+
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_text_iprimitive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_text_iprimitive.cpp
new file mode 100644 (file)
index 0000000..c67a942
--- /dev/null
@@ -0,0 +1,28 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_text_iprimitive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <istream>
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/auto_link_archive.hpp>
+#include <boost/archive/impl/basic_text_iprimitive.ipp>
+
+namespace boost {
+namespace archive {
+
+// explicitly instantiate for this type of text stream
+template class basic_text_iprimitive<std::istream> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_text_oprimitive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_text_oprimitive.cpp
new file mode 100644 (file)
index 0000000..d8d98d6
--- /dev/null
@@ -0,0 +1,28 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_text_oprimitive.cpp:
+
+// (C) Copyright 2004 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <ostream>
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/auto_link_archive.hpp>
+#include <boost/archive/impl/basic_text_oprimitive.ipp>
+
+namespace boost {
+namespace archive {
+
+// explicitly instantiate for this type of text stream
+template class basic_text_oprimitive<std::ostream> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_text_wiprimitive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_text_wiprimitive.cpp
new file mode 100644 (file)
index 0000000..4797485
--- /dev/null
@@ -0,0 +1,35 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_text_wiprimitive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <istream>
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/detail/auto_link_warchive.hpp>
+#include <boost/archive/impl/basic_text_iprimitive.ipp>
+
+namespace boost {
+namespace archive {
+
+template class basic_text_iprimitive<std::wistream> ;
+
+} // namespace archive
+} // namespace boost
+
+#endif // BOOST_NO_STD_WSTREAMBUF
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_text_woprimitive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_text_woprimitive.cpp
new file mode 100644 (file)
index 0000000..e13294e
--- /dev/null
@@ -0,0 +1,35 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_text_woprimitive.cpp:
+
+// (C) Copyright 2004 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <ostream>
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/detail/auto_link_warchive.hpp>
+#include <boost/archive/impl/basic_text_oprimitive.ipp>
+
+namespace boost {
+namespace archive {
+
+template class basic_text_oprimitive<std::wostream> ;
+
+} // namespace archive
+} // namespace boost
+
+#endif // BOOST_NO_STD_WSTREAMBUF
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_xml_archive.cpp b/deal.II/contrib/boost/libs/serialization/src/basic_xml_archive.cpp
new file mode 100644 (file)
index 0000000..e71aaef
--- /dev/null
@@ -0,0 +1,51 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_xml_archive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/basic_xml_archive.hpp>
+
+namespace boost {
+namespace archive {
+
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_OBJECT_ID(){
+    return "object_id";
+}
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_OBJECT_REFERENCE(){
+    return "object_id_reference";
+}
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_CLASS_ID(){
+    return "class_id";
+}
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_CLASS_ID_REFERENCE(){
+    return "class_id_reference";
+}
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_CLASS_NAME(){
+    return "class_name";
+}
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_TRACKING(){
+    return "tracking_level";
+}
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_VERSION(){
+    return "version";
+}
+BOOST_ARCHIVE_DECL(const char *)
+BOOST_ARCHIVE_XML_SIGNATURE(){
+    return "signature";
+}
+
+}// namespace archive
+}// namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/basic_xml_grammar.ipp b/deal.II/contrib/boost/libs/serialization/src/basic_xml_grammar.ipp
new file mode 100644 (file)
index 0000000..0d7682b
--- /dev/null
@@ -0,0 +1,468 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// basic_xml_grammar.ipp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <istream>
+#include <algorithm>
+#include <boost/config.hpp> // BOOST_DEDUCED_TYPENAME
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+// spirit stuff
+#include <boost/spirit/core/composite/operators.hpp>
+#include <boost/spirit/core/composite/actions.hpp>
+#include <boost/spirit/core/primitives/numerics.hpp>
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+// for head_iterator test
+//#include <boost/bind.hpp> 
+#include <boost/function.hpp>
+#include <boost/serialization/pfto.hpp>
+
+#include <boost/io/ios_state.hpp>
+#include <boost/serialization/throw_exception.hpp>
+#include <boost/archive/impl/basic_xml_grammar.hpp>
+#include <boost/archive/xml_archive_exception.hpp>
+#include <boost/archive/basic_xml_archive.hpp>
+#include <boost/archive/iterators/xml_unescape.hpp>
+
+using namespace boost::spirit;
+
+namespace boost {
+namespace archive {
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// template code for basic_xml_grammar of both wchar_t and char types
+
+namespace xml { // anonymous
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+template<class T>
+struct assign_impl {
+    T & t;
+    void operator()(const T t_) const {
+        t = t_;
+    }
+    assign_impl(T &  t_)
+        : t(t_)
+    {}
+};
+
+template<>
+struct assign_impl<std::string> {
+    std::string & t;
+    void operator()(
+        std::string::const_iterator b, 
+        std::string::const_iterator e
+    ) const {
+        t.resize(0);
+        while(b != e){
+            t += * b;
+            ++b;
+        }
+    }
+    assign_impl<std::string> & operator=(
+        assign_impl<std::string> & rhs
+    );
+    assign_impl(std::string & t_)
+        : t(t_)
+    {}
+};
+
+#ifndef BOOST_NO_STD_WSTRING
+template<>
+struct assign_impl<std::wstring> {
+    std::wstring & t;
+    void operator()(
+        std::wstring::const_iterator b, 
+        std::wstring::const_iterator e
+    ) const {
+        t.resize(0);
+        while(b != e){
+            t += * b;
+            ++b;
+        }
+    }
+    assign_impl(std::wstring & t_)
+        : t(t_)
+    {}
+};
+#endif
+
+template<class T>
+assign_impl<T> assign_object(T &t){
+    return assign_impl<T>(t);
+} 
+
+struct assign_level {
+    tracking_type & tracking_level;
+    void operator()(const unsigned int tracking_level_) const {
+        tracking_level = (0 == tracking_level_) ? false : true;
+    }
+    assign_level(tracking_type &  tracking_level_)
+        : tracking_level(tracking_level_)
+    {}
+};
+
+template<class String, class Iterator>
+struct append_string {
+    String & contents;
+    void operator()(Iterator start, Iterator end) const {
+    #if 0
+        typedef boost::archive::iterators::xml_unescape<Iterator> translator;
+        contents.append(
+            translator(BOOST_MAKE_PFTO_WRAPPER(start)), 
+            translator(BOOST_MAKE_PFTO_WRAPPER(end))
+        );
+    #endif
+        contents.append(start, end);
+    }
+    append_string(String & contents_)
+        : contents(contents_)
+    {}
+};
+
+template<class String>
+struct append_char {
+    String & contents;
+    void operator()(const unsigned int char_value) const {
+        const BOOST_DEDUCED_TYPENAME String::value_type z = char_value;
+        contents += z;
+    }
+    append_char(String & contents_)
+        : contents(contents_)
+    {}
+};
+
+template<class String, unsigned int c>
+struct append_lit {
+    String & contents;
+    template<class X, class Y>
+    void operator()(const X & /*x*/, const Y & /*y*/) const {
+        const BOOST_DEDUCED_TYPENAME String::value_type z = c;
+        contents += z;
+    }
+    append_lit(String & contents_)
+        : contents(contents_)
+    {}
+};
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+} // namespace anonymous
+
+template<class CharType>
+bool basic_xml_grammar<CharType>::my_parse(
+    BOOST_DEDUCED_TYPENAME basic_xml_grammar<CharType>::IStream & is,
+    const rule_t & rule_,
+    CharType delimiter
+) const {
+    if(is.fail()){
+        boost::serialization::throw_exception(
+            archive_exception(archive_exception::stream_error)
+        );
+    }
+    
+    boost::io::ios_flags_saver ifs(is);
+    is >> std::noskipws;
+
+    std::basic_string<CharType> arg;
+    
+    CharType val;
+    do{
+        BOOST_DEDUCED_TYPENAME basic_xml_grammar<CharType>::IStream::int_type
+            result = is.get();
+        if(is.fail())
+            return false;
+        val = static_cast<CharType>(result);
+        arg += val;
+    }
+    while(val != delimiter);
+    
+    // read just one more character.  This will be the newline after the tag
+    // this is so that the next operation will return fail if the archive
+    // is terminated.  This will permit the archive to be used for debug
+    // and transaction data logging in the standard way.
+    
+    parse_info<BOOST_DEDUCED_TYPENAME std::basic_string<CharType>::iterator> 
+        result = boost::spirit::parse(arg.begin(), arg.end(), rule_);
+    return result.hit;
+}
+
+template<class CharType>
+bool basic_xml_grammar<CharType>::parse_start_tag(
+    BOOST_DEDUCED_TYPENAME basic_xml_grammar<CharType>::IStream & is
+){
+    rv.class_name.resize(0);
+    return my_parse(is, STag);
+}
+
+template<class CharType>
+bool basic_xml_grammar<CharType>::parse_end_tag(IStream & is) const {
+    return my_parse(is, ETag);
+}
+
+template<class CharType>
+bool basic_xml_grammar<CharType>::parse_string(IStream & is, StringType & s){
+    rv.contents.resize(0);
+    bool result = my_parse(is, content, '<');
+    // note: unget caused a problem with dinkumware.  replace with
+ // is.unget();
+    // putback another dilimiter instead
+    is.putback('<');
+    if(result)
+        s = rv.contents;
+    return result;
+}
+
+template<class CharType>
+basic_xml_grammar<CharType>::basic_xml_grammar(){
+    init_chset();
+
+    S =
+        +(Sch)
+    ;
+
+    // refactoring to workaround template depth on darwin
+    NameHead = (Letter | '_' | ':');
+    NameTail = *NameChar ;
+    Name =
+      NameHead >> NameTail
+    ;
+
+    Eq =
+        !S >> '=' >> !S
+    ;
+
+    AttributeList = 
+        *(S >> Attribute)
+    ;
+    
+    STag =
+        !S
+        >> '<'
+        >> Name  [xml::assign_object(rv.object_name)]
+        >> AttributeList
+        >> !S
+        >> '>'
+    ;
+
+    ETag =
+        !S
+        >> "</"
+        >> Name [xml::assign_object(rv.object_name)]
+        >> !S 
+        >> '>'
+    ;
+
+    // refactoring to workaround template depth on darwin
+    CharDataChars = +(anychar_p - chset_p(L"&<"));
+    CharData =  
+        CharDataChars [
+            xml::append_string<
+                StringType, 
+                BOOST_DEDUCED_TYPENAME std::basic_string<CharType>::const_iterator
+            >(rv.contents)
+        ]
+    ;
+
+    // slight factoring works around ICE in msvc 6.0
+    CharRef1 = 
+        str_p(L"&#") >> uint_p [xml::append_char<StringType>(rv.contents)] >> L';'
+    ;
+    CharRef2 =
+        str_p(L"&#x") >> hex_p [xml::append_char<StringType>(rv.contents)] >> L';'
+    ;
+    CharRef = CharRef1 | CharRef2 ;
+
+    AmpRef = str_p(L"&amp;")[xml::append_lit<StringType, L'&'>(rv.contents)];
+    LTRef = str_p(L"&lt;")[xml::append_lit<StringType, L'<'>(rv.contents)];
+    GTRef = str_p(L"&gt;")[xml::append_lit<StringType, L'>'>(rv.contents)];
+    AposRef = str_p(L"&apos;")[xml::append_lit<StringType, L'\''>(rv.contents)];
+    QuoteRef = str_p(L"&quot;")[xml::append_lit<StringType, L'"'>(rv.contents)];
+
+    Reference =
+        AmpRef
+        | LTRef
+        | GTRef
+        | AposRef
+        | QuoteRef
+        | CharRef
+    ;
+
+    content = 
+        L"<" // should be end_p
+        | +(Reference | CharData) >> L"<"
+    ;
+
+    ClassIDAttribute = 
+        str_p(BOOST_ARCHIVE_XML_CLASS_ID()) >> NameTail
+        >> Eq 
+        >> L'"'
+        >> int_p [xml::assign_object(rv.class_id.t)]
+        >> L'"'
+      ;
+
+    ObjectIDAttribute = (
+        str_p(BOOST_ARCHIVE_XML_OBJECT_ID()) 
+        | 
+        str_p(BOOST_ARCHIVE_XML_OBJECT_REFERENCE()) 
+        )
+        >> NameTail
+        >> Eq 
+        >> L'"'
+        >> L'_'
+        >> uint_p [xml::assign_object(rv.object_id.t)]
+        >> L'"'
+    ;
+        
+    AmpName = str_p(L"&amp;")[xml::append_lit<StringType, L'&'>(rv.class_name)];
+    LTName = str_p(L"&lt;")[xml::append_lit<StringType, L'<'>(rv.class_name)];
+    GTName = str_p(L"&gt;")[xml::append_lit<StringType, L'>'>(rv.class_name)];
+    ClassNameChar = 
+        AmpName
+        | LTName
+        | GTName
+        | (anychar_p - chset_p(L"\"")) [xml::append_char<StringType>(rv.class_name)]
+    ;
+    
+    ClassName =
+        * ClassNameChar
+    ;
+    
+    ClassNameAttribute = 
+        str_p(BOOST_ARCHIVE_XML_CLASS_NAME()) 
+        >> Eq 
+        >> L'"'
+        >> ClassName
+        >> L'"'
+    ;
+
+    TrackingAttribute = 
+        str_p(BOOST_ARCHIVE_XML_TRACKING())
+        >> Eq
+        >> L'"'
+        >> uint_p [xml::assign_level(rv.tracking_level)]
+        >> L'"'
+    ;
+
+    VersionAttribute = 
+        str_p(BOOST_ARCHIVE_XML_VERSION())
+        >> Eq
+        >> L'"'
+        >> uint_p [xml::assign_object(rv.version.t)]
+        >> L'"'
+    ;
+
+    UnusedAttribute = 
+        Name
+        >> Eq
+        >> L'"'
+        >> !CharData
+        >> L'"'
+    ;
+
+    Attribute =
+        ClassIDAttribute
+        | ObjectIDAttribute
+        | ClassNameAttribute
+        | TrackingAttribute
+        | VersionAttribute
+        | UnusedAttribute
+    ;
+
+    XMLDeclChars = *(anychar_p - chset_p(L"?>"));
+    XMLDecl =
+        !S
+        >> str_p(L"<?xml")
+        >> S
+        >> str_p(L"version")
+        >> Eq
+        >> str_p(L"\"1.0\"")
+        >> XMLDeclChars
+        >> !S
+        >> str_p(L"?>")
+    ;
+
+    DocTypeDeclChars = *(anychar_p - chset_p(L">"));
+    DocTypeDecl =
+        !S
+        >> str_p(L"<!DOCTYPE")
+        >> DocTypeDeclChars
+        >> L'>'
+    ;
+
+    SignatureAttribute = 
+        str_p(L"signature") 
+        >> Eq 
+        >> L'"'
+        >> Name [xml::assign_object(rv.class_name)]
+        >> L'"'
+    ;
+    
+    SerializationWrapper =
+        !S
+        >> str_p(L"<boost_serialization")
+        >> S
+        >> SignatureAttribute
+        >> S
+        >> VersionAttribute
+        >> !S
+        >> L'>'
+    ;
+}
+
+template<class CharType>
+void basic_xml_grammar<CharType>::init(IStream & is){
+    init_chset();
+    if(! my_parse(is, XMLDecl))
+        boost::serialization::throw_exception(
+            xml_archive_exception(xml_archive_exception::xml_archive_parsing_error)
+        );
+    if(! my_parse(is, DocTypeDecl))
+        boost::serialization::throw_exception(
+            xml_archive_exception(xml_archive_exception::xml_archive_parsing_error)
+        );
+    if(! my_parse(is, SerializationWrapper))
+        boost::serialization::throw_exception(
+            xml_archive_exception(xml_archive_exception::xml_archive_parsing_error)
+        );
+    if(! std::equal(rv.class_name.begin(), rv.class_name.end(), BOOST_ARCHIVE_SIGNATURE()))
+        boost::serialization::throw_exception(
+            archive_exception(archive_exception::invalid_signature)
+        );
+}
+
+template<class CharType>
+void basic_xml_grammar<CharType>::windup(IStream & is){
+    if(is.fail())
+        return;
+    // uh-oh - don't throw exception from code called by a destructor !
+    // so just ignore any failure.
+    my_parse(is, ETag);
+}
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/binary_iarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/binary_iarchive.cpp
new file mode 100644 (file)
index 0000000..7bb0435
--- /dev/null
@@ -0,0 +1,53 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// binary_iarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <istream>
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/binary_iarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_binary_iprimitive.ipp>
+#include <boost/archive/impl/basic_binary_iarchive.ipp>
+
+namespace boost {
+namespace archive {
+
+// explicitly instantiate for this type of stream
+template class detail::archive_serializer_map<naked_binary_iarchive>;
+template class basic_binary_iprimitive<
+    naked_binary_iarchive,
+    std::istream::char_type, 
+    std::istream::traits_type
+>;
+template class basic_binary_iarchive<naked_binary_iarchive> ;
+template class binary_iarchive_impl<
+    naked_binary_iarchive, 
+    std::istream::char_type, 
+    std::istream::traits_type
+>;
+
+// explicitly instantiate for this type of stream
+template class detail::archive_serializer_map<binary_iarchive>;
+template class basic_binary_iprimitive<
+    binary_iarchive,
+    std::istream::char_type, 
+    std::istream::traits_type
+>;
+template class basic_binary_iarchive<binary_iarchive> ;
+template class binary_iarchive_impl<
+    binary_iarchive, 
+    std::istream::char_type, 
+    std::istream::traits_type
+>;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/binary_oarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/binary_oarchive.cpp
new file mode 100644 (file)
index 0000000..e7ab904
--- /dev/null
@@ -0,0 +1,39 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// binary_oarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <ostream>
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/binary_oarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of binary stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_binary_oprimitive.ipp>
+#include <boost/archive/impl/basic_binary_oarchive.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<binary_oarchive>;
+template class basic_binary_oprimitive<
+    binary_oarchive, 
+    std::ostream::char_type, 
+    std::ostream::traits_type
+>;
+template class basic_binary_oarchive<binary_oarchive> ;
+template class binary_oarchive_impl<
+    binary_oarchive, 
+    std::ostream::char_type, 
+    std::ostream::traits_type
+>;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/binary_wiarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/binary_wiarchive.cpp
new file mode 100644 (file)
index 0000000..a6135c8
--- /dev/null
@@ -0,0 +1,60 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// binary_wiarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/binary_wiarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_binary_iprimitive.ipp>
+#include <boost/archive/impl/basic_binary_iarchive.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<naked_binary_wiarchive>;
+template class basic_binary_iprimitive<
+    naked_binary_wiarchive,
+    wchar_t, 
+    std::char_traits<wchar_t> 
+>;
+template class basic_binary_iarchive<naked_binary_wiarchive> ;
+template class binary_iarchive_impl<
+    naked_binary_wiarchive, 
+    wchar_t, 
+    std::char_traits<wchar_t> 
+>;
+
+// explicitly instantiate for this type of text stream
+template class detail::archive_serializer_map<binary_wiarchive>;
+template class basic_binary_iprimitive<
+    binary_wiarchive,
+    wchar_t, 
+    std::char_traits<wchar_t> 
+>;
+template class basic_binary_iarchive<binary_wiarchive> ;
+template class binary_iarchive_impl<
+    binary_wiarchive, 
+    wchar_t, 
+    std::char_traits<wchar_t> 
+>;
+
+} // namespace archive
+} // namespace boost
+
+#endif  // BOOST_NO_STD_WSTREAMBUF
+
diff --git a/deal.II/contrib/boost/libs/serialization/src/binary_woarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/binary_woarchive.cpp
new file mode 100644 (file)
index 0000000..905a319
--- /dev/null
@@ -0,0 +1,44 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// binary_woarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/binary_woarchive.hpp>
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_binary_oprimitive.ipp>
+#include <boost/archive/impl/basic_binary_oarchive.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<binary_woarchive>;
+template class basic_binary_oprimitive<
+    binary_woarchive, 
+    wchar_t, 
+    std::char_traits<wchar_t> 
+>;
+template class basic_binary_oarchive<binary_woarchive> ;
+template class binary_oarchive_impl<
+    binary_woarchive, 
+    wchar_t, 
+    std::char_traits<wchar_t> 
+>;
+
+} // namespace archive
+} // namespace boost
+
+#endif // BOOST_NO_STD_WSTREAMBUF
diff --git a/deal.II/contrib/boost/libs/serialization/src/codecvt_null.cpp b/deal.II/contrib/boost/libs/serialization/src/codecvt_null.cpp
new file mode 100644 (file)
index 0000000..b6c06bd
--- /dev/null
@@ -0,0 +1,83 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// codecvt_null.cpp
+
+// Copyright (c) 2004 Robert Ramey, Indiana University (garcia@osl.iu.edu)
+// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). 
+// Use, modification and distribution is subject to 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)
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/codecvt_null.hpp>
+
+// codecvt implementation for passing wchar_t objects to char output
+// without any translation whatever.  Used to implement binary output
+// of wchar_t objects.
+
+namespace boost {
+namespace archive {
+
+BOOST_WARCHIVE_DECL(std::codecvt_base::result)
+codecvt_null<wchar_t>::do_out(
+    std::mbstate_t & /*state*/,
+    const wchar_t * first1, 
+    const wchar_t * last1,
+    const wchar_t * & next1,
+    char * first2, 
+    char * last2, 
+    char * & next2
+) const {
+    while(first1 != last1){
+        // Per std::22.2.1.5.2/2, we can store no more that
+        // last2-first2 characters. If we need to more encode
+        // next internal char type, return 'partial'.
+        if(static_cast<int>(sizeof(wchar_t)) > (last2 - first2)){
+            next1 = first1;
+            next2 = first2;
+            return std::codecvt_base::partial;
+        }
+        * reinterpret_cast<wchar_t *>(first2) = * first1++;
+        first2 += sizeof(wchar_t);
+
+    }
+    next1 = first1;
+    next2 = first2;
+    return std::codecvt_base::ok;
+}
+
+BOOST_WARCHIVE_DECL(std::codecvt_base::result)
+codecvt_null<wchar_t>::do_in(
+    std::mbstate_t & state,
+    const char * first1, 
+    const char * last1, 
+    const char * & next1,
+    wchar_t * first2,
+    wchar_t * last2,
+    wchar_t * & next2
+) const {
+    // Process input characters until we've run of them,
+    // or the number of remaining characters is not
+    // enough to construct another output character,
+    // or we've run out of place for output characters.
+    while(first2 != last2){
+        // Have we converted all input characters? 
+        // Return with 'ok', if so.
+        if (first1 == last1)
+             break;
+        // Do we have less input characters than needed
+        // for a single output character?        
+        if(static_cast<int>(sizeof(wchar_t)) > (last1 - first1)){
+            next1 = first1;
+            next2 = first2;
+            return std::codecvt_base::partial; 
+        }
+        *first2++ = * reinterpret_cast<const wchar_t *>(first1);
+        first1 += sizeof(wchar_t);
+    }
+    next1 = first1;
+    next2 = first2;
+    return std::codecvt_base::ok;
+}
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/extended_type_info.cpp b/deal.II/contrib/boost/libs/serialization/src/extended_type_info.cpp
new file mode 100644 (file)
index 0000000..bc28d6a
--- /dev/null
@@ -0,0 +1,188 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// extended_type_info.cpp: implementation for portable version of type_info
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <algorithm>
+#include <set>
+#include <utility>
+#include <cassert>
+#include <cstddef> // NULL
+
+#include <boost/config.hpp> // msvc needs this to suppress warning
+
+#include <cstring>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ using ::strcmp; }
+#endif
+
+#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/serialization/singleton.hpp>
+#include <boost/serialization/force_include.hpp>
+
+#define BOOST_SERIALIZATION_SOURCE
+#include <boost/serialization/extended_type_info.hpp>
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+namespace boost { 
+namespace serialization {
+namespace detail {
+
+struct key_compare
+{
+    bool
+    operator()(
+        const extended_type_info * lhs, 
+        const extended_type_info * rhs
+    ) const {
+        // performance shortcut
+        if(lhs == rhs)
+            return false;
+        const char * l = lhs->get_key();
+        assert(NULL != l);
+        const char * r = rhs->get_key();
+        assert(NULL != r);
+        // performance shortcut
+        // shortcut to exploit string pooling
+        if(l == r)
+            return false;
+        // for exported types, use the string key so that
+        // multiple instances in different translation units
+        // can be matched up
+        return std::strcmp(l, r) < 0;
+    }
+};
+
+typedef std::multiset<const extended_type_info *, key_compare> ktmap;
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+class extended_type_info_arg : public extended_type_info
+{
+    virtual bool
+    is_less_than(const extended_type_info & /*rhs*/) const {
+        assert(false);
+        return false;
+    };
+    virtual bool
+    is_equal(const extended_type_info & /*rhs*/) const {
+        assert(false);
+        return false;
+    };
+    virtual const char * get_debug_info() const {
+        return get_key();
+    }
+    virtual void * construct(unsigned int /*count*/, ...) const{
+        assert(false);
+        return NULL;
+    }
+    virtual void destroy(void const * const /*p*/) const {
+        assert(false);
+    }
+public:
+    extended_type_info_arg(const char * key) :
+        extended_type_info(0, key)
+    {}
+
+    ~extended_type_info_arg(){
+    }
+};
+
+#ifdef BOOST_MSVC
+#  pragma warning(pop)
+#endif
+
+} // namespace detail
+
+BOOST_SERIALIZATION_DECL(void)  
+extended_type_info::key_register() const{
+    if(NULL == get_key())
+        return;
+    singleton<detail::ktmap>::get_mutable_instance().insert(this);
+}
+
+BOOST_SERIALIZATION_DECL(void)  
+extended_type_info::key_unregister() const{
+    if(NULL == get_key())
+        return;
+    if(! singleton<detail::ktmap>::is_destroyed()){
+        detail::ktmap & x = singleton<detail::ktmap>::get_mutable_instance();
+        detail::ktmap::iterator start = x.lower_bound(this);
+        detail::ktmap::iterator end = x.upper_bound(this);
+        // remove entry in map which corresponds to this type
+        for(;start != end; ++start){
+            if(this == *start){
+                x.erase(start);
+                break;
+            }
+        }
+    }
+}
+
+BOOST_SERIALIZATION_DECL(const extended_type_info *) 
+extended_type_info::find(const char *key) {
+    assert(NULL != key);
+    const detail::ktmap & k = singleton<detail::ktmap>::get_const_instance();
+    const detail::extended_type_info_arg eti_key(key);
+    const detail::ktmap::const_iterator it = k.find(& eti_key);
+    if(k.end() == it)
+        return NULL;
+    return *(it);
+}
+
+BOOST_SERIALIZATION_DECL(BOOST_PP_EMPTY())
+extended_type_info::extended_type_info(
+    const unsigned int type_info_key,
+    const char * key
+) :
+    m_type_info_key(type_info_key),
+    m_key(key)
+{
+}
+
+BOOST_SERIALIZATION_DECL(BOOST_PP_EMPTY()) 
+extended_type_info::~extended_type_info(){
+}
+
+BOOST_SERIALIZATION_DECL(bool)  
+extended_type_info::operator<(const extended_type_info &rhs) const {
+    // short cut for a common cases
+    if(this == & rhs)
+        return false;
+    if(m_type_info_key == rhs.m_type_info_key){
+        return is_less_than(rhs);
+    }
+    if(m_type_info_key < rhs.m_type_info_key)
+        return true;
+    return false;
+}
+
+BOOST_SERIALIZATION_DECL(bool)
+extended_type_info::operator==(const extended_type_info &rhs) const {
+    // short cut for a common cases
+    if(this == & rhs)
+        return true;
+    if(m_type_info_key != rhs.m_type_info_key){
+        return false;
+    }
+    return is_equal(rhs);
+}
+
+} // namespace serialization
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/extended_type_info_no_rtti.cpp b/deal.II/contrib/boost/libs/serialization/src/extended_type_info_no_rtti.cpp
new file mode 100644 (file)
index 0000000..cb4f14f
--- /dev/null
@@ -0,0 +1,85 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// extended_type_info_no_rtti.cpp: specific implementation of type info
+// that is NOT based on typeid
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstring>
+#include <cstddef> // NULL
+#include <cassert>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ using ::strcmp; }
+#endif
+
+#define BOOST_SERIALIZATION_SOURCE
+#include <boost/serialization/extended_type_info_no_rtti.hpp>
+
+#define EXTENDED_TYPE_INFO_NO_RTTI_KEY 2
+
+namespace boost { 
+namespace serialization { 
+namespace no_rtti_system { 
+
+BOOST_SERIALIZATION_DECL(BOOST_PP_EMPTY())  
+extended_type_info_no_rtti_0::extended_type_info_no_rtti_0(
+    const char * key
+) :
+    extended_type_info(EXTENDED_TYPE_INFO_NO_RTTI_KEY, key)
+{}
+
+BOOST_SERIALIZATION_DECL(bool)
+extended_type_info_no_rtti_0::is_less_than(
+    const boost::serialization::extended_type_info &rhs) const 
+{
+    // shortcut for common case
+    if(this == & rhs)
+        return false;
+    const char * l = get_key();
+    const char * r = rhs.get_key();
+    // if this assertion is triggered, it could mean one of the following
+    // a) This class was never exported - make sure all calls which use
+    // this method of type id are in fact exported.
+    // b) This class was used (e.g. serialized through a pointer) before
+    // it was exported.  Make sure that classes which use this method
+    // of type id are NOT "automatically" registered by serializating 
+    // through a pointer to the to most derived class.  OR make sure
+    // that the BOOST_CLASS_EXPORT is included in every file
+    // which does this.
+    assert(NULL != l);
+    assert(NULL != r);
+    return std::strcmp(l, r) < 0;
+}
+
+BOOST_SERIALIZATION_DECL(bool)
+extended_type_info_no_rtti_0::is_equal(
+    const boost::serialization::extended_type_info &rhs) const 
+{
+    // shortcut for common case
+    if(this == & rhs)
+        return true;
+    // null keys don't match with anything
+    const char * l = get_key();
+    assert(NULL != l);
+    if(NULL == l)
+        return false;
+    const char * r = rhs.get_key();
+    assert(NULL != r);
+    if(NULL == r)
+        return false;
+    return 0 == std::strcmp(l, r);
+}
+
+BOOST_SERIALIZATION_DECL(BOOST_PP_EMPTY())  
+extended_type_info_no_rtti_0::~extended_type_info_no_rtti_0()
+{}
+
+} // namespece detail
+} // namespace serialization
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/extended_type_info_typeid.cpp b/deal.II/contrib/boost/libs/serialization/src/extended_type_info_typeid.cpp
new file mode 100644 (file)
index 0000000..8b5e38d
--- /dev/null
@@ -0,0 +1,161 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// extended_type_info_typeid.cpp: specific implementation of type info
+// that is based on typeid
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <algorithm>
+#include <set>
+#include <cassert>
+#include <typeinfo>
+#include <cstddef> // NULL
+
+#include <boost/detail/no_exceptions_support.hpp>
+
+#include <boost/serialization/singleton.hpp>
+
+#define BOOST_SERIALIZATION_SOURCE
+#include <boost/serialization/extended_type_info_typeid.hpp>
+
+namespace boost { 
+namespace serialization { 
+namespace typeid_system {
+
+#define EXTENDED_TYPE_INFO_TYPE_KEY 1
+
+struct type_compare
+{
+    bool
+    operator()(
+        const extended_type_info_typeid_0 * lhs,
+        const extended_type_info_typeid_0 * rhs
+    ) const {
+        return lhs->is_less_than(*rhs);
+    }
+};
+
+typedef std::multiset<
+    const extended_type_info_typeid_0 *,
+    type_compare
+> tkmap;
+    
+BOOST_SERIALIZATION_DECL(bool) 
+extended_type_info_typeid_0::is_less_than(
+    const boost::serialization::extended_type_info & rhs
+) const {
+    // shortcut for common case
+    if(this == & rhs)
+        return false;
+    return 0 != m_ti->before(
+        *(static_cast<const extended_type_info_typeid_0 &>(rhs).m_ti)
+    );
+}
+
+BOOST_SERIALIZATION_DECL(bool) 
+extended_type_info_typeid_0::is_equal(
+    const boost::serialization::extended_type_info & rhs
+) const {
+    return 
+        // note: std::type_info == operator returns an int !!!
+        // the following permits conversion to bool without a warning.
+        ! (
+        * m_ti 
+        != *(static_cast<const extended_type_info_typeid_0 &>(rhs).m_ti)
+        )
+    ;
+}
+
+BOOST_SERIALIZATION_DECL(BOOST_PP_EMPTY())
+extended_type_info_typeid_0::extended_type_info_typeid_0(
+       const char * key
+) :
+    extended_type_info(EXTENDED_TYPE_INFO_TYPE_KEY, key),
+    m_ti(NULL)
+{}
+
+BOOST_SERIALIZATION_DECL(BOOST_PP_EMPTY())
+extended_type_info_typeid_0::~extended_type_info_typeid_0()
+{}
+
+BOOST_SERIALIZATION_DECL(void) 
+extended_type_info_typeid_0::type_register(const std::type_info & ti){
+    m_ti = & ti;
+    singleton<tkmap>::get_mutable_instance().insert(this);
+}
+
+BOOST_SERIALIZATION_DECL(void) 
+extended_type_info_typeid_0::type_unregister()
+{
+    if(NULL != m_ti){
+        if(! singleton<tkmap>::is_destroyed()){
+            tkmap & x = singleton<tkmap>::get_mutable_instance();
+            tkmap::iterator start = x.lower_bound(this);
+            tkmap::iterator end = x.upper_bound(this);
+            assert(start != end);
+
+            // remove entry in map which corresponds to this type
+            do{
+            if(this == *start)
+                x.erase(start++);
+            else
+                ++start;
+            }while(start != end);
+        }
+    }
+    m_ti = NULL;
+}
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+// this derivation is used for creating search arguments
+class extended_type_info_typeid_arg : 
+    public extended_type_info_typeid_0
+{
+    virtual void * construct(unsigned int /*count*/, ...) const{
+        assert(false);
+        return NULL;
+    }
+    virtual void destroy(void const * const /*p*/) const {
+        assert(false);
+    }
+public:
+    extended_type_info_typeid_arg(const std::type_info & ti) :
+        extended_type_info_typeid_0(NULL)
+    { 
+        // note absense of self register and key as this is used only as
+        // search argument given a type_info reference and is not to 
+        // be added to the map.
+        m_ti = & ti;
+    }
+    ~extended_type_info_typeid_arg(){
+        m_ti = NULL;
+    }
+};
+
+#ifdef BOOST_MSVC
+#  pragma warning(pop)
+#endif
+
+BOOST_SERIALIZATION_DECL(const extended_type_info *)
+extended_type_info_typeid_0::get_extended_type_info(
+    const std::type_info & ti
+) const {
+    typeid_system::extended_type_info_typeid_arg etia(ti);
+    const tkmap & t = singleton<tkmap>::get_const_instance();
+    const tkmap::const_iterator it = t.find(& etia);
+    if(t.end() == it)
+        return NULL;
+    return *(it);
+}
+
+} // namespace detail
+} // namespace serialization
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/polymorphic_iarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/polymorphic_iarchive.cpp
new file mode 100644 (file)
index 0000000..5e8c986
--- /dev/null
@@ -0,0 +1,29 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_iarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+template class archive_serializer_map<polymorphic_iarchive>;
+
+} // detail
+} // archive
+} // boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/polymorphic_oarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/polymorphic_oarchive.cpp
new file mode 100644 (file)
index 0000000..b85895e
--- /dev/null
@@ -0,0 +1,29 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_oarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/polymorphic_oarchive.hpp>
+
+namespace boost {
+namespace archive {
+namespace detail {
+
+template class archive_serializer_map<polymorphic_oarchive>;
+
+} // detail
+} // archive
+} // boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/shared_ptr_helper.cpp b/deal.II/contrib/boost/libs/serialization/src/shared_ptr_helper.cpp
new file mode 100644 (file)
index 0000000..ec15e2e
--- /dev/null
@@ -0,0 +1,135 @@
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// shared_ptr_helper.hpp: serialization for boost shared pointern
+
+// (C) Copyright 2004-2009 Robert Ramey, Martin Ecker and Takatoshi Kondo
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <map>
+#include <list>
+#include <utility>
+#include <cstddef> // NULL
+
+#define BOOST_ARCHIVE_SOURCE
+
+#include <boost/serialization/throw_exception.hpp>
+#include <boost/serialization/void_cast.hpp>
+#include <boost/serialization/extended_type_info.hpp>
+#include <boost/archive/shared_ptr_helper.hpp>
+#include <boost/archive/archive_exception.hpp>
+
+namespace boost {
+namespace archive{
+namespace detail {
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// a common class for holding various types of shared pointers
+
+// returns pointer to object and an indicator whether this is a
+// new entry (true) or a previous one (false)
+BOOST_ARCHIVE_DECL(shared_ptr<void>)
+shared_ptr_helper::get_od(
+        const void * t,
+        const boost::serialization::extended_type_info * true_type, 
+        const boost::serialization::extended_type_info * this_type
+){
+    // get void pointer to the most derived type
+    // this uniquely identifies the object referred to
+    const void * od = void_downcast(
+        *true_type, 
+        *this_type, 
+        t
+    );
+    if(NULL == od)
+        boost::serialization::throw_exception(
+            archive_exception(
+                archive_exception::unregistered_cast,
+                true_type->get_debug_info(),
+                this_type->get_debug_info()
+            )
+        );
+
+    // make tracking array if necessary
+    if(NULL == m_pointers)
+        m_pointers = new collection_type;
+
+    //shared_ptr<const void> sp(od, null_deleter()); 
+    shared_ptr<const void> sp(od, null_deleter());
+    collection_type::iterator i = m_pointers->find(sp);
+
+    if(i == m_pointers->end()){
+        shared_ptr<void> np;
+        return np;
+    }
+    od = void_upcast(
+        *true_type, 
+        *this_type,
+        i->get()
+    );
+    if(NULL == od)
+        boost::serialization::throw_exception(
+            archive_exception(
+                archive_exception::unregistered_cast,
+                true_type->get_debug_info(),
+                this_type->get_debug_info()
+            )
+        );
+
+    return shared_ptr<void>(
+        const_pointer_cast<void>(*i), 
+        const_cast<void *>(od)
+    );
+}
+
+BOOST_ARCHIVE_DECL(void)
+shared_ptr_helper::append(const boost::shared_ptr<const void> &sp){
+    // make tracking array if necessary
+    if(NULL == m_pointers)
+        m_pointers = new collection_type;
+
+    collection_type::iterator i = m_pointers->find(sp);
+
+    if(i == m_pointers->end()){
+        std::pair<collection_type::iterator, bool> result;
+        result = m_pointers->insert(sp);
+        assert(result.second);
+    }
+}
+
+//  #ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
+BOOST_ARCHIVE_DECL(void)
+shared_ptr_helper::append(const boost_132::shared_ptr<const void> & t){
+    if(NULL == m_pointers_132)
+        m_pointers_132 = new std::list<boost_132::shared_ptr<const void> >;
+    m_pointers_132->push_back(t);
+}
+//  #endif
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+shared_ptr_helper::shared_ptr_helper() : 
+    m_pointers(NULL)
+    #ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
+        , m_pointers_132(NULL)
+    #endif
+{}
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+shared_ptr_helper::~shared_ptr_helper(){
+    if(NULL != m_pointers)
+        delete m_pointers;
+    #ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
+    if(NULL != m_pointers_132)
+        delete m_pointers_132;
+    #endif
+}
+
+} // namespace detail
+} // namespace serialization
+} // namespace boost
+
diff --git a/deal.II/contrib/boost/libs/serialization/src/stl_port.cpp b/deal.II/contrib/boost/libs/serialization/src/stl_port.cpp
new file mode 100644 (file)
index 0000000..e5378bc
--- /dev/null
@@ -0,0 +1,43 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// stl_port.cpp: implementation of run-time casting of void pointers
+
+// (C) Copyright 2005 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+# pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+// this befuddles the msvc 6 compiler so we can't use it
+#if ! ((defined _MSC_VER) && (_MSC_VER <= 1300)) \
+&&  ! defined(__BORLANDC__)
+
+#include <boost/config.hpp>
+
+#if defined(__SGI_STL_PORT) && (__SGI_STL_PORT < 0x500)
+
+#include <boost/archive/codecvt_null.hpp>
+
+// explicit instantiation
+
+namespace std {
+
+template
+locale::locale(
+    const locale& __loc, boost::archive::codecvt_null<char> * __f
+);
+
+template
+locale::locale(
+    const locale& __loc, boost::archive::codecvt_null<wchar_t> * __f
+);
+
+} // namespace std
+
+#endif
+
+#endif
diff --git a/deal.II/contrib/boost/libs/serialization/src/text_iarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/text_iarchive.cpp
new file mode 100644 (file)
index 0000000..cb9017f
--- /dev/null
@@ -0,0 +1,36 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// text_iarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_text_iarchive.ipp>
+#include <boost/archive/impl/text_iarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<naked_text_iarchive>;
+template class basic_text_iarchive<naked_text_iarchive> ;
+template class text_iarchive_impl<naked_text_iarchive> ;
+
+template class detail::archive_serializer_map<text_iarchive>;
+template class basic_text_iarchive<text_iarchive> ;
+template class text_iarchive_impl<text_iarchive> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/text_oarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/text_oarchive.cpp
new file mode 100644 (file)
index 0000000..19165d6
--- /dev/null
@@ -0,0 +1,33 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// text_oarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_text_oarchive.ipp>
+#include <boost/archive/impl/text_oarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+//template class basic_text_oprimitive<std::ostream> ;
+template class detail::archive_serializer_map<text_oarchive>;
+template class basic_text_oarchive<text_oarchive> ;
+template class text_oarchive_impl<text_oarchive> ;
+
+} // namespace serialization
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/text_wiarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/text_wiarchive.cpp
new file mode 100644 (file)
index 0000000..a6630c0
--- /dev/null
@@ -0,0 +1,41 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// text_wiarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/text_wiarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_text_iarchive.ipp>
+#include <boost/archive/impl/text_wiarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<naked_text_wiarchive>;
+template class basic_text_iarchive<naked_text_wiarchive> ;
+template class text_wiarchive_impl<naked_text_wiarchive> ;
+
+template class detail::archive_serializer_map<text_wiarchive>;
+template class basic_text_iarchive<text_wiarchive> ;
+template class text_wiarchive_impl<text_wiarchive> ;
+
+} // namespace archive
+} // namespace boost
+
+#endif // BOOST_NO_STD_WSTREAMBUF
+
diff --git a/deal.II/contrib/boost/libs/serialization/src/text_woarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/text_woarchive.cpp
new file mode 100644 (file)
index 0000000..54b4a0d
--- /dev/null
@@ -0,0 +1,35 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// text_woarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/text_woarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_text_oarchive.ipp>
+#include <boost/archive/impl/text_woarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<text_woarchive>;
+template class basic_text_oarchive<text_woarchive> ;
+template class text_woarchive_impl<text_woarchive> ;
+
+} // namespace archive
+} // namespace boost
+
+#endif // BOOST_NO_STD_WSTREAMBUF
diff --git a/deal.II/contrib/boost/libs/serialization/src/utf8_codecvt_facet.cpp b/deal.II/contrib/boost/libs/serialization/src/utf8_codecvt_facet.cpp
new file mode 100644 (file)
index 0000000..1ee4ead
--- /dev/null
@@ -0,0 +1,21 @@
+// Copyright Vladimir Prus 2004.
+// 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.hpp>
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#define BOOST_UTF8_BEGIN_NAMESPACE \
+     namespace boost { namespace archive { namespace detail {
+#define BOOST_UTF8_DECL
+#define BOOST_UTF8_END_NAMESPACE }}}
+#include "../../detail/utf8_codecvt_facet.cpp"
+#undef BOOST_UTF8_END_NAMESPACE
+#undef BOOST_UTF8_DECL
+#undef BOOST_UTF8_BEGIN_NAMESPACE
+
+#endif // BOOST_NO_STD_WSTREAMBUF
+
diff --git a/deal.II/contrib/boost/libs/serialization/src/void_cast.cpp b/deal.II/contrib/boost/libs/serialization/src/void_cast.cpp
new file mode 100644 (file)
index 0000000..ef8aa76
--- /dev/null
@@ -0,0 +1,354 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// void_cast.cpp: implementation of run-time casting of void pointers
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+// <gennadiy.rozental@tfn.com>
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+# pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <cassert>
+#include <cstddef> // NULL
+#ifdef BOOST_SERIALIZATION_LOG
+#include <iostream>
+#endif
+
+// STL
+#include <set>
+#include <functional>
+#include <algorithm>
+#include <cassert>
+
+// BOOST
+#define BOOST_SERIALIZATION_SOURCE
+#include <boost/serialization/singleton.hpp>
+
+#define BOOST_SERIALIZATION_SOURCE
+#include <boost/serialization/extended_type_info.hpp>
+#include <boost/serialization/void_cast.hpp>
+
+namespace boost { 
+namespace serialization {
+namespace void_cast_detail {
+
+// note that void_casters are keyed on value of
+// member extended type info records - NOT their
+// addresses.  This is necessary in order for the
+// void cast operations to work across dll and exe
+// module boundries.
+bool void_caster::operator<(const void_caster & rhs) const {
+    // include short cut to save time and eliminate
+    // problems when when base class aren't virtual
+    if(m_derived != rhs.m_derived){
+        if(*m_derived < *rhs.m_derived)
+            return true;
+        if(*rhs.m_derived < *m_derived)
+            return false;
+    }
+    // m_derived == rhs.m_derived
+    if(m_base != rhs.m_base)
+        return *m_base < *rhs.m_base;
+    else
+        return false;
+}
+
+struct void_caster_compare {
+    bool operator()(const void_caster * lhs, const void_caster * rhs) const {
+        return *lhs < *rhs;
+    }
+};
+
+typedef std::set<const void_caster *, void_caster_compare> set_type;
+typedef boost::serialization::singleton<set_type> void_caster_registry;
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+// implementation of shortcut void caster
+class void_caster_shortcut : public void_caster
+{
+    bool m_includes_virtual_base;
+
+    void const * 
+    vbc_upcast(
+        void const * const t
+    ) const;
+    void const *
+    vbc_downcast(
+        void const * const t
+    ) const;
+    virtual void const *
+    upcast(void const * const t) const{
+        if(m_includes_virtual_base)
+            return vbc_upcast(t);
+        return static_cast<const char *> ( t ) - m_difference;
+    }
+    virtual void const *
+    downcast(void const * const t) const{
+        if(m_includes_virtual_base)
+            return vbc_downcast(t);
+        return static_cast<const char *> ( t ) + m_difference;
+    }
+    virtual bool is_shortcut() const {
+        return true;
+    }
+public:
+    void_caster_shortcut(
+        extended_type_info const * derived,
+        extended_type_info const * base,
+        std::ptrdiff_t difference,
+        bool includes_virtual_base,
+        void_caster const * const parent
+    ) :
+        void_caster(derived, base, difference, parent),
+        m_includes_virtual_base(includes_virtual_base)
+    {
+        recursive_register(includes_virtual_base);
+    }
+    virtual ~void_caster_shortcut(){
+        recursive_unregister();
+    }
+};
+
+#ifdef BOOST_MSVC
+#  pragma warning(pop)
+#endif
+
+void const * 
+void_caster_shortcut::vbc_downcast(
+    void const * const t
+) const {
+    // try to find a chain that gives us what we want
+    const void_cast_detail::set_type & s
+        = void_cast_detail::void_caster_registry::get_const_instance();
+    void_cast_detail::set_type::const_iterator it;
+    for(it = s.begin(); it != s.end(); ++it){
+        // if the current candidate casts to the desired target type
+        if ((*it)->m_derived == m_derived){
+            // and if it's not us
+            if ((*it)->m_base != m_base){
+                // try to cast from the candidate base to our base
+                const void * t_new;
+                t_new = void_downcast(*(*it)->m_base, *m_base, t);
+                // if we were successful
+                if(NULL != t_new){
+                    // recast to our derived
+                    const void_caster * vc = *it;
+                    return vc->downcast(t_new);
+                }
+            }
+        }
+    }
+    return NULL;
+}
+
+void const * 
+void_caster_shortcut::vbc_upcast(
+    void const * const t
+) const {
+    // try to find a chain that gives us what we want
+    const void_cast_detail::set_type & s
+        = void_cast_detail::void_caster_registry::get_const_instance();
+    void_cast_detail::set_type::const_iterator it;
+    for(it = s.begin(); it != s.end(); ++it){
+        // if the current candidate casts from the desired base type
+        if((*it)->m_base == m_base){
+            // and if it's not us
+            if ((*it)->m_derived != m_derived){
+                // try to cast from the candidate derived to our our derived
+                const void * t_new;
+                t_new = void_upcast(*m_derived, *(*it)->m_derived, t);
+                if(NULL != t_new)
+                    return (*it)->upcast(t_new);
+            }
+        }
+    }
+    return NULL;
+}
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+// just used as a search key
+class void_caster_argument : public void_caster
+{
+    virtual void const *
+    upcast(void const * const /*t*/) const {
+        assert(false);
+        return NULL;
+    }
+    virtual void const *
+    downcast( void const * const /*t*/) const {
+        assert(false);
+        return NULL;
+    }
+public:
+    void_caster_argument(
+        extended_type_info const * derived,
+        extended_type_info const * base
+    ) :
+        void_caster(derived, base)
+    {}
+    virtual ~void_caster_argument(){};
+};
+
+#ifdef BOOST_MSVC
+#  pragma warning(pop)
+#endif
+
+// implementation of void caster base class
+BOOST_SERIALIZATION_DECL(void)
+void_caster::recursive_register(bool includes_virtual_base) const {
+    void_cast_detail::set_type & s
+        = void_cast_detail::void_caster_registry::get_mutable_instance();
+
+    #ifdef BOOST_SERIALIZATION_LOG
+    std::clog << "recursive_register\n";
+    std::clog << m_derived->get_debug_info();
+    std::clog << "<-";
+    std::clog << m_base->get_debug_info();
+    std::clog << "\n";
+    #endif
+
+    std::pair<void_cast_detail::set_type::const_iterator, bool> result;
+    result = s.insert(this);
+    assert(result.second);
+
+    // generate all implied void_casts.
+    void_cast_detail::set_type::const_iterator it;
+    for(it = s.begin(); it != s.end(); ++it){
+        if(* m_derived == * (*it)->m_base){
+            const void_caster_argument vca(
+                (*it)->m_derived, 
+                m_base
+            );
+            void_cast_detail::set_type::const_iterator i;
+            i = s.find(& vca);
+            if(i == s.end()){
+                new void_caster_shortcut(
+                    (*it)->m_derived, 
+                    m_base,
+                    m_difference + (*it)->m_difference,
+                    includes_virtual_base,
+                    this
+                );
+            }
+        }
+        if(* (*it)->m_derived == * m_base){
+            const void_caster_argument vca(
+                m_derived, 
+                (*it)->m_base
+            );
+            void_cast_detail::set_type::const_iterator i;
+            i = s.find(& vca);
+            if(i == s.end()){
+                new void_caster_shortcut(
+                    m_derived, 
+                    (*it)->m_base, 
+                    m_difference + (*it)->m_difference,
+                    includes_virtual_base,
+                    this
+                );
+            }
+        }
+    }
+}
+
+BOOST_SERIALIZATION_DECL(void)
+void_caster::recursive_unregister() const {
+    if(void_caster_registry::is_destroyed())
+        return;
+
+    #ifdef BOOST_SERIALIZATION_LOG
+    std::clog << "recursive_unregister\n";
+    std::clog << m_derived->get_debug_info();
+    std::clog << "<-";
+    std::clog << m_base->get_debug_info();
+    std::clog << "\n";
+    #endif
+
+    void_cast_detail::set_type & s 
+        = void_caster_registry::get_mutable_instance();
+
+    // delete all shortcuts which use this primitive
+    void_cast_detail::set_type::iterator it;
+    for(it = s.begin(); it != s.end();){
+        const void_caster * vc = *it;
+        if(vc == this){
+            s.erase(it++);
+        }
+        else
+        if(vc->m_parent == this){
+            s.erase(it);
+            delete vc;
+            it = s.begin();
+        }
+        else
+            it++;
+    }
+}
+
+} // namespace void_cast_detail
+
+// Given a void *, assume that it really points to an instance of one type
+// and alter it so that it would point to an instance of a related type.
+// Return the altered pointer. If there exists no sequence of casts that
+// can transform from_type to to_type, return a NULL.  
+BOOST_SERIALIZATION_DECL(void const *)  
+void_upcast(
+    extended_type_info const & derived,
+    extended_type_info const & base,
+    void const * const t
+){
+    // same types - trivial case
+    if (derived == base)
+        return t;
+
+    // check to see if base/derived pair is found in the registry
+    const void_cast_detail::set_type & s
+        = void_cast_detail::void_caster_registry::get_const_instance();
+    const void_cast_detail::void_caster_argument ca(& derived, & base);
+
+    void_cast_detail::set_type::const_iterator it;
+    it = s.find(& ca);
+    if (s.end() != it)
+        return (*it)->upcast(t);
+
+    return NULL;
+}
+
+BOOST_SERIALIZATION_DECL(void const *)  
+void_downcast(
+    extended_type_info const & derived,
+    extended_type_info const & base,
+    void const * const t
+){
+    // same types - trivial case
+    if (derived == base)
+        return t;
+
+    // check to see if base/derived pair is found in the registry
+    const void_cast_detail::set_type & s
+        = void_cast_detail::void_caster_registry::get_const_instance();
+    const void_cast_detail::void_caster_argument ca(& derived, & base);
+
+    void_cast_detail::set_type::const_iterator it;
+    it = s.find(&ca);
+    if (s.end() != it)
+        return(*it)->downcast(t);
+
+    return NULL;
+}
+
+} // namespace serialization
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/xml_archive_exception.cpp b/deal.II/contrib/boost/libs/serialization/src/xml_archive_exception.cpp
new file mode 100644 (file)
index 0000000..ad16bd9
--- /dev/null
@@ -0,0 +1,56 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// xml_archive_exception.cpp:
+
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+
+#include <exception>
+#include <cassert>
+#include <string>
+
+#include <boost/archive/xml_archive_exception.hpp>
+
+namespace boost {
+namespace archive {
+
+BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
+xml_archive_exception::xml_archive_exception(
+        exception_code c, 
+        const char * e1,
+        const char * e2
+    ) : 
+        archive_exception(other_exception, e1, e2)
+    {
+        m_msg = "programming error";
+        switch(c){
+        case xml_archive_parsing_error:
+            m_msg = "unrecognized XML syntax";
+            break;
+        case xml_archive_tag_mismatch:
+            m_msg = "XML start/end tag mismatch";
+            if(NULL != e1){
+                m_msg += " - ";
+                m_msg += e1;
+            }    
+            break;
+        case xml_archive_tag_name_error:
+            m_msg = "Invalid XML tag name";
+            break;
+        default:
+            assert(false);
+            break;
+        }
+    }
+
+} // archive
+} // boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/xml_grammar.cpp b/deal.II/contrib/boost/libs/serialization/src/xml_grammar.cpp
new file mode 100644 (file)
index 0000000..4f2c37c
--- /dev/null
@@ -0,0 +1,73 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// xml_grammar.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/impl/basic_xml_grammar.hpp>
+
+using namespace boost::spirit;
+
+#include <boost/config.hpp>
+
+// fixup for borland
+// The following code will be put into Boost.Config in a later revision
+#if ! defined(__SGI_STL_PORT) \
+&& defined(BOOST_RWSTD_VER) && BOOST_RWSTD_VER<=0x020101
+#include <string>
+namespace std {
+    template<>
+    inline string & 
+    string::replace (
+        char * first1, 
+        char * last1,
+        const char * first2,
+        const char * last2
+    ){
+        replace(first1-begin(),last1-first1,first2,last2-first2,0,last2-first2);
+        return *this;
+    }
+} // namespace std
+#endif
+
+namespace boost {
+namespace archive {
+
+typedef basic_xml_grammar<char> xml_grammar;
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// specific definitions for char based XML
+
+template<>
+void xml_grammar::init_chset(){
+    Char = chset_t("\x9\xA\xD\x20-\x7f\x80\x81-\xFF"); 
+    Letter = chset_t("\x41-\x5A\x61-\x7A\xC0-\xD6\xD8-\xF6\xF8-\xFF");
+    Digit = chset_t("0-9");
+    Extender = chset_t('\xB7');
+    Sch = chset_t("\x20\x9\xD\xA");
+    NameChar = Letter | Digit | chset_p("._:-") | Extender ;
+}
+
+} // namespace archive
+} // namespace boost
+
+#include "basic_xml_grammar.ipp"
+
+namespace boost {
+namespace archive {
+
+// explicit instantiation of xml for 8 bit characters
+template class basic_xml_grammar<char>;
+
+} // namespace archive
+} // namespace boost
+
diff --git a/deal.II/contrib/boost/libs/serialization/src/xml_iarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/xml_iarchive.cpp
new file mode 100644 (file)
index 0000000..6d0de77
--- /dev/null
@@ -0,0 +1,46 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// xml_iarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+
+// the following works around an issue between spirit 1.61 and borland.
+// it turns out the the certain spirit stuff must be defined before
+// certain parts of mpl.  including this here makes sure that happens
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+#if BOOST_WORKAROUND(__BORLANDC__, <= 0x560 )
+#include <boost/archive/impl/basic_xml_grammar.hpp>
+#endif
+
+#include <boost/archive/xml_iarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of xml stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_xml_iarchive.ipp>
+#include <boost/archive/impl/xml_iarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<naked_xml_iarchive>;
+template class basic_xml_iarchive<naked_xml_iarchive> ;
+template class xml_iarchive_impl<naked_xml_iarchive> ;
+
+template class detail::archive_serializer_map<xml_iarchive>;
+template class basic_xml_iarchive<xml_iarchive> ;
+template class xml_iarchive_impl<xml_iarchive> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/xml_oarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/xml_oarchive.cpp
new file mode 100644 (file)
index 0000000..88bcdd6
--- /dev/null
@@ -0,0 +1,32 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// xml_oarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_ARCHIVE_SOURCE
+#include <boost/archive/xml_oarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of xml stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_xml_oarchive.ipp>
+#include <boost/archive/impl/xml_oarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<xml_oarchive>;
+template class basic_xml_oarchive<xml_oarchive> ;
+template class xml_oarchive_impl<xml_oarchive> ;
+
+} // namespace archive
+} // namespace boost
diff --git a/deal.II/contrib/boost/libs/serialization/src/xml_wgrammar.cpp b/deal.II/contrib/boost/libs/serialization/src/xml_wgrammar.cpp
new file mode 100644 (file)
index 0000000..cbd3c7b
--- /dev/null
@@ -0,0 +1,157 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// xml_wgrammar.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/impl/basic_xml_grammar.hpp>
+
+using namespace boost::spirit;
+
+// fixup for RogueWave
+#include <boost/config.hpp>
+#if ! defined(__SGI_STL_PORT) \
+&& defined(BOOST_RWSTD_VER) && BOOST_RWSTD_VER<=0x020101
+#include <string>
+namespace std {
+    template<>
+    inline wstring & 
+    wstring::replace (
+        wchar_t * first1, 
+        wchar_t * last1,
+        const wchar_t * first2,
+        const wchar_t * last2
+    ){
+        replace(first1-begin(),last1-first1,first2,last2-first2,0,last2-first2);
+        return *this;
+    }
+} // namespace std
+#endif
+
+namespace boost {
+namespace archive {
+
+typedef basic_xml_grammar<wchar_t> xml_wgrammar;
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// specific definitions for wchar_t based XML
+
+template<>
+void xml_wgrammar::init_chset(){
+    Char = chset_t(
+        #if defined(__GNUC__) && defined(linux)
+            L"\x9\xA\xD\x20-\xD7FF\xE000-\xFFFD\x10000-\x10FFFF"
+        #else
+            L"\x9\xA\xD\x20-\xD7FF\xE000-\xFFFD"
+        #endif
+    );
+
+    Sch = chset_t(L"\x20\x9\xD\xA");
+
+    BaseChar = chset_t(
+        L"\x41-\x5A\x61-\x7A\xC0-\xD6\xD8-\xF6\xF8-\xFF\x100-\x131\x134-\x13E"
+        L"\x141-\x148\x14A-\x17E\x180-\x1C3\x1CD-\x1F0\x1F4-\x1F5\x1FA-\x217"
+        L"\x250-\x2A8\x2BB-\x2C1\x386\x388-\x38A\x38C\x38E-\x3A1\x3A3-\x3CE"
+        L"\x3D0-\x3D6\x3DA\x3DC\x3DE\x3E0\x3E2-\x3F3\x401-\x40C\x40E-\x44F"
+        L"\x451-\x45C\x45E-\x481\x490-\x4C4\x4C7-\x4C8\x4CB-\x4CC\x4D0-\x4EB"
+        L"\x4EE-\x4F5\x4F8-\x4F9\x531-\x556\x559\x561-\x586\x5D0-\x5EA"
+        L"\x5F0-\x5F2\x621-\x63A\x641-\x64A\x671-\x6B7\x6BA-\x6BE\x6C0-\x6CE"
+        L"\x6D0-\x6D3\x6D5\x6E5-\x6E6\x905-\x939\x93D\x958-\x961\x985-\x98C"
+        L"\x98F-\x990\x993-\x9A8\x9AA-\x9B0\x9B2\x9B6-\x9B9\x9DC-\x9DD"
+        L"\x9DF-\x9E1\x9F0-\x9F1\xA05-\xA0A\xA0F-\xA10\xA13-\xA28\xA2A-\xA30"
+        L"\xA32-\xA33\xA35-\xA36\xA38-\xA39\xA59-\xA5C\xA5E\xA72-\xA74"
+        L"\xA85-\xA8B\xA8D\xA8F-\xA91\xA93-\xAA8\xAAA-\xAB0\xAB2-\xAB3"
+        L"\xAB5-\xAB9\xABD\xAE0\xB05-\xB0C\xB0F-\xB10\xB13-\xB28\xB2A-\xB30"
+        L"\xB32-\xB33\xB36-\xB39\xB3D\xB5C-\xB5D\xB5F-\xB61\xB85-\xB8A"
+        L"\xB8E-\xB90\xB92-\xB95\xB99-\xB9A\xB9C\xB9E-\xB9F\xBA3-\xBA4"
+        L"\xBA8-\xBAA\xBAE-\xBB5\xBB7-\xBB9\xC05-\xC0C\xC0E-\xC10\xC12-\xC28"
+        L"\xC2A-\xC33\xC35-\xC39\xC60-\xC61\xC85-\xC8C\xC8E-\xC90\xC92-\xCA8"
+        L"\xCAA-\xCB3\xCB5-\xCB9\xCDE\xCE0-\xCE1\xD05-\xD0C\xD0E-\xD10"
+        L"\xD12-\xD28\xD2A-\xD39\xD60-\xD61\xE01-\xE2E\xE30\xE32-\xE33"
+        L"\xE40-\xE45\xE81-\xE82\xE84\xE87-\xE88\xE8A\xE8D\xE94-\xE97"
+        L"\xE99-\xE9F\xEA1-\xEA3\xEA5\xEA7\xEAA-\xEAB\xEAD-\xEAE\xEB0"
+        L"\xEB2-\xEB3\xEBD\xEC0-\xEC4\xF40-\xF47\xF49-\xF69\x10A0-\x10C5"
+        L"\x10D0-\x10F6\x1100\x1102-\x1103\x1105-\x1107\x1109\x110B-\x110C"
+        L"\x110E-\x1112\x113C\x113E\x1140\x114C\x114E\x1150\x1154-\x1155"
+        L"\x1159\x115F-\x1161\x1163\x1165\x1167\x1169\x116D-\x116E"
+        L"\x1172-\x1173\x1175\x119E\x11A8\x11AB\x11AE-\x11AF\x11B7-\x11B8"
+        L"\x11BA\x11BC-\x11C2\x11EB\x11F0\x11F9\x1E00-\x1E9B\x1EA0-\x1EF9"
+        L"\x1F00-\x1F15\x1F18-\x1F1D\x1F20-\x1F45\x1F48-\x1F4D\x1F50-\x1F57"
+        L"\x1F59\x1F5B\x1F5D\x1F5F-\x1F7D\x1F80-\x1FB4\x1FB6-\x1FBC\x1FBE"
+        L"\x1FC2-\x1FC4\x1FC6-\x1FCC\x1FD0-\x1FD3\x1FD6-\x1FDB\x1FE0-\x1FEC"
+        L"\x1FF2-\x1FF4\x1FF6-\x1FFC\x2126\x212A-\x212B\x212E\x2180-\x2182"
+        L"\x3041-\x3094\x30A1-\x30FA\x3105-\x312C\xAC00-\xD7A3"
+    );
+
+    Ideographic = chset_t(L"\x4E00-\x9FA5\x3007\x3021-\x3029");
+
+    Letter = BaseChar | Ideographic;
+
+    CombiningChar = chset_t(
+        L"\x0300-\x0345\x0360-\x0361\x0483-\x0486\x0591-\x05A1\x05A3-\x05B9"
+        L"\x05BB-\x05BD\x05BF\x05C1-\x05C2\x05C4\x064B-\x0652\x0670"
+        L"\x06D6-\x06DC\x06DD-\x06DF\x06E0-\x06E4\x06E7-\x06E8\x06EA-\x06ED"
+        L"\x0901-\x0903\x093C\x093E-\x094C\x094D\x0951-\x0954\x0962-\x0963"
+        L"\x0981-\x0983\x09BC\x09BE\x09BF\x09C0-\x09C4\x09C7-\x09C8"
+        L"\x09CB-\x09CD\x09D7\x09E2-\x09E3\x0A02\x0A3C\x0A3E\x0A3F"
+        L"\x0A40-\x0A42\x0A47-\x0A48\x0A4B-\x0A4D\x0A70-\x0A71\x0A81-\x0A83"
+        L"\x0ABC\x0ABE-\x0AC5\x0AC7-\x0AC9\x0ACB-\x0ACD\x0B01-\x0B03\x0B3C"
+        L"\x0B3E-\x0B43\x0B47-\x0B48\x0B4B-\x0B4D\x0B56-\x0B57\x0B82-\x0B83"
+        L"\x0BBE-\x0BC2\x0BC6-\x0BC8\x0BCA-\x0BCD\x0BD7\x0C01-\x0C03"
+        L"\x0C3E-\x0C44\x0C46-\x0C48\x0C4A-\x0C4D\x0C55-\x0C56\x0C82-\x0C83"
+        L"\x0CBE-\x0CC4\x0CC6-\x0CC8\x0CCA-\x0CCD\x0CD5-\x0CD6\x0D02-\x0D03"
+        L"\x0D3E-\x0D43\x0D46-\x0D48\x0D4A-\x0D4D\x0D57\x0E31\x0E34-\x0E3A"
+        L"\x0E47-\x0E4E\x0EB1\x0EB4-\x0EB9\x0EBB-\x0EBC\x0EC8-\x0ECD"
+        L"\x0F18-\x0F19\x0F35\x0F37\x0F39\x0F3E\x0F3F\x0F71-\x0F84"
+        L"\x0F86-\x0F8B\x0F90-\x0F95\x0F97\x0F99-\x0FAD\x0FB1-\x0FB7\x0FB9"
+        L"\x20D0-\x20DC\x20E1\x302A-\x302F\x3099\x309A"
+    );
+
+    Digit = chset_t(
+        L"\x0030-\x0039\x0660-\x0669\x06F0-\x06F9\x0966-\x096F\x09E6-\x09EF"
+        L"\x0A66-\x0A6F\x0AE6-\x0AEF\x0B66-\x0B6F\x0BE7-\x0BEF\x0C66-\x0C6F"
+        L"\x0CE6-\x0CEF\x0D66-\x0D6F\x0E50-\x0E59\x0ED0-\x0ED9\x0F20-\x0F29"
+    );
+
+    Extender = chset_t(
+        L"\x00B7\x02D0\x02D1\x0387\x0640\x0E46\x0EC6\x3005\x3031-\x3035"
+        L"\x309D-\x309E\x30FC-\x30FE"
+    );
+
+    NameChar =
+        Letter 
+        | Digit 
+        | L'.'
+        | L'-'
+        | L'_'
+        | L':'
+        | CombiningChar 
+        | Extender
+    ;
+}
+} // namespace archive
+} // namespace boost
+
+#include "basic_xml_grammar.ipp"
+
+namespace boost {
+namespace archive {
+
+// explicit instantiation of xml for wide characters
+template class basic_xml_grammar<wchar_t>;
+
+} // namespace archive
+} // namespace boost
+
+#endif
diff --git a/deal.II/contrib/boost/libs/serialization/src/xml_wiarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/xml_wiarchive.cpp
new file mode 100644 (file)
index 0000000..2e10947
--- /dev/null
@@ -0,0 +1,53 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// xml_wiarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#include <boost/detail/workaround.hpp>
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#define BOOST_WARCHIVE_SOURCE
+
+// the following works around an issue between spirit 1.61 and borland.
+// it turns out the the certain spirit stuff must be defined before
+// certain parts of mpl.  including this here makes sure that happens
+#if BOOST_WORKAROUND(__BORLANDC__, <= 0x560 )
+#include <boost/archive/impl/basic_xml_grammar.hpp>
+#endif
+
+#include <boost/archive/xml_wiarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of xml stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_xml_iarchive.ipp>
+#include <boost/archive/impl/xml_wiarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<naked_xml_wiarchive>;
+template class basic_xml_iarchive<naked_xml_wiarchive> ;
+template class xml_wiarchive_impl<naked_xml_wiarchive> ;
+
+template class detail::archive_serializer_map<xml_wiarchive>;
+template class basic_xml_iarchive<xml_wiarchive> ;
+template class xml_wiarchive_impl<xml_wiarchive> ;
+
+} // namespace archive
+} // namespace boost
+
+#endif // BOOST_NO_STD_WSTREAMBUF
diff --git a/deal.II/contrib/boost/libs/serialization/src/xml_woarchive.cpp b/deal.II/contrib/boost/libs/serialization/src/xml_woarchive.cpp
new file mode 100644 (file)
index 0000000..e71daaf
--- /dev/null
@@ -0,0 +1,35 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// xml_woarchive.cpp:
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+
+#define BOOST_WARCHIVE_SOURCE
+#include <boost/archive/xml_woarchive.hpp>
+#include <boost/archive/detail/archive_serializer_map.hpp>
+
+// explicitly instantiate for this type of text stream
+#include <boost/archive/impl/archive_serializer_map.ipp>
+#include <boost/archive/impl/basic_xml_oarchive.ipp>
+#include <boost/archive/impl/xml_woarchive_impl.ipp>
+
+namespace boost {
+namespace archive {
+
+template class detail::archive_serializer_map<xml_woarchive>;
+template class basic_xml_oarchive<xml_woarchive> ;
+template class xml_woarchive_impl<xml_woarchive> ;
+
+} // namespace archive
+} // namespace boost
+
+#endif // BOOST_NO_STD_WSTREAMBUF
diff --git a/deal.II/contrib/boost/libs/serialization/test/A.cpp b/deal.II/contrib/boost/libs/serialization/test/A.cpp
new file mode 100644 (file)
index 0000000..bd3e9fb
--- /dev/null
@@ -0,0 +1,222 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// A.cpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cassert>
+#include <cstdlib> // rand()
+#include <cmath>   // fabs()
+#include <cstddef> // size_t
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+    using ::fabs;
+    using ::size_t;
+}
+#endif
+
+#include <boost/detail/workaround.hpp>
+#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+#include <boost/archive/dinkumware.hpp>
+#endif
+
+#include "A.hpp"
+
+template<class S>
+void randomize(S &x)
+{
+    assert(0 == x.size());
+    for(;;){
+        unsigned int i = std::rand() % 27;
+        if(0 == i)
+            break;
+        x += static_cast<BOOST_DEDUCED_TYPENAME S::value_type>('a' - 1 + i);
+    }
+}
+
+template<class T>
+void accumulate(std::size_t & s, const T & t){
+    const char * tptr = (const char *)(& t);
+    unsigned int count = sizeof(t);
+    while(count-- > 0){
+        s += *tptr++;
+    }
+}
+
+A::operator std::size_t () const {
+    std::size_t retval = 0;
+    accumulate(retval, b);
+    #ifndef BOOST_NO_INT64_T
+    accumulate(retval, f);
+    accumulate(retval, g);
+    #endif
+    accumulate(retval, l);
+    accumulate(retval, m);
+    accumulate(retval, n);
+    accumulate(retval, o);
+    accumulate(retval, p);
+    accumulate(retval, q);
+    #ifndef BOOST_NO_CWCHAR
+    accumulate(retval, r);
+    #endif
+    accumulate(retval, c);
+    accumulate(retval, s);
+    accumulate(retval, t);
+    accumulate(retval, u);
+    accumulate(retval, v);
+    return retval;
+}
+
+#if defined(_MSC_VER)
+#pragma warning(push) // Save warning settings.
+#pragma warning(disable : 4244) // Disable possible loss of data warning
+
+#endif 
+A::A() :
+    b(true),
+    #ifndef BOOST_NO_INT64_T
+    f(std::rand() * std::rand()),
+    g(std::rand() * std::rand()),
+    #endif
+    l(static_cast<enum h>(std::rand() % 3)),
+    m(std::rand()),
+    n(std::rand()),
+    o(std::rand()),
+    p(std::rand()),
+    q(std::rand()),
+    #ifndef BOOST_NO_CWCHAR
+    r(std::rand()),
+    #endif
+    c(0xff & std::rand()),
+    s(0xff & std::rand()),
+    t(0xff & std::rand()),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand()),
+    x((double)std::rand())
+{
+    randomize(y);
+    #ifndef BOOST_NO_STD_WSTRING
+    randomize(z);
+    #endif
+}
+
+#if defined(_MSC_VER)
+#pragma warning(pop) // Restore warnings to previous state.
+#endif 
+
+bool A::operator==(const A &rhs) const
+{
+    if(b != rhs.b)
+        return false;
+    if(l != rhs.l)
+        return false;
+    #ifndef BOOST_NO_INT64_T
+    if(f != rhs.f)
+        return false;
+    if(g != rhs.g)
+        return false;
+    #endif
+    if(m != rhs.m)
+        return false;
+    if(n != rhs.n)
+        return false;
+    if(o != rhs.o)
+        return false;
+    if(p != rhs.p)
+        return false; 
+    if(q != rhs.q)
+        return false;
+    #ifndef BOOST_NO_CWCHAR
+    if(r != rhs.r)
+        return false; 
+    #endif
+    if(c != rhs.c)
+        return false;
+    if(s != rhs.s)
+        return false;
+    if(t != rhs.t)
+        return false;
+    if(u != rhs.u)
+        return false; 
+    if(v != rhs.v)
+        return false; 
+    if(w == 0 && std::fabs(rhs.w) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(std::fabs(rhs.w/w - 1.0) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(x == 0 && std::fabs(rhs.x - x) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(std::fabs(rhs.x/x - 1.0) > std::numeric_limits<float>::epsilon())
+        return false;
+    if(0 != y.compare(rhs.y))
+        return false;
+    #ifndef BOOST_NO_STD_WSTRING
+    if(0 != z.compare(rhs.z))
+        return false;
+    #endif      
+    return true;
+}
+
+bool A::operator!=(const A &rhs) const
+{
+    return ! (*this == rhs);
+}
+
+bool A::operator<(const A &rhs) const
+{
+    if(b != rhs.b)
+        return b < rhs.b;
+    #ifndef BOOST_NO_INT64_T
+    if(f != rhs.f)
+        return f < rhs.f;
+    if(g != rhs.g)
+        return g < rhs.g;
+    #endif
+    if(l != rhs.l )
+        return l < rhs.l;
+    if(m != rhs.m )
+        return m < rhs.m;
+    if(n != rhs.n )
+        return n < rhs.n;
+    if(o != rhs.o )
+        return o < rhs.o;
+    if(p != rhs.p )
+        return p < rhs.p;
+    if(q != rhs.q )
+        return q < rhs.q;
+    #ifndef BOOST_NO_CWCHAR
+    if(r != rhs.r )
+        return r < rhs.r;
+    #endif
+    if(c != rhs.c )
+        return c < rhs.c;
+    if(s != rhs.s )
+        return s < rhs.s;
+    if(t != rhs.t )
+        return t < rhs.t;
+    if(u != rhs.u )
+        return u < rhs.u; 
+    if(v != rhs.v )
+        return v < rhs.v;
+    if(w != rhs.w )
+        return w < rhs.w; 
+    if(x != rhs.x )
+        return x < rhs.x;
+    int i = y.compare(rhs.y);
+    if(i !=  0 )
+        return i < 0;
+    #ifndef BOOST_NO_STD_WSTRING
+    int j = z.compare(rhs.z);
+    if(j !=  0 )
+        return j < 0;
+    #endif
+    return false;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/A.hpp b/deal.II/contrib/boost/libs/serialization/test/A.hpp
new file mode 100644 (file)
index 0000000..25ea5f4
--- /dev/null
@@ -0,0 +1,158 @@
+#ifndef BOOST_SERIALIZATION_TEST_A_HPP
+#define BOOST_SERIALIZATION_TEST_A_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// A.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <ostream> // for friend output operators
+#include <cstddef> // size_t
+#include <string>
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::size_t;
+}
+#endif
+
+#include <boost/detail/workaround.hpp>
+#include <boost/limits.hpp>
+#include <boost/cstdint.hpp>
+
+#include <boost/serialization/access.hpp>
+
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+    #include <boost/detail/workaround.hpp>
+    #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+    #include <boost/archive/dinkumware.hpp>
+    #endif
+#endif
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/string.hpp>
+
+#include <boost/preprocessor/facilities/empty.hpp>
+
+#include "test_decl.hpp"
+
+#if defined(A_IMPORT)
+    #define DLL_DECL IMPORT_DECL
+#elif defined(A_EXPORT)
+    #define DLL_DECL EXPORT_DECL
+#else
+    #define DLL_DECL(x)
+#endif
+
+class DLL_DECL(BOOST_PP_EMPTY()) A
+{
+private:
+    friend class boost::serialization::access;
+    // note: from an aesthetic perspective, I would much prefer to have this
+    // defined out of line.  Unfortunately, this trips a bug in the VC 6.0
+    // compiler. So hold our nose and put it her to permit running of tests.
+    // mscvc 6.0 requires template functions to be implemented. For this
+    // reason we can't make abstract.
+    #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+        template<class Archive>
+        void serialize(
+            Archive &ar,
+            const unsigned int /* file_version */
+        ){
+            ar & BOOST_SERIALIZATION_NVP(b);
+            #ifndef BOOST_NO_INT64_T
+            ar & BOOST_SERIALIZATION_NVP(f);
+            ar & BOOST_SERIALIZATION_NVP(g);
+            #endif
+            #if BOOST_WORKAROUND(__BORLANDC__,  <= 0x551 )
+                int i;
+                if(BOOST_DEDUCED_TYPENAME Archive::is_saving::value){
+                    i = l;
+                    ar & BOOST_SERIALIZATION_NVP(i);
+                }
+                else{
+                    ar & BOOST_SERIALIZATION_NVP(i);
+                    l = i;
+                }
+            #else
+                ar & BOOST_SERIALIZATION_NVP(l);
+            #endif
+            ar & BOOST_SERIALIZATION_NVP(m);
+            ar & BOOST_SERIALIZATION_NVP(n);
+            ar & BOOST_SERIALIZATION_NVP(o);
+            ar & BOOST_SERIALIZATION_NVP(p);
+            ar & BOOST_SERIALIZATION_NVP(q);
+            #ifndef BOOST_NO_CWCHAR
+            ar & BOOST_SERIALIZATION_NVP(r);
+            #endif
+            ar & BOOST_SERIALIZATION_NVP(c);
+            ar & BOOST_SERIALIZATION_NVP(s);
+            ar & BOOST_SERIALIZATION_NVP(t);
+            ar & BOOST_SERIALIZATION_NVP(u);
+            ar & BOOST_SERIALIZATION_NVP(v);
+            ar & BOOST_SERIALIZATION_NVP(w);
+            ar & BOOST_SERIALIZATION_NVP(x);
+            ar & BOOST_SERIALIZATION_NVP(y);
+            #ifndef BOOST_NO_STD_WSTRING
+            ar & BOOST_SERIALIZATION_NVP(z);
+            #endif
+        }
+    #else
+        template<class Archive>
+        void serialize(
+            Archive &ar,
+            const unsigned int /* file_version */
+        );
+    #endif
+    bool b;
+    #ifndef BOOST_NO_INT64_T
+    boost::int64_t f;
+    boost::uint64_t g;
+    #endif
+    enum h {
+        i = 0,
+        j,
+        k
+    } l;
+    std::size_t m;
+    signed long n;
+    unsigned long o;
+    signed  short p;
+    unsigned short q;
+    #ifndef BOOST_NO_CWCHAR
+    wchar_t r;
+    #endif
+    char c;
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+    std::string y;
+    #ifndef BOOST_NO_STD_WSTRING
+    std::wstring z;
+    #endif
+public:
+    A();
+    bool operator==(const A &rhs) const;
+    bool operator!=(const A &rhs) const;
+    bool operator<(const A &rhs) const; // used by less
+    // hash function for class A
+    operator std::size_t () const;
+    friend std::ostream & operator<<(std::ostream & os, A const & a);
+};
+
+#undef DLL_DECL
+
+#endif // BOOST_SERIALIZATION_TEST_A_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/A.ipp b/deal.II/contrib/boost/libs/serialization/test/A.ipp
new file mode 100644 (file)
index 0000000..91d3254
--- /dev/null
@@ -0,0 +1,64 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// A.ipp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/detail/workaround.hpp>
+#if ! BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+
+#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+#include <boost/archive/dinkumware.hpp>
+#endif
+
+#include "A.hpp"
+
+template<class Archive>
+void A::serialize(
+    Archive &ar,
+    const unsigned int /* file_version */
+){
+    ar & BOOST_SERIALIZATION_NVP(b);
+    #ifndef BOOST_NO_INT64_T
+    ar & BOOST_SERIALIZATION_NVP(f);
+    ar & BOOST_SERIALIZATION_NVP(g);
+    #endif
+    #if BOOST_WORKAROUND(__BORLANDC__,  <= 0x551 )
+        int i;
+        if(BOOST_DEDUCED_TYPENAME Archive::is_saving::value){
+            i = l;
+            ar & BOOST_SERIALIZATION_NVP(i);
+        }
+        else{
+            ar & BOOST_SERIALIZATION_NVP(i);
+            l = i;
+        }
+    #else
+        ar & BOOST_SERIALIZATION_NVP(l);
+    #endif
+    ar & BOOST_SERIALIZATION_NVP(m);
+    ar & BOOST_SERIALIZATION_NVP(n);
+    ar & BOOST_SERIALIZATION_NVP(o);
+    ar & BOOST_SERIALIZATION_NVP(p);
+    ar & BOOST_SERIALIZATION_NVP(q);
+    #ifndef BOOST_NO_CWCHAR
+    ar & BOOST_SERIALIZATION_NVP(r);
+    #endif
+    ar & BOOST_SERIALIZATION_NVP(c);
+    ar & BOOST_SERIALIZATION_NVP(s);
+    ar & BOOST_SERIALIZATION_NVP(t);
+    ar & BOOST_SERIALIZATION_NVP(u);
+    ar & BOOST_SERIALIZATION_NVP(v);
+    ar & BOOST_SERIALIZATION_NVP(w);
+    ar & BOOST_SERIALIZATION_NVP(x);
+    ar & BOOST_SERIALIZATION_NVP(y);
+    #ifndef BOOST_NO_STD_WSTRING
+    ar & BOOST_SERIALIZATION_NVP(z);
+    #endif
+}
+
+#endif // workaround BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
diff --git a/deal.II/contrib/boost/libs/serialization/test/B.hpp b/deal.II/contrib/boost/libs/serialization/test/B.hpp
new file mode 100644 (file)
index 0000000..9d2f14d
--- /dev/null
@@ -0,0 +1,113 @@
+#ifndef BOOST_SERIALIZATION_TEST_B_HPP
+#define BOOST_SERIALIZATION_TEST_B_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// B.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstdlib> // for rand()
+#include <cmath>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+}
+#endif
+
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/base_object.hpp>
+
+#include "A.hpp"
+
+///////////////////////////////////////////////////////
+// Derived class test
+class B : public A
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        // write any base class info to the archive
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+
+        // write out members
+        ar << BOOST_SERIALIZATION_NVP(s);
+        ar << BOOST_SERIALIZATION_NVP(t);
+        ar << BOOST_SERIALIZATION_NVP(u);
+        ar << BOOST_SERIALIZATION_NVP(v);
+        ar << BOOST_SERIALIZATION_NVP(w);
+        ar << BOOST_SERIALIZATION_NVP(x);
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int file_version)
+    {
+        // read any base class info to the archive
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+        switch(file_version){
+        case 1:
+        case 2:
+            ar >> BOOST_SERIALIZATION_NVP(s);
+            ar >> BOOST_SERIALIZATION_NVP(t);
+            ar >> BOOST_SERIALIZATION_NVP(u);
+            ar >> BOOST_SERIALIZATION_NVP(v);
+            ar >> BOOST_SERIALIZATION_NVP(w);
+            ar >> BOOST_SERIALIZATION_NVP(x);
+        default:
+            break;
+        }
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+public:
+    B();
+    virtual ~B(){};
+    bool operator==(const B &rhs) const;
+};
+
+B::B() :
+    s(static_cast<signed char>(std::rand())),
+    t(static_cast<unsigned char>(std::rand())),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand() / std::rand()),
+    x((double)std::rand() / std::rand())
+{
+}
+
+BOOST_CLASS_VERSION(B, 2)
+
+inline bool B::operator==(const B &rhs) const
+{
+    return
+        A::operator==(rhs)
+        && s == rhs.s 
+        && t == rhs.t 
+        && u == rhs.u 
+        && v == rhs.v 
+        && std::fabs(w - rhs.w) <= std::numeric_limits<float>::round_error()
+        && std::fabs(x - rhs.x) <= std::numeric_limits<float>::round_error()
+    ;
+}
+
+#endif // BOOST_SERIALIZATION_TEST_B_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/C.hpp b/deal.II/contrib/boost/libs/serialization/test/C.hpp
new file mode 100644 (file)
index 0000000..8dc0a1b
--- /dev/null
@@ -0,0 +1,68 @@
+#ifndef BOOST_SERIALIZATION_TEST_A_HPP
+#define BOOST_SERIALIZATION_TEST_A_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// C.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/config.hpp>
+#include <boost/serialization/traits.hpp>
+#include <boost/serialization/split.hpp>
+
+#include "B.hpp"
+
+///////////////////////////////////////////////////////
+// Contained class
+class C
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void save(Archive &ar, boost::archive::version_type file_version) const;
+    template<class Archive>
+    void load(Archive & ar, boost::archive::version_type file_version);
+    BOOST_SERIALIZATION_MEMBER_SPLIT()
+    B b;
+public:
+    bool operator==(const C &rhs) const;
+};
+
+BOOST_CLASS_VERSION(C, 1)
+
+inline bool C::operator==(const C &rhs) const
+{
+    return b == rhs.b;
+}
+
+template<class Archive>
+inline void save(Archive &ar, boost::archive::version_type file_version) const
+{
+    ar << b;
+}
+
+template<class Archive>
+inline void load(Archive & ar, boost::archive::version_type file_version){
+{
+    switch(file_version){
+    case 1:
+        ar >> b;
+        break;
+    case 2:
+    default:
+        assert(false);
+        break;
+    }
+}
+
+#endif // BOOST_SERIALIZATION_TEST_C_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/D.hpp b/deal.II/contrib/boost/libs/serialization/test/D.hpp
new file mode 100644 (file)
index 0000000..972acee
--- /dev/null
@@ -0,0 +1,88 @@
+#ifndef BOOST_SERIALIZATION_TEST_D_HPP
+#define BOOST_SERIALIZATION_TEST_D_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// D.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstddef> // NULL
+
+#include "test_tools.hpp"
+#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/serialization/throw_exception.hpp>
+#include <boost/serialization/split_member.hpp>
+
+#include "B.hpp"
+
+///////////////////////////////////////////////////////
+// Contained class with multiple identical pointers
+class D
+{
+private:
+    friend class boost::serialization::access;
+    B *b1;
+    B *b2;
+    template<class Archive>
+    void save(Archive &ar, const unsigned int file_version) const{
+        ar << BOOST_SERIALIZATION_NVP(b1);
+        ar << BOOST_SERIALIZATION_NVP(b2);
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int file_version){
+        BOOST_TRY {
+            ar >> boost::serialization::make_nvp("b", b1);
+            ar >> boost::serialization::make_nvp("b", b2);
+        }
+        BOOST_CATCH (...){
+            // eliminate invalid pointers
+            b1 = NULL;
+            b2 = NULL;
+            BOOST_FAIL( "multiple identical pointers failed to load" );
+        }
+        BOOST_CATCH_END
+        // check that loading was correct
+        BOOST_CHECK(b1 == b2);
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+public:
+    D();
+    ~D();
+    bool operator==(const D &rhs) const;
+};
+
+BOOST_CLASS_VERSION(D, 3)
+
+D::D()
+{
+    b1 = new B();
+    b2 = b1;
+}
+
+D::~D()
+{
+    delete b1;
+}
+
+bool D::operator==(const D &rhs) const
+{
+    if(! (*b1 == *(rhs.b1)) )
+        return false;   
+    if(! (*b2 == *(rhs.b2)) )
+        return false;
+    return true;
+}
+
+#endif // BOOST_SERIALIZATION_TEST_D_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/J.hpp b/deal.II/contrib/boost/libs/serialization/test/J.hpp
new file mode 100644 (file)
index 0000000..7b4c2f8
--- /dev/null
@@ -0,0 +1,51 @@
+#ifndef BOOST_SERIALIZATION_TEST_J_HPP
+#define BOOST_SERIALIZATION_TEST_J_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// J.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/base_object.hpp>
+
+#include "A.hpp"
+
+///////////////////////////////////////////////////////
+// class with a member which refers to itself
+class J : public A
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(
+        Archive &ar,
+        const unsigned int /* file_version */
+    ){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+        ar & BOOST_SERIALIZATION_NVP(j);
+    }
+public:
+    bool operator==(const J &rhs) const;
+    J *j;
+    J(J *_j) : j(_j) {}
+    J() : j(NULL){}
+};
+
+BOOST_CLASS_VERSION(J, 6)
+
+bool J::operator==(const J &rhs) const
+{
+    return static_cast<const A &>(*this) == static_cast<const A &>(rhs);
+}
+
+#endif // BOOST_SERIALIZATION_TEST_J_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/Jamfile.v2 b/deal.II/contrib/boost/libs/serialization/test/Jamfile.v2
new file mode 100644 (file)
index 0000000..b3cd598
--- /dev/null
@@ -0,0 +1,160 @@
+# Boost serialization Library test Jamfile
+
+#  (C) Copyright Robert Ramey 2002-2004.
+#  Use, modification, and distribution are subject to 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)
+#
+
+project libs/serialization/test
+    : id serialization_test
+    ;
+
+# import rules from the boost serialization test
+# import ../util/test : test-bsl-run-no-lib ;
+import ../util/test :
+    run-template
+    run-invoke
+    run-winvoke
+    test-bsl-run-no-lib
+    test-bsl-run
+    test-bsl-run_archive
+    test-bsl-run_files
+    test-bsl-run_polymorphic_archive
+;
+
+BOOST_ARCHIVE_LIST = [ modules.peek : BOOST_ARCHIVE_LIST ] ;
+
+lib dll_a_lib 
+    : 
+        dll_a.cpp
+        ../build//boost_serialization
+    : 
+        <link>shared 
+    ;
+
+lib dll_base_lib 
+    : 
+        dll_base.cpp
+        ../build//boost_serialization
+    : 
+        <link>shared 
+    ;
+    
+lib dll_derived2_lib
+    :
+        dll_derived2.cpp 
+        dll_base_lib
+        ../build//boost_serialization
+    : 
+        <link>shared
+    ;
+
+lib dll_polymorphic_derived2_lib
+    :
+        polymorphic_derived2.cpp 
+        ../build//boost_serialization
+    : 
+        <link>shared
+    ;
+
+test-suite "serialization" :
+     [ test-bsl-run_files test_array : A ]
+     [ test-bsl-run_files test_binary ]
+     [ test-bsl-run_files test_bitset ]
+     [ test-bsl-run_files test_complex ]
+     [ test-bsl-run_files test_contained_class : A ]
+     [ test-bsl-run_files test_cyclic_ptrs : A ]
+     [ test-bsl-run_files test_delete_pointer ]
+     [ test-bsl-run_files test_deque : A ]
+     [ test-bsl-run_files test_derived ]
+     [ test-bsl-run_files test_derived_class : A ]
+     [ test-bsl-run_files test_derived_class_ptr : A ]
+     [ test-bsl-run_files test_diamond ]
+     [ test-bsl-run_files test_exported : polymorphic_base ]
+     [ test-bsl-run_files test_class_info_load ]
+     [ test-bsl-run_files test_class_info_save ]
+     [ test-bsl-run_files test_object ]
+     [ test-bsl-run_files test_primitive ]
+     [ test-bsl-run_files test_list : A ]
+     [ test-bsl-run_files test_list_ptrs : A ]
+     [ test-bsl-run_files test_map : A ]
+     [ test-bsl-run_files test_mi ]
+     [ test-bsl-run_files test_multiple_ptrs : A ]
+     [ test-bsl-run_files test_multiple_inheritance ]
+     [ test-bsl-run_files test_no_rtti : polymorphic_base polymorphic_derived1 ]
+     [ test-bsl-run_files test_non_intrusive ]
+     [ test-bsl-run_files test_non_default_ctor ]
+     [ test-bsl-run_files test_non_default_ctor2 ]
+     [ test-bsl-run_files test_null_ptr ]
+     [ test-bsl-run_files test_nvp : A ]
+     [ test-bsl-run_files test_recursion : A ]
+     [ test-bsl-run_files test_registered ]
+     [ test-bsl-run_files test_set : A ]
+     [ test-bsl-run_files test_simple_class : A ]
+     [ test-bsl-run_files test_simple_class_ptr : A ]
+     [ test-bsl-run_files test_split ]
+     [ test-bsl-run_files test_tracking ]
+     [ test-bsl-run_files test_unregistered ]
+     [ test-bsl-run_files test_valarray ]
+     [ test-bsl-run_files test_variant : A ]
+     [ test-bsl-run_files test_vector : A ]
+     [ test-bsl-run_files test_new_operator : A ]
+     [ test-bsl-run_files test_optional ]
+     [ test-bsl-run_files test_shared_ptr ]
+     [ test-bsl-run_files test_shared_ptr_multi_base ]
+     [ test-bsl-run_files test_shared_ptr_132 ]
+     [ test-bsl-run_polymorphic_archive test_polymorphic : test_polymorphic_A A ]
+     [ test-bsl-run_polymorphic_archive test_polymorphic2 : test_polymorphic2imp ]
+    ;
+
+if ! $(BOOST_ARCHIVE_LIST) {
+    test-suite "serialization2" : 
+        [ test-bsl-run test_dll_exported : : dll_polymorphic_derived2_lib : <runtime-link>shared ]
+        [ test-bsl-run test_dll_simple : : dll_a_lib : <runtime-link>shared ]
+        [ compile test_dll_plugin.cpp ]
+        [ test-bsl-run test_private_ctor ]
+        [ test-bsl-run test_reset_object_address : A ]
+        [ test-bsl-run test_void_cast ]
+        [ test-bsl-run test_mult_archive_types ]
+        
+        [ test-bsl-run-no-lib test_iterators ]
+        [ test-bsl-run-no-lib test_iterators_base64 ]
+           [ test-bsl-run-no-lib test_inclusion ]
+        [ test-bsl-run-no-lib test_smart_cast ]
+        
+        [ test-bsl-run-no-lib test_utf8_codecvt 
+            : ../src/utf8_codecvt_facet
+            : <dependency>../../config/test/all//BOOST_NO_STD_WSTREAMBUF
+        ]
+        [ test-bsl-run-no-lib test_codecvt_null 
+            : ../src/codecvt_null 
+            : <dependency>../../config/test/all//BOOST_NO_STD_WSTREAMBUF
+        ]
+
+        # should fail compilation
+        [ compile-fail test_not_serializable.cpp ]
+        [ compile-fail test_traits_fail.cpp ]
+        [ compile-fail test_const_load_fail1.cpp ]
+        [ compile-fail test_const_load_fail2.cpp ]
+        [ compile-fail test_const_load_fail3.cpp ]
+        [ compile-fail test_const_load_fail1_nvp.cpp ]
+        [ compile-fail test_const_load_fail2_nvp.cpp ]
+        [ compile-fail test_const_load_fail3_nvp.cpp ]
+        [ compile-fail test_check.cpp ]
+
+        # should compile with a warning message
+        [ compile test_static_warning.cpp ]
+        [ compile test_const_save_warn1.cpp ]
+        [ compile test_const_save_warn2.cpp ]
+        [ compile test_const_save_warn3.cpp ]
+        # note - library unable to detect these errors for now
+        #[ compile test_const_save_warn1_nvp.cpp ]
+        #[ compile test_const_save_warn2_nvp.cpp ]
+        #[ compile test_const_save_warn3_nvp.cpp ]
+        
+        # should compile
+        [ compile test_traits_pass.cpp ]
+        [ compile test_const_pass.cpp ]
+    ;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/base.hpp b/deal.II/contrib/boost/libs/serialization/test/base.hpp
new file mode 100644 (file)
index 0000000..38c69f7
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef BOOST_SERIALIZATION_TEST_BASE_HPP
+#define BOOST_SERIALIZATION_TEST_BASE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// base.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/assume_abstract.hpp>
+#include <boost/preprocessor/facilities/empty.hpp>
+
+#include "test_decl.hpp"
+
+#if defined(BASE_IMPORT)
+    #define DLL_DECL IMPORT_DECL
+#elif defined(BASE_EXPORT)
+    #define DLL_DECL EXPORT_DECL
+#else
+    #define DLL_DECL(x)
+#endif
+
+class DLL_DECL(BOOST_PP_EMPTY()) base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */);
+public:
+    virtual ~base(){};
+};
+
+BOOST_SERIALIZATION_ASSUME_ABSTRACT(base)
+
+#undef  DLL_DECL
+
+#endif // BOOST_SERIALIZATION_TEST_BASE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/binary_archive.hpp
new file mode 100644 (file)
index 0000000..b4dc63e
--- /dev/null
@@ -0,0 +1,24 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+// binary_archive
+#include <boost/archive/binary_oarchive.hpp>
+typedef boost::archive::binary_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+
+#include <boost/archive/binary_iarchive.hpp>
+typedef boost::archive::binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+
+//#define TEST_STREAM_FLAGS (std::ios::binary | std::ios::in | std::ios::out)
+#define TEST_STREAM_FLAGS (std::ios::binary)
diff --git a/deal.II/contrib/boost/libs/serialization/test/binary_warchive.hpp b/deal.II/contrib/boost/libs/serialization/test/binary_warchive.hpp
new file mode 100644 (file)
index 0000000..929f3a3
--- /dev/null
@@ -0,0 +1,14 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// binary_warchive
+#include <boost/archive/binary_woarchive.hpp>
+typedef boost::archive::binary_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/binary_wiarchive.hpp>
+typedef boost::archive::binary_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
+#define TEST_STREAM_FLAGS std::wios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/test/derived2.hpp b/deal.II/contrib/boost/libs/serialization/test/derived2.hpp
new file mode 100644 (file)
index 0000000..58a65a9
--- /dev/null
@@ -0,0 +1,50 @@
+#ifndef BOOST_SERIALIZATION_TEST_DERIVED2_HPP
+#define BOOST_SERIALIZATION_TEST_DERIVED2_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// derived2.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/access.hpp>
+
+#define BASE_IMPORT
+#include "base.hpp"
+
+#include "test_decl.hpp"
+
+#if defined(DERIVED2_IMPORT)
+    #define DLL_DECL IMPORT_DECL
+#elif defined(DERIVED2_EXPORT)
+    #define DLL_DECL EXPORT_DECL
+#else
+    #define DLL_DECL(x)
+#endif
+
+class DLL_DECL(BOOST_PP_EMPTY()) derived2 : 
+    public base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */);
+public:
+    ~derived2(){}
+};
+
+#undef DLL_DECL
+
+// MWerks users can do this to make their code work
+BOOST_SERIALIZATION_MWERKS_BASE_AND_DERIVED(base, derived2)
+
+#endif // BOOST_SERIALIZATION_TEST_DERIVED2_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/dll_a.cpp b/deal.II/contrib/boost/libs/serialization/test/dll_a.cpp
new file mode 100644 (file)
index 0000000..33c6dc3
--- /dev/null
@@ -0,0 +1,48 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// dll_a.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// Build a dll which contains the serialization for a class A
+// used in testing distribution of serialization code in DLLS
+
+#define A_EXPORT
+#include "A.hpp"
+#include "A.ipp"
+#include "A.cpp"
+
+// instantiate code for text archives
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
+template
+EXPORT_DECL(void) A::serialize(
+    boost::archive::text_oarchive &ar,
+    const unsigned int /* file_version */
+);
+template
+EXPORT_DECL(void) A::serialize(
+    boost::archive::text_iarchive &ar,
+    const unsigned int /* file_version */
+);
+
+// instantiate code for polymorphic archives
+
+#include <boost/archive/polymorphic_oarchive.hpp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+template
+EXPORT_DECL(void) A::serialize(
+    boost::archive::polymorphic_oarchive &ar,
+    const unsigned int /* file_version */
+);
+template
+EXPORT_DECL(void) A::serialize(
+    boost::archive::polymorphic_iarchive &ar,
+    const unsigned int /* file_version */
+);
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/dll_base.cpp b/deal.II/contrib/boost/libs/serialization/test/dll_base.cpp
new file mode 100644 (file)
index 0000000..e33fa5d
--- /dev/null
@@ -0,0 +1,55 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// dll_base.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// Build a dll which contains the serialization for a class A
+// used in testing distribution of serialization code in DLLS
+#include <boost/serialization/export.hpp>
+
+#define BASE_EXPORT
+#include "base.hpp"
+
+template<class Archive>
+void base::serialize(
+    Archive &ar,
+    const unsigned int /* file_version */){
+}
+
+// for some reason this is required at least by MSVC
+// given that its declared virtual .. = 0;  This 
+// seems wrong to me but here it is.
+//polymorphic_base::~polymorphic_base(){}
+
+// instantiate code for text archives
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
+// instantiate code for polymorphic archives
+#include <boost/archive/polymorphic_oarchive.hpp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+// note: BOOST_CLASS_EXPORT cannot be used to instantiate
+// serialization code for an abstract base class.  So use
+// explicit instantiation in this case.
+//BOOST_CLASS_EXPORT(polymorphic_base)
+
+template EXPORT_DECL(void) base::serialize(
+    boost::archive::text_oarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) base::serialize(
+    boost::archive::text_iarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) base::serialize(
+    boost::archive::polymorphic_oarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) base::serialize(
+    boost::archive::polymorphic_iarchive & ar,
+    const unsigned int version
+);
diff --git a/deal.II/contrib/boost/libs/serialization/test/dll_derived2.cpp b/deal.II/contrib/boost/libs/serialization/test/dll_derived2.cpp
new file mode 100644 (file)
index 0000000..4065c3d
--- /dev/null
@@ -0,0 +1,54 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// dll_derived2.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// Build a dll which contains the serialization for a class A
+// used in testing distribution of serialization code in DLLS
+
+#include <boost/serialization/nvp.hpp>
+
+#define DERIVED2_EXPORT
+#include "derived2.hpp"
+
+template<class Archive>
+void derived2::serialize(
+    Archive &ar, 
+    const unsigned int /* file_version */
+){
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+}
+
+// instantiate code for text archives
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
+template EXPORT_DECL(void) derived2::serialize(
+    boost::archive::text_oarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) derived2::serialize(
+    boost::archive::text_iarchive & ar,
+    const unsigned int version
+);
+
+#include <boost/archive/polymorphic_oarchive.hpp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+template EXPORT_DECL(void) derived2::serialize(
+    boost::archive::polymorphic_oarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) derived2::serialize(
+    boost::archive::polymorphic_iarchive & ar,
+    const unsigned int version
+);
+
+// note: export has to be AFTER #includes for all archive classes
+
+#include <boost/serialization/factory.hpp>
+BOOST_SERIALIZATION_FACTORY_0(derived2)
+BOOST_CLASS_EXPORT(derived2)
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_array_binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_array_binary_archive.hpp
new file mode 100644 (file)
index 0000000..5097433
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_binary_oarchive.hpp>
+typedef boost::archive::polymorphic_binary_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_binary_iarchive.hpp>
+typedef boost::archive::polymorphic_binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS std::ios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_base.cpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_base.cpp
new file mode 100644 (file)
index 0000000..ffe8b16
--- /dev/null
@@ -0,0 +1,21 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_base.cpp   
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/export.hpp>
+#include "polymorphic_base.hpp"
+
+BOOST_CLASS_EXPORT_IMPLEMENT(polymorphic_base)
+
+const char * polymorphic_base::get_key() const{
+    return
+        boost::serialization::type_info_implementation<
+            polymorphic_base
+        >::type::get_const_instance().get_key();
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_base.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_base.hpp
new file mode 100644 (file)
index 0000000..b1493cf
--- /dev/null
@@ -0,0 +1,51 @@
+#ifndef POLYMORPHIC_BASE_HPP
+#define POLYMORPHIC_BASE_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_base.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/assume_abstract.hpp>
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/extended_type_info_no_rtti.hpp>
+
+class polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(
+        Archive & /* ar */, 
+        const unsigned int /* file_version */
+    ){}
+public:
+    // note that since this class uses the "no_rtti"
+    // extended_type_info implementation, it MUST
+    // implement this function
+    virtual const char * get_key() const = 0;
+    virtual ~polymorphic_base(){};
+};
+
+BOOST_SERIALIZATION_ASSUME_ABSTRACT(polymorphic_base)
+
+// the no_rtti system requires this !!!
+BOOST_CLASS_EXPORT_KEY(polymorphic_base)
+
+BOOST_CLASS_TYPE_INFO(
+    polymorphic_base,
+    boost::serialization::extended_type_info_no_rtti<polymorphic_base>
+)
+
+#endif // POLYMORPHIC_BASE_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_binary_archive.hpp
new file mode 100644 (file)
index 0000000..5097433
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_binary_oarchive.hpp>
+typedef boost::archive::polymorphic_binary_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_binary_iarchive.hpp>
+typedef boost::archive::polymorphic_binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+#define TEST_STREAM_FLAGS std::ios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived1.cpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived1.cpp
new file mode 100644 (file)
index 0000000..202f444
--- /dev/null
@@ -0,0 +1,23 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_derived1.cpp   
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/export.hpp>
+
+#include "polymorphic_derived1.hpp"
+
+const char * polymorphic_derived1::get_key() const {
+    return 
+        boost::serialization::type_info_implementation<
+            polymorphic_derived1
+        >::type::get_const_instance().get_key();
+}
+
+BOOST_CLASS_EXPORT_IMPLEMENT(polymorphic_derived1)
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived1.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived1.hpp
new file mode 100644 (file)
index 0000000..f4c83b2
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef POLYMORPHIC_DERIVED1_HPP
+#define POLYMORPHIC_DERIVED1_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_derived1.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/extended_type_info_no_rtti.hpp>
+
+#include "polymorphic_base.hpp"
+
+class polymorphic_derived1 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int  /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+public:
+    virtual const char * get_key() const ;
+};
+
+BOOST_CLASS_EXPORT_KEY(polymorphic_derived1)
+
+BOOST_CLASS_TYPE_INFO(
+    polymorphic_derived1,
+    extended_type_info_no_rtti<polymorphic_derived1>
+)
+
+#endif // POLYMORPHIC_DERIVED1_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived2.cpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived2.cpp
new file mode 100644 (file)
index 0000000..e7c6a15
--- /dev/null
@@ -0,0 +1,65 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_derived2.cpp   
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/extended_type_info_no_rtti.hpp>
+#include <boost/serialization/export.hpp>
+
+#define POLYMORPHIC_DERIVED2_EXPORT
+#include "polymorphic_derived2.hpp"
+
+template<class Archive>
+void polymorphic_derived2::serialize(
+    Archive &ar, 
+    const unsigned int /* file_version */
+){
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+}
+
+// instantiate code for text archives
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
+template EXPORT_DECL(void) polymorphic_derived2::serialize(
+    boost::archive::text_oarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) polymorphic_derived2::serialize(
+    boost::archive::text_iarchive & ar,
+    const unsigned int version
+);
+
+// instantiate code for polymorphic archives
+#include <boost/archive/polymorphic_iarchive.hpp>
+#include <boost/archive/polymorphic_oarchive.hpp>
+
+template EXPORT_DECL(void) polymorphic_derived2::serialize(
+    boost::archive::polymorphic_oarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) polymorphic_derived2::serialize(
+    boost::archive::polymorphic_iarchive & ar,
+    const unsigned int version
+);
+
+// MWerks users can do this to make their code work
+BOOST_SERIALIZATION_MWERKS_BASE_AND_DERIVED(polymorphic_base, polymorphic_derived2)
+
+// note: export has to be AFTER #includes for all archive classes
+BOOST_CLASS_EXPORT_IMPLEMENT(polymorphic_derived2)
+
+#if 0
+#include <boost/serialization/factory.hpp>
+BOOST_SERIALIZATION_FACTORY_0(polymorphic_derived2)
+
+template
+EXPORT_DECL(polymorphic_derived2 *)
+boost::serialization::factory<polymorphic_derived2, 0>(std::va_list ap);
+#endif
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived2.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_derived2.hpp
new file mode 100644 (file)
index 0000000..47982e3
--- /dev/null
@@ -0,0 +1,69 @@
+#ifndef POLYMORPHIC_DERIVED2_HPP
+#define POLYMORPHIC_DERIVED2_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// polymorphic_derived2.hpp    simple class test
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/extended_type_info_typeid.hpp>
+
+#include <boost/preprocessor/empty.hpp>
+
+#include "polymorphic_base.hpp"
+
+#include "test_decl.hpp"
+
+#if defined(POLYMORPHIC_DERIVED2_IMPORT)
+    #define DLL_DECL IMPORT_DECL
+#elif defined(POLYMORPHIC_DERIVED2_EXPORT)
+    #define DLL_DECL EXPORT_DECL
+#else
+    #define DLL_DECL(x)
+#endif
+
+class DLL_DECL(BOOST_PP_EMPTY()) polymorphic_derived2 : 
+    public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(
+        Archive &ar, 
+        const unsigned int /* file_version */
+    );
+    virtual const char * get_key() const {
+        return "polymorphic_derived2";
+    }
+};
+
+// we use this because we want to assign a key to this type
+// but we don't want to explicitly instantiate code every time
+// we do so!!!.  If we don't do this, we end up with the same
+// code in BOTH the DLL which implements polymorphic_derived2
+// as well as the main program.
+BOOST_CLASS_EXPORT_KEY(polymorphic_derived2)
+
+// note the mixing of type_info systems is supported.
+BOOST_CLASS_TYPE_INFO(
+    polymorphic_derived2,
+    boost::serialization::extended_type_info_typeid<polymorphic_derived2>
+)
+
+#undef DLL_DECL
+
+#endif // POLYMORPHIC_DERIVED2_HPP
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_text_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_text_archive.hpp
new file mode 100644 (file)
index 0000000..adf2e00
--- /dev/null
@@ -0,0 +1,12 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_text_oarchive.hpp>
+typedef boost::archive::polymorphic_text_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_text_iarchive.hpp>
+typedef boost::archive::polymorphic_text_iarchive test_iarchive;
+typedef std::ifstream test_istream;
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_text_warchive.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_text_warchive.hpp
new file mode 100644 (file)
index 0000000..7bca23b
--- /dev/null
@@ -0,0 +1,17 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STD_WSTREAMBUF
+#error "wide char i/o not supported on this platform"
+#else
+#include <boost/archive/polymorphic_text_woarchive.hpp>
+typedef boost::archive::polymorphic_text_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/polymorphic_text_wiarchive.hpp>
+typedef boost::archive::polymorphic_text_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
+#endif
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_xml_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_xml_archive.hpp
new file mode 100644 (file)
index 0000000..163cb10
--- /dev/null
@@ -0,0 +1,12 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_xml_oarchive.hpp>
+typedef boost::archive::polymorphic_xml_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/polymorphic_xml_iarchive.hpp>
+typedef boost::archive::polymorphic_xml_iarchive test_iarchive;
+typedef std::ifstream test_istream;
diff --git a/deal.II/contrib/boost/libs/serialization/test/polymorphic_xml_warchive.hpp b/deal.II/contrib/boost/libs/serialization/test/polymorphic_xml_warchive.hpp
new file mode 100644 (file)
index 0000000..581ec16
--- /dev/null
@@ -0,0 +1,12 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+#include <boost/archive/polymorphic_xml_woarchive.hpp>
+typedef boost::archive::polymorphic_xml_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/polymorphic_xml_wiarchive.hpp>
+typedef boost::archive::polymorphic_xml_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
diff --git a/deal.II/contrib/boost/libs/serialization/test/portable_binary_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/portable_binary_archive.hpp
new file mode 100644 (file)
index 0000000..ce91331
--- /dev/null
@@ -0,0 +1,31 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
+// Use, modification and distribution is subject to 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)
+
+// See http://www.boost.org for updates, documentation, and revision history.
+// file includes for testing a custom archive.
+// as an example this tests the portable binary archive
+
+#include <fstream>
+
+// #include output archive header
+#include "../example/portable_binary_oarchive.hpp"
+// define output archive class to be used 
+typedef portable_binary_oarchive test_oarchive;
+// and corresponding stream
+typedef std::ofstream test_ostream;
+
+// repeat the above for correspondng input archive
+#include "../example/portable_binary_iarchive.hpp"
+typedef portable_binary_iarchive test_iarchive;
+typedef std::ifstream test_istream;
+
+// since this archive class isn't compiled into the 
+// boost serialization library, include this here
+// so that things get instantiated
+#include "../example/portable_binary_oarchive.cpp"
+#include "../example/portable_binary_iarchive.cpp"
+
+// and stream open flags
+#define TEST_STREAM_FLAGS std::ios::binary
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_array.cpp b/deal.II/contrib/boost/libs/serialization/test/test_array.cpp
new file mode 100644 (file)
index 0000000..49a58c1
--- /dev/null
@@ -0,0 +1,124 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_array.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef>
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/archive/archive_exception.hpp>
+#include <boost/array.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+struct array_equal_to //: public std::binary_function<T, T, bool>
+{
+template<class T, class U>
+    bool operator()(const T & _Left, const U & _Right) const
+    {
+        // consider alignment
+        int count_left = sizeof(_Left) /    (
+            static_cast<const char *>(static_cast<const void *>(&_Left[1])) 
+            - static_cast<const char *>(static_cast<const void *>(&_Left[0]))
+        );
+        int count_right = sizeof(_Right) /  (
+            static_cast<const char *>(static_cast<const void *>(&_Right[1])) 
+            - static_cast<const char *>(static_cast<const void *>(&_Right[0]))
+        );
+        if(count_right != count_left)
+            return false;
+        while(count_left-- > 0){
+            if(_Left[count_left] == _Right[count_left])
+                continue;
+            return false;
+        }
+        return true;
+    }
+};
+
+template <class T>
+int test_array(T)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    const T a_array[10]={T(),T(),T(),T(),T(),T(),T(),T(),T(),T()};
+    const T b_array[2][3]={{T(),T(),T()},{T(),T(),T()}};
+    const boost::array<T,10> c_array = boost::array<T,10>();
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a_array", a_array);
+        oa << boost::serialization::make_nvp("b_array", b_array);
+        oa << boost::serialization::make_nvp("c_array", c_array);
+    }
+    {
+        T a_array1[10];
+        T b_array1[2][3];
+        boost::array<T,10> c_array1;
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a_array", a_array1);
+        ia >> boost::serialization::make_nvp("b_array", b_array1);
+        ia >> boost::serialization::make_nvp("c_array", c_array1);
+
+        array_equal_to/*<A[10]>*/ Compare;
+        BOOST_CHECK(Compare(a_array, a_array1));
+        BOOST_CHECK(Compare(b_array[0], b_array1[0]));
+        BOOST_CHECK(Compare(b_array[1], b_array1[1]));
+        BOOST_CHECK(Compare(c_array, c_array1));
+    }
+    {
+        T a_array1[9];
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        BOOST_TRY {
+            test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+            bool exception_invoked = false;
+            BOOST_TRY {
+                ia >> boost::serialization::make_nvp("a_array", a_array1);
+            }
+            BOOST_CATCH (boost::archive::archive_exception ae){
+                BOOST_CHECK(
+                    boost::archive::archive_exception::array_size_too_short
+                    == ae.code
+                );
+                exception_invoked = true;
+            }
+            BOOST_CATCH_END
+            BOOST_CHECK(exception_invoked);
+        }
+        BOOST_CATCH (boost::archive::archive_exception ae){}
+        BOOST_CATCH_END
+    }
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+   int res = test_array(A());
+    // test an int array for which optimized versions should be available
+   if (res == EXIT_SUCCESS)
+     res = test_array(0);  
+   return res;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_binary.cpp b/deal.II/contrib/boost/libs/serialization/test/test_binary.cpp
new file mode 100644 (file)
index 0000000..a7a4aed
--- /dev/null
@@ -0,0 +1,157 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_simple_class.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstdlib> // for rand(), NULL, size_t
+
+#include <fstream>
+#include <boost/config.hpp>
+
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::rand; 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/binary_object.hpp>
+
+class A {
+    friend class boost::serialization::access;
+    char data[150];
+    // note: from an aesthetic perspective, I would much prefer to have this
+    // defined out of line.  Unfortunately, this trips a bug in the VC 6.0
+    // compiler. So hold our nose and put it her to permit running of tests.
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & boost::serialization::make_nvp(
+            "data",
+            boost::serialization::make_binary_object(data, sizeof(data))
+        );
+    }
+
+public:
+    A();
+    bool operator==(const A & rhs) const;
+};
+
+A::A(){
+    int i = sizeof(data);
+    while(i-- > 0)
+        data[i] = static_cast<char>(0xff & std::rand());
+}
+
+bool A::operator==(const A & rhs) const {
+    int i = sizeof(data);
+    while(i-- > 0)
+        if(data[i] != rhs.data[i])
+            return false;
+    return true;
+}
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A a;
+    char s1[] = "a";
+    char s2[] = "ab";
+    char s3[] = "abc";
+    char s4[] = "abcd";
+    const int i = 12345;
+    A a1;
+    char s1_1[10];
+    char s1_2[10];
+    char s1_3[10];
+    char s1_4[10];
+    int i1 = 34790;
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        boost::serialization::make_nvp(
+            "s1", 
+            boost::serialization::make_binary_object(
+                s1, 
+                sizeof(s1)
+            )
+        );
+        oa << boost::serialization::make_nvp(
+            "s2", 
+            boost::serialization::make_binary_object(
+                s2, 
+                sizeof(s2)
+            )
+        );
+        oa << boost::serialization::make_nvp(
+            "s3", 
+            boost::serialization::make_binary_object(
+                s3, 
+                sizeof(s3)
+            )
+        );
+        oa << boost::serialization::make_nvp(
+            "s4", 
+            boost::serialization::make_binary_object(
+                s4, 
+                sizeof(s4)
+            )
+        );
+        oa << BOOST_SERIALIZATION_NVP(a);
+        // note: add a little bit on the end of the archive to detect
+        // failure of text mode binary.
+        oa << BOOST_SERIALIZATION_NVP(i);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        boost::serialization::make_nvp(
+            "s1", 
+            boost::serialization::make_binary_object(
+                s1_1, 
+                sizeof(s1)
+            )
+        );
+        ia >> boost::serialization::make_nvp(
+            "s2", 
+            boost::serialization::make_binary_object(
+                s1_2, 
+                sizeof(s2)
+            )
+        );
+        ia >> boost::serialization::make_nvp(
+            "s3", 
+            boost::serialization::make_binary_object(
+                s1_3, 
+                sizeof(s3)
+            )
+        );
+        ia >> boost::serialization::make_nvp(
+            "s4", 
+            boost::serialization::make_binary_object(
+                s1_4, 
+                sizeof(s4)
+            )
+        );
+        ia >> BOOST_SERIALIZATION_NVP(a1);
+        // note: add a little bit on the end of the archive to detect
+        // failure of text mode binary.
+        ia >> BOOST_SERIALIZATION_NVP(i1);
+    }
+    BOOST_CHECK(i == i1);
+    BOOST_CHECK(a == a1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_bitset.cpp b/deal.II/contrib/boost/libs/serialization/test/test_bitset.cpp
new file mode 100644 (file)
index 0000000..db91829
--- /dev/null
@@ -0,0 +1,64 @@
+//  (C) Copyright 2009 Brian Ravnsgaard and Kenneth Riddile
+//  Use, modification and distribution are subject to 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)
+
+//  See http://www.boost.org for most recent version including documentation.
+
+// Test that serialization of std::bitset works.
+// Should pass compilation and execution
+// 16.09.2004, updated 04.03.2009
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+
+#if defined( BOOST_NO_STDC_NAMESPACE )
+namespace std
+{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/bitset.hpp>
+#include <boost/serialization/nvp.hpp>
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char* testfile = boost::archive::tmpnam( NULL );
+    BOOST_REQUIRE( NULL != testfile );
+
+    std::bitset<8> bitsetA;
+    bitsetA.set( 0, false );
+    bitsetA.set( 1, true  );
+    bitsetA.set( 2, false );
+    bitsetA.set( 3, true  );
+    bitsetA.set( 4, false );
+    bitsetA.set( 5, false );
+    bitsetA.set( 6, true  );
+    bitsetA.set( 7, true  );
+    
+    {
+        test_ostream os( testfile, TEST_STREAM_FLAGS );
+        test_oarchive oa( os );
+        oa << boost::serialization::make_nvp( "bitset", bitsetA );
+    }
+    
+    std::bitset<8> bitsetB;
+    {
+        test_istream is( testfile, TEST_STREAM_FLAGS );
+        test_iarchive ia( is );
+        ia >> boost::serialization::make_nvp( "bitset", bitsetB );
+    }
+    
+    BOOST_CHECK( bitsetA == bitsetB );
+    
+    std::remove( testfile );
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_check.cpp b/deal.II/contrib/boost/libs/serialization/test/test_check.cpp
new file mode 100644 (file)
index 0000000..5da30ce
--- /dev/null
@@ -0,0 +1,142 @@
+//  (C) Copyright 2009 Robert Ramey
+//  Use, modification and distribution are subject to 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)
+
+//  See http://www.boost.org for most recent version including documentation.
+
+// note: this is a compile only test.
+#include <sstream>
+#include <boost/config.hpp> // BOOST_STATIC_CONST
+
+#include <boost/serialization/static_warning.hpp>
+#include <boost/serialization/tracking.hpp>
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/nvp.hpp>
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+
+// track_selectivly with class information in the archive 
+// is unsafe when used with a pointer and should trigger a warning
+struct check1 {
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int version);
+};
+
+BOOST_CLASS_IMPLEMENTATION(check1, boost::serialization::object_serializable)
+BOOST_CLASS_TRACKING(check1, boost::serialization::track_selectively)
+
+// the combination of versioning + no class information
+// should trigger a warning
+struct check2 {
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int version);
+};
+
+BOOST_CLASS_IMPLEMENTATION(check2, boost::serialization::object_serializable)
+BOOST_CLASS_VERSION(check2, 1)
+// use track always to turn off warning tested above
+BOOST_CLASS_TRACKING(check2, boost::serialization::track_always)
+
+// serializing a type marked as "track_never" through a pointer
+// is likely an error
+struct check3 {
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int version);
+};
+
+BOOST_CLASS_TRACKING(check3, boost::serialization::track_never)
+
+template<class T>
+int f(){
+    BOOST_STATIC_WARNING(T::value);
+    BOOST_STATIC_ASSERT(T::value);
+    return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////
+// compilation of this program should show a total of 10 warning messages
+int main(int /* argc */, char * /* argv */[]){
+    std::stringstream s;
+    {
+        boost::archive::text_oarchive oa(s);
+
+        check1 const c1_out;
+        oa << c1_out;
+
+        check1 c1_non_const_out;
+        oa << c1_non_const_out; // warn check_object_tracking
+
+        check1 * const c1_ptr_out = 0;
+        oa << c1_ptr_out; // warn check_pointer_level
+
+        check2 const * c2_ptr_out;
+        oa << c2_ptr_out; // error check_object_versioning
+
+        check3 * const c3_ptr_out = 0;
+        oa << c3_ptr_out; // warning check_pointer_tracking
+
+        check2 const c2_out;
+        oa << c2_out; // error check_object_versioning
+    }
+    {
+        boost::archive::text_iarchive ia(s);
+
+        check1 const c1_in;
+        ia >> c1_in; // check_const_loading
+
+        check1 * c1_ptr_in = 0;
+        ia >> c1_ptr_in; // warn check_pointer_level
+
+        check2 * c2_ptr_in;
+        ia >> c2_ptr_in; // error check_object_versioning
+
+        check3 * c3_ptr_in = 0;
+        ia >> c3_ptr_in; // warning check_pointer_tracking
+
+        check2 c2_in;
+        ia >> c2_in; // error check_object_versioning
+    }
+    {
+        boost::archive::text_oarchive oa(s);
+
+        check1 const c1_out;
+        oa << BOOST_SERIALIZATION_NVP(c1_out);
+
+        check1 c1_non_const_out;
+        oa << BOOST_SERIALIZATION_NVP(c1_non_const_out); // warn check_object_tracking
+
+        check1 * const c1_ptr_out = 0;
+        oa << BOOST_SERIALIZATION_NVP(c1_ptr_out); // warn check_pointer_level
+
+        check2 const * c2_ptr_out;
+        oa << BOOST_SERIALIZATION_NVP(c2_ptr_out); // error check_object_versioning
+
+        check3 * const c3_ptr_out = 0;
+        oa << BOOST_SERIALIZATION_NVP(c3_ptr_out); // warning check_pointer_tracking
+
+        check2 const c2_out;
+        oa << BOOST_SERIALIZATION_NVP(c2_out); // error check_object_versioning
+    }
+    {
+        boost::archive::text_iarchive ia(s);
+
+        check1 const c1_in;
+        ia >> BOOST_SERIALIZATION_NVP(c1_in); // check_const_loading
+
+        check1 * c1_ptr_in = 0;
+        ia >> BOOST_SERIALIZATION_NVP(c1_ptr_in); // warn check_pointer_level
+
+        check2 * c2_ptr_in;
+        ia >> BOOST_SERIALIZATION_NVP(c2_ptr_in); // error check_object_versioning
+
+        check3 * c3_ptr_in = 0;
+        ia >> BOOST_SERIALIZATION_NVP(c3_ptr_in); // warning check_pointer_tracking
+
+        check2 c2_in;
+        ia >> BOOST_SERIALIZATION_NVP(c2_in); // error check_object_versioning
+    }
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_class_info_load.cpp b/deal.II/contrib/boost/libs/serialization/test/test_class_info_load.cpp
new file mode 100644 (file)
index 0000000..af15329
--- /dev/null
@@ -0,0 +1,92 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_class_info_load.cpp: test implementation level trait
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// test implementation level "object_class_info"
+// should pass compilation and execution
+
+#include <string>
+#include <fstream>
+
+#include <boost/archive/tmpdir.hpp>
+#include <boost/preprocessor/stringize.hpp>
+#include "test_tools.hpp"
+
+#include <boost/static_assert.hpp>
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/tracking.hpp>
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/nvp.hpp>
+
+class A
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /*ar*/, const unsigned int file_version){
+        // class that don't save class info always have a version number of 0
+        BOOST_CHECK(file_version == 0);
+        BOOST_STATIC_ASSERT(0 == ::boost::serialization::version<A>::value);
+        ++count;
+    }
+public:
+    unsigned int count;
+    A() : count(0) {}
+};
+
+BOOST_CLASS_IMPLEMENTATION(A, ::boost::serialization::object_serializable)
+BOOST_CLASS_TRACKING(A, ::boost::serialization::track_never)
+
+// second case : serialize WITH class information
+class B
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /*ar*/, const unsigned int file_version){
+        // verify at execution that the version number corresponds to the saved
+        // one
+        BOOST_CHECK(file_version == 2);
+        ++count;
+    }
+public:
+    unsigned int count;
+    B() : count(0) {}
+};
+
+BOOST_CLASS_IMPLEMENTATION(B, ::boost::serialization::object_class_info)
+BOOST_CLASS_TRACKING(B, ::boost::serialization::track_never)
+BOOST_CLASS_VERSION(B, 4)
+
+void in(const char *testfile, A & a, B & b)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(a);
+    ia >> BOOST_SERIALIZATION_NVP(a);
+    BOOST_CHECK(a.count == 2);  // no tracking => redundant loads
+    ia >> BOOST_SERIALIZATION_NVP(b);
+    ia >> BOOST_SERIALIZATION_NVP(b);
+    // note: archive was saved with tracking so that is what determines
+    // whether tracking is perform on load - regardless of the latest
+    // tracking setting.
+    BOOST_CHECK(b.count == 1);
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    A a;
+    B b;
+    std::string filename;
+    filename += boost::archive::tmpdir();
+    filename += '/';
+    filename += BOOST_PP_STRINGIZE(testfile_);
+    filename += BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST);
+    in(filename.c_str(), a, b);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_class_info_save.cpp b/deal.II/contrib/boost/libs/serialization/test/test_class_info_save.cpp
new file mode 100644 (file)
index 0000000..dabd8fa
--- /dev/null
@@ -0,0 +1,97 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_class_info_save.cpp: test implementation level trait
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// test implementation level "object_class_info"
+// should pass compilation and execution
+
+#include <fstream>
+#include <string>
+
+#include <boost/static_assert.hpp>
+#include <boost/archive/tmpdir.hpp>
+#include <boost/preprocessor/stringize.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/tracking.hpp>
+#include <boost/serialization/nvp.hpp>
+
+// first case : serialize WITHOUT class information
+class A
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /*ar*/, const unsigned int file_version){
+        // class that don't save class info always have a version number of 0
+        BOOST_CHECK(file_version == 0);
+        BOOST_STATIC_ASSERT(0 == ::boost::serialization::version<A>::value);
+        ++count;
+    }
+public:
+    unsigned int count;
+    A() : count(0) {}
+};
+
+BOOST_CLASS_IMPLEMENTATION(A, ::boost::serialization::object_serializable)
+BOOST_CLASS_TRACKING(A, ::boost::serialization::track_never)
+
+// second case : serialize WITH class information
+// note: GCC compile fails if this is after the class declaration
+class B;
+BOOST_CLASS_VERSION(B, 2)
+
+class B
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /*ar*/, const unsigned int file_version){
+        // verify at execution that correct version number is passed on save
+        BOOST_CHECK(file_version == ::boost::serialization::version<B>::value);
+        ++count;
+    }
+public:
+    unsigned int count;
+    B() : count(0) {}
+};
+
+BOOST_CLASS_IMPLEMENTATION(B, ::boost::serialization::object_class_info)
+BOOST_CLASS_TRACKING(B, boost::serialization::track_always)
+
+#include <iostream>
+
+void out(const char *testfile, const A & a, const B & b)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    // write object twice to check tracking
+    oa << BOOST_SERIALIZATION_NVP(a);
+    oa << BOOST_SERIALIZATION_NVP(a);
+    BOOST_CHECK(a.count == 2);  // no tracking => redundant saves
+    std::cout << "a.count=" << a.count << '\n' ;
+    oa << BOOST_SERIALIZATION_NVP(b);
+    oa << BOOST_SERIALIZATION_NVP(b);
+    BOOST_CHECK(b.count == 1);  // tracking => no redundant saves
+    std::cout << "b.count=" << b.count << '\n' ;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    A a;
+    B b;
+    std::string filename;
+    filename += boost::archive::tmpdir();
+    filename += '/';
+    filename += BOOST_PP_STRINGIZE(testfile_);
+    filename += BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST);
+    out(filename.c_str(), a, b);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_codecvt_null.cpp b/deal.II/contrib/boost/libs/serialization/test/test_codecvt_null.cpp
new file mode 100644 (file)
index 0000000..d8ecdf8
--- /dev/null
@@ -0,0 +1,136 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_codecvt_null.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution.  Note: compilation with compilers
+// which use wchar_t as 2 byte objects will emit warnings.  These should be
+// ignored.
+
+#include <algorithm>
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <locale>
+#include <vector>
+#include <cstdio> // remove
+#include <cstddef> // NULL, size_t
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/archive/add_facet.hpp>
+#include <boost/archive/codecvt_null.hpp>
+#include <boost/archive/iterators/ostream_iterator.hpp>
+#include <boost/archive/iterators/istream_iterator.hpp>
+
+template<std::size_t S>
+struct test_data
+{
+    static wchar_t wchar_encoding[];
+};
+
+template<>
+wchar_t test_data<2>::wchar_encoding[] = {
+    0x0001,
+    0x007f,
+    0x0080,
+    0x07ff,
+    0x0800,
+    0x7fff
+};
+
+template<>
+wchar_t test_data<4>::wchar_encoding[] = {
+    0x00000001,
+    0x0000007f,
+    0x00000080,
+    0x000007ff,
+    0x00000800,
+    0x0000ffff,
+    0x00010000,
+    0x0010ffff,
+    0x001fffff,
+    0x00200000,
+    0x03ffffff,
+    0x04000000,
+    0x7fffffff
+};
+
+#include <iostream>
+
+int test_main( int /* argc */, char* /* argv */[] ) {
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    std::locale old_loc;
+    std::locale * null_locale = 
+        boost::archive::add_facet(old_loc, new boost::archive::codecvt_null<wchar_t>);
+
+    typedef test_data<sizeof(wchar_t)> td;
+    {
+        std::wofstream ofs;
+        ofs.imbue(*null_locale);
+        ofs.open(testfile, std::ios::binary);
+        std::copy(
+            td::wchar_encoding,
+            #if ! defined(__BORLANDC__)
+                // borland 5.60 complains about this
+                td::wchar_encoding + sizeof(td::wchar_encoding)/sizeof(wchar_t),
+            #else
+                // so use this instead
+                td::wchar_encoding + 6,
+            #endif
+            boost::archive::iterators::ostream_iterator<wchar_t>(ofs)
+        );
+    }
+    bool ok = false;
+    {
+        std::wifstream ifs;
+        ifs.imbue(*null_locale);
+        ifs.open(testfile, std::ios::binary);
+        ok = std::equal(
+            td::wchar_encoding,
+            #if ! defined(__BORLANDC__)
+                // borland 5.60 complains about this
+                td::wchar_encoding + sizeof(td::wchar_encoding)/sizeof(wchar_t),
+            #else
+                // so use this instead
+                td::wchar_encoding + 6,
+            #endif
+            boost::archive::iterators::istream_iterator<wchar_t>(ifs)
+        );
+    }
+
+    BOOST_CHECK(ok);
+    {
+        std::wofstream ofs("testfile2");
+        ofs.imbue(*null_locale);
+        int i = 10;
+        ofs << i;
+        ofs.close();
+        
+        std::wifstream ifs("testfile2");
+        ifs.imbue(*null_locale);
+        int i2;
+        ifs >> i2;
+        std::cout << "i=" << i << std::endl;
+        std::cout << "i2=" << i2 << std::endl;
+        BOOST_CHECK(i == i2);
+        ifs.close();
+    }
+    delete null_locale;
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_complex.cpp b/deal.II/contrib/boost/libs/serialization/test/test_complex.cpp
new file mode 100644 (file)
index 0000000..7182db1
--- /dev/null
@@ -0,0 +1,70 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_complex.cpp
+
+// (C) Copyright 2005 Matthias Troyer . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <fstream>
+
+#include <cstddef> // NULL
+#include <cstdlib> // rand
+#include <limits> 
+#include <boost/config.hpp>
+
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+#ifndef UNDER_CE    
+    using ::numeric_limits;
+#endif
+}
+#endif
+
+#include "test_tools.hpp"
+#include <boost/preprocessor/stringize.hpp>
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#include <boost/serialization/complex.hpp>
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    std::complex<float> a(
+        static_cast<float>(std::rand()),
+        static_cast<float>(std::rand())
+    );
+    std::complex<double> b(
+        static_cast<double>(std::rand()),
+        static_cast<double>(std::rand())
+    );
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os);
+        oa << boost::serialization::make_nvp("afloatcomplex", a);
+        oa << boost::serialization::make_nvp("adoublecomplex", b);
+    }
+    std::complex<float> a1;
+    std::complex<double> b1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is);
+        ia >> boost::serialization::make_nvp("afloatcomplex", a1);
+        ia >> boost::serialization::make_nvp("adoublecomplex", b1);
+    }
+
+    BOOST_CHECK(std::abs(a-a1) <= 2.*std::numeric_limits<float>::round_error());
+    BOOST_CHECK(std::abs(b-b1) <= 2.*std::numeric_limits<double>::round_error());
+
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail1.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail1.cpp
new file mode 100644 (file)
index 0000000..3c5c030
--- /dev/null
@@ -0,0 +1,23 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_iarchive.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f1(text_iarchive & ia, const A & a){
+    ia >> a;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail1_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail1_nvp.cpp
new file mode 100644 (file)
index 0000000..f9ba9b3
--- /dev/null
@@ -0,0 +1,24 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f1(text_iarchive & ia, const A & a){
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail2.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail2.cpp
new file mode 100644 (file)
index 0000000..7d9b976
--- /dev/null
@@ -0,0 +1,23 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_iarchive.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f2(text_iarchive & ia, A * const & a){
+    ia >> a;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail2_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail2_nvp.cpp
new file mode 100644 (file)
index 0000000..600461c
--- /dev/null
@@ -0,0 +1,25 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f2(text_iarchive & ia, A * const & a){
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail3.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail3.cpp
new file mode 100644 (file)
index 0000000..4f385eb
--- /dev/null
@@ -0,0 +1,22 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_iarchive.hpp>
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f2(text_iarchive & ia, const A * const & a){
+    ia >> a;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail3_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_load_fail3_nvp.cpp
new file mode 100644 (file)
index 0000000..e8ef913
--- /dev/null
@@ -0,0 +1,24 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f2(text_iarchive & ia, const A * const & a){
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_pass.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_pass.cpp
new file mode 100644 (file)
index 0000000..211ffdd
--- /dev/null
@@ -0,0 +1,54 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+// should compile w/o problem
+void f1(boost::archive::text_oarchive & oa, const A & a){
+    oa & a;
+    oa & BOOST_SERIALIZATION_NVP(a);
+    oa << a;
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+void f2(boost::archive::text_oarchive & oa, const A * const & a){
+    oa & a;
+    oa & BOOST_SERIALIZATION_NVP(a);
+    oa << a;
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+void f3(boost::archive::text_iarchive & ia, A & a){
+    ia & a;
+    ia & BOOST_SERIALIZATION_NVP(a);
+    ia >> a;
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
+void f4(boost::archive::text_iarchive & ia, A * & a){
+    ia & a;
+    ia & BOOST_SERIALIZATION_NVP(a);
+    ia >> a;
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
+#if 0
+void f5(boost::archive::text_oarchive & oa, const A * & a){
+    oa & a;
+    oa & BOOST_SERIALIZATION_NVP(a);
+    oa << a;
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+#endif
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn1.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn1.cpp
new file mode 100644 (file)
index 0000000..185f007
--- /dev/null
@@ -0,0 +1,25 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+// should fail to compile
+void f1(text_oarchive & oa, A  & a){
+    oa << a;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn1_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn1_nvp.cpp
new file mode 100644 (file)
index 0000000..19e7c27
--- /dev/null
@@ -0,0 +1,26 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/tracking.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f1(text_oarchive & oa, A & a){
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn2.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn2.cpp
new file mode 100644 (file)
index 0000000..0a77b72
--- /dev/null
@@ -0,0 +1,24 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f2(text_oarchive & oa, A * & a){
+    oa << a;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn2_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn2_nvp.cpp
new file mode 100644 (file)
index 0000000..7b887c5
--- /dev/null
@@ -0,0 +1,25 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f2(text_oarchive & oa, A * & a){
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn3.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn3.cpp
new file mode 100644 (file)
index 0000000..19c1496
--- /dev/null
@@ -0,0 +1,24 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f3(text_oarchive & oa, const A * & a){
+    oa << a;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn3_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn3_nvp.cpp
new file mode 100644 (file)
index 0000000..7571b3c
--- /dev/null
@@ -0,0 +1,25 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+void f3(text_oarchive & oa, const A * & a){
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn4.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn4.cpp
new file mode 100644 (file)
index 0000000..c9599aa
--- /dev/null
@@ -0,0 +1,37 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+// comment out this test case as a reminder not to keep inserting it !!!
+// we don't trap this as an error in order to permit things like
+// X * xptr;
+// save(..){
+//     ar << xptr;
+// }
+// 
+// for rational - consider the following example from demo.cpp
+// std::list<pair<trip_info, bus_route_info *> > schedule
+// its not obvious to me how this can be cast to:
+// std::list<pair<trip_info, const bus_route_info * const> > schedule
+
+void f4(text_oarchive & oa, A * const & a){
+    oa << a;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn4_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_const_save_warn4_nvp.cpp
new file mode 100644 (file)
index 0000000..9c61db6
--- /dev/null
@@ -0,0 +1,39 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile only
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/serialization/nvp.hpp>
+
+using namespace boost::archive;
+
+struct A {
+    template<class Archive>
+    void serialize(Archive & ar, unsigned int version) {
+    }
+};
+
+// comment out this test case as a reminder not to keep inserting it !!!
+// we don't trap this as an error in order to permit things like
+// X * xptr;
+// save(..){
+//     ar << xptr;
+// }
+// 
+// for rational - consider the following example from demo.cpp
+// 
+// std::list<pair<trip_info, bus_route_info *> > schedule
+// 
+// its not obvious to me how this can be cast to:
+// 
+// std::list<pair<trip_info, const bus_route_info * const> > schedule
+
+void f4(text_oarchive & oa, A * const & a){
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_contained_class.cpp b/deal.II/contrib/boost/libs/serialization/test/test_contained_class.cpp
new file mode 100644 (file)
index 0000000..5dc15e2
--- /dev/null
@@ -0,0 +1,69 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_contained_class.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef>
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+#include <boost/serialization/nvp.hpp>
+
+#include "B.hpp"
+#include "A.ipp"
+
+///////////////////////////////////////////////////////
+// Contained class
+class C
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_NVP(b);
+    }
+    B b;
+public:
+    bool operator==(const C &rhs) const
+    {
+        return b == rhs.b;
+    }
+    C(){}
+};
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const C c;
+    C c1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("c", c);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("c", c1);
+    }
+    BOOST_CHECK(c == c1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_cyclic_ptrs.cpp b/deal.II/contrib/boost/libs/serialization/test/test_cyclic_ptrs.cpp
new file mode 100644 (file)
index 0000000..cecd0d1
--- /dev/null
@@ -0,0 +1,153 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_cyclic_ptrs.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+
+#include "test_tools.hpp"
+#include <boost/detail/no_exceptions_support.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/version.hpp>
+#include <boost/serialization/base_object.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+///////////////////////////////////////////////////////
+// class with a member which refers to itself
+class J : public A
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+        ar & BOOST_SERIALIZATION_NVP(j);
+    }
+public:
+    bool operator==(const J &rhs) const;
+    J *j;
+    J(J *_j) : j(_j) {}
+    J() : j(NULL){}
+};
+
+BOOST_CLASS_VERSION(J, 6)
+
+bool J::operator==(const J &rhs) const
+{
+    return static_cast<const A &>(*this) == static_cast<const A &>(rhs);
+}
+
+///////////////////////////////////////////////////////
+// class with members that refer to each other
+// this is an example of a class that, as written, cannot
+// be serialized with this system.  The problem is that the
+// serialization of the first member - j1 , provokes serialization
+// of those objects which it points to either directly or indirectly.
+// When those objects are subsequently serialized, it is discovered
+// that have already been serialized through pointers.  This is
+// detected by the system and an exception - pointer_conflict - 
+// is thrown.  Permiting this to go undetected would result in the
+// creation of multiple equal objects rather than the original
+// structure.  
+class K
+{
+    J j1;
+    J j2;
+    J j3;
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(
+        Archive &ar,
+        const unsigned int /* file_version */
+    ){
+        ar & BOOST_SERIALIZATION_NVP(j1);
+        ar & BOOST_SERIALIZATION_NVP(j2);
+        ar & BOOST_SERIALIZATION_NVP(j3);
+    }
+public:
+    bool operator==(const K &rhs) const;
+    K();
+};
+
+K::K()
+: j1(&j2), j2(&j3), j3(&j1)
+{
+}
+
+bool K::operator==(const K &rhs) const
+{
+    return
+        j1.j == & j2
+        && j2.j == & j3
+        && j3.j == & j1
+        && j1 == rhs.j1
+        && j2 == rhs.j2
+        && j3 == rhs.j3
+    ;
+}
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    K k;
+    boost::archive::archive_exception exception(
+        boost::archive::archive_exception::no_exception
+    );
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        BOOST_TRY {
+            oa << BOOST_SERIALIZATION_NVP(k);
+        }
+        BOOST_CATCH (boost::archive::archive_exception ae){
+            exception = ae;
+        }
+        BOOST_CATCH_END
+        BOOST_CHECK(
+            exception.code == boost::archive::archive_exception::pointer_conflict
+        );
+    }
+    // if exception wasn't invoked
+    if(exception.code == boost::archive::archive_exception::no_exception){
+        // try to read the archive
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        exception = boost::archive::archive_exception(
+            boost::archive::archive_exception::no_exception
+        );
+        BOOST_TRY {
+            ia >> BOOST_SERIALIZATION_NVP(k);
+        }
+        BOOST_CATCH (boost::archive::archive_exception ae){
+            exception = ae;
+        }
+        BOOST_CATCH_END
+        BOOST_CHECK(
+            exception.code == boost::archive::archive_exception::pointer_conflict
+        );
+    }
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_decl.hpp b/deal.II/contrib/boost/libs/serialization/test/test_decl.hpp
new file mode 100644 (file)
index 0000000..9c5b274
--- /dev/null
@@ -0,0 +1,74 @@
+#ifndef BOOST_TEST_DECL_HPP
+#define BOOST_TEST_DECL_HPP 
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif 
+
+/////////1/////////2///////// 3/////////4/////////5/////////6/////////7/////////8
+//  test_decl.hpp
+//
+//  (c) Copyright Robert Ramey 2004
+//  Use, modification, and distribution is subject to 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)
+//
+//  See library home page at http://www.boost.org/libs/serialization
+//  export if this is our own source, otherwise import:
+
+// usage:
+//
+// class header declarations should look something like:
+//
+// #include "test_decl.hpp"
+// #if defined(A_CPP)
+//     #define DLL_DECL IMPORT_DECL(BOOST_PP_EMPTY())
+// #else
+//     #define DLL_DECL EXPORT_DECL(BOOST_PP_EMPTY())
+// #endif
+//
+// class DLL_DECL A {
+//     ...
+// };
+//
+// #undef DLL_DECL
+//
+// code which includes such headers should look something like:
+//
+// #include "A.hpp"
+//
+// code which builds dll should like like
+//
+// #define A_CPP
+// #include "A.hpp"
+//
+// A::A(){
+//  ...
+// }
+// ...
+//
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_HAS_DECLSPEC // defined in config system
+    #if ! defined(EXPORT_DECL)
+        #if defined(__BORLANDC__)
+            #define EXPORT_DECL(T)  T __export
+        #else
+            #define EXPORT_DECL(T) __declspec(dllexport) T 
+        #endif
+    #endif
+    #if ! defined(IMPORT_DECL)
+        #if defined(__BORLANDC__)
+            #define IMPORT_DECL(T)    T __import
+        #else
+            #define IMPORT_DECL(T)    __declspec(dllimport) T 
+        #endif
+    #endif
+#else
+    #define IMPORT_DECL(T) T
+    #define EXPORT_DECL(T) T
+#endif // BOOST_HAS_DECLSPEC
+
+#endif // BOOST_TEST_DECL_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_delete_pointer.cpp b/deal.II/contrib/boost/libs/serialization/test/test_delete_pointer.cpp
new file mode 100644 (file)
index 0000000..aaff382
--- /dev/null
@@ -0,0 +1,129 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_delete_pointer.cpp
+
+// (C) Copyright 2002 Vahan Margaryan. 
+// Use, modification and distribution is subject to 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 <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/serialization/throw_exception.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/vector.hpp>
+
+//A holds a pointer to another A, but doesn't own the pointer.
+//objCount
+class A
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        ar << BOOST_SERIALIZATION_NVP(next_);
+    }
+    template<class Archive>
+    void load(Archive & ar, const unsigned int /* file_version */)
+    {
+        static int i = 0;
+        ar >> BOOST_SERIALIZATION_NVP(next_);
+        if(++i == 3)
+            boost::serialization::throw_exception(boost::archive::archive_exception(
+                boost::archive::archive_exception::no_exception
+            ));
+    }
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+public:
+    A()
+    {
+        next_ = 0;
+        ++objcount;
+    }
+    A(const A& a)
+    {
+        next_ = a.next_; ++objcount;
+    }
+    ~A()
+    {
+        --objcount;
+    }
+    A* next_;
+    static int objcount;
+};
+
+
+int A::objcount = 0;
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    std::vector<A*> vec;
+    A* a = new A;
+    a->next_ = 0;
+    vec.push_back(a);
+
+    //fill the vector with chained A's. The vector is assumed
+    //to own the objects - we will destroy the objects through this vector.
+    unsigned int i;
+    for(i   = 1; i < 10; ++i)
+    {
+        a = new A;
+        vec[i - 1]->next_ = a;
+        a->next_ = 0;
+        vec.push_back(a);
+    }
+
+    const char * testfile = boost::archive::tmpnam(0);
+    BOOST_REQUIRE(NULL != testfile);
+
+    //output the vector
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << BOOST_SERIALIZATION_NVP(vec);
+    }
+
+    //erase the objects
+    for(i = 0; i < vec.size(); ++i)
+        delete vec[i];
+    vec.clear();
+
+    //read the vector back
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        BOOST_TRY {
+            ia >> BOOST_SERIALIZATION_NVP(vec);
+        }
+        BOOST_CATCH (...){
+            ia.delete_created_pointers();
+            vec.clear();
+        }
+        BOOST_CATCH_END
+    }
+
+    //delete the objects
+    for(i = 0; i < vec.size(); ++i)
+        delete vec[i];
+    vec.clear();
+
+    //identify the leaks
+    BOOST_CHECK(A::objcount == 0);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_deque.cpp b/deal.II/contrib/boost/libs/serialization/test/test_deque.cpp
new file mode 100644 (file)
index 0000000..ba8bc54
--- /dev/null
@@ -0,0 +1,53 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_deque.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef>
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/deque.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    std::deque<A> adeque, adeque1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("adeque",adeque);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("adeque",adeque1);
+    }
+    BOOST_CHECK(adeque == adeque1);
+    
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_derived.cpp b/deal.II/contrib/boost/libs/serialization/test/test_derived.cpp
new file mode 100644 (file)
index 0000000..6a9aee8
--- /dev/null
@@ -0,0 +1,148 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_derived.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+
+class base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */){
+    }
+protected:
+    virtual ~base(){};
+};
+
+class derived1 : public base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+    }
+};
+
+class derived2 : public base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+    }
+};
+
+// save non-polymorphic classes through a base class pointer
+void save_derived(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    // registration not necessary when serializing the most derived pointer
+    derived1 *d1 = new derived1;
+    derived2 *d2 = new derived2;
+    oa << BOOST_SERIALIZATION_NVP(d1) << BOOST_SERIALIZATION_NVP(d2);
+
+    // upcasting non-polymorphic pointers may not lead to the expected
+    // result. In the current type id system
+    base *b1 = d1;
+    base *b2 = d2;
+    
+    // Warning, the current type id system does not yield true
+    // type id for non-polymorphic types
+    const boost::serialization::extended_type_info & this_type
+        = boost::serialization::type_info_implementation<base>::type
+            ::get_const_instance();
+    // retrieve the true type of the object pointed to
+    const boost::serialization::extended_type_info & true_type
+        = * boost::serialization::type_info_implementation<base>::type
+            ::get_const_instance().get_derived_extended_type_info(*b1);
+
+    BOOST_WARN_MESSAGE(
+        !(this_type == true_type), 
+        "current type id system does not support non-polymorphic types"
+    );
+
+    oa << BOOST_SERIALIZATION_NVP(b1);
+    oa << BOOST_SERIALIZATION_NVP(b2);
+
+    delete d1;
+    delete d2;
+}
+
+// save non-polymorphic classes through a base class pointer
+void load_derived(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    // registration not necessary when serializing the most derived pointer
+    derived1 *d1 = NULL;
+    derived2 *d2 = NULL;
+    ia >> BOOST_SERIALIZATION_NVP(d1) >> BOOST_SERIALIZATION_NVP(d2);
+
+    // upcasting non-polymorphic pointers may not lead to the expected
+    // result. In the current type id system
+    base *b1 = NULL;
+    base *b2 = NULL;
+    
+    // note: this will produce incorrect results for non-polymorphic classes
+    ia >> BOOST_SERIALIZATION_NVP(b1);
+    ia >> BOOST_SERIALIZATION_NVP(b2);
+
+    // Warning, the current type id system does not yield true
+    // type id for non-polymorphic types
+    const boost::serialization::extended_type_info & this_type
+        = boost::serialization::type_info_implementation<base>::type
+            ::get_const_instance();
+    // retrieve the true type of the object pointed to
+    const boost::serialization::extended_type_info & true_type
+        = * boost::serialization::type_info_implementation<base>::type
+            ::get_const_instance().get_derived_extended_type_info(*b1);
+            
+    BOOST_WARN_MESSAGE(
+        ! (this_type == true_type), 
+        "current type id system does fails for non-polymorphic types"
+    );
+
+    BOOST_CHECK(b1 == static_cast<base *>(d1));
+    BOOST_CHECK(b2 == static_cast<base *>(d2));
+
+    delete d1;
+    delete d2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    save_derived(testfile);
+    load_derived(testfile);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_derived_class.cpp b/deal.II/contrib/boost/libs/serialization/test/test_derived_class.cpp
new file mode 100644 (file)
index 0000000..f123c92
--- /dev/null
@@ -0,0 +1,49 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_derived_class.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include "B.hpp"
+#include "A.ipp"
+
+int test_main( int /*argc*/, char* /*argv*/[] )
+{
+  const char * testfile = boost::archive::tmpnam(NULL);
+  
+  BOOST_REQUIRE(NULL != testfile);
+
+    B b, b1;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("b", b);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("b1", b1);
+    }
+    BOOST_CHECK(b == b1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_derived_class_ptr.cpp b/deal.II/contrib/boost/libs/serialization/test/test_derived_class_ptr.cpp
new file mode 100644 (file)
index 0000000..07cf438
--- /dev/null
@@ -0,0 +1,51 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_deriviec_class_.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include "B.hpp"
+#include "A.ipp"
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);  
+    BOOST_REQUIRE(NULL != testfile);
+
+    B * tb = new B;
+    B * tb1 = NULL;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("tb", tb);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("tb",tb1);
+    }
+    BOOST_CHECK(tb != tb1);
+    BOOST_CHECK(*tb == *tb1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_diamond.cpp b/deal.II/contrib/boost/libs/serialization/test/test_diamond.cpp
new file mode 100644 (file)
index 0000000..15a4ae7
--- /dev/null
@@ -0,0 +1,204 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_diamond.cpp
+
+// (C) Copyright 2002-2009 Vladimir Prus and Robert Ramey. 
+// Use, modification and distribution is subject to 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)
+
+// test of serialization library for diamond inheritence situations
+
+#include <cstddef> // NULL
+#include <fstream>
+#include <iostream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/map.hpp>
+#include <boost/serialization/utility.hpp>
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/tracking.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/export.hpp>
+
+int save_count = 0; // used to detect when base class is saved multiple times
+int load_count = 0; // used to detect when base class is loaded multiple times
+
+class base {
+public:
+    base() : i(0) {}
+    base(int i) : i(i)
+    {
+        m[i] = "text";
+    }
+
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        std::cout << "Saving base\n";
+        ar << BOOST_SERIALIZATION_NVP(i);
+        ar << BOOST_SERIALIZATION_NVP(m);
+        ++save_count;
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int /* file_version */)
+    {
+        std::cout << "Restoring base\n";
+        ar >> BOOST_SERIALIZATION_NVP(i);
+        ar >> BOOST_SERIALIZATION_NVP(m);
+        ++load_count;
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+
+    bool operator==(const base& another) const 
+    {
+        return i == another.i && m == another.m;
+    }
+    // make polymorphic by marking at least one function virtual
+    virtual ~base() {};
+private:
+    int i;
+    std::map<int, std::string> m;    
+};
+
+// note: the default is for object tracking to be performed if and only
+// if and object of the corresponding class is anywhere serialized
+// through a pointer.  In this example, that doesn't occur so 
+// by default, the shared base object wouldn't normally be tracked.
+// This would leave to multiple save/load operation of the data in
+// this shared base class.  This wouldn't cause an error, but it would
+// be a waste of time.  So set the tracking behavior trait of the base
+// class to always track serialized objects of that class.  This permits
+// the system to detect and elminate redundent save/load operations.
+// (It is concievable that this might someday be detected automatically
+// but for now, this is not done so we have to rely on the programmer
+// to specify this trait)
+BOOST_CLASS_TRACKING(base, track_always)
+
+class derived1 : virtual public base {
+public:
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        std::cout << "Saving derived1\n";
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int /* file_version */)
+    {
+        std::cout << "Restoring derived1\n";
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+};
+
+class derived2 : virtual public base {
+public:    
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        std::cout << "Saving derived2\n";
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int /* file_version */)
+    {
+        std::cout << "Restoring derived2\n";
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(base);
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+};
+
+class final : public derived1, public derived2 {
+public:
+    final() {}
+    final(int i) : base(i) {}
+
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /* file_version */) const
+    {
+        std::cout << "Saving final\n";
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(derived1);    
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(derived2);
+    }
+
+    template<class Archive>
+    void load(Archive & ar, const unsigned int /* file_version */)
+    {
+        std::cout << "Restoring final\n";
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(derived1);  
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(derived2);
+    }
+
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+};
+
+BOOST_CLASS_EXPORT(final)
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    
+    const final b(3);   
+    {
+        test_ostream ofs(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(ofs);
+        oa << boost::serialization::make_nvp("b", b);
+    }
+
+    final b2;
+    {
+        test_istream ifs(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(ifs);
+        ia >> boost::serialization::make_nvp("b2", b2);
+    }
+    BOOST_CHECK(1 == save_count);
+    BOOST_CHECK(1 == load_count);
+    BOOST_CHECK(b2 == b);
+    std::remove(testfile);
+
+    // do the same test with pointers
+    testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    save_count = 0;
+    load_count = 0;
+
+    const base* bp = new final( 3 );
+    {
+        test_ostream ofs(testfile);    
+        test_oarchive oa(ofs);
+        oa << BOOST_SERIALIZATION_NVP(bp);
+    }
+
+    base* bp2;
+    {
+        test_istream ifs(testfile);
+        test_iarchive ia(ifs);
+        ia >> BOOST_SERIALIZATION_NVP(bp2);
+    }
+
+    BOOST_CHECK(1 == save_count);
+    BOOST_CHECK(1 == load_count);
+    BOOST_CHECK(*bp2 == *bp);
+    std::remove(testfile);
+
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_dll_exported.cpp b/deal.II/contrib/boost/libs/serialization/test/test_dll_exported.cpp
new file mode 100644 (file)
index 0000000..7b4c8e5
--- /dev/null
@@ -0,0 +1,148 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_dll_exported.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// This is an overly complex test.  The purpose of this test is to
+// demostrate and test the ability to serialize a hiarchy of class
+// through a base class pointer even though those class might be
+// implemente in different dlls and use different extended type info
+// systems.
+//
+// polymorphic_ base is locally declared and defined.  It use the
+// "no_rtti" extended type info system.
+
+// polymorphic_derived1 is locally declared and defined.  It uses
+// the default "type_id" extended type info system
+
+// polymorphic_derived2 is declared in polymorphic_derived.hpp
+// and defined in dll_polymorphic_derived2.  It uses the typeid
+// system.
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+// for now, only test with simple text archive
+#define BOOST_ARCHIVE_TEST text_archive.hpp
+#include "test_tools.hpp"
+
+#include <boost/archive/archive_exception.hpp>
+
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/access.hpp>
+
+#include "polymorphic_base.hpp"
+
+class polymorphic_derived1 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+    virtual const char * get_key() const { 
+        return "polymorphic_derived1";
+    }
+public:
+    virtual ~polymorphic_derived1(){}
+};
+
+BOOST_CLASS_EXPORT(polymorphic_derived1)
+
+// MWerks users can do this to make their code work
+BOOST_SERIALIZATION_MWERKS_BASE_AND_DERIVED(polymorphic_base, polymorphic_derived1)
+
+#define POLYMORPHIC_DERIVED2_IMPORT
+#include "polymorphic_derived2.hpp"
+
+// save exported polymorphic class
+void save_exported(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = new polymorphic_derived1;
+    polymorphic_base *rb2 = new polymorphic_derived2;
+    polymorphic_derived2 *rd21 = new polymorphic_derived2;
+
+    // export will permit correct serialization
+    // through a pointer to a base class
+    oa << BOOST_SERIALIZATION_NVP(rb1);
+    oa << BOOST_SERIALIZATION_NVP(rb2);
+    oa << BOOST_SERIALIZATION_NVP(rd21);
+
+    delete rb1;
+    delete rb2;
+}
+
+// save exported polymorphic class
+void load_exported(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+    polymorphic_derived2 *rd21 = NULL;
+
+    // export will permit correct serialization
+    // through a pointer to a base class
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb1),
+        "restored pointer b1 not of correct type"
+    );
+    ia >> BOOST_SERIALIZATION_NVP(rb2);
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb2),
+        "restored pointer b2 not of correct type"
+    );
+    ia >> BOOST_SERIALIZATION_NVP(rd21);
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance().get_derived_extended_type_info(*rd21),
+        "restored pointer d2 not of correct type"
+    );
+    delete rb1;
+    delete rb2;
+    delete rd21;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    save_exported(testfile);
+    load_exported(testfile);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_dll_plugin.cpp b/deal.II/contrib/boost/libs/serialization/test/test_dll_plugin.cpp
new file mode 100644 (file)
index 0000000..19dd603
--- /dev/null
@@ -0,0 +1,206 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_plugin.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// Note this test creates, serializes, and destroys
+// a class instance while knowing nothing more than its
+// exported class ID (GUID) and a base class from which
+// it is derived.  This is referred to as a "plugin"
+// since the same program could, without recompilation, 
+// manipulate any number of derived types - even those
+// which have not been yet been created.
+
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+
+// for now, only test with simple text and polymorphic archive
+#include "test_tools.hpp"
+
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/void_cast.hpp>
+#include <boost/serialization/extended_type_info.hpp>
+
+#include "polymorphic_base.hpp"
+
+// declare and implement a derived class in our own executable
+class polymorphic_derived1 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+    const char * get_key() const{
+        return
+            boost::serialization::type_info_implementation<
+                polymorphic_derived1
+            >::type::get_const_instance().get_key();
+    }
+public:
+    virtual ~polymorphic_derived1(){}
+};
+
+// This class is derived from polymorphic_base which uses the no_rtti system
+// rather than the typeid system.  This system uses the exported name as the
+// type identifier key.  This MUST be exported!!!
+BOOST_CLASS_EXPORT(polymorphic_derived1)
+
+// MWerks users can do this to make their code work
+BOOST_SERIALIZATION_MWERKS_BASE_AND_DERIVED(polymorphic_base, polymorphic_derived1)
+
+// save exported polymorphic class
+void save_exported(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = new polymorphic_derived1;
+
+    // get the eti record for the exported type "polymorphic_derived2"
+    boost::serialization::extended_type_info const * const d2_eti =
+        boost::serialization::extended_type_info::find(
+            "polymorphic_derived2"
+        );
+    assert(NULL != d2_eti);
+
+    // create a new instance of the type referred to by this record.
+    // in this example, we happen to know that the class constructor
+    // takes no arguments.
+    void const * const rd2 = d2_eti->construct();
+    assert(NULL != rd2);
+
+    // transform the pointer to a pointer to the base class
+    polymorphic_base const * const rb2 
+        = static_cast<polymorphic_base const *>(
+            boost::serialization::void_upcast(
+                * d2_eti,
+                boost::serialization::type_info_implementation<polymorphic_base>
+                    ::type::get_const_instance(),
+                rd2
+            )
+        );
+
+    // export will permit correct serialization
+    // through a pointer to a base class
+    oa << BOOST_SERIALIZATION_NVP(rb1);
+    oa << BOOST_SERIALIZATION_NVP(rb2);
+
+    // don't need these any more - don't leak memory
+    delete rb1;
+    // note delete original handle - not runtime cast one !!!
+    //delete rb2;
+    d2_eti->destroy(rd2);
+}
+
+// save exported polymorphic class
+void load_exported(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+
+    // export will permit correct serialization
+    // through a pointer to a base class
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb1),
+        "restored pointer b1 not of correct type"
+    );
+    ia >> BOOST_SERIALIZATION_NVP(rb2);
+
+    // get the eti record for the exported type "polymorphic_derived2"
+    boost::serialization::extended_type_info const * const d2_eti =
+        boost::serialization::extended_type_info::find(
+            "polymorphic_derived2"
+        );
+    assert(NULL != d2_eti);
+
+    BOOST_CHECK_MESSAGE(
+        * d2_eti
+        == 
+        * boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb2),
+        "restored pointer b2 not of correct type"
+    );
+
+    delete rb1;
+    delete rb2;
+}
+
+#ifdef BOOST_WINDOWS
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    HINSTANCE hDLL;               // Handle to DLL
+    hDLL = LoadLibrary("plugin_polymorphic_derived2.dll");
+    BOOST_CHECK_MESSAGE((0 != hDLL), "Failed to find/load plugin_polymorphic_derived2" );
+    if(0 == hDLL)
+        return EXIT_FAILURE;
+
+    save_exported(testfile);
+    load_exported(testfile);
+    FreeLibrary(hDLL);
+
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+#else // presume *nix
+
+#include <dlfcn.h>
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    void * hDLL;               // Handle to DLL
+    hDLL = dlopen("plugin_polymorphic_derived2.so", RTLD_NOW | RTLD_GLOBAL);
+    BOOST_CHECK_MESSAGE((0 != hDLL), "Failed to find/load plugin_polymorphic_derived2" );
+    if(0 == hDLL)
+        return EXIT_FAILURE;
+
+    save_exported(testfile);
+    load_exported(testfile);
+    dlclose(hDLL);
+
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+#endif
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_dll_simple.cpp b/deal.II/contrib/boost/libs/serialization/test/test_dll_simple.cpp
new file mode 100644 (file)
index 0000000..dd7f98b
--- /dev/null
@@ -0,0 +1,247 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_dll_simple.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// invoke header for a custom archive test.
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+// for now, only test with simple text and polymorphic archive
+#include "test_tools.hpp"
+#include "text_archive.hpp"
+
+#include <boost/archive/polymorphic_text_oarchive.hpp>
+#include <boost/archive/polymorphic_text_iarchive.hpp>
+
+#define A_IMPORT
+#include "A.hpp"
+
+// simple class with text archive compiled in dll
+void
+test1(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A a;
+    A a1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK_EQUAL(a, a1);
+
+    std::remove(testfile);
+}
+
+// simple class with polymorphic archive compiled in dll
+void
+test2(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A a;
+    A a1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_oarchive & poa(oa);
+        poa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_iarchive & pia(ia);
+        pia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK_EQUAL(a, a1);
+
+    std::remove(testfile);
+}
+
+// simple class pointer with text archive compiled in dll
+void
+test3(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A *a = new A;
+    A *a1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK_EQUAL(*a, *a1);
+
+    std::remove(testfile);
+    delete a;
+}
+
+// simple class pointer with polymorphic archive compiled in dll
+void
+test4(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A *a = new A;
+    A *a1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_oarchive & poa(oa);
+        poa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_iarchive & pia(ia);
+        pia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK_EQUAL(*a, *a1);
+
+    std::remove(testfile);
+    delete a;
+}
+
+#include "B.hpp"
+
+// derived class with base text archive compiled in dll
+void
+test5(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const B b;
+    B b1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("b", b);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("b", b1);
+    }
+    BOOST_CHECK_EQUAL(b, b1);
+
+    std::remove(testfile);
+}
+
+// derived class with base base compiled with polymorphic archive in dll
+void
+test6(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const B b;
+    B b1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_oarchive & poa(oa);
+        poa << boost::serialization::make_nvp("b", b);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_iarchive & pia(ia);
+        pia >> boost::serialization::make_nvp("b", b1);
+    }
+    BOOST_CHECK_EQUAL(b, b1);
+
+    std::remove(testfile);
+}
+
+// derived class pointer with base text archive compiled in dll
+void
+test7(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const B *b = new B;
+    B *b1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("b", b);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("b", b1);
+    }
+    BOOST_CHECK_EQUAL(*b, *b1);
+
+    std::remove(testfile);
+    delete b;
+}
+
+// derived class pointer with base polymorphic archive compiled in dll
+void
+test8(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const B *b = new B;
+    B *b1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_oarchive & poa(oa);
+        poa << boost::serialization::make_nvp("b", b);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_text_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_iarchive & pia(ia);
+        pia >> boost::serialization::make_nvp("b", b1);
+    }
+    BOOST_CHECK_EQUAL(*b, *b1);
+
+    std::remove(testfile);
+    delete b;
+}
+
+
+int 
+test_main( int /* argc */, char* /* argv */[] )
+{
+    test1();
+    test2();
+    test3();
+    test4();
+    test5();
+    test6();
+    test7();
+    test8();
+    return EXIT_SUCCESS;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_exported.cpp b/deal.II/contrib/boost/libs/serialization/test/test_exported.cpp
new file mode 100644 (file)
index 0000000..7db68c2
--- /dev/null
@@ -0,0 +1,143 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_exported.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef>
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/extended_type_info_typeid.hpp>
+
+#include <boost/serialization/force_include.hpp>
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+#include "polymorphic_base.hpp"
+
+class polymorphic_derived1 : 
+    public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+    virtual const char * get_key() const {
+        return "polymorphic_derived1";
+    }
+public:
+    ~polymorphic_derived1(){}
+};
+
+BOOST_CLASS_EXPORT(polymorphic_derived1)
+
+// MWerks users can do this to make their code work
+BOOST_SERIALIZATION_MWERKS_BASE_AND_DERIVED(polymorphic_base, polymorphic_derived1)
+
+#include "polymorphic_derived2.hpp"
+
+// MWerks users can do this to make their code work
+BOOST_SERIALIZATION_MWERKS_BASE_AND_DERIVED(polymorphic_base, polymorphic_derived2)
+
+template<class Archive>
+void polymorphic_derived2::serialize(
+    Archive &ar, 
+    const unsigned int /* file_version */
+){
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+}
+
+BOOST_CLASS_EXPORT_IMPLEMENT(polymorphic_derived2)
+
+template EXPORT_DECL(void) polymorphic_derived2::serialize(
+    test_oarchive & ar,
+    const unsigned int version
+);
+template EXPORT_DECL(void) polymorphic_derived2::serialize(
+    test_iarchive & ar,
+    const unsigned int version
+);
+
+// save exported polymorphic class
+void save_exported(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = new polymorphic_derived1;
+    polymorphic_base *rb2 = new polymorphic_derived2;
+
+    // export will permit correct serialization
+    // through a pointer to a base class
+    oa << BOOST_SERIALIZATION_NVP(rb1);
+    oa << BOOST_SERIALIZATION_NVP(rb2);
+
+    delete rb1;
+    delete rb2;
+}
+
+// save exported polymorphic class
+void load_exported(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+
+    // export will permit correct serialization
+    // through a pointer to a base class
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb1),
+        "restored pointer b1 not of correct type"
+    );
+
+    ia >> BOOST_SERIALIZATION_NVP(rb2);
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb2),
+        "restored pointer b2 not of correct type"
+    );
+
+    delete rb1;
+    delete rb2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    save_exported(testfile);
+    load_exported(testfile);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_inclusion.cpp b/deal.II/contrib/boost/libs/serialization/test/test_inclusion.cpp
new file mode 100644 (file)
index 0000000..d258cb6
--- /dev/null
@@ -0,0 +1,42 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_const.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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/serialization/access.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/level_enum.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/split_free.hpp>
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/tracking.hpp>
+#include <boost/serialization/tracking_enum.hpp>
+#include <boost/serialization/traits.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/version.hpp> 
+
+struct foo
+{
+    int x;
+private:
+    friend class boost::serialization::access;
+
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int version)
+    {
+        // In compilers implementing 2-phase lookup, the call to
+        // make_nvp is resolved even if foo::serialize() is never
+        // instantiated.
+        ar & boost::serialization::make_nvp("x",x);
+    }
+};
+
+int
+main(int /*argc*/, char * /*argv*/[]){
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_iterators.cpp b/deal.II/contrib/boost/libs/serialization/test/test_iterators.cpp
new file mode 100644 (file)
index 0000000..cc096da
--- /dev/null
@@ -0,0 +1,213 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_iterators.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <algorithm>
+#include <vector>
+#include <cstdlib> // for rand
+#include <functional>
+#include <sstream> // used to test stream iterators
+
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STDC_NAMESPACE
+namespace std{
+    using ::rand; 
+}
+#endif
+
+#include <boost/detail/workaround.hpp>
+#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
+#include <boost/archive/dinkumware.hpp>
+#endif
+
+#ifndef BOOST_NO_CWCHAR
+#include <boost/archive/iterators/mb_from_wchar.hpp>
+#include <boost/archive/iterators/wchar_from_mb.hpp>
+#endif
+#include <boost/archive/iterators/xml_escape.hpp>
+#include <boost/archive/iterators/xml_unescape.hpp>
+#include <boost/archive/iterators/transform_width.hpp>
+#include <boost/archive/iterators/istream_iterator.hpp>
+#include <boost/archive/iterators/ostream_iterator.hpp>
+
+#include "test_tools.hpp"
+
+#ifndef BOOST_NO_CWCHAR
+
+void test_wchar_from_mb(const wchar_t *la, const char * a, const unsigned int size){
+    typedef boost::archive::iterators::wchar_from_mb<const char *> translator;
+    BOOST_CHECK((
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(a)),
+            translator(BOOST_MAKE_PFTO_WRAPPER(a + size)),
+            la
+        )
+    ));
+}
+
+void test_mb_from_wchar(const char * a, const wchar_t *la, const unsigned int size){
+    typedef boost::archive::iterators::mb_from_wchar<const wchar_t *> translator;
+    BOOST_CHECK(
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(la)), 
+            translator(BOOST_MAKE_PFTO_WRAPPER(la + size)), 
+            a
+        )
+    );
+}
+
+#endif
+
+template<class CharType>
+void test_xml_escape(
+    const CharType * xml_escaped, 
+    const CharType * xml, 
+    unsigned int size
+){
+    typedef boost::archive::iterators::xml_escape<const CharType *> translator;
+
+    BOOST_CHECK(
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml)),
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml + size)),
+            xml_escaped
+        )
+    );
+}
+
+template<class CharType>
+void test_xml_unescape(
+    const CharType * xml, 
+    const CharType * xml_escaped, 
+    unsigned int size
+){
+
+    // test xml_unescape
+    typedef boost::archive::iterators::xml_unescape<const CharType *> translator;
+
+    BOOST_CHECK(
+        std::equal(
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml_escaped)),
+            translator(BOOST_MAKE_PFTO_WRAPPER(xml_escaped + size)),
+            xml
+        )
+    );
+}
+
+template<int BitsOut, int BitsIn>
+void test_transform_width(unsigned int size){
+    // test transform_width
+    char rawdata[8];
+    
+    char * rptr;
+    for(rptr = rawdata + 6; rptr-- > rawdata;)
+        *rptr = static_cast<char>(0xff & std::rand());
+
+    // convert 8 to 6 bit characters
+    typedef boost::archive::iterators::transform_width<
+        char *, BitsOut, BitsIn 
+    > translator1;
+
+    std::vector<char> v6;
+
+    std::copy(
+        translator1(BOOST_MAKE_PFTO_WRAPPER(static_cast<char *>(rawdata))),
+        translator1(BOOST_MAKE_PFTO_WRAPPER(rawdata + size)),
+        std::back_inserter(v6)
+    );
+
+    // check to see we got the expected # of characters out
+    if(0 ==  size)
+        BOOST_CHECK(v6.size() == 0);
+    else
+        BOOST_CHECK(v6.size() == (size * BitsIn - 1 ) / BitsOut + 1);
+
+    typedef boost::archive::iterators::transform_width<
+        std::vector<char>::iterator, BitsIn, BitsOut
+    > translator2;
+
+    BOOST_CHECK(
+        std::equal(
+            rawdata,
+            rawdata + size,
+            translator2(BOOST_MAKE_PFTO_WRAPPER(v6.begin()))
+        )
+    );
+
+}
+
+template<class CharType>
+void test_stream_iterators(
+    const CharType * test_data, 
+    unsigned int size
+){
+    std::basic_stringstream<CharType> ss;
+    boost::archive::iterators::ostream_iterator<CharType> osi =
+        boost::archive::iterators::ostream_iterator<CharType>(ss);
+    std::copy(test_data, test_data + size, osi);
+
+    BOOST_CHECK(size == ss.str().size());
+
+    boost::archive::iterators::istream_iterator<CharType> isi =
+        boost::archive::iterators::istream_iterator<CharType>(ss);
+    BOOST_CHECK(std::equal(test_data, test_data + size,isi));
+}
+
+int
+test_main(int /* argc */, char* /* argv */ [] )
+{
+    const char xml[] = "<+>+&+\"+'";
+    const char xml_escaped[] = "&lt;+&gt;+&amp;+&quot;+&apos;";
+    test_xml_escape<const char>(
+        xml_escaped, 
+        xml, 
+        sizeof(xml) / sizeof(char) - 1
+    );
+    test_xml_unescape<const char>(
+        xml, 
+        xml_escaped, 
+        sizeof(xml_escaped) / sizeof(char) - 1
+    );
+
+    const char a[] = "abcdefghijklmnopqrstuvwxyz";
+
+    #ifndef BOOST_NO_CWCHAR
+    const wchar_t wxml[] = L"<+>+&+\"+'";
+    const wchar_t wxml_escaped[] = L"&lt;+&gt;+&amp;+&quot;+&apos;";
+    test_xml_escape<const wchar_t>(
+        wxml_escaped, 
+        wxml, 
+        sizeof(wxml) / sizeof(wchar_t) - 1
+    );
+    test_xml_unescape<const wchar_t>(
+        wxml, 
+        wxml_escaped, 
+        sizeof(wxml_escaped) / sizeof(wchar_t) - 1
+    );
+
+    const wchar_t la[] = L"abcdefghijklmnopqrstuvwxyz";
+
+    test_wchar_from_mb(la, a, sizeof(a) / sizeof(char) - 1);
+    test_mb_from_wchar(a, la, sizeof(la) / sizeof(wchar_t) - 1);
+
+    test_stream_iterators<wchar_t>(la, sizeof(la)/sizeof(wchar_t) - 1);
+    #endif
+
+    test_stream_iterators<char>(a, sizeof(a) - 1);
+
+    test_transform_width<6, 8>(0);
+    test_transform_width<6, 8>(1);
+    test_transform_width<6, 8>(2);
+    test_transform_width<6, 8>(3);
+    test_transform_width<6, 8>(4);
+    test_transform_width<6, 8>(5);
+    test_transform_width<6, 8>(6);
+    test_transform_width<6, 8>(7);
+    test_transform_width<6, 8>(8);
+
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_iterators_base64.cpp b/deal.II/contrib/boost/libs/serialization/test/test_iterators_base64.cpp
new file mode 100644 (file)
index 0000000..a3ebaa7
--- /dev/null
@@ -0,0 +1,100 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_iterators.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <algorithm>
+#include <list>
+
+#if (defined _MSC_VER) && (_MSC_VER == 1200)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include <cstdlib>
+#include <cstddef> // size_t
+
+#include <boost/config.hpp>
+#ifdef BOOST_NO_STDC_NAMESPACE
+namespace std{ 
+    using ::rand; 
+    using ::size_t;
+}
+#endif
+
+#include <boost/serialization/pfto.hpp>
+
+#include <boost/archive/iterators/binary_from_base64.hpp>
+#include <boost/archive/iterators/base64_from_binary.hpp>
+#include <boost/archive/iterators/insert_linebreaks.hpp>
+#include <boost/archive/iterators/remove_whitespace.hpp>
+#include <boost/archive/iterators/transform_width.hpp>
+
+#include "test_tools.hpp"
+
+#include <iostream>
+
+template<typename CharType>
+void test_base64(){
+    CharType rawdata[150];
+    std::size_t size = sizeof(rawdata) / sizeof(CharType);
+    CharType * rptr;
+    for(rptr = rawdata + size; rptr-- > rawdata;)
+        *rptr = static_cast<CharType>(std::rand());
+
+    // convert to base64
+    typedef std::list<CharType> text_base64_type;
+    text_base64_type text_base64;
+
+    typedef 
+        boost::archive::iterators::insert_linebreaks<
+            boost::archive::iterators::base64_from_binary<
+                boost::archive::iterators::transform_width<
+                    CharType *
+                    ,6
+                    ,sizeof(CharType) * 8
+                >
+            > 
+            ,72
+        > 
+        translate_out;
+
+    std::copy(
+        translate_out(BOOST_MAKE_PFTO_WRAPPER(static_cast<CharType *>(rawdata))),
+        translate_out(BOOST_MAKE_PFTO_WRAPPER(rawdata + size)),
+        std::back_inserter(text_base64)
+    );
+
+    // convert from base64 to binary and compare with the original 
+    typedef 
+        boost::archive::iterators::transform_width<
+            boost::archive::iterators::binary_from_base64<
+                boost::archive::iterators::remove_whitespace<
+                    BOOST_DEDUCED_TYPENAME text_base64_type::iterator
+                >
+            >,
+            sizeof(CharType) * 8,
+            6
+        > translate_in;
+    
+    BOOST_CHECK(
+        std::equal(
+            rawdata,
+            rawdata + size,
+            translate_in(BOOST_MAKE_PFTO_WRAPPER(text_base64.begin()))
+        )
+    );
+
+}
+
+int
+test_main( int /*argc*/, char* /*argv*/[] )
+{
+    test_base64<char>();
+    #ifndef BOOST_NO_CWCHAR
+    test_base64<wchar_t>();
+    #endif
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_list.cpp b/deal.II/contrib/boost/libs/serialization/test/test_list.cpp
new file mode 100644 (file)
index 0000000..861f8ee
--- /dev/null
@@ -0,0 +1,77 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_list.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/list.hpp>
+#ifdef BOOST_HAS_SLIST
+#include <boost/serialization/slist.hpp>
+#endif
+
+#include "A.hpp"
+#include "A.ipp"
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    std::list<A> alist;
+    alist.push_back(A());
+    alist.push_back(A());
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("alist",alist);
+    }
+
+    std::list<A> alist1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("alist",alist1);
+    }
+    BOOST_CHECK(alist == alist1);
+    
+    #ifdef BOOST_HAS_SLIST
+    BOOST_STD_EXTENSION_NAMESPACE::slist<A> aslist;
+    aslist.push_front(A());
+    aslist.push_front(A());
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("aslist", aslist);
+    }
+    BOOST_STD_EXTENSION_NAMESPACE::slist<A> aslist1;{
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("aslist", aslist1);
+   }
+    BOOST_CHECK(aslist == aslist1);
+    
+    #endif
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_list_ptrs.cpp b/deal.II/contrib/boost/libs/serialization/test/test_list_ptrs.cpp
new file mode 100644 (file)
index 0000000..9a36a39
--- /dev/null
@@ -0,0 +1,130 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_list.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef>
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/checked_delete.hpp>
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/list.hpp>
+#ifdef BOOST_HAS_SLIST
+#include <boost/serialization/slist.hpp>
+#endif
+#include <boost/serialization/nvp.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+template<class T>
+struct ptr_equal_to : public std::binary_function<T, T, bool> 
+{
+    BOOST_STATIC_ASSERT(::boost::is_pointer<T>::value);
+    bool operator()(T const _Left, T const _Right) const
+    {
+        if(NULL == _Left && NULL == _Right)
+            return true;
+        if(typeid(*_Left) != typeid(*_Right))
+            return false;
+        return *_Left == *_Right;
+    }
+};
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    std::list<A *> alist;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        A * free_a_ptr = new A;
+        alist.push_back(free_a_ptr);
+        alist.push_back(new A);
+        // verify that first element is the same as the free pointer
+        BOOST_CHECK((*alist.begin()) == free_a_ptr);
+        oa << boost::serialization::make_nvp("alist", alist);
+        oa << boost::serialization::make_nvp("free_a_ptr", free_a_ptr);
+    }
+    std::list<A *> alist1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        A * free_a_ptr1;
+        ia >> boost::serialization::make_nvp("alist", alist1);
+        ia >> boost::serialization::make_nvp("free_a_ptr", free_a_ptr1);
+        BOOST_CHECK(
+            alist.size() == alist1.size() 
+            && std::equal(alist.begin(),alist.end(),alist1.begin(),ptr_equal_to<A *>())
+        );
+        // verify that first element is the same as the free pointer
+        BOOST_CHECK((*alist1.begin()) == free_a_ptr1);
+    }
+
+    std::for_each(
+        alist.begin(), 
+        alist.end(), 
+        boost::checked_deleter<A>()
+    );
+    std::for_each(
+        alist1.begin(), 
+        alist1.end(), 
+        boost::checked_deleter<A>()
+    );
+    
+    #ifdef BOOST_HAS_SLIST
+    std::list<A *> aslist;
+    {   
+        aslist.push_back(new A);
+        aslist.push_back(new A);
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        aslist.push_back(new A);
+        aslist.push_back(new A);
+        oa << boost::serialization::make_nvp("aslist", aslist);
+    }
+    std::list<A *> aslist1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("aslist", aslist1);
+        BOOST_CHECK(aslist.size() == aslist1.size() &&
+            std::equal(aslist.begin(),aslist.end(),aslist1.begin(),ptr_equal_to<A *>())
+        );
+    }
+    std::for_each(
+        aslist.begin(), 
+        aslist.end(), 
+        boost::checked_deleter<A>()
+    );
+    std::for_each(
+        aslist1.begin(), 
+        aslist1.end(), 
+        boost::checked_deleter<A>()
+    );  
+    #endif
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_map.cpp b/deal.II/contrib/boost/libs/serialization/test/test_map.cpp
new file mode 100644 (file)
index 0000000..7ae4426
--- /dev/null
@@ -0,0 +1,229 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_map.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <algorithm>
+#include <vector>
+#include <fstream>
+#include <cstddef> // size_t, NULL
+
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+
+#include <cstdio>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::rand; 
+    using ::size_t;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/map.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+///////////////////////////////////////////////////////
+// a key value initialized with a random value for use
+// in testing STL map serialization
+struct random_key {
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(
+        Archive & ar, 
+        const unsigned int /* file_version */
+    ){
+        ar & boost::serialization::make_nvp("random_key", m_i);
+    }
+    int m_i;
+    random_key() : m_i(std::rand()){};
+    bool operator<(const random_key &rhs) const {
+        return m_i < rhs.m_i;
+    }
+    bool operator==(const random_key &rhs) const {
+        return m_i == rhs.m_i;
+    }
+    operator std::size_t () const {    // required by hash_map
+        return m_i;
+    }
+};  
+
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(random_key)
+
+void
+test_map(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    BOOST_MESSAGE("map");
+    // test map of objects
+    std::map<random_key, A> amap;
+    amap.insert(std::make_pair(random_key(), A()));
+    amap.insert(std::make_pair(random_key(), A()));
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("amap", amap);
+    }
+    std::map<random_key, A> amap1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("amap", amap1);
+    }
+    BOOST_CHECK(amap == amap1);
+    std::remove(testfile);
+}
+
+void
+test_map_2(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    BOOST_MESSAGE("map_2");
+    std::pair<int, int> a(11, 22);
+    std::map<int, int> b;
+    b[0] = 0;
+    b[-1] = -1;
+    b[1] = 1;
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        std::pair<int, int> * const pa = &a;
+        std::map<int, int> * const pb = &b;
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << BOOST_SERIALIZATION_NVP(pb);
+        oa << BOOST_SERIALIZATION_NVP(pa);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        std::pair<int, int> *pa = 0;
+        std::map<int, int> *pb = 0;
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> BOOST_SERIALIZATION_NVP(pb);
+        ia >> BOOST_SERIALIZATION_NVP(pa);
+        delete pa;
+        delete pb;
+    }
+    std::remove(testfile);
+}
+
+void
+test_multimap(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    BOOST_MESSAGE("multimap");
+    std::multimap<random_key, A> amultimap;
+    amultimap.insert(std::make_pair(random_key(), A()));
+    amultimap.insert(std::make_pair(random_key(), A()));
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("amultimap", amultimap);
+    }
+    std::multimap<random_key, A> amultimap1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("amultimap", amultimap1);
+    }
+    BOOST_CHECK(amultimap == amultimap1);
+    std::remove(testfile);
+}
+
+#ifdef BOOST_HAS_HASH
+#include <boost/serialization/hash_map.hpp>
+
+namespace BOOST_STD_EXTENSION_NAMESPACE {
+    template<>
+    struct hash<random_key>{
+        std::size_t operator()(const random_key& r) const {
+            return (std::size_t)r;
+        }
+    };
+} // namespace BOOST_STD_EXTENSION_NAMESPACE 
+
+void
+test_hash_map(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    BOOST_CHECKPOINT("hash_map");
+    // test hash_map of objects
+    BOOST_STD_EXTENSION_NAMESPACE::hash_map<random_key, A> ahash_map;
+    ahash_map.insert(std::make_pair(random_key(), A()));
+    ahash_map.insert(std::make_pair(random_key(), A()));
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("ahashmap",ahash_map);
+    }
+    BOOST_STD_EXTENSION_NAMESPACE::hash_map<random_key, A> ahash_map1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("ahashmap",ahash_map1);
+    }
+
+    std::vector< std::pair<random_key, A> > tvec, tvec1;
+    std::copy(ahash_map.begin(), ahash_map.end(), std::back_inserter(tvec));
+    std::sort(tvec.begin(), tvec.end());
+    std::copy(ahash_map1.begin(), ahash_map1.end(), std::back_inserter(tvec1));
+    std::sort(tvec1.begin(), tvec1.end());
+    BOOST_CHECK(tvec == tvec1);
+
+    std::remove(testfile);
+}
+
+void
+test_hash_multimap(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    BOOST_CHECKPOINT("hash_multimap");
+    BOOST_STD_EXTENSION_NAMESPACE::hash_multimap<random_key, A> ahash_multimap;
+    ahash_multimap.insert(std::make_pair(random_key(), A()));
+    ahash_multimap.insert(std::make_pair(random_key(), A()));
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("ahash_multimap", ahash_multimap);
+    }
+    BOOST_STD_EXTENSION_NAMESPACE::hash_multimap<random_key, A> ahash_multimap1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("ahash_multimap", ahash_multimap1);
+    }
+    std::vector< std::pair<random_key, A> > tvec, tvec1;
+    tvec.clear();
+    tvec1.clear();
+    std::copy(ahash_multimap.begin(), ahash_multimap.end(), std::back_inserter(tvec));
+    std::sort(tvec.begin(), tvec.end());
+    std::copy(ahash_multimap1.begin(), ahash_multimap1.end(), std::back_inserter(tvec1));
+    std::sort(tvec1.begin(), tvec1.end());
+    BOOST_CHECK(tvec == tvec1);
+    std::remove(testfile);
+}
+#endif
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    test_map();
+    test_map_2();
+    test_multimap();
+    #ifdef BOOST_HAS_HASH
+    test_hash_map();
+    test_hash_multimap();
+    #endif
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_mi.cpp b/deal.II/contrib/boost/libs/serialization/test/test_mi.cpp
new file mode 100644 (file)
index 0000000..22e6454
--- /dev/null
@@ -0,0 +1,135 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_mi.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// test of serialization of base classes with multiple inheritance
+// contributed by Peter Dimov
+
+#include <cstddef>
+#include <iostream>
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/base_object.hpp>
+
+class A
+{
+private:
+    friend class boost::serialization::access;
+    int x;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_NVP(x);
+    }
+public:
+    explicit A(int x = 0): x(x) {}
+    virtual ~A(); // = 0;
+    int get_x() const
+    {
+        return x;
+    }
+};
+
+inline A::~A()
+{
+}
+
+class B
+{
+private:
+    int y;
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_NVP(y);
+    }
+public:
+    explicit B(int y = 0): y(y) {}
+    virtual ~B(){}
+    int get_y() const
+    {
+        return y;
+    }
+};
+
+class C: public A, public B
+{
+private:
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(B);
+    }
+public:
+    C(){}
+    C(int x, int y): A(x), B(y){}
+};
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    C * pc = new C(1, 2);
+    A * pa = pc;
+    B * pb = pc;
+
+    BOOST_CHECK(pa == pc);
+    BOOST_CHECK(pb == pc);
+
+    int x = pa->get_x();
+    int y = pb->get_y();
+
+    std::cout << "pa->get_x(): " << pa->get_x() << std::endl;
+    std::cout << "pb->get_y(): " << pb->get_y() << std::endl;
+
+    {
+        test_ostream ofs(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(ofs);
+        oa << BOOST_SERIALIZATION_NVP(pc);
+        oa << BOOST_SERIALIZATION_NVP(pa);
+        oa << BOOST_SERIALIZATION_NVP(pb);
+    }
+
+    delete pc;
+    pc = NULL;
+    pa = NULL;
+    pb = NULL;
+
+    {
+        test_istream ifs(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(ifs);
+        ia >> BOOST_SERIALIZATION_NVP(pc);
+        ia >> BOOST_SERIALIZATION_NVP(pa);
+        ia >> BOOST_SERIALIZATION_NVP(pb);
+    }
+
+    BOOST_CHECK(pa == pc);
+    BOOST_CHECK(pb == pc);
+
+    BOOST_CHECK(x == pa->get_x());
+    BOOST_CHECK(y == pb->get_y());
+
+    std::cout << "pa->get_x(): " << pa->get_x() << std::endl;
+    std::cout << "pb->get_y(): " << pb->get_y() << std::endl;
+
+    delete pc;
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_mult_archive_types.cpp b/deal.II/contrib/boost/libs/serialization/test/test_mult_archive_types.cpp
new file mode 100644 (file)
index 0000000..b3985eb
--- /dev/null
@@ -0,0 +1,122 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_mult_archive_types.cpp 
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <cstddef>
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/xml_oarchive.hpp>
+#include <boost/archive/xml_iarchive.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/nvp.hpp>
+
+// This is a simple class.  It contains a counter of the number
+// of objects of this class which have been instantiated.
+class A
+{
+private:
+    friend class boost::serialization::access;
+    int x;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_NVP(x);
+    }
+public:
+    static int count;
+    A(){++count;}    // default constructor
+    virtual ~A(){--count;}   // default destructor
+};
+
+BOOST_CLASS_EXPORT(A)
+
+// B is a subclass of A
+class B : public A
+{
+private:
+    friend class boost::serialization::access;
+    int y;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+    }
+public:
+    static int count;
+    B() : A() {};
+    virtual ~B() {};
+};
+
+BOOST_CLASS_EXPORT(B)
+
+int A::count = 0;
+
+// Run tests by serializing two shared_ptrs into an archive of type
+// OARCH, clearing them (deleting the objects) and then reloading the
+// objects back from an archive of type OARCH.
+template<class OA, class IA>
+void test_save_and_load(A * first, A * second)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // Save
+    {
+        std::ofstream os(testfile);
+        OA oa(os);
+        oa << BOOST_SERIALIZATION_NVP(first);
+        oa << BOOST_SERIALIZATION_NVP(second);
+    }
+
+    // Clear the pointers, thereby destroying the objects they contain
+    first = NULL;
+    second = NULL;
+
+    // Load
+    {
+        std::ifstream is(testfile);
+        IA ia(is);
+        ia >> BOOST_SERIALIZATION_NVP(first);
+        ia >> BOOST_SERIALIZATION_NVP(second);
+    }
+    BOOST_CHECK(first == second);
+    std::remove(testfile);
+}
+
+using namespace boost::archive;
+
+// This does the tests
+int test_main(int /* argc */, char * /* argv */[])
+{
+    // Try to save and load pointers to As, to a text archive
+    A * a = new A;
+    A * a1 = a;
+    test_save_and_load<text_oarchive, text_iarchive>(a, a1);
+
+    // Try to save and load pointers to Bs, to a text archive
+    B * b = new B;
+    B * b1 = b;
+    test_save_and_load<text_oarchive, text_iarchive>(b, b1);
+
+    // Try to save and load pointers to As, to an xml archive
+    test_save_and_load<xml_oarchive, xml_iarchive>(a, a1);
+
+    // Try to save and load pointers to Bs, to an xml archive
+    test_save_and_load<xml_oarchive, xml_iarchive>(b, b1);
+
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_multiple_inheritance.cpp b/deal.II/contrib/boost/libs/serialization/test/test_multiple_inheritance.cpp
new file mode 100644 (file)
index 0000000..0653519
--- /dev/null
@@ -0,0 +1,125 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_multiple_inheritance.cpp
+
+// (C) Copyright 2009 Robert Ramey. 
+// Use, modification and distribution is subject to 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)
+
+// test of serialization library for multiple inheritence situations
+
+#include <cassert>
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/export.hpp>
+
+struct Base1 {
+    int m_x;
+    Base1(){}
+    Base1(int x) : m_x(1 + x) {}
+    virtual ~Base1() {}
+    bool operator==(Base1 & rhs) const {
+        return m_x == rhs.m_x;
+    }
+    // serialize
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */) {
+        ar & BOOST_SERIALIZATION_NVP(m_x);
+    }
+};
+
+//BOOST_CLASS_EXPORT(Base1)
+
+struct Base2 {
+    int m_x;
+    Base2(){}
+    Base2(int x) : m_x(2 + x) {}
+    virtual ~Base2() {}
+    bool operator==(Base2 & rhs) const {
+        return m_x == rhs.m_x;
+    }
+    // serialize
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */) {
+        ar & BOOST_SERIALIZATION_NVP(m_x);
+    }
+};
+
+//BOOST_CLASS_EXPORT(Base2)
+
+struct Sub :
+    public Base1, 
+    public Base2 
+{
+    int m_x;
+    Sub(){}
+    Sub(int x) :
+        Base1(x),
+        Base2(x),
+        m_x(x) 
+    {}
+    bool operator==(Sub & rhs) const {
+        if(! Base2::operator==(rhs))
+            return false;
+        if(! Base1::operator==(rhs))
+            return false;
+        return m_x == rhs.m_x;
+    }
+    virtual ~Sub() {}
+
+    // serialize
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base1);
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base2);
+        ar & BOOST_SERIALIZATION_NVP(m_x);
+    }
+};
+
+BOOST_CLASS_EXPORT(Sub)
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    Base2 * pb2;
+    {
+        // serialize
+        pb2 = new Sub(2);
+
+        test_ostream ofs(testfile);
+        test_oarchive oa(ofs);
+        oa << boost::serialization::make_nvp("Base2", pb2);
+    }
+    Base2 * pb2_1;
+    {
+        // de-serialize
+        test_istream ifs(testfile);
+        test_iarchive ia(ifs);
+        ia >> boost::serialization::make_nvp("Base2", pb2_1);
+    }
+    Sub *s1 = dynamic_cast<Sub *>(pb2);
+    BOOST_CHECK(0 != s1);
+    Sub *s2 = dynamic_cast<Sub *>(pb2_1);
+    BOOST_CHECK(0 != s2);
+    BOOST_CHECK(*s1 == *s2);
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_multiple_ptrs.cpp b/deal.II/contrib/boost/libs/serialization/test/test_multiple_ptrs.cpp
new file mode 100644 (file)
index 0000000..df1e5fb
--- /dev/null
@@ -0,0 +1,50 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_archive_derivation.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef>
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include "D.hpp"
+#include "A.ipp"
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A a;
+    A a1;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK(a == a1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_new_operator.cpp b/deal.II/contrib/boost/libs/serialization/test/test_new_operator.cpp
new file mode 100644 (file)
index 0000000..c356b02
--- /dev/null
@@ -0,0 +1,95 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_new_operator.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+#include <new>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/serialization/access.hpp>
+
+#include "test_tools.hpp"
+
+#include "A.hpp"
+#include "A.ipp"
+
+class ANew : public A {
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned /*file_version*/){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+    }
+public:
+    static unsigned int m_new_calls;
+    static unsigned int m_delete_calls;
+    // implement class specific new/delete in terms standard
+    // implementation - we're testing serialization 
+    // not "new" here.
+    static void * operator new(size_t s){
+        ++m_new_calls;
+        return  ::operator new(s);
+    }
+    static void operator delete(void *p, std::size_t /*s*/){
+        ++m_delete_calls;
+        ::operator delete(p);
+    }
+};
+
+unsigned int ANew::m_new_calls = 0;
+unsigned int ANew::m_delete_calls = 0;
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    
+    BOOST_REQUIRE(NULL != testfile);
+
+    ANew *ta = new ANew();
+
+    BOOST_CHECK(1 == ANew::m_new_calls);
+    BOOST_CHECK(0 == ANew::m_delete_calls);
+
+    ANew *ta1 = NULL;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("ta", ta);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("ta", ta1);
+    }
+    BOOST_CHECK(ta != ta1);
+    BOOST_CHECK(*ta == *ta1);
+
+    BOOST_CHECK(2 == ANew::m_new_calls);
+    BOOST_CHECK(0 == ANew::m_delete_calls);
+
+    std::remove(testfile);
+
+    delete ta;
+    delete ta1;
+
+    BOOST_CHECK(2 == ANew::m_new_calls);
+    BOOST_CHECK(2 == ANew::m_delete_calls);
+
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_no_rtti.cpp b/deal.II/contrib/boost/libs/serialization/test/test_no_rtti.cpp
new file mode 100644 (file)
index 0000000..99ce1f5
--- /dev/null
@@ -0,0 +1,186 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_no_rtti.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// note: this program tests the inter-operability of different
+// extended typeinfo systems.  In this example, one class is
+// identified using the default RTTI while the other uses a custom
+// system based on the export key.
+// 
+// As this program uses RTTI for one of the types, the test will fail
+// on a system for which RTTI is not enabled or not existent.
+
+#include <cstddef>
+#include <fstream>
+#include <iostream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/archive/archive_exception.hpp>
+
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/serialization/extended_type_info_no_rtti.hpp>
+#include <boost/serialization/export.hpp>
+#include <boost/serialization/nvp.hpp>
+
+#include "test_tools.hpp"
+#include <boost/preprocessor/stringize.hpp>
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#include "polymorphic_base.hpp"
+#include "polymorphic_derived1.hpp"
+#include "polymorphic_derived2.hpp"
+
+template<class Archive>
+void polymorphic_derived2::serialize(
+    Archive &ar, 
+    const unsigned int /* file_version */
+){
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+}
+
+template void polymorphic_derived2::serialize(
+    test_oarchive & ar,
+    const unsigned int version
+);
+template void polymorphic_derived2::serialize(
+    test_iarchive & ar,
+    const unsigned int version
+);
+
+// save derived polymorphic class
+void save_derived(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os);
+
+    polymorphic_derived1 *rd1 = new polymorphic_derived1;
+    polymorphic_derived2 *rd2 = new polymorphic_derived2;
+
+    std::cout << "saving polymorphic_derived1 (no_rtti)\n";
+    oa << BOOST_SERIALIZATION_NVP(rd1);
+
+    std::cout << "saving polymorphic_derived2\n";
+    oa << BOOST_SERIALIZATION_NVP(rd2);
+
+    const polymorphic_base *rb1 =  rd1;
+    polymorphic_base *rb2 =  rd2;
+    std::cout << "saving polymorphic_derived1 (no_rtti) through base (no_rtti)\n";
+    oa << BOOST_SERIALIZATION_NVP(rb1);
+    std::cout << "saving polymorphic_derived2 through base\n";
+    oa << BOOST_SERIALIZATION_NVP(rb2);
+
+    delete rd1;
+    delete rd2;
+}
+
+void load_derived(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is);
+
+    polymorphic_derived1 *rd1 = NULL;
+    polymorphic_derived2 *rd2 = NULL;
+
+    std::cout << "loading polymorphic_derived1 (no_rtti)\n";
+    ia >> BOOST_SERIALIZATION_NVP(rd1);
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<
+            polymorphic_derived1
+        >::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<
+            polymorphic_derived1
+        >::type::get_const_instance().get_derived_extended_type_info(*rd1)
+        ,
+        "restored pointer d1 not of correct type"
+    );
+
+    std::cout << "loading polymorphic_derived2\n";
+    ia >> BOOST_SERIALIZATION_NVP(rd2);
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<
+            polymorphic_derived2
+        >::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<
+            polymorphic_derived2
+        >::type::get_const_instance().get_derived_extended_type_info(*rd2)
+        ,
+        "restored pointer d2 not of correct type"
+    );
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+
+    // the above opereration registers the derived classes as a side
+    // effect.  Hence, instances can now be correctly serialized through
+    // a base class pointer.
+    std::cout << "loading polymorphic_derived1 (no_rtti) through base (no_rtti)\n";
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+
+    BOOST_CHECK_MESSAGE(
+        rb1 == dynamic_cast<polymorphic_base *>(rd1),
+        "serialized pointers not correctly restored"
+    );
+
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<
+            polymorphic_derived1
+        >::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<
+            polymorphic_base
+        >::type::get_const_instance().get_derived_extended_type_info(*rb1)
+        ,
+        "restored pointer b1 not of correct type"
+    );
+    std::cout << "loading polymorphic_derived2 through base (no_rtti)\n";
+    ia >> BOOST_SERIALIZATION_NVP(rb2);
+
+    BOOST_CHECK_MESSAGE(
+        rb2 ==  dynamic_cast<polymorphic_base *>(rd2),
+        "serialized pointers not correctly restored"
+    );
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<
+            polymorphic_derived2
+        >::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<
+            polymorphic_base
+        >::type::get_const_instance().get_derived_extended_type_info(*rb2)
+        ,
+        "restored pointer b2 not of correct type"
+    );
+    delete rb1;
+    delete rb2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    
+    BOOST_REQUIRE(NULL != testfile);
+
+    save_derived(testfile);
+    load_derived(testfile);
+
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_non_default_ctor.cpp b/deal.II/contrib/boost/libs/serialization/test/test_non_default_ctor.cpp
new file mode 100644 (file)
index 0000000..4c128a6
--- /dev/null
@@ -0,0 +1,198 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_non_default_ctor.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// this tests:
+// a) non-intrusive method of implementing serialization
+// b) usage of a non-default constructor
+
+#include <cstddef> // NULL
+#include <cstdio>  // remove()
+#include <fstream>
+#include <cstdlib> // for rand()
+#include <cmath> // for fabs()
+#include <limits> 
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+    using ::fabs; 
+    using ::remove;
+#ifndef UNDER_CE    
+    using ::numeric_limits;
+#endif
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+///////////////////////////////////////////////////////
+// simple class test - using non-intrusive syntax
+// illustrates the usage of the non-intrusve syntax
+class A
+{
+    friend class boost::serialization::access;
+
+    // note const values can only be initialized with a non
+    // non-default constructor
+    const int i;
+
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+    bool operator==(const A & rhs) const;
+    bool operator<(const A & rhs) const;
+
+    template<class Archive>
+    void serialize(Archive & ar,const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_NVP(s);
+        ar & BOOST_SERIALIZATION_NVP(t);
+        ar & BOOST_SERIALIZATION_NVP(u);
+        ar & BOOST_SERIALIZATION_NVP(v);
+        ar & BOOST_SERIALIZATION_NVP(w);
+        ar & BOOST_SERIALIZATION_NVP(x);
+    }
+    A(const A & rhs);
+    A & operator=(const A & rhs);
+public:
+    static int count;
+    const int & get_i() const {
+        return i;
+    }
+    A(int i_);
+    ~A();
+};
+
+int A::count = 0;
+
+A::A(int i_) : 
+    i(i_),
+    s(static_cast<signed char>(0xff & std::rand())),
+    t(static_cast<signed char>(0xff & std::rand())),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand() / std::rand()),
+    x((double)std::rand() / std::rand())
+{
+    ++count;
+}
+
+A::~A(){
+    --count;
+}
+
+bool A::operator==(const A &rhs) const
+{
+    return
+        s == rhs.s 
+        && t == rhs.t 
+        && u == rhs.u 
+        && v == rhs.v 
+        && std::fabs(w - rhs.w) <= std::numeric_limits<float>::round_error()
+        && std::fabs(x - rhs.x) <= std::numeric_limits<float>::round_error()
+    ;
+}
+
+bool A::operator<(const A &rhs) const
+{
+    if(! (s == rhs.s) )
+        return s < rhs.s;
+    if(! (t == rhs.t) )
+        return t < rhs.t;
+    if(! (u == rhs.u) )
+        return t < rhs.u; 
+    if(! (v == rhs.v) )
+        return t < rhs.v;
+    if(! (std::fabs(w - rhs.w) < std::numeric_limits<float>::round_error() ) )
+        return t < rhs.w; 
+    if(! (std::fabs(x - rhs.x) < std::numeric_limits<float>::round_error() ) )
+        return t < rhs.x;
+    return false;
+}
+
+namespace boost { 
+namespace serialization {
+
+template<class Archive>
+inline void save_construct_data(
+    Archive & ar, 
+    const A * a, 
+    const BOOST_PFTO unsigned int /* file_version */
+){
+    // variable used for construction
+    ar << boost::serialization::make_nvp("i", a->get_i());
+}
+
+template<class Archive>
+inline void load_construct_data(
+    Archive & ar, 
+    A * a, 
+    const unsigned int /* file_version */
+){
+    int i;
+    ar >> boost::serialization::make_nvp("i", i);
+    ::new(a)A(i);
+}
+
+} // serialization
+} // namespace boost
+
+void save(const char * testfile){
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    A a(2);
+
+    oa << BOOST_SERIALIZATION_NVP(a);
+    
+    // save a copy pointer to this item
+    A *pa1 = &a;
+    oa << BOOST_SERIALIZATION_NVP(pa1);
+
+    // save pointer to a new object
+    A *pa2 = new A(4);
+    oa << BOOST_SERIALIZATION_NVP(pa2);
+
+    delete pa2;
+}
+void load(const char * testfile){
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    A a(4);
+    ia >> BOOST_SERIALIZATION_NVP(a);
+
+    A *pa1;
+    ia >> BOOST_SERIALIZATION_NVP(pa1);
+    BOOST_CHECK_MESSAGE(pa1 == &a, "Copy of pointer not correctly restored");
+
+    A *pa2;
+    ia >> BOOST_SERIALIZATION_NVP(pa2);
+    BOOST_CHECK_MESSAGE(pa2 != &a, "Pointer not correctly restored");
+
+    delete pa2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    save(testfile);
+    load(testfile);
+    BOOST_CHECK(0 == A::count);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_non_default_ctor2.cpp b/deal.II/contrib/boost/libs/serialization/test/test_non_default_ctor2.cpp
new file mode 100644 (file)
index 0000000..ed71838
--- /dev/null
@@ -0,0 +1,144 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_non_default_ctor2.cpp
+
+// (C) Copyright 2002 Martin Ecker. 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// this tests complex usage of non-default constructor.  Specifically
+// the case where a constructor serializes a pointer member.
+
+#include <fstream>
+
+#include <boost/config.hpp>
+
+#include "test_tools.hpp"
+
+class IntValueHolder
+{
+public:
+    IntValueHolder()
+        : value(0)
+    {}
+
+    IntValueHolder(int newvalue)
+        : value(newvalue)
+    {}
+
+    int GetValue() const { return value; }
+
+private:
+    int value;
+
+    friend class boost::serialization::access;
+
+    template <class ArchiveT>
+    void serialize(ArchiveT& ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_NVP(value);
+    }
+};
+
+class FloatValueHolder
+{
+public:
+    FloatValueHolder()
+        : value(0)
+    {}
+
+    FloatValueHolder(float newvalue)
+        : value(newvalue)
+    {}
+
+    float GetValue() const { return value; }
+
+private:
+    float value;
+
+    friend class boost::serialization::access;
+
+    template <class ArchiveT>
+    void serialize(ArchiveT& ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_NVP(value);
+    }
+};
+
+class A
+{
+public:
+    A(const IntValueHolder& initialValue)
+        : value(initialValue), floatValue(new FloatValueHolder(10.0f))
+    {}
+
+    ~A()
+    {
+        delete floatValue;
+    }
+
+    IntValueHolder value;
+    FloatValueHolder* floatValue;
+
+private:
+    friend class boost::serialization::access;
+
+    template <class ArchiveT>
+    void serialize(ArchiveT& ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_NVP(floatValue);
+    }
+};
+
+namespace boost { 
+namespace serialization {
+
+template <class ArchiveT>
+void save_construct_data(
+    ArchiveT& archive, 
+    const A* p, 
+    const BOOST_PFTO unsigned int /*version*/
+){
+    archive & boost::serialization::make_nvp("initialValue", p->value);
+}
+
+template <class ArchiveT>
+void load_construct_data(
+    ArchiveT& archive, 
+    A* p, 
+    const unsigned int /*version*/
+){
+    IntValueHolder initialValue;
+    archive & boost::serialization::make_nvp("initialValue", initialValue);
+
+    ::new (p) A(initialValue);
+}
+
+} // serialization
+} // namespace boost
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    A* a = new A(5);
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << BOOST_SERIALIZATION_NVP(a);
+    }
+
+    A* a_new;
+
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> BOOST_SERIALIZATION_NVP(a_new);
+    }
+    delete a;
+    delete a_new;
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_non_intrusive.cpp b/deal.II/contrib/boost/libs/serialization/test/test_non_intrusive.cpp
new file mode 100644 (file)
index 0000000..250be63
--- /dev/null
@@ -0,0 +1,174 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_non_intrursive.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// this tests:
+// a) non-intrusive method of implementing serialization
+// b) usage of a non-default constructor
+
+#include <fstream>
+#include <cstdlib> // for rand()
+#include <cstdio>  // remove
+#include <cmath>   // for fabs()
+#include <limits>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand;
+    using ::fabs;
+    using ::remove;
+#ifndef UNDER_CE    
+    using ::numeric_limits; 
+#endif
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+///////////////////////////////////////////////////////
+// simple class test - using non-intrusive syntax
+// illustrates the usage of the non-intrusve syntax
+class A
+{
+public:
+    signed char s;
+    unsigned char t;
+    signed int u;
+    unsigned int v;
+    float w;
+    double x;
+    A();
+    bool operator==(const A & rhs) const;
+    bool operator<(const A & rhs) const;
+};
+
+A::A() : 
+    s(static_cast<signed char>(0xff & std::rand())),
+    t(static_cast<signed char>(0xff & std::rand())),
+    u(std::rand()),
+    v(std::rand()),
+    w((float)std::rand() / std::rand()),
+    x((double)std::rand() / std::rand())
+{
+}
+
+bool A::operator==(const A &rhs) const
+{
+    return
+        s == rhs.s 
+        && t == rhs.t 
+        && u == rhs.u 
+        && v == rhs.v 
+        && std::fabs(w - rhs.w) <= std::numeric_limits<float>::round_error()
+        && std::fabs(x - rhs.x) <= std::numeric_limits<float>::round_error()
+    ;
+}
+
+bool A::operator<(const A &rhs) const
+{
+    if(! (s == rhs.s) )
+        return s < rhs.s;
+    if(! (t == rhs.t) )
+        return t < rhs.t;
+    if(! (u == rhs.u) )
+        return t < rhs.u; 
+    if(! (v == rhs.v) )
+        return t < rhs.v;
+    if(! (std::fabs(w - rhs.w) < std::numeric_limits<float>::round_error() ) )
+        return t < rhs.w; 
+    if(! (std::fabs(x - rhs.x) < std::numeric_limits<float>::round_error() ) )
+        return t < rhs.x;
+    return false;
+}
+
+// note the following:
+
+// function specializations must be defined in the appropriate
+// namespace - boost::serialization
+namespace boost { 
+namespace serialization {
+
+// This first set of overrides should work with all compilers.
+
+// The last argument is int while the default versions
+// defined in serialization.hpp have long as the last argument.
+// This is part of the work around for compilers that don't 
+// support correct function template ordering.  These functions
+// are always called with 0 (i.e. an int) as the last argument.
+// Our specialized versions also have int as the last argument
+// while the default versions have a long as the last argument.
+// This makes our specialized versions a better match than the
+// default ones as no argument conversion is required to make a match
+template<class Archive>
+void serialize(
+    Archive & ar, 
+    A & a, 
+    const unsigned int /* file_version */
+){
+    ar & boost::serialization::make_nvp("s", a.s);
+    ar & boost::serialization::make_nvp("t", a.t);
+    ar & boost::serialization::make_nvp("u", a.u);
+    ar & boost::serialization::make_nvp("v", a.v);
+    ar & boost::serialization::make_nvp("w", a.w);
+    ar & boost::serialization::make_nvp("x", a.x);
+}
+
+} // serialization
+} // namespace boost
+
+void save(const char * testfile){
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    A a;
+
+    oa << BOOST_SERIALIZATION_NVP(a);
+    
+    // save a copy pointer to this item
+    A *pa1 = &a;
+    oa << BOOST_SERIALIZATION_NVP(pa1);
+
+    // save pointer to a new object
+    A *pa2 = new A();
+    oa << BOOST_SERIALIZATION_NVP(pa2);
+
+    delete pa2;
+}
+
+void load(const char * testfile){
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    A a;
+    ia >> BOOST_SERIALIZATION_NVP(a);
+
+    A *pa1;
+    ia >> BOOST_SERIALIZATION_NVP(pa1);
+    BOOST_CHECK_MESSAGE(pa1 == &a, "Copy of pointer not correctly restored");
+
+    A *pa2;
+    ia >> BOOST_SERIALIZATION_NVP(pa2);
+    BOOST_CHECK_MESSAGE(pa2 != &a, "Pointer not correctly restored");
+
+    delete pa2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    save(testfile);
+    load(testfile);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_not_serializable.cpp b/deal.II/contrib/boost/libs/serialization/test/test_not_serializable.cpp
new file mode 100644 (file)
index 0000000..4833512
--- /dev/null
@@ -0,0 +1,47 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_non_serializable.cpp: test implementation level trait
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// test implementation level "not_serializable"
+// should fail compilation
+
+#include <fstream>
+
+#include "test_tools.hpp"
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/nvp.hpp>
+
+class A
+{
+};
+
+BOOST_CLASS_IMPLEMENTATION(A, boost::serialization::not_serializable)
+
+void out(A & a)
+{
+    test_ostream os("testfile", TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+
+void in(A & a)
+{
+    test_istream is("testfile", TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    A a;
+    out(a);
+    in(a);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_null_ptr.cpp b/deal.II/contrib/boost/libs/serialization/test/test_null_ptr.cpp
new file mode 100644 (file)
index 0000000..e52631a
--- /dev/null
@@ -0,0 +1,89 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_null_ptr.cpp: test implementation level trait
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+#include <boost/serialization/base_object.hpp>
+
+class polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */){
+    }
+public:
+    virtual ~polymorphic_base(){};
+};
+
+class polymorphic_derived1 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+};
+
+// save unregistered polymorphic classes
+void save(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 =  NULL;
+    polymorphic_derived1 *rd1 = NULL;
+    
+    oa << BOOST_SERIALIZATION_NVP(rb1);
+    oa << BOOST_SERIALIZATION_NVP(rd1);
+}
+
+// load unregistered polymorphic classes
+void load(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_derived1 dummy;
+
+    polymorphic_base *rb1 = & dummy;
+    polymorphic_derived1 *rd1 = & dummy;
+
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+    BOOST_CHECK_MESSAGE(NULL == rb1, "Null pointer not restored");
+
+    ia >> BOOST_SERIALIZATION_NVP(rd1);
+    BOOST_CHECK_MESSAGE(NULL == rd1, "Null pointer not restored");
+
+    delete rb1;
+    delete rd1;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    save(testfile);
+    load(testfile);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_nvp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_nvp.cpp
new file mode 100644 (file)
index 0000000..cd546e0
--- /dev/null
@@ -0,0 +1,68 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_nvp.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/nvp.hpp>
+
+#include "B.hpp"
+#include "A.ipp"
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    B b, b1;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << BOOST_SERIALIZATION_NVP(b);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> BOOST_SERIALIZATION_NVP(b1);
+    }
+    BOOST_CHECK(b == b1);
+
+    B *bptr = &b;
+    B *bptr1;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << BOOST_SERIALIZATION_NVP(bptr);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> BOOST_SERIALIZATION_NVP(bptr1);
+    }
+    BOOST_CHECK(b == *bptr1);
+
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_object.cpp b/deal.II/contrib/boost/libs/serialization/test/test_object.cpp
new file mode 100644 (file)
index 0000000..acf44e8
--- /dev/null
@@ -0,0 +1,70 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_object.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// test implementation level "object_serializable"
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/nvp.hpp>
+
+class A
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */){
+    }
+};
+
+BOOST_CLASS_IMPLEMENTATION(A, boost::serialization::object_serializable)
+
+// note: version can be assigned only to objects whose implementation
+// level is object_class_info.  So, doing the following will result in
+// a static assertion
+// BOOST_CLASS_VERSION(A, 2);
+
+void out(const char *testfile, A & a)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+
+void in(const char *testfile, A & a)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    A a;
+    out(testfile, a);
+    in(testfile, a);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_optional.cpp b/deal.II/contrib/boost/libs/serialization/test/test_optional.cpp
new file mode 100644 (file)
index 0000000..0beb750
--- /dev/null
@@ -0,0 +1,62 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_optional.cpp
+
+// (C) Copyright 2004 Pavel Vozenilek
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/optional.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    const boost::optional<int> aoptional1;
+    const boost::optional<int> aoptional2(123);
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("aoptional1",aoptional1);
+        oa << boost::serialization::make_nvp("aoptional2",aoptional2);
+    }
+
+    boost::optional<int> aoptional1a(999);
+    boost::optional<int> aoptional2a;
+
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("aoptional1",aoptional1a);
+        ia >> boost::serialization::make_nvp("aoptional2",aoptional2a);
+    }
+    BOOST_CHECK(aoptional1 == aoptional1a);
+    BOOST_CHECK(aoptional2 == aoptional2a);
+    
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_pimpl.cpp b/deal.II/contrib/boost/libs/serialization/test/test_pimpl.cpp
new file mode 100644 (file)
index 0000000..7b4b196
--- /dev/null
@@ -0,0 +1,48 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_pimpl.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <boost/compatibility/cpp_c_headers/cstdio> // for tmpnam
+
+#include <fstream>
+#include <boost/serialization/nvp.hpp>
+
+#include "test_tools.hpp"
+
+class B;
+
+class A {
+^    friend boost::serialization::access;
+^    B *pimpl;
+^    template<class Archive>
+^    void serialize(Archive & ar, const unsigned int file_version);
+};
+
+int test_main( int argc, char* argv[] )
+{
+    char testfile[TMP_MAX];
+    std::tmpnam(testfile);
+//    BOOST_REQUIRE(NULL != testfile);
+
+    A a, a1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os);
+        oa << BOOST_SERIALIZATION_NVP(a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is);
+        BOOST_SERIALIZATION_NVP(a1);
+    }
+//    BOOST_CHECK(a != a1);
+    return 0;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_polymorphic.cpp b/deal.II/contrib/boost/libs/serialization/test/test_polymorphic.cpp
new file mode 100644 (file)
index 0000000..1e501c6
--- /dev/null
@@ -0,0 +1,94 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_polymorphic.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+// the following is to ensure that when one of the libraries changes
+// BJAM rebuilds and relinks the test.
+/*
+#include "polymorphic_text_archive.hpp"
+#include "polymorphic_text_warchive.hpp"
+#include "polymorphic_binary_archive.hpp"
+#include "polymorphic_xml_archive.hpp"
+#include "polymorphic_xml_warchive.hpp"
+*/
+
+#include "test_tools.hpp"
+
+#include <boost/archive/polymorphic_oarchive.hpp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include "test_polymorphic_A.hpp"
+
+int test_main(int /* argc */, char * /* argv */ [])
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    const data d;
+    data d1;
+    // test using using polymorphic interface
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa_implementation(os, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_oarchive & oa_interface = oa_implementation;
+        oa_interface << BOOST_SERIALIZATION_NVP(d);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive  ia_implementation(is, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_iarchive & ia_interface = ia_implementation;
+        ia_interface >> BOOST_SERIALIZATION_NVP(d1);
+    }
+    BOOST_CHECK(d == d1);
+    std::remove(testfile);
+
+    // test using using polymorphic implementation.
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa_implementation(os, TEST_ARCHIVE_FLAGS);
+        oa_implementation << BOOST_SERIALIZATION_NVP(d);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive  ia_implementation(is, TEST_ARCHIVE_FLAGS);
+        ia_implementation >> BOOST_SERIALIZATION_NVP(d1);
+    }
+    BOOST_CHECK(d == d1);
+    std::remove(testfile);
+
+    // test using using polymorphic implementation.
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_oarchive * oa_implementation 
+            = new test_oarchive(os, TEST_ARCHIVE_FLAGS);
+        *oa_implementation << BOOST_SERIALIZATION_NVP(d);
+        delete oa_implementation;
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        boost::archive::polymorphic_iarchive * ia_implementation
+            = new test_iarchive(is, TEST_ARCHIVE_FLAGS);
+        *ia_implementation >> BOOST_SERIALIZATION_NVP(d1);
+        delete ia_implementation;
+    }
+    BOOST_CHECK(d == d1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_polymorphic2.cpp b/deal.II/contrib/boost/libs/serialization/test/test_polymorphic2.cpp
new file mode 100644 (file)
index 0000000..52ee308
--- /dev/null
@@ -0,0 +1,40 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_polymorphic2.cpp
+
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+#include <fstream>
+
+#include "test_tools.hpp"
+
+#include "test_polymorphic2.hpp"
+
+int test_main(int /*argc*/, char* /*argv*/[])
+{
+    A *a = new B();
+    a->i = 3;
+
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    {
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa_implementation(os, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_oarchive & opa = oa_implementation;
+        opa << BOOST_SERIALIZATION_NVP(a);
+    }
+    A *loaded = 0;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia_implementation(is, TEST_ARCHIVE_FLAGS);
+        boost::archive::polymorphic_iarchive & ipa = ia_implementation;
+        ipa >> BOOST_SERIALIZATION_NVP(loaded);
+    }
+    BOOST_CHECK(a->i == loaded->i);
+    delete a;
+    delete loaded;
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_polymorphic2.hpp b/deal.II/contrib/boost/libs/serialization/test/test_polymorphic2.hpp
new file mode 100644 (file)
index 0000000..a2cd4f1
--- /dev/null
@@ -0,0 +1,43 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_polymorphic2.hpp
+
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+namespace boost {
+namespace archive {
+    class polymorphic_oarchive;
+    class polymorphic_iarchive;
+}
+}
+
+struct A {
+public:
+    A() {}
+    virtual ~A() {}
+
+    void serialize(
+        boost::archive::polymorphic_oarchive &ar, 
+        const unsigned int /*version*/
+    );
+    void serialize(
+        boost::archive::polymorphic_iarchive &ar, 
+        const unsigned int /*version*/
+    );
+
+    int i;
+};
+
+struct B : A {
+    void serialize(
+        boost::archive::polymorphic_oarchive &ar, 
+        const unsigned int /*version*/
+    );
+    void serialize(
+        boost::archive::polymorphic_iarchive &ar, 
+        const unsigned int /*version*/
+    );
+};
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_polymorphic2imp.cpp b/deal.II/contrib/boost/libs/serialization/test/test_polymorphic2imp.cpp
new file mode 100644 (file)
index 0000000..e0544e8
--- /dev/null
@@ -0,0 +1,44 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_polymorphic2imp.cpp
+
+// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <boost/serialization/export.hpp>
+#include <boost/archive/polymorphic_oarchive.hpp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+#include "test_polymorphic2.hpp"
+
+void A::serialize(
+    boost::archive::polymorphic_oarchive &ar, 
+    const unsigned int /*version*/
+){
+    ar & BOOST_SERIALIZATION_NVP(i);
+}
+void A::serialize(
+    boost::archive::polymorphic_iarchive &ar, 
+    const unsigned int /*version*/
+){
+    ar & BOOST_SERIALIZATION_NVP(i);
+}
+// note: only the most derived classes need be exported
+// BOOST_CLASS_EXPORT(A)
+
+void B::serialize(
+    boost::archive::polymorphic_oarchive &ar, 
+    const unsigned int /*version*/
+){
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+}
+void B::serialize(
+    boost::archive::polymorphic_iarchive &ar, 
+    const unsigned int /*version*/
+){
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+}
+BOOST_CLASS_EXPORT(B)
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_polymorphic_A.cpp b/deal.II/contrib/boost/libs/serialization/test/test_polymorphic_A.cpp
new file mode 100644 (file)
index 0000000..c7c598c
--- /dev/null
@@ -0,0 +1,58 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_polymorphic_A.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 "test_polymorphic_A.hpp"
+#include <boost/serialization/nvp.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+data::data() :
+    a(new A)
+{}
+data::~data(){
+    delete a;
+}
+
+bool data::operator==(const data & rhs) const {
+    return * (a) == *(rhs.a);
+}
+
+#if 0 // this method fails with msvc 6.0 and borland
+// now we can define the serialization for class A
+template<class Archive>
+void data::serialize(Archive & ar, const unsigned int /* file_version */){
+    ar & BOOST_SERIALIZATION_NVP(a);
+}
+
+// without the explicit instantiations below, the program will
+// fail to link for lack of instantiantiation of the above function
+// note: the following failed to fix link errors for vc 7.0 !
+#include <boost/archive/polymorphic_oarchive.hpp>
+
+template void data::serialize<boost::archive::polymorphic_oarchive>(
+    boost::archive::polymorphic_oarchive & ar, 
+    const unsigned int file_version
+);
+
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+template void data::serialize<boost::archive::polymorphic_iarchive>(
+    boost::archive::polymorphic_iarchive & ar, 
+    const unsigned int file_version
+);
+#endif
+
+// so use this
+void data::serialize(boost::archive::polymorphic_oarchive & ar, const unsigned int /* file_version */){
+    ar & BOOST_SERIALIZATION_NVP(a);
+}
+
+void data::serialize(boost::archive::polymorphic_iarchive & ar, const unsigned int /* file_version */){
+    ar & BOOST_SERIALIZATION_NVP(a);
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_polymorphic_A.hpp b/deal.II/contrib/boost/libs/serialization/test/test_polymorphic_A.hpp
new file mode 100644 (file)
index 0000000..306d626
--- /dev/null
@@ -0,0 +1,30 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_polymorphic_A.hpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// class whose declaration is hidden by a pointer
+// #include <boost/serialization/scoped_ptr.hpp>
+
+#include <boost/archive/polymorphic_oarchive.hpp>
+#include <boost/archive/polymorphic_iarchive.hpp>
+
+class A;
+
+struct data {
+    // class a contains a pointer to a "hidden" declaration
+    // borland scoped_ptr doesn't work !!!
+    // boost::scoped_ptr<A> a;
+    A * a;
+//    template<class Archive>
+//    void serialize(Archive & ar, const unsigned int file_version);
+    void serialize(boost::archive::polymorphic_oarchive & ar, const unsigned int file_version);
+    void serialize(boost::archive::polymorphic_iarchive & ar, const unsigned int file_version);
+    data();
+    ~data();
+    bool operator==(const data & rhs) const;
+};
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_primitive.cpp b/deal.II/contrib/boost/libs/serialization/test/test_primitive.cpp
new file mode 100644 (file)
index 0000000..aa94bd4
--- /dev/null
@@ -0,0 +1,64 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_primitive.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// test implementation level "primitive_type"
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/nvp.hpp>
+
+struct A
+{
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        // note: should never fail here
+        BOOST_STATIC_ASSERT(0 == sizeof(Archive));
+    }
+};
+
+std::ostream & operator<<(std::ostream &os, const A & /* a */){ return os;}
+std::istream & operator>>(std::istream &is, A & /* a */){return is;}
+
+#ifndef BOOST_NO_STD_WSTREAMBUF
+std::wostream & operator<<(std::wostream &os, const A & /* a */){ return os;}
+std::wistream & operator>>(std::wistream &is, A & /* a */){return is;}
+#endif
+
+BOOST_CLASS_IMPLEMENTATION(A, boost::serialization::primitive_type)
+
+void out(const char *testfile, A & a)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(a);
+}
+
+void in(const char *testfile, A & a)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(a);
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    A a;
+    out(testfile, a);
+    in(testfile, a);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_private_base.cpp b/deal.II/contrib/boost/libs/serialization/test/test_private_base.cpp
new file mode 100644 (file)
index 0000000..bb552a9
--- /dev/null
@@ -0,0 +1,99 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_private_base.cpp
+
+// (C) Copyright 2009 Eric Moyer - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// invoke header for a custom archive test.
+
+#include <fstream>
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/serialization/access.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/export.hpp>
+
+#include "test_tools.hpp"
+
+class Base {
+    friend class boost::serialization::access;
+    int m_i;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int version){
+        ar & m_i;
+    }
+protected:
+    bool operator==(const Base &rhs) const {
+        return m_i == rhs.m_i;
+    }
+    Base(int i = 0) :
+        m_i(i)
+    {}
+    virtual ~Base();
+};
+
+class Derived :  public Base {
+    friend class boost::serialization::access;
+private:
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int version){
+        ar & boost::serialization::base_object<Base>(*this);
+    }
+public:
+    bool operator==(const Derived &rhs) const {
+        return Base::operator==(rhs);
+    }
+    Derived(int i = 0) :
+        Base(i)
+    {}
+};
+
+BOOST_CLASS_EXPORT(Derived)
+
+int 
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    Derived a(1), a1(2);
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK_EQUAL(a, a1);
+    std::remove(testfile);
+
+    Base *ta = new Derived(1);
+    Base *ta1 = NULL;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("ta", ta);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("ta", ta1);
+    }
+    BOOST_CHECK(ta != ta1);
+    BOOST_CHECK(*static_cast<Derived *>(ta) == *static_cast<Derived *>(ta1));
+    std::remove(testfile);
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_private_ctor.cpp b/deal.II/contrib/boost/libs/serialization/test/test_private_ctor.cpp
new file mode 100644 (file)
index 0000000..72b3904
--- /dev/null
@@ -0,0 +1,51 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_private_ctor.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <sstream>
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/vector.hpp>
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+
+class V {
+    friend int test_main(int /* argc */, char * /* argv */[]);
+    friend class boost::serialization::access;
+    int m_i;    
+    V() :
+        m_i(0)
+    {}
+    ~V(){}
+    template<class Archive>
+    void serialize(Archive& ar, unsigned /*version*/)
+    {
+        ar & m_i;
+    }
+    bool operator==(const V & v) const {
+        return m_i == v.m_i;
+    }
+};
+
+int test_main(int /* argc */, char * /* argv */[])
+{
+    std::stringstream ss;
+    const V v;
+    {
+        boost::archive::text_oarchive oa(ss);
+        oa << v;
+    }
+    V v1;
+    {
+        boost::archive::text_iarchive ia(ss);
+        ia >> v1;
+    }
+    BOOST_CHECK(v == v1);
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_recursion.cpp b/deal.II/contrib/boost/libs/serialization/test/test_recursion.cpp
new file mode 100644 (file)
index 0000000..a44f293
--- /dev/null
@@ -0,0 +1,51 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_recurrsion.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include "J.hpp"
+#include "A.ipp"
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test recursive structure
+    J j, j1;
+    j.j = &j;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << BOOST_SERIALIZATION_NVP(j);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> BOOST_SERIALIZATION_NVP(j1);
+    }
+    BOOST_CHECK(j == j1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_registered.cpp b/deal.II/contrib/boost/libs/serialization/test/test_registered.cpp
new file mode 100644 (file)
index 0000000..5a5ccdd
--- /dev/null
@@ -0,0 +1,239 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_registered.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+#include "test_tools.hpp"
+
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+
+class polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */){
+    }
+public:
+    virtual ~polymorphic_base(){};
+};
+
+class polymorphic_derived1 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+};
+
+class polymorphic_derived2 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+};
+
+// save derived polymorphic class
+void save_derived(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_derived1 *rd1 = new polymorphic_derived1;
+    polymorphic_derived2 *rd2 = new polymorphic_derived2;
+
+    // registration IS necessary when serializing pointers of
+    // polymorphic classes
+    oa.register_type(static_cast<polymorphic_derived1 *>(NULL));
+    oa.register_type(static_cast<polymorphic_derived2 *>(NULL));
+    oa << BOOST_SERIALIZATION_NVP(rd1);
+    oa << BOOST_SERIALIZATION_NVP(rd2);
+
+    // the above opereration registers the derived classes as a side
+    // effect.  Hence, instances can now be correctly serialized through
+    // a base class pointer.
+    polymorphic_base *rb1 =  rd1;
+    polymorphic_base *rb2 =  rd2;
+    oa << BOOST_SERIALIZATION_NVP(rb1);
+    oa << BOOST_SERIALIZATION_NVP(rb2);
+
+    delete rd1;
+    delete rd2;
+}
+
+// save derived polymorphic class
+void load_derived(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_derived1 *rd1 = NULL;
+    polymorphic_derived2 *rd2 = NULL;
+
+    // registration IS necessary when serializing pointers of
+    // polymorphic classes
+    ia.register_type(static_cast<polymorphic_derived1 *>(NULL));
+    ia.register_type(static_cast<polymorphic_derived2 *>(NULL));
+
+    ia >> BOOST_SERIALIZATION_NVP(rd1);
+
+    const boost::serialization::extended_type_info * p1;
+    p1 = & boost::serialization::type_info_implementation<polymorphic_derived1>
+        ::type::get_const_instance();
+
+    BOOST_CHECK(NULL != p1);
+
+    const boost::serialization::extended_type_info * p2;
+    p2 = boost::serialization::type_info_implementation<polymorphic_derived1>
+        ::type::get_const_instance().get_derived_extended_type_info(*rd1);
+
+    BOOST_CHECK(NULL != p2);
+
+    BOOST_CHECK_MESSAGE(p1 == p2, "restored pointer d1 not of correct type");
+
+    ia >> BOOST_SERIALIZATION_NVP(rd2);
+
+    BOOST_CHECK_MESSAGE(
+        & boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance()
+        == 
+        boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance().get_derived_extended_type_info(*rd2),
+        "restored pointer d2 not of correct type"
+    );
+
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+
+    // the above opereration registers the derived classes as a side
+    // effect.  Hence, instances can now be correctly serialized through
+    // a base class pointer.
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+
+    BOOST_CHECK_MESSAGE(
+        rb1 == dynamic_cast<polymorphic_base *>(rd1),
+        "serialized pointers not correctly restored"
+    );
+
+    p1 = & boost::serialization::type_info_implementation<polymorphic_derived1>
+        ::type::get_const_instance();
+
+    BOOST_CHECK(NULL != p1);
+
+    p2 = boost::serialization::type_info_implementation<polymorphic_base>
+        ::type::get_const_instance().get_derived_extended_type_info(*rb1);
+
+    BOOST_CHECK(NULL != p2);
+
+    BOOST_CHECK_MESSAGE(p1 == p2, "restored pointer b1 not of correct type");
+
+    ia >> BOOST_SERIALIZATION_NVP(rb2);
+
+    BOOST_CHECK_MESSAGE(
+        rb2 ==  dynamic_cast<polymorphic_base *>(rd2),
+        "serialized pointers not correctly restored"
+    );
+
+    BOOST_CHECK_MESSAGE(
+        & boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance()
+        == boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb2),
+        "restored pointer b2 not of correct type"
+    );
+
+    delete rb1;
+    delete rb2;
+}
+
+// save registered polymorphic class
+void save_registered(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = new polymorphic_derived1;
+    polymorphic_base *rb2 = new polymorphic_derived2;
+
+    // registration (forward declaration) will permit correct serialization
+    // through a pointer to a base class
+    oa.register_type(static_cast<polymorphic_derived1 *>(NULL));
+    oa.register_type(static_cast<polymorphic_derived2 *>(NULL));
+    oa << BOOST_SERIALIZATION_NVP(rb1) << BOOST_SERIALIZATION_NVP(rb2);
+
+    delete rb1;
+    delete rb2;
+}
+
+// save registered polymorphic class
+void load_registered(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+
+    // registration (forward declaration) will permit correct serialization
+    // through a pointer to a base class
+    ia.register_type(static_cast<polymorphic_derived1 *>(NULL));
+    ia.register_type(static_cast<polymorphic_derived2 *>(NULL));
+    ia >> BOOST_SERIALIZATION_NVP(rb1) >> BOOST_SERIALIZATION_NVP(rb2);
+
+    BOOST_CHECK_MESSAGE(
+        & boost::serialization::type_info_implementation<polymorphic_derived1>
+            ::type::get_const_instance()
+        == boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb1),
+        "restored pointer b1 not of correct type"
+    );
+
+    BOOST_CHECK_MESSAGE(
+        & boost::serialization::type_info_implementation<polymorphic_derived2>
+            ::type::get_const_instance()
+        == boost::serialization::type_info_implementation<polymorphic_base>
+            ::type::get_const_instance().get_derived_extended_type_info(*rb2),
+        "restored pointer b2 not of correct type"
+    );
+
+    delete rb1;
+    delete rb2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    
+    BOOST_REQUIRE(NULL != testfile);
+
+    save_derived(testfile);
+    load_derived(testfile);
+    save_registered(testfile);
+    load_registered(testfile);
+
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_reset_object_address.cpp b/deal.II/contrib/boost/libs/serialization/test/test_reset_object_address.cpp
new file mode 100644 (file)
index 0000000..b78d52f
--- /dev/null
@@ -0,0 +1,412 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_reset_object_address.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <sstream>
+#include <cassert>
+#include <cstdlib> // for rand()
+#include <cstddef> // size_t
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::rand; 
+    using ::size_t;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/polymorphic_text_oarchive.hpp>
+#include <boost/archive/polymorphic_text_iarchive.hpp>
+
+#include <boost/serialization/list.hpp>
+#include <boost/serialization/access.hpp>
+
+// Someday, maybe all tests will be converted to the unit test framework.
+// but for now use the text execution monitor to be consistent with all
+// the other tests.
+
+// simple test of untracked value
+#include "A.hpp"
+#include "A.ipp"
+
+void test1(){
+    std::stringstream ss;
+    const A a;
+    {
+        boost::archive::text_oarchive oa(ss);
+        oa << a;
+    }
+    A a1;
+    {
+        boost::archive::text_iarchive ia(ss);
+        // load to temporary
+        A a2;
+        ia >> a2;
+        BOOST_CHECK_EQUAL(a, a2);
+        // move to final destination
+        a1 = a2;
+        ia.reset_object_address(& a1, & a2);
+    }
+    BOOST_CHECK_EQUAL(a, a1);
+}
+
+// simple test of tracked value
+class B {
+    friend class boost::serialization::access;
+    int m_i;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /*file_version*/){
+        ar & m_i;
+    }
+public:
+    bool operator==(const B & rhs) const {
+        return m_i == rhs.m_i;
+    }
+    B() :
+        m_i(std::rand())
+    {}
+};
+
+//BOOST_TEST_DONT_PRINT_LOG_VALUE( B )
+
+void test2(){
+    std::stringstream ss;
+    B const b;
+    B const * const b_ptr = & b;
+    BOOST_CHECK_EQUAL(& b, b_ptr);
+    {
+        boost::archive::text_oarchive oa(ss);
+        oa << b;
+        oa << b_ptr;
+    }
+    B b1;
+    B * b1_ptr;
+    {
+        boost::archive::text_iarchive ia(ss);
+        // load to temporary
+        B b2;
+        ia >> b2;
+        BOOST_CHECK_EQUAL(b, b2);
+        // move to final destination
+        b1 = b2;
+        ia.reset_object_address(& b1, & b2);
+        ia >> b1_ptr;
+    }
+    BOOST_CHECK_EQUAL(b, b1);
+    BOOST_CHECK_EQUAL(& b1, b1_ptr);
+}
+
+// check that nested member values are properly moved
+class D {
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /*file_version*/){
+        ar & m_b;
+    }
+public:
+    B m_b;
+    bool operator==(const D & rhs) const {
+        return m_b == rhs.m_b;
+    }
+    D(){}
+};
+
+//BOOST_TEST_DONT_PRINT_LOG_VALUE( D )
+
+void test3(){
+    std::stringstream ss;
+    D const d;
+    B const * const b_ptr = & d.m_b;
+    {
+        boost::archive::text_oarchive oa(ss);
+        oa << d;
+        oa << b_ptr;
+    }
+    D d1;
+    B * b1_ptr;
+    {
+        boost::archive::text_iarchive ia(ss);
+        D d2;
+        ia >> d2;
+        d1 = d2;
+        ia.reset_object_address(& d1, & d2);
+        ia >> b1_ptr;
+    }
+    BOOST_CHECK_EQUAL(d, d1);
+    BOOST_CHECK_EQUAL(* b_ptr, * b1_ptr);
+}
+
+// check that data pointed to by pointer members is NOT moved
+class E {
+    int m_i;
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /*file_version*/){
+        ar & m_i;
+    }
+public:
+    bool operator==(const E &rhs) const {
+        return m_i == rhs.m_i;
+    }
+    E() :
+        m_i(std::rand())
+    {}
+    E(const E & rhs) :
+        m_i(rhs.m_i)
+    {}
+};
+//BOOST_TEST_DONT_PRINT_LOG_VALUE( E )
+
+// check that moves don't move stuff pointed to
+class F {
+    friend class boost::serialization::access;
+    E * m_eptr;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /*file_version*/){
+        ar & m_eptr;
+    }
+public:
+    bool operator==(const F &rhs) const {
+        return *m_eptr == *rhs.m_eptr;
+    }
+    F & operator=(const F & rhs) {
+        * m_eptr = * rhs.m_eptr;
+        return *this;
+    }
+    F(){
+        m_eptr = new E;
+    }
+    F(const F & rhs){
+        *this = rhs;
+    }
+    ~F(){
+        delete m_eptr;
+    }
+};
+
+//BOOST_TEST_DONT_PRINT_LOG_VALUE( F )
+
+void test4(){
+    std::stringstream ss;
+    const F f;
+    {
+        boost::archive::text_oarchive oa(ss);
+        oa << f;
+    }
+    F f1;
+    {
+        boost::archive::text_iarchive ia(ss);
+        F f2;
+        ia >> f2;
+        f1 = f2;
+        ia.reset_object_address(& f1, & f2);
+    }
+    BOOST_CHECK_EQUAL(f, f1);
+}
+
+// check that multiple moves keep track of the correct target
+class G {
+    friend class boost::serialization::access;
+    A m_a1;
+    A m_a2;
+    A *m_pa2;
+    template<class Archive>
+    void save(Archive &ar, const unsigned int /*file_version*/) const {
+        ar << m_a1;
+        ar << m_a2;
+        ar << m_pa2;
+    }
+    template<class Archive>
+    void load(Archive &ar, const unsigned int /*file_version*/){
+        A a; // temporary A
+        ar >> a;
+        m_a1 = a;
+        ar.reset_object_address(& m_a1, & a);
+        ar >> a;
+        m_a2 = a;
+        ar.reset_object_address(& m_a2, & a);
+        ar & m_pa2;
+    }
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+public:
+    bool operator==(const G &rhs) const {
+        return 
+            m_a1 == rhs.m_a1 
+            && m_a2 == rhs.m_a2
+            && *m_pa2 == *rhs.m_pa2;
+    }
+    G & operator=(const G & rhs) {
+        m_a1 = rhs.m_a1;
+        m_a2 = rhs.m_a2;
+        m_pa2 = & m_a2;
+        return *this;
+    }
+    G(){
+        m_pa2 = & m_a2;
+    }
+    G(const G & rhs){
+        *this = rhs;
+    }
+    ~G(){}
+};
+
+//BOOST_TEST_DONT_PRINT_LOG_VALUE( G )
+
+void test5(){
+    std::stringstream ss;
+    const G g;
+    {
+        boost::archive::text_oarchive oa(ss);
+        oa << g;
+    }
+    G g1;
+    {
+        boost::archive::text_iarchive ia(ss);
+        ia >> g1;
+    }
+    BOOST_CHECK_EQUAL(g, g1);
+}
+
+// joaquin's test - this tests the case where rest_object_address
+// is applied to an item which in fact is not tracked so that 
+// the call is in fact superfluous.
+struct foo
+{
+  int x;
+
+private:
+  friend class boost::serialization::access;
+
+  template<class Archive>
+  void serialize(Archive &,const unsigned int)
+  {
+  }
+};
+
+struct bar
+{
+  foo  f[2];
+  foo* pf[2];
+
+private:
+  friend class boost::serialization::access;
+  BOOST_SERIALIZATION_SPLIT_MEMBER()
+
+  template<class Archive>
+  void save(Archive& ar,const unsigned int)const
+  {
+    for(int i=0;i<2;++i){
+      ar<<f[i].x;
+      ar<<f[i];
+    }
+    for(int j=0;j<2;++j){
+      ar<<pf[j];
+    }
+  }
+
+  template<class Archive>
+  void load(Archive& ar,const unsigned int)
+  {
+    for(int i=0;i<2;++i){
+      int x;
+      ar>>x;
+      f[i].x=x;
+      ar.reset_object_address(&f[i].x,&x);
+      ar>>f[i];
+    }
+    for(int j=0;j<2;++j){
+      ar>>pf[j];
+    }
+  }
+};
+
+int test6()
+{
+  bar b;
+  b.f[0].x=0;
+  b.f[1].x=1;
+  b.pf[0]=&b.f[0];
+  b.pf[1]=&b.f[1];
+
+  std::ostringstream oss;
+  {
+    boost::archive::text_oarchive oa(oss);
+    oa<<const_cast<const bar&>(b);
+  }
+
+  bar b1;
+  b1.pf[0]=0;
+  b1.pf[1]=0;
+
+  std::istringstream iss(oss.str());
+  boost::archive::text_iarchive ia(iss);
+  ia>>b1;
+  BOOST_CHECK(b1.pf[0]==&b1.f[0]&&b1.pf[1]==&b1.f[1]);
+
+  return 0;
+}
+
+// test one of the collections
+void test7(){
+    std::stringstream ss;
+    B const b;
+    B const * const b_ptr = & b;
+    BOOST_CHECK_EQUAL(& b, b_ptr);
+    {
+        std::list<const B *> l;
+        l.push_back(b_ptr);
+        boost::archive::text_oarchive oa(ss);
+        oa << const_cast<const std::list<const B *> &>(l);
+    }
+    B b1;
+    {
+        std::list<B *> l;
+        boost::archive::text_iarchive ia(ss);
+        ia >> l;
+        delete l.front(); // prevent memory leak
+    }
+}
+
+// test one of the collections with polymorphic archive
+void test8(){
+    std::stringstream ss;
+    B const b;
+    B const * const b_ptr = & b;
+    BOOST_CHECK_EQUAL(& b, b_ptr);
+    {
+        std::list<const B *> l;
+        l.push_back(b_ptr);
+        boost::archive::polymorphic_text_oarchive oa(ss);
+        boost::archive::polymorphic_oarchive & poa = oa;
+        poa << const_cast<const std::list<const B *> &>(l);
+    }
+    B b1;
+    {
+        std::list<B *> l;
+        boost::archive::polymorphic_text_iarchive ia(ss);
+        boost::archive::polymorphic_iarchive & pia = ia;
+        pia >> l;
+        delete l.front(); // prevent memory leak
+    }
+}
+
+int test_main(int /* argc */, char * /* argv */[])
+{
+    test1();
+    test2();
+    test3();
+    test4();
+    test5();
+    test6();
+    test7();
+    test8();
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_set.cpp b/deal.II/contrib/boost/libs/serialization/test/test_set.cpp
new file mode 100644 (file)
index 0000000..370d938
--- /dev/null
@@ -0,0 +1,176 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_set.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULLsize_t
+#include <cstdio> // remove
+#include <fstream>
+
+#include <algorithm>
+#include <vector>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{
+    using ::size_t;
+}
+#endif
+
+#include <boost/detail/workaround.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/archive/archive_exception.hpp>
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/set.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+void
+test_set(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    std::set<A> aset;
+    aset.insert(A());
+    aset.insert(A());
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("aset", aset);
+    }
+    std::set<A> aset1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("aset", aset1);
+    }
+    BOOST_CHECK(aset == aset1);
+    std::remove(testfile);    
+}
+
+void
+test_multiset(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    std::multiset<A> amultiset;
+    amultiset.insert(A());
+    amultiset.insert(A());
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("amultiset", amultiset);
+    }
+    std::multiset<A> amultiset1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("amultiset", amultiset1);
+    }
+    BOOST_CHECK(amultiset == amultiset1);
+    std::remove(testfile);
+}
+
+#ifdef BOOST_HAS_HASH
+
+#include <boost/serialization/hash_set.hpp>
+
+namespace BOOST_STD_EXTENSION_NAMESPACE {
+    template<>
+    struct hash<A> {
+        std::size_t operator()(const A& a) const {
+            return (std::size_t)a;
+        }
+    };
+}
+
+void
+test_hash_set(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    BOOST_STD_EXTENSION_NAMESPACE::hash_set<A> ahash_set;
+    A a, a1;
+    ahash_set.insert(a);
+    ahash_set.insert(a1);
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("ahash_set", ahash_set);
+    }
+    BOOST_STD_EXTENSION_NAMESPACE::hash_set<A> ahash_set1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("ahash_set", ahash_set1);
+    }
+    std::vector<A> tvec, tvec1;
+    tvec.clear();
+    tvec1.clear();
+    std::copy(ahash_set.begin(), ahash_set.end(), std::back_inserter(tvec));
+    std::sort(tvec.begin(), tvec.end());
+    std::copy(ahash_set1.begin(), ahash_set1.end(), std::back_inserter(tvec1));
+    std::sort(tvec1.begin(), tvec1.end());
+    BOOST_CHECK(tvec == tvec1);
+    std::remove(testfile);
+}
+
+void
+test_hash_multiset(){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<A> ahash_multiset;
+    ahash_multiset.insert(A());
+    ahash_multiset.insert(A());
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("ahash_multiset", ahash_multiset);
+    }
+    BOOST_STD_EXTENSION_NAMESPACE::hash_multiset<A> ahash_multiset1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("ahash_multiset", ahash_multiset1);
+    }
+
+    std::vector<A> tvec, tvec1;
+    tvec.clear();
+    tvec1.clear();
+    std::copy(ahash_multiset.begin(), ahash_multiset.end(), std::back_inserter(tvec));
+    std::sort(tvec.begin(), tvec.end());
+    std::copy(ahash_multiset1.begin(), ahash_multiset1.end(), std::back_inserter(tvec1));
+    std::sort(tvec1.begin(), tvec1.end());
+    BOOST_CHECK(tvec == tvec1);
+
+    std::remove(testfile);
+}
+#endif
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    test_set();
+    test_multiset();
+    #ifdef BOOST_HAS_HASH
+    test_hash_set();
+    test_hash_multiset();
+    #endif
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_shared_ptr.cpp b/deal.II/contrib/boost/libs/serialization/test/test_shared_ptr.cpp
new file mode 100644 (file)
index 0000000..6d7a102
--- /dev/null
@@ -0,0 +1,301 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_shared_ptr.cpp
+
+// (C) Copyright 2002 Robert Ramey- http://www.rrsd.com - David Tonge  . 
+// Use, modification and distribution is subject to 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)
+//
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+#include <boost/type_traits/broken_compiler_spec.hpp>
+
+#include <boost/serialization/shared_ptr.hpp>
+#include <boost/serialization/weak_ptr.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/export.hpp>
+
+#include "test_tools.hpp"
+
+// This is a simple class.  It contains a counter of the number
+// of objects of this class which have been instantiated.
+class A
+{
+private:
+    friend class boost::serialization::access;
+    int x;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_NVP(x);
+    }
+    A(A const & rhs);
+    A& operator=(A const & rhs);
+public:
+    static int count;
+    bool operator==(const A & rhs) const {
+        return x == rhs.x;
+    }
+    A(){++count;}    // default constructor
+    virtual ~A(){--count;}   // default destructor
+};
+
+BOOST_SERIALIZATION_SHARED_PTR(A)
+
+int A::count = 0;
+
+// B is a subclass of A
+class B : public A
+{
+private:
+    friend class boost::serialization::access;
+    int y;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+    }
+public:
+    static int count;
+    B() : A() {};
+    virtual ~B() {};
+};
+
+// B needs to be exported because its serialized via a base class pointer
+BOOST_CLASS_EXPORT(B)
+BOOST_SERIALIZATION_SHARED_PTR(B)
+
+// test a non-polymorphic class
+class C
+{
+private:
+    friend class boost::serialization::access;
+    int z;
+    template<class Archive>
+    void serialize(Archive & ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_NVP(z);
+    }
+public:
+    static int count;
+    bool operator==(const C & rhs) const {
+        return z == rhs.z;
+    }
+    C() :
+        z(++count)    // default constructor
+    {}
+    virtual ~C(){--count;}   // default destructor
+};
+
+int C::count = 0;
+
+void save(const char * testfile, const boost::shared_ptr<A>& spa)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(spa);
+}
+
+void load(const char * testfile, boost::shared_ptr<A>& spa)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(spa);
+}
+
+// trivial test
+void save_and_load(boost::shared_ptr<A>& spa)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    save(testfile, spa);
+    boost::shared_ptr<A> spa1;
+    load(testfile, spa1);
+
+    BOOST_CHECK(
+        (spa.get() == NULL && spa1.get() == NULL)
+        || * spa == * spa1
+    );
+    std::remove(testfile);
+}
+
+void save2(
+    const char * testfile, 
+    const boost::shared_ptr<A>& first, 
+    const boost::shared_ptr<A>& second
+){
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(first);
+    oa << BOOST_SERIALIZATION_NVP(second);
+}
+
+void load2(
+    const char * testfile, 
+    boost::shared_ptr<A>& first, 
+    boost::shared_ptr<A>& second)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(first);
+    ia >> BOOST_SERIALIZATION_NVP(second);
+}
+
+// Run tests by serializing two shared_ptrs into an archive,
+// clearing them (deleting the objects) and then reloading the
+// objects back from an archive.
+void save_and_load2(boost::shared_ptr<A>& first, boost::shared_ptr<A>& second)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    save2(testfile, first, second);
+
+    // Clear the pointers, thereby destroying the objects they contain
+    first.reset();
+    second.reset();
+
+    load2(testfile, first, second);
+
+    BOOST_CHECK(first == second);
+    std::remove(testfile);
+}
+
+void save3(
+    const char * testfile, 
+    boost::shared_ptr<A>& first, 
+    boost::shared_ptr<A>& second,
+    boost::weak_ptr<A>& third
+){
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(third);
+    oa << BOOST_SERIALIZATION_NVP(first);
+    oa << BOOST_SERIALIZATION_NVP(second);
+}
+
+void load3(
+    const char * testfile, 
+    boost::shared_ptr<A>& first, 
+    boost::shared_ptr<A>& second,
+    boost::weak_ptr<A>& third
+){
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    // note that we serialize the weak pointer first
+    ia >> BOOST_SERIALIZATION_NVP(third);
+    // inorder to test that a temporarily solitary weak pointer
+    // correcttly restored.
+    ia >> BOOST_SERIALIZATION_NVP(first);
+    ia >> BOOST_SERIALIZATION_NVP(second);
+}
+
+void save_and_load3(
+    boost::shared_ptr<A>& first, 
+    boost::shared_ptr<A>& second,
+    boost::weak_ptr<A>& third
+){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    save3(testfile, first, second, third);
+
+    // Clear the pointers, thereby destroying the objects they contain
+    first.reset();
+    second.reset();
+    third.reset();
+
+    load3(testfile, first, second, third);
+
+    BOOST_CHECK(first == second);
+    BOOST_CHECK(first == third.lock());
+    std::remove(testfile);
+}
+
+void save4(const char * testfile, const boost::shared_ptr<C>& spc)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(spc);
+}
+
+void load4(const char * testfile, boost::shared_ptr<C>& spc)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(spc);
+}
+
+// trivial test
+void save_and_load4(boost::shared_ptr<C>& spc)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    save4(testfile, spc);
+    boost::shared_ptr<C> spc1;
+    load4(testfile, spc1);
+
+    BOOST_CHECK(
+        (spc.get() == NULL && spc1.get() == NULL)
+        || * spc == * spc1
+    );
+    std::remove(testfile);
+}
+
+// This does the tests
+int test_main(int /* argc */, char * /* argv */[])
+{
+    {
+        boost::shared_ptr<A> spa;
+        // These are our shared_ptrs
+        spa = boost::shared_ptr<A>(new A);
+        boost::shared_ptr<A> spa1 = spa;
+        spa1 = spa;
+    }
+    {
+        // These are our shared_ptrs
+        boost::shared_ptr<A> spa;
+
+        // trivial test 1
+        save_and_load(spa);
+    
+        //trivival test 2
+        spa = boost::shared_ptr<A>(new A);
+        save_and_load(spa);
+
+        // Try to save and load pointers to As
+        spa = boost::shared_ptr<A>(new A);
+        boost::shared_ptr<A> spa1 = spa;
+        save_and_load2(spa, spa1);
+
+        // Try to save and load pointers to Bs
+        spa = boost::shared_ptr<A>(new B);
+        spa1 = spa;
+        save_and_load2(spa, spa1);
+
+        // test a weak pointer
+        spa = boost::shared_ptr<A>(new A);
+        spa1 = spa;
+        boost::weak_ptr<A> wp = spa;
+        save_and_load3(spa, spa1, wp);
+        
+        // obj of type B gets destroyed
+        // as smart_ptr goes out of scope
+    }
+    BOOST_CHECK(A::count == 0);
+    {
+        // Try to save and load pointers to Cs
+        boost::shared_ptr<C> spc;
+        spc = boost::shared_ptr<C>(new C);
+        save_and_load4(spc);
+    }
+    BOOST_CHECK(C::count == 0);
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_shared_ptr_132.cpp b/deal.II/contrib/boost/libs/serialization/test/test_shared_ptr_132.cpp
new file mode 100644 (file)
index 0000000..95a6e8f
--- /dev/null
@@ -0,0 +1,234 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_shared_ptr.cpp
+
+// (C) Copyright 2002 Robert Ramey- http://www.rrsd.com - David Tonge  . 
+// Use, modification and distribution is subject to 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)
+//
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/shared_ptr_132.hpp>
+#include <boost/serialization/shared_ptr.hpp>
+#include <boost/serialization/weak_ptr.hpp>
+#include <boost/serialization/split_member.hpp>
+
+#include <boost/preprocessor/stringize.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/export.hpp>
+#include <boost/type_traits/broken_compiler_spec.hpp>
+
+// This is a simple class.  It contains a counter of the number
+// of objects of this class which have been instantiated.
+class A
+{
+private:
+    friend class boost::serialization::access;
+    int x;
+    template<class Archive>
+    void save(Archive & ar, const unsigned int /* file_version */) const {
+        ar << BOOST_SERIALIZATION_NVP(x);
+    }
+    template<class Archive>
+    void load(Archive & ar, const unsigned int /* file_version */) {
+        ar >> BOOST_SERIALIZATION_NVP(x);
+    }
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+public:
+    static int count;
+    bool operator==(const A & rhs) const {
+        return x == rhs.x;
+    }
+    A(){++count;}    // default constructor
+    virtual ~A(){--count;}   // default destructor
+};
+
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(A)
+BOOST_SERIALIZATION_SHARED_PTR(A)
+
+// B is a subclass of A
+class B : public A
+{
+private:
+    friend class boost::serialization::access;
+    int y;
+    template<class Archive>
+    void save(Archive & ar, const unsigned int /* file_version */ )const {
+        ar << BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+    }
+    template<class Archive>
+    void load(Archive & ar, const unsigned int /* file_version */){
+        ar >> BOOST_SERIALIZATION_BASE_OBJECT_NVP(A);
+    }
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+public:
+    static int count;
+    B() : A() {};
+    virtual ~B() {};
+};
+
+// B needs to be exported because its serialized via a base class pointer
+BOOST_SHARED_POINTER_EXPORT(B)
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(B)
+BOOST_SERIALIZATION_SHARED_PTR(B)
+
+int A::count = 0;
+
+template<class T>
+void save(const char * testfile, const T & spa)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(spa);
+}
+
+template<class T>
+void load(const char * testfile, T & spa)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(spa);
+}
+
+// trivial test
+template<class T>
+void save_and_load(const T & spa)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    save(testfile, spa);
+
+    // note that we're loading to a current version of shared_ptr 
+    // regardless of the orignal saved type - this tests backward
+    // archive compatibility
+    boost::shared_ptr<A> spa1;
+    load(testfile, spa1);
+
+    BOOST_CHECK(
+        (spa.get() == NULL && spa1.get() == NULL)
+        || * spa == * spa1
+    );
+    std::remove(testfile);
+}
+
+template<class T>
+void save2(
+    const char * testfile, 
+    const T & first, 
+    const T & second
+){
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(first);
+    oa << BOOST_SERIALIZATION_NVP(second);
+}
+
+template<class T>
+void load2(
+    const char * testfile, 
+    T & first, 
+    T & second)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(first);
+    ia >> BOOST_SERIALIZATION_NVP(second);
+}
+
+// Run tests by serializing two shared_ptrs into an archive,
+// clearing them (deleting the objects) and then reloading the
+// objects back from an archive.
+template<class T>
+void save_and_load2(T & first, T & second)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    save2(testfile, first, second);
+
+    // Clear the pointers, thereby destroying the objects they contain
+    first.reset();
+    second.reset();
+
+    boost::shared_ptr<A> first1, second1;
+    load2(testfile, first1, second1);
+
+    BOOST_CHECK(first1 == second1);
+    std::remove(testfile);
+}
+
+template<class T>
+void save3(
+    const char * testfile, 
+    const T & first, 
+    const T & second,
+    const T & third
+){
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(third);
+    oa << BOOST_SERIALIZATION_NVP(first);
+    oa << BOOST_SERIALIZATION_NVP(second);
+}
+
+template<class T>
+void load3(
+    const char * testfile, 
+    T & first, 
+    T & second,
+    T & third
+){
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    // note that we serialize the weak pointer first
+    ia >> BOOST_SERIALIZATION_NVP(third);
+    // inorder to test that a temporarily solitary weak pointer
+    // correcttly restored.
+    ia >> BOOST_SERIALIZATION_NVP(first);
+    ia >> BOOST_SERIALIZATION_NVP(second);
+}
+
+// This does the tests
+int test_main(int /* argc */, char * /* argv */[])
+{
+    // These are our shared_ptrs
+    boost_132::shared_ptr<A> spa;
+
+    // trivial test 1
+    save_and_load(spa);
+
+    //trivial test 2
+    spa.reset();
+    spa = boost_132::shared_ptr<A>(new A);
+    save_and_load(spa);
+
+    // Try to save and load pointers to As, to a text archive
+    spa = boost_132::shared_ptr<A>(new A);
+    boost_132::shared_ptr<A> spa1 = spa;
+    save_and_load2(spa, spa1);
+    
+    // Try to save and load pointers to Bs, to a text archive
+    spa = boost_132::shared_ptr<A>(new B);
+    save_and_load(spa);
+
+    spa1 = spa;
+    save_and_load2(spa, spa1);
+
+    // obj of type B gets destroyed
+    // as smart_ptr goes out of scope
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_shared_ptr_multi_base.cpp b/deal.II/contrib/boost/libs/serialization/test/test_shared_ptr_multi_base.cpp
new file mode 100644 (file)
index 0000000..21dbd62
--- /dev/null
@@ -0,0 +1,271 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_shared_ptr_multi_base.cpp
+
+// (C) Copyright 2002 Robert Ramey- http://www.rrsd.com and Takatoshi Kondo.
+// Use, modification and distribution is subject to 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)
+//
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+#include <boost/type_traits/broken_compiler_spec.hpp>
+
+#include <boost/serialization/shared_ptr.hpp>
+#include <boost/serialization/weak_ptr.hpp>
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/export.hpp>
+
+#include "test_tools.hpp"
+
+struct Base1 {
+    Base1() {}
+    Base1(int x) : m_x(1 + x) {}
+    virtual ~Base1(){
+    }
+    int m_x;
+    // serialize
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_NVP(m_x);
+    }
+};
+
+struct Base2 {
+    Base2() {}
+    Base2(int x) : m_x(2 + x) {}
+    int m_x;
+    virtual ~Base2(){
+    }
+    // serialize
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_NVP(m_x);
+    }
+};
+
+struct Base3 {
+    Base3() {}
+    Base3(int x) : m_x(3 + x) {}
+    virtual ~Base3(){
+    }
+    int m_x;
+    // serialize
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_NVP(m_x);
+    }
+};
+
+// Sub is a subclass of Base1, Base1 and Base3.
+struct Sub:public Base1, public Base2, public Base3 {
+    static int count;
+    Sub() {
+        ++count;
+    }
+    Sub(int x) :
+        Base1(x),
+        Base2(x),
+        m_x(x)
+    {   
+        ++count;
+    }
+    Sub(const Sub & rhs) :
+        m_x(rhs.m_x)
+    {
+        ++count;
+    }
+    virtual ~Sub() {
+        assert(0 < count);
+        --count;
+    }
+    int m_x;
+    // serialize
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */)
+    {
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base1);
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base2);
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Base3);
+        ar & BOOST_SERIALIZATION_NVP(m_x);
+    }
+};
+
+// Sub needs to be exported because its serialized via a base class pointer
+BOOST_CLASS_EXPORT(Sub)
+BOOST_SERIALIZATION_SHARED_PTR(Sub)
+
+int Sub::count = 0;
+
+template <class FIRST, class SECOND>
+void save2(
+    const char * testfile, 
+    const FIRST& first, 
+    const SECOND& second
+){
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(first);
+    oa << BOOST_SERIALIZATION_NVP(second);
+}
+
+template <class FIRST, class SECOND>
+void load2(
+    const char * testfile, 
+    FIRST& first, 
+    SECOND& second)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(first);
+    ia >> BOOST_SERIALIZATION_NVP(second);
+}
+
+// Run tests by serializing two shared_ptrs into an archive,
+// clearing them (deleting the objects) and then reloading the
+// objects back from an archive.
+
+// Serialization sequence
+// First,  shared_ptr
+// Second, weak_ptr
+template <class FIRST, class SECOND>
+void shared_weak(
+    boost::shared_ptr<FIRST>& first, 
+    boost::weak_ptr<SECOND>& second
+){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    int firstm = first->m_x;
+    int secondm = second.lock()->m_x;
+    save2(testfile, first, second);
+
+    // Clear the pointers, thereby destroying the objects they contain
+    second.reset();
+    first.reset();
+
+    load2(testfile, first, second);
+
+    // Check data member
+    BOOST_CHECK(firstm == first->m_x);
+    BOOST_CHECK(secondm == second.lock()->m_x);
+    // Check pointer to vtable
+    BOOST_CHECK(boost::dynamic_pointer_cast<Sub>(first));
+    BOOST_CHECK(boost::dynamic_pointer_cast<Sub>(second.lock()));
+
+    std::remove(testfile);
+}
+
+// Serialization sequence
+// First,  weak_ptr
+// Second, shared_ptr
+template <class FIRST, class SECOND>
+void weak_shared(
+    boost::weak_ptr<FIRST>& first, 
+    boost::shared_ptr<SECOND>& second
+){
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    int firstm = first.lock()->m_x;
+    int secondm = second->m_x;
+    save2(testfile, first, second);
+
+    // Clear the pointers, thereby destroying the objects they contain
+    first.reset();
+    second.reset();
+
+    load2(testfile, first, second);
+
+    // Check data member
+    BOOST_CHECK(firstm == first.lock()->m_x);
+    BOOST_CHECK(secondm == second->m_x);
+    // Check pointer to vtable
+    BOOST_CHECK(boost::dynamic_pointer_cast<Sub>(first.lock()));
+    BOOST_CHECK(boost::dynamic_pointer_cast<Sub>(second));
+
+    std::remove(testfile);
+}
+
+// This does the tests
+int test_main(int /* argc */, char * /* argv */[])
+{
+
+    // Both Sub
+    boost::shared_ptr<Sub> tc1_sp(new Sub(10));
+    boost::weak_ptr<Sub> tc1_wp(tc1_sp);
+    shared_weak(tc1_sp, tc1_wp);
+    weak_shared(tc1_wp, tc1_sp);
+    tc1_sp.reset();
+    BOOST_CHECK(0 == Sub::count);
+
+    // Sub and Base1
+    boost::shared_ptr<Sub> tc2_sp(new Sub(10));
+    boost::weak_ptr<Base1> tc2_wp(tc2_sp);
+    shared_weak(tc2_sp, tc2_wp);
+    weak_shared(tc2_wp, tc2_sp);
+    tc2_sp.reset();
+    BOOST_CHECK(0 == Sub::count);
+
+    // Sub and Base2
+    boost::shared_ptr<Sub> tc3_sp(new Sub(10));
+    boost::weak_ptr<Base2> tc3_wp(tc3_sp);
+    shared_weak(tc3_sp, tc3_wp);
+    weak_shared(tc3_wp, tc3_sp);
+    tc3_sp.reset();
+    BOOST_CHECK(0 == Sub::count);
+
+    // Sub and Base3
+    boost::shared_ptr<Sub> tc4_sp(new Sub(10));
+    boost::weak_ptr<Base3> tc4_wp(tc4_sp);
+    shared_weak(tc4_sp, tc4_wp);
+    weak_shared(tc4_wp, tc4_sp);
+    tc4_sp.reset();
+    BOOST_CHECK(0 == Sub::count);
+
+    // Base1 and Base2
+    boost::shared_ptr<Sub> tc5_sp_tmp(new Sub(10));
+    boost::shared_ptr<Base1> tc5_sp(tc5_sp_tmp);
+    boost::weak_ptr<Base2> tc5_wp(tc5_sp_tmp);
+    tc5_sp_tmp.reset();
+    shared_weak(tc5_sp, tc5_wp);
+    weak_shared(tc5_wp, tc5_sp);
+    tc5_sp.reset();
+    BOOST_CHECK(0 == Sub::count);
+
+    // Base2 and Base3
+    boost::shared_ptr<Sub> tc6_sp_tmp(new Sub(10));
+    boost::shared_ptr<Base2> tc6_sp(tc6_sp_tmp);
+    boost::weak_ptr<Base3> tc6_wp(tc6_sp_tmp);
+    tc6_sp_tmp.reset();
+    shared_weak(tc6_sp, tc6_wp);
+    weak_shared(tc6_wp, tc6_sp);
+    tc6_sp.reset();
+    BOOST_CHECK(0 == Sub::count);
+
+    // Base3 and Base1
+    boost::shared_ptr<Sub> tc7_sp_tmp(new Sub(10));
+    boost::shared_ptr<Base3> tc7_sp(tc7_sp_tmp);
+    boost::weak_ptr<Base1> tc7_wp(tc7_sp_tmp);
+    tc7_sp_tmp.reset();
+    shared_weak(tc7_sp, tc7_wp);
+    weak_shared(tc7_wp, tc7_sp);
+    tc7_sp.reset();
+    BOOST_CHECK(0 == Sub::count);
+
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_simple_class.cpp b/deal.II/contrib/boost/libs/serialization/test/test_simple_class.cpp
new file mode 100644 (file)
index 0000000..30a9e69
--- /dev/null
@@ -0,0 +1,50 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_simple_class.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+// invoke header for a custom archive test.
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include "A.hpp"
+#include "A.ipp"
+
+int 
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    A a, a1;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("a", a);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("a", a1);
+    }
+    BOOST_CHECK_EQUAL(a, a1);
+    std::remove(testfile);
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_simple_class_ptr.cpp b/deal.II/contrib/boost/libs/serialization/test/test_simple_class_ptr.cpp
new file mode 100644 (file)
index 0000000..721b325
--- /dev/null
@@ -0,0 +1,52 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_simple_class_ptr.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include "A.hpp"
+#include "A.ipp"
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    
+    BOOST_REQUIRE(NULL != testfile);
+
+    const A *ta = new A();
+    A *ta1 = NULL;
+
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("ta", ta);
+    }
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("ta", ta1);
+    }
+    BOOST_CHECK(ta != ta1);
+    BOOST_CHECK(*ta == *ta1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_singleton.cpp b/deal.II/contrib/boost/libs/serialization/test/test_singleton.cpp
new file mode 100644 (file)
index 0000000..ef0719b
--- /dev/null
@@ -0,0 +1,35 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_singleton.cpp: test implementation of run-time casting of void pointers
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+// <gennadiy.rozental@tfn.com>
+
+#include "test_tools.hpp"
+#include <boost/serialization/singleton.hpp>
+
+class x {
+};
+
+void
+test1(const x & x1, const x & x2){
+    BOOST_CHECK(& x1 == & x2);
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const x & x1 = boost::serialization::singleton<x>::get_const_instance();
+    const x & x2 = boost::serialization::singleton<x>::get_const_instance();
+
+    BOOST_CHECK(& x1 == & x2);
+
+    test1(
+        boost::serialization::singleton<x>::get_const_instance(),
+        boost::serialization::singleton<x>::get_const_instance()
+    );
+
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_smart_cast.cpp b/deal.II/contrib/boost/libs/serialization/test/test_smart_cast.cpp
new file mode 100644 (file)
index 0000000..12265a0
--- /dev/null
@@ -0,0 +1,244 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_smart_cast.cpp: 
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+// <gennadiy.rozental@tfn.com>
+
+#include <exception>
+#include <boost/serialization/smart_cast.hpp>
+
+#include "test_tools.hpp"
+#include <boost/noncopyable.hpp>
+
+using namespace boost::serialization;
+
+class Base1 : public boost::noncopyable
+{
+    char a;
+};
+
+class Base2
+{
+    int b;
+};
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+class Derived : public Base1, public Base2
+{
+    long c;
+};
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(Base1)
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(Base2)
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(Derived)
+
+// if compiler doesn't support TPS, the smart_cast syntax doesn't
+// work for references.  One has to use the smart_cast_reference
+// syntax (tested below ) instead.
+
+void test_static_reference_cast_2(){
+    Derived d;
+    Base1 & b1 = static_cast<Base1 &>(d);
+    Base2 & b2 = static_cast<Base2 &>(d);
+
+    Base1 & scb1 = smart_cast<Base1 &, Derived &>(d);
+    Base2 & scb2 = smart_cast<Base2 &, Derived &>(d);
+    BOOST_CHECK_EQUAL(& b1, & scb1);
+    BOOST_CHECK_EQUAL(& b2, & scb2);
+
+    // downcast
+//    BOOST_CHECK_EQUAL(& d, & (smart_cast<Derived &, Base1 &>(b1)));
+//    BOOST_CHECK_EQUAL(& d, & (smart_cast<Derived &, Base2 &>(b2)));
+
+    // crosscast pointers fails at compiler time
+    // BOOST_CHECK_EQUAL(pB2,smart_cast<B2 *>(pB1));
+    // though explicit cross cast will always work
+    BOOST_CHECK_EQUAL(& b2,(
+        & smart_cast<Base2 &, Derived &>(
+            smart_cast<Derived &, Base1 &>(b1)
+        ))
+    );
+}
+
+void test_static_reference_cast_1(){
+    Derived d;
+    Base1 & b1 = static_cast<Base1 &>(d);
+    Base2 & b2 = static_cast<Base2 &>(d);
+
+    Base1 & scb1 = smart_cast_reference<Base1 &>(d);
+    Base2 & scb2 = smart_cast_reference<Base2 &>(d);
+    BOOST_CHECK_EQUAL(& b1, & scb1);
+    BOOST_CHECK_EQUAL(& b2, & scb2);
+
+    // downcast
+    BOOST_CHECK_EQUAL(& d, & (smart_cast_reference<Derived &>(b1)));
+    BOOST_CHECK_EQUAL(& d, & (smart_cast_reference<Derived &>(b2)));
+
+    // crosscast pointers fails at compiler time
+    // BOOST_CHECK_EQUAL(pB2,smart_cast<B2 *>(pB1));
+    // though explicit cross cast will always work
+    BOOST_CHECK_EQUAL(& b2,(
+        & smart_cast_reference<Base2 &>(
+            smart_cast_reference<Derived &>(b1)
+        ))
+    );
+}
+
+void test_static_pointer_cast(){
+    // pointers
+    Derived d;
+    Derived *pD = & d;
+    Base1 *pB1 = pD;
+    Base2 *pB2 = pD;
+
+    // upcast
+    BOOST_CHECK_EQUAL(pB1, smart_cast<Base1 *>(pD));
+    BOOST_CHECK_EQUAL(pB2, smart_cast<Base2 *>(pD));
+
+    // downcast
+    BOOST_CHECK_EQUAL(pD, smart_cast<Derived *>(pB1));
+    BOOST_CHECK_EQUAL(pD, smart_cast<Derived *>(pB2));
+
+    // crosscast pointers fails at compiler time
+    // BOOST_CHECK_EQUAL(pB2, smart_cast<Base2 *>(pB1));
+
+    // though explicit cross cast will always work
+    BOOST_CHECK_EQUAL(pB2,
+        smart_cast<Base2 *>(
+            smart_cast<Derived *>(pB1)
+        )
+    );
+}
+
+class VBase1 : public boost::noncopyable
+{
+    char a;
+public:
+    virtual ~VBase1(){};
+};
+
+class VBase2
+{
+    int b;
+public:
+    virtual ~VBase2(){};
+};
+
+#ifdef BOOST_MSVC
+#  pragma warning(push)
+#  pragma warning(disable : 4511 4512)
+#endif
+
+class VDerived : public VBase1, public VBase2
+{
+    long c;
+public:
+    virtual ~VDerived(){};
+};
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(VBase1)
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(VBase2)
+BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(VDerived)
+
+// see above
+
+void test_dynamic_reference_cast_2(){
+    VDerived d;
+    VBase1 &b1 = dynamic_cast<VBase1 &>(d);
+    VBase2 &b2 = static_cast<VBase2 &>(d);
+
+    VBase1 & vb1 = smart_cast<VBase1 &, VDerived &>(d);
+    BOOST_CHECK_EQUAL(& b1, & vb1);
+    BOOST_CHECK_EQUAL(& b2, (& smart_cast<VBase2 &, VDerived &>(d)));
+
+    // downcast
+    BOOST_CHECK_EQUAL(& d, (& smart_cast<VDerived &, VBase1 &>(b1)));
+    BOOST_CHECK_EQUAL(& d, (& smart_cast<VDerived &, VBase2 &>(b2)));
+
+    // crosscast
+     BOOST_CHECK_EQUAL(& b2, (& smart_cast<VBase2 &, VBase1 &>(b1)));
+
+    // explicit cross cast should always work
+    BOOST_CHECK_EQUAL(& b2, (
+        & smart_cast<VBase2 &, VDerived &>(
+            smart_cast<VDerived &, VBase1 &>(b1)
+        ))
+    );
+}
+
+void test_dynamic_reference_cast_1(){
+    VDerived d;
+    VBase1 &b1 = dynamic_cast<VBase1 &>(d);
+    VBase2 &b2 = static_cast<VBase2 &>(d);
+
+    VBase1 & vb1 = smart_cast_reference<VBase1 &>(d);
+    BOOST_CHECK_EQUAL(& b1, & vb1);
+    BOOST_CHECK_EQUAL(& b2, (& smart_cast_reference<VBase2 &>(d)));
+
+    // downcast
+    BOOST_CHECK_EQUAL(& d, (& smart_cast_reference<VDerived &>(b1)));
+    BOOST_CHECK_EQUAL(& d, (& smart_cast_reference<VDerived &>(b2)));
+
+    // crosscast
+     BOOST_CHECK_EQUAL(& b2, (& smart_cast_reference<VBase2 &>(b1)));
+
+    // explicit cross cast should always work
+    BOOST_CHECK_EQUAL(& b2, (
+        & smart_cast_reference<VBase2 &>(
+            smart_cast_reference<VDerived &>(b1)
+        ))
+    );
+}
+
+void test_dynamic_pointer_cast(){
+    // pointers
+    VDerived d;
+    VDerived *pD = & d;
+    VBase1 *pB1 = pD;
+    VBase2 *pB2 = pD;
+
+    // upcast
+    BOOST_CHECK_EQUAL(pB1, smart_cast<VBase1 *>(pD));
+    BOOST_CHECK_EQUAL(pB2, smart_cast<VBase2 *>(pD));
+
+    // downcast
+    BOOST_CHECK_EQUAL(pD, smart_cast<VDerived *>(pB1));
+    BOOST_CHECK_EQUAL(pD, smart_cast<VDerived *>(pB2));
+
+    // crosscast pointers fails at compiler time
+    BOOST_CHECK_EQUAL(pB2, smart_cast<VBase2 *>(pB1));
+    // though explicit cross cast will always work
+    BOOST_CHECK_EQUAL(pB2,
+        smart_cast<VBase2 *>(
+            smart_cast<VDerived *>(pB1)
+        )
+    );
+}
+
+int
+test_main(int /* argc */, char * /* argv */[])
+{
+    test_static_reference_cast_2();
+    test_static_reference_cast_1();
+    test_static_pointer_cast();
+    test_dynamic_reference_cast_2();
+    test_dynamic_reference_cast_1();
+    test_dynamic_pointer_cast();
+
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_split.cpp b/deal.II/contrib/boost/libs/serialization/test/test_split.cpp
new file mode 100644 (file)
index 0000000..9801505
--- /dev/null
@@ -0,0 +1,165 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_split.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/split_free.hpp>
+
+class A
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void save(
+        Archive & /* ar */, 
+        const unsigned int /* file_version */
+    ) const {
+        ++(const_cast<A &>(*this).count);
+    }
+    template<class Archive>
+    void load(
+        Archive & /* ar */, 
+        const unsigned int /* file_version */
+    ){
+        --count;
+    }
+    BOOST_SERIALIZATION_SPLIT_MEMBER()
+    int count;
+public:
+    A() : count(0) {}
+    ~A() {
+        BOOST_CHECK(0 == count);
+    }
+};
+
+class B
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void save(
+        Archive & /* ar */, 
+        const unsigned int /* file_version */
+    ) const {
+        ++(const_cast<B &>(*this).count);
+    }
+    template<class Archive>
+    void load(
+        Archive & /* ar */, 
+        const unsigned int /* file_version */
+    ){
+        --count;
+    }
+    int count;
+public:
+    B() : count(0) {}
+    ~B() {
+        BOOST_CHECK(0 == count);
+    }
+};
+
+// function specializations must be defined in the appropriate
+// namespace - boost::serialization
+namespace boost { 
+namespace serialization {
+
+template<class Archive>
+void serialize(
+    Archive & ar,
+    B & b,
+    const unsigned int file_version
+){ 
+    boost::serialization::split_member(ar, b, file_version);
+} 
+
+} // serialization
+} // namespace boost
+
+class C
+{
+public:
+    int count;
+    C() : count(0) {}
+    ~C() {
+        BOOST_CHECK(0 == count);
+    }
+};
+
+namespace boost { 
+namespace serialization {
+
+template<class Archive>
+void save(
+    Archive & /* ar */, 
+    const C & c,
+    const unsigned int /* file_version */
+){
+    ++(const_cast<C &>(c).count);
+}
+
+template<class Archive>
+void load(
+    Archive & /* ar */, 
+    C & c,
+    const unsigned int /* file_version */
+){
+    --c.count;
+}
+
+} // serialization
+} // namespace boost
+
+BOOST_SERIALIZATION_SPLIT_FREE(C)
+
+void out(const char *testfile, A & a, B & b, C & c)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    oa << BOOST_SERIALIZATION_NVP(a);
+    oa << BOOST_SERIALIZATION_NVP(b);
+    oa << BOOST_SERIALIZATION_NVP(c);
+}
+
+void in(const char *testfile, A & a, B & b, C & c)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    ia >> BOOST_SERIALIZATION_NVP(a);
+    ia >> BOOST_SERIALIZATION_NVP(b);
+    ia >> BOOST_SERIALIZATION_NVP(c);
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    A a;
+    B b;
+    C c;
+
+    out(testfile, a, b, c);
+    in(testfile, a, b, c);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_static_warning.cpp b/deal.II/contrib/boost/libs/serialization/test/test_static_warning.cpp
new file mode 100644 (file)
index 0000000..642b9cf
--- /dev/null
@@ -0,0 +1,63 @@
+//  (C) Copyright Jonathan Turkanis 2004.
+//  Use, modification and distribution are subject to 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)
+
+//  See http://www.boost.org for most recent version including documentation.
+
+// note: this is a compile only test.
+
+#include <boost/config.hpp> // BOOST_STATIC_CONST
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_polymorphic.hpp>
+
+#include <boost/serialization/static_warning.hpp>
+
+typedef char a1[2];
+typedef char a2[3];
+
+class polymorphic {
+    virtual ~polymorphic();
+};
+
+class non_polymorphic {
+};
+
+template<class T>
+int f(){
+    BOOST_STATIC_WARNING(T::value);
+    return 0;
+}
+
+struct A {
+    BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+/////////////////////////////////////////////////////////////////////////
+// compilation of this program should show a total of 10 warning messages
+
+// should show NO warning message
+BOOST_STATIC_WARNING(true);
+
+// the following should show 5 warning message
+int x = f<A>();  // Warn
+int y = f<boost::is_polymorphic<non_polymorphic> >(); // Warn.
+int z = f<boost::is_polymorphic<polymorphic> >();
+
+BOOST_STATIC_WARNING(sizeof(a1) == sizeof(a2)); // Warn.
+BOOST_STATIC_WARNING(sizeof(a1) != sizeof(a1)); // Warn.
+BOOST_STATIC_WARNING(! boost::is_polymorphic<polymorphic>::value); // Warn.
+BOOST_STATIC_WARNING(boost::is_polymorphic<non_polymorphic>::value); // Warn.
+
+int main(int /* argc */, char * /* argv */[]){
+    // should show NO warning message
+    BOOST_STATIC_WARNING(true);
+
+    // the following should show 5 warning message
+    f<A>();
+    BOOST_STATIC_WARNING(sizeof(a1) == sizeof(a2)); // Warn.
+    BOOST_STATIC_WARNING(sizeof(a1) != sizeof(a1)); // Warn.
+    BOOST_STATIC_WARNING(! boost::is_polymorphic<polymorphic>::value); // Warn.
+    BOOST_STATIC_WARNING(boost::is_polymorphic<non_polymorphic>::value); // Warn.
+    return 0;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_tools.hpp b/deal.II/contrib/boost/libs/serialization/test/test_tools.hpp
new file mode 100644 (file)
index 0000000..bf2656c
--- /dev/null
@@ -0,0 +1,235 @@
+#ifndef BOOST_SERIALIZATION_TEST_TOOLS_HPP
+#define BOOST_SERIALIZATION_TEST_TOOLS_HPP
+
+// MS compatible compilers support #pragma once
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_tools.hpp
+//
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+
+#include <cstdio> // remove, tmpnam
+#include <cstddef> // size_t
+#ifndef BOOST_NO_EXCEPTION_STD_NAMESPACE
+    #include <exception>
+#endif
+#include <boost/config.hpp>
+#include <boost/detail/no_exceptions_support.hpp>
+
+#if defined(UNDER_CE)
+
+// Windows CE does not supply the tmpnam function in its CRT. 
+// Substitute a primitive implementation here.
+namespace boost {
+namespace archive {
+    const char * tmpnam(char * buffer){
+        static char ibuffer [512];
+        if(NULL == buffer)
+            buffer = ibuffer;
+
+        static unsigned short index = 0;
+        std::sprintf(buffer, "\\tmpfile%05X.tmp", index++);
+        return buffer;
+    }
+} // archive
+} // boost
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+// win32 has a brain-dead tmpnam implementation.
+// which leaves temp files in root directory 
+// regardless of environmental settings
+
+#include <cstdlib>
+#include <cstring>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+    using ::strcpy;
+    using ::strcat;
+    using ::tmpnam;
+}
+#endif // defined(BOOST_NO_STDC_NAMESPACE)
+
+#include <direct.h>
+#include <boost/archive/tmpdir.hpp>
+
+#if defined(__COMO__)
+    #define chdir _chdir
+#endif
+
+#if defined(NDEBUG) && defined(__BORLANDC__)
+    #define STRCPY strcpy
+#else
+    #define STRCPY std::strcpy
+#endif
+
+namespace boost {
+namespace archive {
+    const char * test_filename(const char * dir = NULL, char *fname = NULL){
+        static char ibuffer [512];
+        std::size_t i;
+        ibuffer[0] = '\0';
+        if(NULL == dir){
+            dir = boost::archive::tmpdir();
+        }
+        STRCPY(ibuffer, dir);
+        std::strcat(ibuffer, "/");
+        i = std::strlen(ibuffer);
+        if(NULL == fname){
+            char old_dir[256];
+            _getcwd(old_dir, sizeof(old_dir) - 1);
+            chdir(dir);
+            std::tmpnam(ibuffer + i);
+            chdir(old_dir);
+        }
+        else{
+            std::strcat(ibuffer, fname);
+        }
+        return ibuffer;
+    }
+    const char * tmpnam(char * buffer){
+        const char * name = test_filename(NULL, NULL);
+        if(NULL != buffer){
+            STRCPY(buffer, name);
+        }
+        return name;
+    }
+} // archive
+} // boost
+
+#else // defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+#if defined(__hpux)
+// (C) Copyright 2006 Boris Gubenko.
+// HP-UX has a restriction that for multi-thread applications, (i.e.
+// the ones compiled -mt) if argument to tmpnam is a NULL pointer, then,
+// citing the tmpnam(3S) manpage, "the operation is not performed and a
+// NULL pointer is returned". tempnam does not have this restriction, so,
+// let's use tempnam instead.
+#define tmpnam(X) tempnam(NULL,X)
+namespace boost {
+namespace archive {
+    using ::tempnam;
+} // archive
+} // boost
+
+#else // defined(__hpux)
+
+namespace boost {
+namespace archive {
+    using std::tmpnam;
+} // archive
+} // boost
+
+#endif // defined(__hpux)
+#endif // defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+
+//#include <boost/test/test_tools.hpp>
+#include <boost/detail/lightweight_test.hpp>
+
+#define BOOST_CHECK( P ) \
+    BOOST_TEST( (P) )
+#define BOOST_REQUIRE( P )  \
+    BOOST_TEST( (P) )
+#define BOOST_CHECK_MESSAGE( P, M )  \
+    ((P)? (void)0 : ::boost::detail::error_impl( (M) , __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
+#define BOOST_REQUIRE_MESSAGE( P, M ) \
+    BOOST_CHECK_MESSAGE( (P), (M) )
+#define BOOST_CHECK_EQUAL( A , B ) \
+    BOOST_TEST( (A) == (B) )
+
+namespace boost { namespace detail {
+inline void msg_impl(char const * msg, char const * file, int line, char const * function)
+{
+    std::cerr << file << "(" << line << "): " << msg << " in function '" << function << "'" << std::endl;
+}
+} } // boost::detail
+
+#define BOOST_WARN_MESSAGE( P, M )  \
+    ((P)? (void)0 : ::boost::detail::msg_impl( (M) , __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
+#define BOOST_MESSAGE( M ) \
+    BOOST_WARN_MESSAGE( true , (M) )
+
+#define BOOST_CHECKPOINT( M ) \
+    BOOST_WARN_MESSAGE( true , (M) )
+
+//#define BOOST_TEST_DONT_PRINT_LOG_VALUE( T ) 
+
+#define BOOST_FAIL( M ) BOOST_REQUIRE_MESSAGE( false, (M) )
+#define EXIT_SUCCESS 0
+
+int test_main(int argc, char * argv[]);
+
+#include <boost/serialization/singleton.hpp>
+
+int
+main(int argc, char * argv[]){
+    
+    boost::serialization::singleton_module::lock();
+
+    BOOST_TRY{
+        test_main(argc, argv);
+    }
+    #ifndef BOOST_NO_EXCEPTION_STD_NAMESPACE
+        BOOST_CATCH(const std::exception & e){
+            BOOST_ERROR(e.what());
+        }
+    #endif
+    BOOST_CATCH(...){
+        BOOST_ERROR("failed with uncaught exception:");
+    }
+    BOOST_CATCH_END
+
+    boost::serialization::singleton_module::unlock();
+
+    return boost::report_errors();
+}
+
+// the following is to ensure that when one of the libraries changes
+// BJAM rebuilds and relinks the test.
+/*
+#include "text_archive.hpp"
+#include "text_warchive.hpp"
+#include "binary_archive.hpp"
+#include "xml_archive.hpp"
+#include "xml_warchive.hpp"
+*/
+
+/////////////////////////////////////////////
+// invoke header for a custom archive test.
+
+/////////////////////////////////////////////
+// invoke header for a custom archive test.
+#if ! defined(BOOST_ARCHIVE_TEST)
+#define BOOST_ARCHIVE_TEST text_archive.hpp
+#endif
+
+#include <boost/preprocessor/stringize.hpp>
+#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
+
+#ifndef TEST_STREAM_FLAGS
+    #define TEST_STREAM_FLAGS (std::ios_base::openmode)0
+#endif
+
+#ifndef TEST_ARCHIVE_FLAGS
+    #define TEST_ARCHIVE_FLAGS 0
+#endif
+
+#ifndef TEST_DIRECTORY
+#define TEST_DIRECTORY
+#else
+#define __x__ TEST_DIRECTORY
+#undef TEST_DIRECTORY
+#define TEST_DIRECTORY BOOST_PP_STRINGIZE(__x__)
+#endif
+
+#endif // BOOST_SERIALIZATION_TEST_TOOLS_HPP
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_tracking.cpp b/deal.II/contrib/boost/libs/serialization/test/test_tracking.cpp
new file mode 100644 (file)
index 0000000..9f4b47c
--- /dev/null
@@ -0,0 +1,130 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_tracking_save.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <boost/config.hpp>
+#include <cstdio> // remove
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+#include <boost/serialization/tracking.hpp>
+#include <boost/serialization/nvp.hpp>
+
+#define TEST_CLASS(N, TRACKING) \
+class N \
+{ \
+    friend class boost::serialization::access; \
+    template<class Archive> \
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */){ \
+        ++count; \
+    } \
+public: \
+    static unsigned int count; \
+}; \
+unsigned int N::count = 0;\
+BOOST_CLASS_TRACKING(N, TRACKING)
+
+TEST_CLASS(AN, ::boost::serialization::track_never)
+TEST_CLASS(AS, ::boost::serialization::track_selectively)
+TEST_CLASS(AA, ::boost::serialization::track_always)
+
+// test pointers
+TEST_CLASS(PAN, ::boost::serialization::track_never)
+TEST_CLASS(PAS, ::boost::serialization::track_selectively)
+TEST_CLASS(PAA, ::boost::serialization::track_always)
+
+void out(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+    // write object twice to check tracking
+    AN an;
+    AS as;
+    AA aa;
+    oa << BOOST_SERIALIZATION_NVP(an) << BOOST_SERIALIZATION_NVP(an);
+    BOOST_CHECK(an.count == 2);
+    oa << BOOST_SERIALIZATION_NVP(as) << BOOST_SERIALIZATION_NVP(as);
+    BOOST_CHECK(as.count == 2);
+    oa << BOOST_SERIALIZATION_NVP(aa) << BOOST_SERIALIZATION_NVP(aa);
+    BOOST_CHECK(aa.count == 1);
+
+    PAN *pan = new PAN;
+    PAS *pas = new PAS;
+    PAA *paa = new PAA;
+    oa << BOOST_SERIALIZATION_NVP(pan) << BOOST_SERIALIZATION_NVP(pan);
+    BOOST_CHECK(pan->count == 2);
+    oa << BOOST_SERIALIZATION_NVP(pas) << BOOST_SERIALIZATION_NVP(pas);
+    BOOST_CHECK(pas->count == 1);
+    oa << BOOST_SERIALIZATION_NVP(paa) << BOOST_SERIALIZATION_NVP(paa);
+    BOOST_CHECK(paa->count == 1);
+    delete pan;
+    delete pas;
+    delete paa;
+}
+
+void in(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+    // read object twice to check tracking
+    AN an;
+    AS as;
+    AA aa;
+
+    AN::count = 0;
+    AS::count = 0;
+    AA::count = 0;
+
+    ia >> BOOST_SERIALIZATION_NVP(an) >> BOOST_SERIALIZATION_NVP(an);
+    BOOST_CHECK(an.count == 2);
+    ia >> BOOST_SERIALIZATION_NVP(as) >> BOOST_SERIALIZATION_NVP(as);
+    BOOST_CHECK(as.count == 2);
+    ia >> BOOST_SERIALIZATION_NVP(aa) >> BOOST_SERIALIZATION_NVP(aa);
+    BOOST_CHECK(aa.count == 1);
+
+    PAN::count = 0;
+    PAS::count = 0;
+    PAA::count = 0;
+
+    PAN *pan = NULL;
+    PAS *pas = NULL;
+    PAA *paa = NULL;
+    ia >> BOOST_SERIALIZATION_NVP(pan);
+    ia >> BOOST_SERIALIZATION_NVP(pan);
+    BOOST_CHECK(pan->count == 2);
+    ia >> BOOST_SERIALIZATION_NVP(pas);
+    ia >> BOOST_SERIALIZATION_NVP(pas);
+    BOOST_CHECK(pas->count == 1);
+    ia >> BOOST_SERIALIZATION_NVP(paa);
+    ia >> BOOST_SERIALIZATION_NVP(paa);
+    BOOST_CHECK(paa->count == 1);
+    delete pan;
+    delete pas;
+    delete paa;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    out(testfile);
+    in(testfile);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_traits_fail.cpp b/deal.II/contrib/boost/libs/serialization/test/test_traits_fail.cpp
new file mode 100644 (file)
index 0000000..2e37106
--- /dev/null
@@ -0,0 +1,40 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_traits_fail.cpp: test implementation level trait
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile test for traits
+#include "test_tools.hpp"
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/version.hpp>
+
+class A
+{
+};
+
+BOOST_CLASS_IMPLEMENTATION(A, boost::serialization::not_serializable)
+// It can make no sense to assign a version number to a class that 
+// is not serialized with class information
+BOOST_CLASS_VERSION(A, 2) // should fail during compile
+// It can make no sense to assign tracking behavior to a class that 
+// is not serializable. Should fail during compile.
+BOOST_CLASS_TRACKING(A, boost::serialization::track_never) 
+
+class B
+{
+};
+
+BOOST_CLASS_IMPLEMENTATION(B, boost::serialization::object_class_info)
+BOOST_CLASS_VERSION(B, 2)
+BOOST_CLASS_TRACKING(B, boost::serialization::track_always)
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    return boost::exit_failure;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_traits_pass.cpp b/deal.II/contrib/boost/libs/serialization/test/test_traits_pass.cpp
new file mode 100644 (file)
index 0000000..2e65003
--- /dev/null
@@ -0,0 +1,30 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_traits_pass.cpp: test implementation level trait
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// compile test for traits
+#include "test_tools.hpp"
+
+#include <boost/serialization/level.hpp>
+#include <boost/serialization/tracking.hpp>
+#include <boost/serialization/version.hpp>
+
+class B
+{
+};
+
+BOOST_CLASS_IMPLEMENTATION(B, boost::serialization::object_class_info)
+BOOST_CLASS_VERSION(B, 2)
+BOOST_CLASS_TRACKING(B, boost::serialization::track_always)
+
+int
+test_main( int argc, char* argv[] )
+{
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_unregistered.cpp b/deal.II/contrib/boost/libs/serialization/test/test_unregistered.cpp
new file mode 100644 (file)
index 0000000..60a2a62
--- /dev/null
@@ -0,0 +1,245 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_unregistered.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <fstream>
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/archive/archive_exception.hpp>
+#include <boost/serialization/base_object.hpp>
+#include <boost/serialization/type_info_implementation.hpp>
+#include <boost/detail/no_exceptions_support.hpp>
+
+class polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive & /* ar */, const unsigned int /* file_version */){
+    }
+public:
+    virtual ~polymorphic_base(){};
+};
+
+class polymorphic_derived1 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+};
+
+class polymorphic_derived2 : public polymorphic_base
+{
+    friend class boost::serialization::access;
+    template<class Archive>
+    void serialize(Archive &ar, const unsigned int /* file_version */){
+        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(polymorphic_base);
+    }
+};
+
+// save unregistered polymorphic classes
+void save_unregistered1(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 =  new polymorphic_derived1;
+    
+    // registration IS necessary when serializing a polymorphic class
+    // through pointer to the base class
+    bool except = false;
+    BOOST_TRY {
+        oa << BOOST_SERIALIZATION_NVP(rb1);
+    }
+    BOOST_CATCH(boost::archive::archive_exception aex){
+        except = true;
+    }
+    BOOST_CATCH_END
+    BOOST_CHECK_MESSAGE(except, "lack of registration not detected !");
+
+    delete rb1;
+}
+
+// note: the corresponding save function above will not result in
+// valid archive - hence, the following code which attempts to load
+// and archive will fail.  Leave this as a reminder not to do this
+#if 0
+// load unregistered polymorphic classes
+void load_unregistered1(const char *testfile)
+{
+    std::ifstream is(testfile);
+    boost::archive::iarchive ia(is);
+
+    polymorphic_base *rb1(NULL);
+
+    // registration IS necessary when serializing a polymorphic class
+    // through pointer to the base class
+    bool except = false;
+    BOOST_TRY {
+        ia >> BOOST_SERIALIZATION_NVP(rb1);
+    }
+    BOOST_CATCH(boost::archive::archive_exception aex){
+        except = true;
+        BOOST_CHECK_MESSAGE(
+            NULL == rb1, 
+            "failed load resulted in a non-null pointer"
+        );
+    }
+    BOOST_CATCH_END
+    BOOST_CHECK_MESSAGE(except, "lack of registration not detected !");
+
+    delete rb1;
+}
+#endif
+
+// save unregistered polymorphic classes
+void save_unregistered2(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_derived1 *rd1 = new polymorphic_derived1;
+    
+    // registration is NOT necessary when serializing a polymorphic class
+    // through pointer to a derived class
+    bool except = false;
+    BOOST_TRY {
+        oa << BOOST_SERIALIZATION_NVP(rd1);
+    }
+    BOOST_CATCH(boost::archive::archive_exception aex){
+        except = true;
+    }
+    BOOST_CATCH_END
+    BOOST_CHECK_MESSAGE(! except, "registration not detected !");
+
+    delete rd1;
+}
+
+// note: the corresponding save function above will not result in
+// valid archive - hence, the following code which attempts to load
+// and archive will fail.  Leave this as a reminder not to do this
+// load unregistered polymorphic classes
+void load_unregistered2(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_derived1 *rd1 = NULL;
+    
+    // registration is NOT necessary when serializing a polymorphic class
+    // or through pointer to a derived class
+    bool except = false;
+    BOOST_TRY {
+        ia >> BOOST_SERIALIZATION_NVP(rd1);
+    }
+    BOOST_CATCH(boost::archive::archive_exception aex){
+        except = true;
+        BOOST_CHECK_MESSAGE(
+            NULL == rd1, 
+            "failed load resulted in a non-null pointer"
+        );
+    }
+    BOOST_CATCH_END
+    BOOST_CHECK_MESSAGE(! except, "registration not detected !");
+
+    delete rd1;
+}
+
+// save registered polymorphic class
+void save_registered(const char *testfile)
+{
+    test_ostream os(testfile, TEST_STREAM_FLAGS);
+    test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = new polymorphic_derived1;
+    polymorphic_base *rb2 = new polymorphic_derived2;
+
+    // registration (forward declaration) will permit correct serialization
+    // through a pointer to a base class
+    oa.register_type(static_cast<polymorphic_derived1 *>(NULL));
+    oa.register_type(static_cast<polymorphic_derived2 *>(NULL));
+    oa << BOOST_SERIALIZATION_NVP(rb1); 
+    oa << BOOST_SERIALIZATION_NVP(rb2);
+
+    delete rb1;
+    delete rb2;
+}
+
+// load registered polymorphic class
+void load_registered(const char *testfile)
+{
+    test_istream is(testfile, TEST_STREAM_FLAGS);
+    test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+
+    polymorphic_base *rb1 = NULL;
+    polymorphic_base *rb2 = NULL;
+
+    // registration (forward declaration) will permit correct serialization
+    // through a pointer to a base class
+    ia.register_type(static_cast<polymorphic_derived1 *>(NULL));
+    ia.register_type(static_cast<polymorphic_derived2 *>(NULL));
+
+    ia >> BOOST_SERIALIZATION_NVP(rb1);
+
+    BOOST_CHECK_MESSAGE(NULL != rb1, "Load resulted in NULL pointer");
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<
+            polymorphic_derived1
+        >::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<
+            polymorphic_base
+        >::type::get_const_instance().get_derived_extended_type_info(*rb1),
+        "restored pointer b1 not of correct type"
+    );
+
+    ia >> BOOST_SERIALIZATION_NVP(rb2);
+    BOOST_CHECK_MESSAGE(NULL != rb2, "Load resulted in NULL pointer");
+    BOOST_CHECK_MESSAGE(
+        boost::serialization::type_info_implementation<
+            polymorphic_derived2
+        >::type::get_const_instance()
+        == 
+        * boost::serialization::type_info_implementation<
+            polymorphic_base
+        >::type::get_const_instance().get_derived_extended_type_info(*rb2),
+        "restored pointer b2 not of correct type"
+    );
+
+    delete rb1;
+    delete rb2;
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+    save_unregistered1(testfile);
+//  load_unregistered1(testfile);
+    save_unregistered2(testfile);
+    load_unregistered2(testfile);
+    save_registered(testfile);
+    load_registered(testfile);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_utf8_codecvt.cpp b/deal.II/contrib/boost/libs/serialization/test/test_utf8_codecvt.cpp
new file mode 100644 (file)
index 0000000..fe2b1f8
--- /dev/null
@@ -0,0 +1,260 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_utf8_codecvt.cpp
+
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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 <algorithm>
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <locale>
+#include <vector>
+#include <string>
+
+#include <cstddef> // size_t
+#include <cwchar>
+#include <boost/config.hpp>
+
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::size_t; 
+    using ::wcslen;
+#ifndef UNDER_CE    
+    using ::w_int;
+#endif    
+} // namespace std
+#endif
+
+// Note: copied from boost/iostreams/char_traits.hpp
+//
+// Dinkumware that comes with QNX Momentics 6.3.0, 4.0.2, incorrectly defines
+// the EOF and WEOF macros to not std:: qualify the wint_t type (and so does
+// Sun C++ 5.8 + STLport 4). Fix by placing the def in this scope.
+// NOTE: Use BOOST_WORKAROUND?
+#if (defined(__QNX__) && defined(BOOST_DINKUMWARE_STDLIB))  \
+    || defined(__SUNPRO_CC)
+using ::std::wint_t;
+#endif
+
+#include "test_tools.hpp"
+#include <boost/archive/iterators/istream_iterator.hpp>
+#include <boost/archive/iterators/ostream_iterator.hpp>
+
+#include <boost/archive/add_facet.hpp>
+#include <boost/archive/detail/utf8_codecvt_facet.hpp>
+
+template<std::size_t s>
+struct test_data
+{
+    static unsigned char utf8_encoding[];
+    static wchar_t wchar_encoding[];
+};
+
+template<>
+unsigned char test_data<2>::utf8_encoding[] = {
+    0x01,
+    0x7f,
+    0xc2, 0x80,
+    0xdf, 0xbf,
+    0xe0, 0xa0, 0x80,
+    0xe7, 0xbf, 0xbf
+};
+
+template<>
+wchar_t test_data<2>::wchar_encoding[] = {
+    0x0001,
+    0x007f,
+    0x0080,
+    0x07ff,
+    0x0800,
+    0x7fff
+};
+
+template<>
+unsigned char test_data<4>::utf8_encoding[] = {
+    0x01,
+    0x7f,
+    0xc2, 0x80,
+    0xdf, 0xbf,
+    0xe0, 0xa0, 0x80,
+    0xef, 0xbf, 0xbf,
+    0xf0, 0x90, 0x80, 0x80,
+    0xf4, 0x8f, 0xbf, 0xbf,
+    0xf7, 0xbf, 0xbf, 0xbf,
+    0xf8, 0x88, 0x80, 0x80, 0x80,
+    0xfb, 0xbf, 0xbf, 0xbf, 0xbf,
+    0xfc, 0x84, 0x80, 0x80, 0x80, 0x80,
+    0xfd, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf
+};
+
+template<>
+wchar_t test_data<4>::wchar_encoding[] = {
+    0x00000001,
+    0x0000007f,
+    0x00000080,
+    0x000007ff,
+    0x00000800,
+    0x0000ffff,
+    0x00010000,
+    0x0010ffff,
+    0x001fffff,
+    0x00200000,
+    0x03ffffff,
+    0x04000000,
+    0x7fffffff
+};
+
+int
+test_main(int /* argc */, char * /* argv */[]) {
+    std::locale old_loc;
+    std::locale * utf8_locale
+        = boost::archive::add_facet(
+            old_loc, 
+            new boost::archive::detail::utf8_codecvt_facet
+        );
+
+    typedef char utf8_t;
+    typedef test_data<sizeof(wchar_t)> td;
+
+    // Send our test UTF-8 data to file
+    {
+        std::ofstream ofs;
+        ofs.open("test.dat", std::ios::binary);
+        std::copy(
+            td::utf8_encoding,
+            #if ! defined(__BORLANDC__)
+                // borland 5.60 complains about this
+                td::utf8_encoding + sizeof(td::utf8_encoding) / sizeof(unsigned char),
+            #else
+                // so use this instead
+                td::utf8_encoding + 12,
+            #endif
+            boost::archive::iterators::ostream_iterator<utf8_t>(ofs)
+        );
+    }
+
+    // Read the test data back in, converting to UCS-4 on the way in
+    std::vector<wchar_t> from_file;
+    {
+        std::wifstream ifs;
+        ifs.imbue(*utf8_locale);
+        ifs.open("test.dat");
+
+        wchar_t item = 0;
+        // note can't use normal vector from iterator constructor because
+        // dinkumware doesn't have it.
+        for(;;){
+            item = ifs.get();
+            if(item == WEOF)
+                break;
+            //ifs >> item;
+            //if(ifs.eof())
+            //    break;
+            from_file.push_back(item);
+        }
+    }
+
+    // compare the data read back in with the orginal
+    #if ! defined(__BORLANDC__)
+        // borland 5.60 complains about this
+        BOOST_CHECK(from_file.size() == sizeof(td::wchar_encoding)/sizeof(wchar_t));
+    #else
+        // so use this instead
+        BOOST_CHECK(from_file.size() == 6);
+    #endif
+
+    BOOST_CHECK(std::equal(from_file.begin(), from_file.end(), td::wchar_encoding));
+  
+    // Send the UCS4_data back out, converting to UTF-8
+    {
+        std::wofstream ofs;
+        ofs.imbue(*utf8_locale);
+        ofs.open("test2.dat");
+        std::copy(
+            from_file.begin(),
+            from_file.end(),
+            boost::archive::iterators::ostream_iterator<wchar_t>(ofs)
+        );
+    }
+
+    // Make sure that both files are the same
+    {
+        typedef boost::archive::iterators::istream_iterator<utf8_t> is_iter;
+        is_iter end_iter;
+
+        std::ifstream ifs1("test.dat");
+        is_iter it1(ifs1);
+        std::vector<utf8_t> data1;
+        std::copy(it1, end_iter, std::back_inserter(data1));
+
+        std::ifstream ifs2("test2.dat");
+        is_iter it2(ifs2);
+        std::vector<utf8_t> data2;
+        std::copy(it2, end_iter, std::back_inserter(data2));
+
+        BOOST_CHECK(data1 == data2);
+    }
+
+    // some libraries have trouble that only shows up with longer strings
+    
+    wchar_t * test3_data = L"\
+    <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\
+    <!DOCTYPE boost_serialization>\
+    <boost_serialization signature=\"serialization::archive\" version=\"3\">\
+    <a class_id=\"0\" tracking_level=\"0\">\
+        <b>1</b>\
+        <f>96953204</f>\
+        <g>177129195</g>\
+        <l>1</l>\
+        <m>5627</m>\
+        <n>23010</n>\
+        <o>7419</o>\
+        <p>16212</p>\
+        <q>4086</q>\
+        <r>2749</r>\
+        <c>-33</c>\
+        <s>124</s>\
+        <t>28</t>\
+        <u>32225</u>\
+        <v>17543</v>\
+        <w>0.84431422</w>\
+        <x>1.0170664757130923</x>\
+        <y>tjbx</y>\
+        <z>cuwjentqpkejp</z>\
+    </a>\
+    </boost_serialization>\
+    ";
+    
+    // Send the UCS4_data back out, converting to UTF-8
+    std::size_t l = std::wcslen(test3_data);
+    {
+        std::wofstream ofs;
+        ofs.imbue(*utf8_locale);
+        ofs.open("test3.dat");
+        std::copy(
+            test3_data,
+            test3_data + l,
+            boost::archive::iterators::ostream_iterator<wchar_t>(ofs)
+        );
+    }
+
+    // Make sure that both files are the same
+    {
+        std::wifstream ifs;
+        ifs.imbue(*utf8_locale);
+        ifs.open("test3.dat");
+        BOOST_CHECK(
+            std::equal(
+                test3_data,
+                test3_data + l,
+                boost::archive::iterators::istream_iterator<wchar_t>(ifs)
+            )
+        );
+    }
+
+    delete utf8_locale;
+    return EXIT_SUCCESS;
+}
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_valarray.cpp b/deal.II/contrib/boost/libs/serialization/test/test_valarray.cpp
new file mode 100644 (file)
index 0000000..391f59f
--- /dev/null
@@ -0,0 +1,56 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_valarrray.cpp
+
+// (C) Copyright 2005 Matthias Troyer . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/valarray.hpp>
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    std::valarray<int> avalarray(2);
+    avalarray[0] = 42;
+    avalarray[1] = -42;
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("avalarray", avalarray);
+    }
+    std::valarray<int> avalarray1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("avalarray", avalarray1);
+    }
+    bool equal = (    avalarray.size() == avalarray1.size() 
+                   && avalarray[0] == avalarray1[0]
+                   && avalarray[1] == avalarray1[1]
+                 );
+                  
+    BOOST_CHECK(equal);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_variant.cpp b/deal.II/contrib/boost/libs/serialization/test/test_variant.cpp
new file mode 100644 (file)
index 0000000..f18986d
--- /dev/null
@@ -0,0 +1,169 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_variant.cpp
+// test of non-intrusive serialization of variant types
+//
+// copyright (c) 2005   
+// troy d. straszheim <troy@resophonic.com>
+// http://www.resophonic.com
+//
+// Use, modification and distribution is subject to 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)
+//
+// See http://www.boost.org for updates, documentation, and revision history.
+//
+// thanks to Robert Ramey and Peter Dimov.
+//
+
+#include <cstddef> // NULL
+#include <cstdio> // remove
+#include <fstream>
+#include <cmath> // for fabs()
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include <boost/type_traits/is_same.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/serialization/throw_exception.hpp>
+
+#if defined(_MSC_VER) && (_MSC_VER <= 1020)
+#  pragma warning (disable : 4786) // too long name, harmless warning
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/archive/archive_exception.hpp>
+
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/variant.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+class are_equal
+    : public boost::static_visitor<bool>
+{
+public:
+    // note extra rigamorole for compilers which don't support
+    // partial function template ordering - specfically msvc 6.x
+    struct same {
+        template<class T, class U>
+        static bool invoke(const T & t, const U & u){
+            return t == u;
+        }
+    };
+
+    struct not_same {
+        template<class T, class U>
+        static bool invoke(const T &, const U &){
+            return false;
+        }
+    };
+
+    template <class T, class U>
+    bool operator()( const T & t, const U & u) const 
+    {
+        typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<boost::is_same<T, U>,
+            boost::mpl::identity<same>,
+            boost::mpl::identity<not_same>
+        >::type type;
+        return type::invoke(t, u);
+    }
+
+    bool operator()( const float & lhs, const float & rhs ) const
+    {
+        return std::fabs(lhs- rhs) < std::numeric_limits<float>::round_error();
+    }
+    bool operator()( const double & lhs, const double & rhs ) const
+    {
+        return std::fabs(lhs - rhs) < std::numeric_limits<float>::round_error();
+    }
+};
+
+template <class T>
+void test_type(const T& gets_written){
+   const char * testfile = boost::archive::tmpnam(NULL);
+   BOOST_REQUIRE(testfile != NULL);
+   {
+      test_ostream os(testfile, TEST_STREAM_FLAGS);
+      test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+      oa << boost::serialization::make_nvp("written", gets_written);
+   }
+
+   T got_read;
+   {
+      test_istream is(testfile, TEST_STREAM_FLAGS);
+      test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+      ia >> boost::serialization::make_nvp("written", got_read);
+   }
+   BOOST_CHECK(boost::apply_visitor(are_equal(), gets_written, got_read));
+
+   std::remove(testfile);
+}
+
+// this verifies that if you try to read in a variant from a file
+// whose "which" is illegal for the one in memory (that is, you're
+// reading in to a different variant than you wrote out to) the load()
+// operation will throw.  One could concievably add checking for
+// sequence length as well, but this would add size to the archive for
+// dubious benefit.
+//
+void do_bad_read()
+{
+    // Compiling this test invokes and ICE on msvc 6
+    // So, we'll just to skip it for this compiler
+    #if defined(_MSC_VER) && (_MSC_VER <= 1020)
+        boost::variant<bool, float, int, std::string> big_variant;
+        big_variant = std::string("adrenochrome");
+
+        const char * testfile = boost::archive::tmpnam(NULL);
+        BOOST_REQUIRE(testfile != NULL);
+        {
+            test_ostream os(testfile, TEST_STREAM_FLAGS);
+            test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+            oa << BOOST_SERIALIZATION_NVP(big_variant);
+        }
+        boost::variant<bool, float, int> little_variant;
+        {
+            test_istream is(testfile, TEST_STREAM_FLAGS);
+            test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+            bool exception_invoked = false;
+            BOOST_TRY {
+                ia >> BOOST_SERIALIZATION_NVP(little_variant);
+            } BOOST_CATCH (boost::archive::archive_exception e) {
+                BOOST_CHECK(boost::archive::archive_exception::unsupported_version == e.code);
+                exception_invoked = true;
+            }
+            BOOST_CATCH_END
+            BOOST_CHECK(exception_invoked);
+        }
+    #endif
+}
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+   {
+      boost::variant<bool, int, float, double, A, std::string> v;
+      v = false;
+      test_type(v);
+      v = 1;
+      test_type(v);
+      v = (float) 2.3;
+      test_type(v);
+      v = (double) 6.4;
+      test_type(v);
+      v = std::string("we can't stop here, this is Bat Country");
+      test_type(v);
+      v = A();
+      test_type(v);
+   }
+   do_bad_read();
+   return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_vector.cpp b/deal.II/contrib/boost/libs/serialization/test/test_vector.cpp
new file mode 100644 (file)
index 0000000..59cd9d2
--- /dev/null
@@ -0,0 +1,67 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_vector.cpp
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+// should pass compilation and execution
+
+#include <cstddef> // NULL
+#include <fstream>
+
+#include <cstdio> // remove
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STDC_NAMESPACE)
+namespace std{ 
+    using ::remove;
+}
+#endif
+
+#include "test_tools.hpp"
+
+#include <boost/serialization/vector.hpp>
+
+#include "A.hpp"
+#include "A.ipp"
+
+template <class T>
+int test_vector(T)
+{
+    const char * testfile = boost::archive::tmpnam(NULL);
+    BOOST_REQUIRE(NULL != testfile);
+
+    // test array of objects
+    std::vector<T> avector;
+    avector.push_back(T());
+    avector.push_back(T());
+    {   
+        test_ostream os(testfile, TEST_STREAM_FLAGS);
+        test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+        oa << boost::serialization::make_nvp("avector", avector);
+    }
+    std::vector<T> avector1;
+    {
+        test_istream is(testfile, TEST_STREAM_FLAGS);
+        test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+        ia >> boost::serialization::make_nvp("avector", avector1);
+    }
+    BOOST_CHECK(avector == avector1);
+    std::remove(testfile);
+    return EXIT_SUCCESS;
+}
+
+int test_main( int /* argc */, char* /* argv */[] )
+{
+   int res = test_vector(A());
+    // test an int vector for which optimized versions should be available
+   if (res == EXIT_SUCCESS)
+     res = test_vector(0);  
+    // test a bool vector
+   if (res == EXIT_SUCCESS)
+     res = test_vector(false);  
+   return res;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/test_void_cast.cpp b/deal.II/contrib/boost/libs/serialization/test/test_void_cast.cpp
new file mode 100644 (file)
index 0000000..cb69296
--- /dev/null
@@ -0,0 +1,165 @@
+/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
+// test_void_cast.cpp: test implementation of run-time casting of void pointers
+
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+// <gennadiy.rozental@tfn.com>
+
+#include <cstddef> // NULL
+#include "test_tools.hpp"
+#include <boost/serialization/extended_type_info_typeid.hpp>
+#include <boost/serialization/void_cast.hpp>
+#include <boost/serialization/singleton.hpp>
+
+class Base1
+{
+    char a;
+};
+
+class Base2
+{
+    int b;
+};
+
+class Derived : public Base1, public Base2
+{
+    long c;
+};
+
+class MostDerived : public Derived
+{
+    char d[32];
+};
+
+template<class T>
+const boost::serialization::extended_type_info & eti(){
+    return boost::serialization::singleton<
+        boost::serialization::extended_type_info_typeid<T>
+    >::get_const_instance();
+}
+
+int
+test_main( int /* argc */, char* /* argv */[] )
+{
+    MostDerived md;
+    MostDerived* pmd =& md;
+    Derived* pd = static_cast<Derived*>(pmd);
+
+    Base2* pb2 = static_cast<Base2*>(pmd);
+    Base1* pb1 = static_cast<Base1*>(pd);
+
+    void* vpmd = static_cast<void*>(pmd);
+    void* vpb1 = static_cast<void*>(pb1);
+    void* vpb2 = static_cast<void*>(pb2);
+    void* vpd = static_cast<void*>(pd);
+
+    // simple casts only requiring table lookup
+    BOOST_CHECK(vpd == boost::serialization::void_downcast(
+        eti<Derived>(),
+        eti<Base1>(),
+        vpb1
+    ));
+    BOOST_CHECK(vpb1 == boost::serialization::void_upcast(
+        eti<Derived>(),
+        eti<Base1>(),
+        vpd  
+    ));
+    BOOST_CHECK(vpd == boost::serialization::void_downcast(  
+        eti<Derived>(),
+        eti<Base2>(),
+        vpb2
+    ));
+    BOOST_CHECK(vpb2 == boost::serialization::void_upcast(
+        eti<Derived>(),
+        eti<Base2>(),
+        vpd
+    ));
+    BOOST_CHECK(vpmd == boost::serialization::void_downcast(  
+        eti<MostDerived>(),
+        eti<Derived>(),
+        vpd
+    ));
+    BOOST_CHECK(vpd == boost::serialization::void_upcast(
+        eti<MostDerived>(),
+        eti<Derived>(),
+        vpmd
+    ));
+    // note relationship between MostDerived and Base1 is automatically derived
+    BOOST_CHECK(vpmd == boost::serialization::void_downcast(  
+        eti<MostDerived>(),
+        eti<Base1>(),
+        vpb1
+    ));
+    BOOST_CHECK(vpb1 == boost::serialization::void_upcast(
+        eti<MostDerived>(),
+        eti<Base1>(),
+        vpmd
+    ));
+
+    // note relationship between MostDerived and Base2 is automatically derived
+    BOOST_CHECK(vpmd == boost::serialization::void_downcast(  
+        eti<MostDerived>(),
+        eti<Base2>(),
+        vpb2
+    ));
+    BOOST_CHECK(vpb2 == boost::serialization::void_upcast(
+        eti<MostDerived>(),
+        eti<Base2>(),
+        vpmd
+    ));
+
+    // note: currently derivations are not optimised.  See void_cast.cpp
+    // for and explanation.  These should still work though.
+
+    // need to double check to validate speed up optimization of derivations
+    BOOST_CHECK(vpmd == boost::serialization::void_downcast(  
+        eti<MostDerived>(),
+        eti<Base1>(),
+        vpb1
+    ));
+    BOOST_CHECK(vpb1 == boost::serialization::void_upcast(
+        eti<MostDerived>(),
+        eti<Base1>(),
+        vpmd
+    ));
+    BOOST_CHECK(vpmd == boost::serialization::void_downcast(
+        eti<MostDerived>(),
+        eti<Base2>(),
+        vpb2
+    ));
+    BOOST_CHECK(vpb2 == boost::serialization::void_upcast(
+        eti<MostDerived>(),
+        eti<Base2>(),
+        vpmd
+    ));
+
+    // check things that should fail
+    BOOST_CHECK(NULL == boost::serialization::void_downcast(
+        eti<Base2>(),
+        eti<Base1>(),
+        vpb1
+    ));
+
+    // note that a fundamental feature is that derived/base pairs are created
+    // at compiler time so that all are registered before the main program starts
+    // so leave the registration here at the end to verify this. Note bogus arguments
+    // to workaround msvc 6 bug
+    boost::serialization::void_cast_register<Derived, Base1>(
+        static_cast<Derived *>(NULL),
+        static_cast<Base1 *>(NULL)
+    );
+    boost::serialization::void_cast_register<Derived, Base2>(
+        static_cast<Derived *>(NULL),
+        static_cast<Base2 *>(NULL)
+    );
+    boost::serialization::void_cast_register<MostDerived, Derived>(
+        static_cast<MostDerived *>(NULL),
+        static_cast<Derived *>(NULL)
+    );
+
+    return EXIT_SUCCESS;
+}
+
+// EOF
diff --git a/deal.II/contrib/boost/libs/serialization/test/text_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/text_archive.hpp
new file mode 100644 (file)
index 0000000..65425ce
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// text_archive
+#include <boost/archive/text_oarchive.hpp>
+typedef boost::archive::text_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/text_iarchive.hpp>
+typedef boost::archive::text_iarchive test_iarchive;
+typedef std::ifstream test_istream;
diff --git a/deal.II/contrib/boost/libs/serialization/test/text_warchive.hpp b/deal.II/contrib/boost/libs/serialization/test/text_warchive.hpp
new file mode 100644 (file)
index 0000000..8f77bf2
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// text_warchive
+#include <boost/archive/text_woarchive.hpp>
+typedef boost::archive::text_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/text_wiarchive.hpp>
+typedef boost::archive::text_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
diff --git a/deal.II/contrib/boost/libs/serialization/test/xml_archive.hpp b/deal.II/contrib/boost/libs/serialization/test/xml_archive.hpp
new file mode 100644 (file)
index 0000000..c7ca343
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// xml_archive
+#include <boost/archive/xml_oarchive.hpp>
+typedef boost::archive::xml_oarchive test_oarchive;
+typedef std::ofstream test_ostream;
+#include <boost/archive/xml_iarchive.hpp>
+typedef boost::archive::xml_iarchive test_iarchive;
+typedef std::ifstream test_istream;
diff --git a/deal.II/contrib/boost/libs/serialization/test/xml_warchive.hpp b/deal.II/contrib/boost/libs/serialization/test/xml_warchive.hpp
new file mode 100644 (file)
index 0000000..22e4dba
--- /dev/null
@@ -0,0 +1,13 @@
+// (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com . 
+// Use, modification and distribution is subject to 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)
+
+//  See http://www.boost.org for updates, documentation, and revision history.
+// xml_warchive
+#include <boost/archive/xml_woarchive.hpp>
+typedef boost::archive::xml_woarchive test_oarchive;
+typedef std::wofstream test_ostream;
+#include <boost/archive/xml_wiarchive.hpp>
+typedef boost::archive::xml_wiarchive test_iarchive;
+typedef std::wifstream test_istream;
diff --git a/deal.II/contrib/boost/libs/serialization/util/test.jam b/deal.II/contrib/boost/libs/serialization/util/test.jam
new file mode 100644 (file)
index 0000000..24b2aed
--- /dev/null
@@ -0,0 +1,188 @@
+# Boost serialization Library utility test Jamfile
+
+#  (C) Copyright Robert Ramey 2002-2004.
+#  Use, modification, and distribution are subject to 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)
+#
+
+# the file contains Jam rules which are used in both the normal
+# boost test, as well as the performance test and comprehensive
+# tests.
+
+BOOST_ARCHIVE_LIST = [ modules.peek : BOOST_ARCHIVE_LIST ] ;
+
+# these are used to shorten testing while in development.  It permits
+# testing to be applied to just a particular type of archive
+if ! $(BOOST_ARCHIVE_LIST) {
+    BOOST_ARCHIVE_LIST = 
+        "text_archive.hpp" 
+        "text_warchive.hpp" 
+        "binary_archive.hpp" 
+        "xml_archive.hpp" 
+        "xml_warchive.hpp" 
+    ;
+    # enable the tests which don't depend on a particular archive
+    BOOST_SERIALIZATION_TEST = true ;
+}
+
+rule run-template ( test-name : sources * : requirements * ) {
+    return [
+        run
+            $(sources)
+        : # command
+        : # input files
+        : # requirements
+            # toolset warnings
+            # <toolset>gcc:<cxxflags>"-Wno-non-virtual-dtor -Wno-ctor-dtor-privacy"
+            <toolset>borland:<cxxflags>"-w-8080 -w-8071 -w-8057 -w-8062 -w-8008 -w-0018 -w-8066"
+            <toolset>gcc:<warnings>all # ?
+            <toolset>gcc:<cxxflags>"-Wno-long-long"
+            <toolset>msvc:<warnings>all # == /W4
+            <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS
+            <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
+            <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS
+            <toolset>msvc:<define>_CRT_SECURE_NO_DEPRECATE
+            <toolset>msvc:<cxxflags>"-wd4996"
+            # toolset optimizations
+            <toolset>gcc:<cxxflags>"-ftemplate-depth-255"
+            <toolset>msvc:<cxxflags>"-Gy"
+            $(requirements)
+        : # test name
+            $(test-name)
+    ] ;
+}
+
+# Given a name of test, return the 'save' test that must be run
+# before the named test, or empty string if there's no such test.
+rule dependency-save-test ( test )
+{
+    local m = [ MATCH (.*)load(.*) : $(test) ] ;
+    if $(m)
+    {
+        return $(m[1])save$(m[2]) ;
+    }  
+}
+
+# each of the following tests is run with each type of archive
+rule run-invoke ( test-name : sources * : requirements * )
+{
+    local save-test = [ dependency-save-test $(test-name) ] ;
+
+    local tests ;
+    tests += [ 
+        run-template $(test-name)
+        : # sources
+            $(sources)
+            ../build//boost_serialization
+        : # requirements
+            $(requirements)
+            <define>BOOST_LIB_DIAGNOSTIC=1
+            <dependency>$(save-test)
+    ] ;
+    return $(tests) ;
+}
+
+# each of the following tests is run with each type of archive
+rule run-winvoke ( test-name : sources * : requirements * )
+{
+    local save-test = [ dependency-save-test $(test-name) ] ;
+
+    local tests ;
+    tests += [ 
+        run-template $(test-name)
+        : # sources
+            $(sources)
+            ../build//boost_serialization
+            ../build//boost_wserialization
+        : # requirements
+            $(requirements)
+            <define>BOOST_LIB_DIAGNOSTIC=1
+            # both stlport and msvc6 define iswspace
+            <toolset>msvc,<stdlib>stlport:<linkflags>"-force:multiple"
+            <dependency>$(save-test)
+            <dependency>../../config/test/all//BOOST_NO_STD_WSTREAMBUF
+    ] ;
+    return $(tests) ;
+}
+
+# for tests which don't use library code - usually just headers
+rule test-bsl-run-no-lib  ( test-name : sources * : requirements * )
+{
+    local tests ;
+    tests += [ 
+        run-template $(test-name)
+        : # sources
+            $(test-name).cpp $(sources).cpp
+        :
+            $(requirements)
+    ] ;
+    return $(tests) ;
+}
+
+# for tests which are run just once rather than for every archive
+rule test-bsl-run ( test-name : sources * : libs * : requirements * )
+{
+    local tests ;
+    tests +=  [ 
+        run-invoke $(test-name) 
+        : # sources
+            $(test-name).cpp $(sources).cpp $(libs)
+        :
+            $(requirements)
+    ] ;
+    return $(tests) ;
+}
+
+rule test-bsl-run_archive ( test-name : archive-name : sources * : libs * : requirements * ) {
+    local tests ;
+    switch $(archive-name) {
+    case "*_warchive" :
+        tests +=  [
+            run-winvoke $(test-name)_$(archive-name)
+            : 
+                $(sources).cpp $(libs)
+            :
+                <define>BOOST_ARCHIVE_TEST=$(archive-name).hpp
+                $(requirements)
+        ] ;
+    case "*" :
+        tests +=  [
+            run-invoke $(test-name)_$(archive-name)
+            : 
+                $(sources).cpp $(libs)
+            : 
+                <define>BOOST_ARCHIVE_TEST=$(archive-name).hpp
+                $(requirements)
+        ] ;
+    }
+    return $(tests) ;
+}
+
+rule test-bsl-run_files ( test-name : sources * : libs * : requirements * ) {
+    local tests ;
+    for local defn in $(BOOST_ARCHIVE_LIST) {
+        tests += [ 
+            test-bsl-run_archive $(test-name) 
+            : $(defn:LB) 
+            : $(test-name) $(sources) 
+            : $(libs)
+            : $(requirements)
+        ] ;
+    }
+    return $(tests) ;
+}
+    
+rule test-bsl-run_polymorphic_archive ( test-name : sources * ) {
+    local tests ;
+    for local defn in $(BOOST_ARCHIVE_LIST) {
+        tests += [ 
+            test-bsl-run_archive $(test-name)
+            : polymorphic_$(defn:LB)  
+            : $(test-name) $(sources)
+        ] ;
+    }
+    return $(tests) ;
+}
+
+
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/BoostSerializationLibrary.sln b/deal.II/contrib/boost/libs/serialization/vc7ide/BoostSerializationLibrary.sln
new file mode 100644 (file)
index 0000000..d572b31
--- /dev/null
@@ -0,0 +1,1354 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_map", "test_map.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_mi", "test_mi.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_multiple_ptrs", "test_multiple_ptrs.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_no_rtti", "test_no_rtti.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_non_default_ctor", "test_non_default_ctor.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_non_default_ctor2", "test_non_default_ctor2.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_non_intrusive", "test_non_intrusive.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_null_ptr", "test_null_ptr.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_nvp", "test_nvp.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_object", "test_object.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_optional", "test_optional.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_polymorphic", "test_polymorphic.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_primitive", "test_primitive.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_private_ctor", "test_private_ctor.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_recursion", "test_recursion.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_registered", "test_registered.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_set", "test_set.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_shared_ptr", "test_shared_ptr.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_simple_class_ptr", "test_simple_class_ptr.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_split", "test_split.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_static_warning", "test_static_warning.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_tracking", "test_tracking.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_traits_fail", "test_traits_fail.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_traits_pass", "test_traits_pass.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_unregistered", "test_unregistered.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_utf8_codecvt", "test_utf8_codecvt.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_vector", "test_vector.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_void_cast", "test_void_cast.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_auto_ptr", "demo_auto_ptr.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_exception", "demo_exception.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_pimpl", "demo_pimpl.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_polymorphic", "demo_polymorphic.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_shared_ptr", "demo_shared_ptr.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_xml", "demo_xml.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_xml_load", "demo_xml_load.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_xml_save", "demo_xml_save.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_not_serializable", "test_not_serializable.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_variant", "test_variant.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_derived", "test_derived.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_const_pass", "test_const_pass.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_derived_class", "test_derived_class.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_const_warn", "test_const_fail.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_shared_ptr_132", "test_shared_ptr_132.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_inclusion", "test_inclusion.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_reset_object_address", "test_reset_object_addr.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_strong_typedef", "test_strong_typedef.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibraryW", "LibraryW.vcproj", "{30E10563-960A-11D7-9FE9-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_valarray", "test_valarray.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_dll", "demo_dll.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_a", "dll_a.vcproj", "{CED1BD64-563F-485D-AE69-668797013AA0}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_dll_exported", "test_dll_exported.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_dll_simple", "test_dll_simple.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_dll_plugin", "test_dll_plugin.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_complex", "test_complex.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_simple_class", "test_simple_class.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_new_operator", "test_new_operator.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_bitset", "test_bitset.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_private_base", "test_private_base.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_shared_ptr_multi_base", "test_shared_ptr_multi_base.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_array", "test_array.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_base", "dll_base.vcproj", "{CED1BD64-563F-485D-AE69-668797013AA0}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_derived2", "dll_derived2.vcproj", "{CED1BD64-563F-485D-AE69-668797013AA0}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll_polymorphic_derived2", "polymorphic_derived2.vcproj", "{CED1BD64-563F-485D-AE69-668797013AA0}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_multiple_inheritance", "test_multiple_inheritance.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_check", "test_check.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_polymorphic2", "test_polymorphic2.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_const", "test_const.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Library", "Library.vcproj", "{30E10563-960A-11D7-9FE9-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_portable_archive", "demo_portable_archive.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_log", "demo_log.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_simple_log", "demo_simple_log.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo_trivial_archive", "demo_trivial_archive.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_exported", "test_exported.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo", "demo.vcproj", "{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Global
+       GlobalSection(SolutionConfiguration) = preSolution
+               Debug = Debug
+               Debug runtime-dynamic = Debug runtime-dynamic
+               Debug runtime-static = Debug runtime-static
+               Debug runtime-static threading-multi = Debug runtime-static threading-multi
+               Release = Release
+               Release runtime-dynamic = Release runtime-dynamic
+               Release runtime-static = Release runtime-static
+       EndGlobalSection
+       GlobalSection(ProjectConfiguration) = postSolution
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug.Build.0 = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release.ActiveCfg = Release runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release.Build.0 = Release runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.ActiveCfg = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.Build.0 = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.ActiveCfg = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.Build.0 = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.Build.0 = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.ActiveCfg = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.Build.0 = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.Build.0 = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.ActiveCfg = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release.Build.0 = Release|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.ActiveCfg = Release runtime-dynamic|Win32
+               {CED1BD64-563F-485D-AE69-668797013AA0}.Release runtime-static.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug.Build.0 = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release.ActiveCfg = Release runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release.Build.0 = Release runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static|Win32
+               {30E10563-960A-11D7-9FE9-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.ActiveCfg = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-dynamic.Build.0 = Debug runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.ActiveCfg = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static.Build.0 = Debug runtime-static|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.ActiveCfg = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Debug runtime-static threading-multi.Build.0 = Debug runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release.Build.0 = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.ActiveCfg = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-dynamic.Build.0 = Release runtime-dynamic|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.ActiveCfg = Release runtime-static threading-multi|Win32
+               {A7D4CC95-F2AC-11D6-9E47-525400E2CF85}.Release runtime-static.Build.0 = Release runtime-static threading-multi|Win32
+       EndGlobalSection
+       GlobalSection(SolutionItems) = postSolution
+               ..\test\Jamfile.v2 = ..\test\Jamfile.v2
+               ..\util\test.jam = ..\util\test.jam
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+       EndGlobalSection
+       GlobalSection(ExtensibilityAddIns) = postSolution
+       EndGlobalSection
+EndGlobal
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/Library.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/Library.vcproj
new file mode 100644 (file)
index 0000000..7fbb629
--- /dev/null
@@ -0,0 +1,833 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="Library"
+       ProjectGUID="{30E10563-960A-11D7-9FE9-525400E2CF85}"
+       RootNamespace="Library"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800 /Ob0"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               GeneratePreprocessedFile="0"
+                               MinimalRebuild="FALSE"
+                               BasicRuntimeChecks="0"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(ConfigurationName)\boost_serialization-vc71-mt-gd-1_42.dll"
+                               GenerateDebugInformation="TRUE"
+                               GenerateMapFile="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBRARYTEST_EXPORTS;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               RuntimeLibrary="2"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(ConfigurationName)\boost_serialization-vc71-mt-1_42.dll"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/$(TargetName).lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="4"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800 /Ob0"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+                               MinimalRebuild="FALSE"
+                               BasicRuntimeChecks="0"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLibrarianTool"
+                               OutputFile="$(ConfigurationName)\libboost_serialization-vc71-mt-sgd-1_42.lib"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="4"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;BOOST_TEST_NO_AUTO_LINK=1 "
+                               RuntimeLibrary="4"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLibrarianTool"
+                               OutputFile="$(OutDir)/libboost_serialization-vc71-s-1_39.lib"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Serialization User Headers"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\serialization\access.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\archive_exception.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\assume_abstract.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\base_object.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\export.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\level.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\level_enum.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\split_free.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\split_member.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\tracking.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\tracking_enum.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\traits.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\type_info_implementation.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\version.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\wrapper.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\xml_archive_exception.hpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Serialization Implementations"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\serialization\array.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\binary_object.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\bitset.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\collection_traits.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\collections_load_imp.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\collections_save_imp.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\complex.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\deque.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\hash_collections_load_imp.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\hash_collections_save_imp.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\hash_map.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\hash_set.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\is_bitwise_serializable.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\list.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\map.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\nvp.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\optional.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\scoped_ptr.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\set.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\shared_ptr.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\shared_ptr_132.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\slist.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\string.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\utility.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\variant.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\vector.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\weak_ptr.hpp">
+                       </File>
+                       <Filter
+                               Name="detail"
+                               Filter="">
+                               <File
+                                       RelativePath="..\..\..\boost\serialization\detail\shared_count_132.hpp">
+                               </File>
+                               <File
+                                       RelativePath="..\..\..\boost\serialization\detail\shared_ptr_132.hpp">
+                               </File>
+                               <File
+                                       RelativePath="..\..\..\boost\archive\shared_ptr_helper.hpp">
+                               </File>
+                       </Filter>
+               </Filter>
+               <Filter
+                       Name="Archive Developer Headers"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_archive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_binary_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_binary_iprimitive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_binary_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_binary_oprimitive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_streambuf_locale_saver.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_text_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_text_iprimitive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_text_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_text_oprimitive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_xml_archive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_xml_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\basic_xml_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\polymorphic_iarchive_route.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\polymorphic_oarchive_route.hpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Archive Detail"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\archive_serializer_map.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\auto_link_archive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_iserializer.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_oserializer.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_pointer_iserializer.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_pointer_oserializer.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_serializer.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\basic_serializer_map.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\check.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\common_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\common_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\interface_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\interface_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\iserializer.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\oserializer.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\register_archive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\serialization.hpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Utility Headers"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\abi_prefix.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\abi_suffix.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\add_facet.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\codecvt_null.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\collection_size_type.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\config.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\decl.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\dinkumware.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\extended_type_info.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\extended_type_info_no_rtti.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\extended_type_info_typeid.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\factory.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\force_include.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\pfto.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\singleton.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\smart_cast.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\state_saver.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\static_warning.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\strong_typedef.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\throw_exception.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\tmpdir.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\void_cast.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\void_cast_fwd.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\wcslen.hpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Templates"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\archive_serializer_map.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_iarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_iprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_oarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_oprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_iarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_iprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_oarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_oprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_xml_grammar.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_xml_iarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_xml_oarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\text_iarchive_impl.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\text_oarchive_impl.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\xml_iarchive_impl.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\xml_oarchive_impl.ipp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Archive Implementations"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\binary_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\binary_iarchive_impl.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\binary_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\binary_oarchive_impl.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_binary_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_binary_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_text_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_text_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_xml_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_xml_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\text_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\text_oarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\xml_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\xml_oarchive.hpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Dataflow Iterators"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\base64_from_binary.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\binary_from_base64.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\dataflow.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\dataflow_exception.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\escape.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\head_iterator.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\insert_linebreaks.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\istream_iterator.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\mb_from_wchar.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\ostream_iterator.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\remove_whitespace.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\transform_width.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\unescape.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\wchar_from_mb.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\xml_escape.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\iterators\xml_unescape.hpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Source"
+                       Filter="">
+                       <File
+                               RelativePath="..\src\archive_exception.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_archive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_iarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_iserializer.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_oarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_oserializer.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_pointer_iserializer.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_pointer_oserializer.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_serializer_map.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_text_iprimitive.cpp">
+                               <FileConfiguration
+                                       Name="Release runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               CompileAs="0"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release runtime-static|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               CompileAs="0"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_text_oprimitive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_xml_archive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_xml_grammar.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\src\binary_iarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\binary_oarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\extended_type_info.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\extended_type_info_no_rtti.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\extended_type_info_typeid.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\polymorphic_iarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\polymorphic_oarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\shared_ptr_helper.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\stl_port.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\text_iarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\text_oarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\void_cast.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\xml_archive_exception.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\xml_grammar.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\xml_iarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\src\xml_oarchive.cpp">
+                       </File>
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/LibraryW.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/LibraryW.vcproj
new file mode 100644 (file)
index 0000000..6191432
--- /dev/null
@@ -0,0 +1,573 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="LibraryW"
+       ProjectGUID="{30E10563-960A-11D7-9FE9-525400E2CF85}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="2"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800 /Ob0"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               GeneratePreprocessedFile="0"
+                               MinimalRebuild="FALSE"
+                               BasicRuntimeChecks="0"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               ObjectFile="$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi"
+                               ProgramDataBaseFileName="$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multivc70.pdb"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="boost_serialization-vc71-mt-gd-1_42.lib"
+                               OutputFile="$(ConfigurationName)\boost_wserialization-vc71-mt-gd-1_42.dll"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SupportUnloadOfDelayLoadedDLL="FALSE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="2"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBRARYTEST_EXPORTS;BOOST_LIB_DIAGNOSTIC=1"
+                               StringPooling="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static threading-multi|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="4"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800 /Ob0"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;BOOST_TEST_NO_AUTO_LINK=1"
+                               MinimalRebuild="FALSE"
+                               BasicRuntimeChecks="0"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="5"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLibrarianTool"
+                               OutputFile="$(OutDir)"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="4"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;BOOST_TEST_NO_AUTO_LINK=1 "
+                               StringPooling="FALSE"
+                               RuntimeLibrary="4"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLibrarianTool"
+                               OutputFile="$(OutDir)"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static threading-multi|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)..\..\..\bin\boost\libs\serialization\build\libboost_wserialization.lib\msvc-7.1\release\threading-multi\link-static&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="4"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;BOOST_TEST_NO_AUTO_LINK=1 "
+                               StringPooling="FALSE"
+                               RuntimeLibrary="0"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLibrarianTool"
+                               OutputFile="$(OutDir)"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="4"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;BOOST_TEST_NO_AUTO_LINK=1"
+                               MinimalRebuild="FALSE"
+                               BasicRuntimeChecks="0"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="5"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLibrarianTool"
+                               OutputFile="$(ConfigurationName)\libboost_wserialization-vc71-mt-sgd-1_41.lib"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic threading-multi|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="0">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/Zm800 /Ob0"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;BOOST_TEST_NO_AUTO_LINK=1"
+                               MinimalRebuild="FALSE"
+                               BasicRuntimeChecks="0"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source"
+                       Filter="">
+                       <File
+                               RelativePath="..\src\basic_text_wiprimitive.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\basic_text_woprimitive.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\codecvt_null.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\text_wiarchive.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\text_woarchive.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\utf8_codecvt_facet.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\xml_wgrammar.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\xml_wiarchive.cpp">
+                               <FileConfiguration
+                                       Name="Debug runtime-dynamic|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="$(IntDir)/$(InputName)1.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="..\src\xml_woarchive.cpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Templates"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\archive_serializer_map.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_iarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_iprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_oarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_binary_oprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_iarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_iprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_oarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_text_oprimitive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_xml_grammar.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_xml_iarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\basic_xml_oarchive.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\text_wiarchive_impl.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\text_woarchive_impl.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\xml_wiarchive_impl.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\impl\xml_woarchive_impl.ipp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Headers"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\archive_serializer_map.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\auto_link_warchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\binary_wiarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\binary_woarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_binary_wiarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_binary_woarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_text_wiarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_text_woarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_xml_wiarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\polymorphic_xml_woarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\text_wiarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\text_woarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\detail\utf8_codecvt_facet.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\xml_wiarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\archive\xml_woarchive.hpp">
+                       </File>
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/Manual.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/Manual.vcproj
new file mode 100644 (file)
index 0000000..ed4f8c1
--- /dev/null
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="Manual"
+       ProjectGUID="{15EA5B5E-D649-4C1C-80DD-B3CC7FA6658E}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory="Debug"
+                       IntermediateDirectory="Debug"
+                       ConfigurationType="1"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)/../../..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+                               MinimalRebuild="TRUE"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="5"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/Manual.exe"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile="$(OutDir)/Manual.pdb"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="Release"
+                       IntermediateDirectory="Release"
+                       ConfigurationType="1"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="3"
+                               InlineFunctionExpansion="2"
+                               OmitFramePointers="TRUE"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="4"
+                               EnableFunctionLevelLinking="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/Manual.exe"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="FALSE"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="code"
+                       Filter="">
+                       <File
+                               RelativePath="..\doc\special_void_cast.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\trivial_archive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial_array.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial_array1.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial_class_versioning.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial_class_versioning1.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial_non_intrusive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial_split.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial_stl_containers.cpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Docmentation"
+                       Filter="">
+                       <File
+                               RelativePath="..\doc\acknowledgments.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\advice.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\archive_reference.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\archives.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\bibliography.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\class_diagram.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\codecvt.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\contents.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\Copy of contents.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\dataflow.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\derivation.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\exception_safety.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\exceptions.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\faq.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\headers.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\history.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\implementation.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\index.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\newarchive.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\overview.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\pimpl.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\rationale.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\release.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\serialization.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\shared_ptr.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\smart_cast.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\special.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\state_saver.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\static_warning.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\strong_typedef.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\style.css">
+                       </File>
+                       <File
+                               RelativePath="..\doc\traits.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\tutorial.html">
+                       </File>
+                       <File
+                               RelativePath="..\doc\xml_archives.html">
+                       </File>
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo.vcproj
new file mode 100644 (file)
index 0000000..7a5ca8b
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_auto_ptr.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_auto_ptr.vcproj
new file mode 100644 (file)
index 0000000..628cbd7
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_auto_ptr"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_auto_ptr"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_auto_ptr.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_dll.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_dll.vcproj
new file mode 100644 (file)
index 0000000..87d32c3
--- /dev/null
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_dll"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_dll"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Templates"
+                       Filter="">
+                       <File
+                               RelativePath="..\example\demo_dll_a.ipp">
+                       </File>
+                       <File
+                               RelativePath="..\example\demo_dll_b.ipp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Headers"
+                       Filter="">
+                       <File
+                               RelativePath="..\example\demo_dll_a.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\example\demo_dll_b.hpp">
+                       </File>
+               </Filter>
+               <File
+                       RelativePath="..\example\demo_dll.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_exception.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_exception.vcproj
new file mode 100644 (file)
index 0000000..c81732b
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_exception"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_exception"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_exception.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_fast_archive.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_fast_archive.vcproj
new file mode 100644 (file)
index 0000000..4ff22a1
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_fast_archive"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_fast_archive"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_fast_archive.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_log.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_log.vcproj
new file mode 100644 (file)
index 0000000..b5120e4
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_log"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_log"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_gps.hpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_log.cpp">
+               </File>
+               <File
+                       RelativePath="..\example\log_archive.cpp">
+               </File>
+               <File
+                       RelativePath="..\example\log_archive.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_pimpl.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_pimpl.vcproj
new file mode 100644 (file)
index 0000000..cc6a90c
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_pimpl"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_pimpl"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_pimpl.cpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_pimpl_A.cpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_pimpl_A.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_polymorphic.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_polymorphic.vcproj
new file mode 100644 (file)
index 0000000..5ed6375
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_polymorphic"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_polymorphic"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_polymorphic.cpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_polymorphic_A.cpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_polymorphic_A.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_portable_archive.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_portable_archive.vcproj
new file mode 100644 (file)
index 0000000..16811c0
--- /dev/null
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_portable_archive"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_portable_archive"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Headers"
+                       Filter="">
+                       <File
+                               RelativePath="..\example\portable_binary_archive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\example\portable_binary_iarchive.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\example\portable_binary_oarchive.hpp">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Source"
+                       Filter="">
+                       <File
+                               RelativePath="..\example\demo_portable_archive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\example\portable_binary_iarchive.cpp">
+                       </File>
+                       <File
+                               RelativePath="..\example\portable_binary_oarchive.cpp">
+                       </File>
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_shared_ptr.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_shared_ptr.vcproj
new file mode 100644 (file)
index 0000000..d7f6543
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_shared_ptr"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_shared_ptr"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_shared_ptr.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_simple_log.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_simple_log.vcproj
new file mode 100644 (file)
index 0000000..0925e61
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_simple_log"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_simple_log"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_gps.hpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_simple_log.cpp">
+               </File>
+               <File
+                       RelativePath="..\example\simple_log_archive.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_trivial_archive.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_trivial_archive.vcproj
new file mode 100644 (file)
index 0000000..4d3c38a
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_trivial_archive"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_trivial_archive"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_gps.hpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_trivial_archive.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml.vcproj
new file mode 100644 (file)
index 0000000..3163c4e
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_xml"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_xml"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_gps.hpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_xml.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml_load.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml_load.vcproj
new file mode 100644 (file)
index 0000000..65d2b2a
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_xml_load"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_xml_load"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_gps.hpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_xml_load.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml_save.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/demo_xml_save.vcproj
new file mode 100644 (file)
index 0000000..880fd1e
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="demo_xml_save"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="demo_xml_save"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\example\demo_gps.hpp">
+               </File>
+               <File
+                       RelativePath="..\example\demo_xml_save.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/dll_a.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/dll_a.vcproj
new file mode 100644 (file)
index 0000000..292e88d
--- /dev/null
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="dll_a"
+       ProjectGUID="{CED1BD64-563F-485D-AE69-668797013AA0}"
+       RootNamespace="dll_a"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/dll_a.dll"
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_a.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/dll_a.dll"
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_a.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_ALL_DYN_LINK=1;BOOST_LIB_DIAGNOSTIC=1;"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/$(ProjectName).dll"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_ALL_DYN_LINK=1;BOOST_LIB_DIAGNOSTIC=1;"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/$(ProjectName).dll"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\dll_a.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_decl.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/dll_base.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/dll_base.vcproj
new file mode 100644 (file)
index 0000000..95aa977
--- /dev/null
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="dll_base"
+       ProjectGUID="{CED1BD64-563F-485D-AE69-668797013AA0}"
+       RootNamespace="dll_base"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;"
+                               MinimalRebuild="TRUE"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="5"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/dll_base.dll"
+                               LinkIncremental="2"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile="$(OutDir)/dll_base.pdb"
+                               SubSystem="2"
+                               ImportLibrary="$(OutDir)/dll_base.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/dll_base.dll"
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_base.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic threading-multi|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               MinimalRebuild="TRUE"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               ExpandAttributedSource="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/base.dll"
+                               LinkIncremental="2"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile="$(OutDir)/dll_base.pdb"
+                               SubSystem="2"
+                               ImportLibrary="$(OutDir)/base.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               RuntimeLibrary="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       ReferencesPath="$(ConfigurationName)">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_ALL_DYN_LINK=1;BOOST_LIB_DIAGNOSTIC=1;"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile="$(OutDir)/dll_base.dll"
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_base.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\base.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\dll_base.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/dll_derived2.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/dll_derived2.vcproj
new file mode 100644 (file)
index 0000000..a2e40ce
--- /dev/null
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="dll_derived2"
+       ProjectGUID="{CED1BD64-563F-485D-AE69-668797013AA0}"
+       RootNamespace="dll_derived2"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               MinimalRebuild="TRUE"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=""
+                               LinkIncremental="2"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile="$(OutDir)/dll_derived2.pdb"
+                               SubSystem="2"
+                               ImportLibrary="$(OutDir)/dll_derived2.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=""
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_derived2.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       ReferencesPath="$(ConfigurationName)">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_ALL_DYN_LINK=1;BOOST_LIB_DIAGNOSTIC=1;"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="dll_base.lib"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       ReferencesPath="$(ConfigurationName)">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_ALL_DYN_LINK=1;BOOST_LIB_DIAGNOSTIC=1;"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="dll_base.lib"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=""
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_derived2.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\derived2.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\dll_derived2.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/polymorphic_derived2.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/polymorphic_derived2.vcproj
new file mode 100644 (file)
index 0000000..5c925bb
--- /dev/null
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="dll_polymorphic_derived2"
+       ProjectGUID="{CED1BD64-563F-485D-AE69-668797013AA0}"
+       RootNamespace="dll_derived2"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               MinimalRebuild="TRUE"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=""
+                               LinkIncremental="2"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile="$(OutDir)/dll_derived2.pdb"
+                               SubSystem="2"
+                               ImportLibrary="$(OutDir)/dll_derived2.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=""
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_derived2.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       ReferencesPath="$(ConfigurationName)">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_ALL_DYN_LINK=1;BOOST_LIB_DIAGNOSTIC=1;"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       ReferencesPath="$(ConfigurationName)">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;BOOST_ALL_DYN_LINK=1;BOOST_LIB_DIAGNOSTIC=1;"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="2"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_ONE_EXPORTS"
+                               RuntimeLibrary="0"
+                               UsePrecompiledHeader="3"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="TRUE"
+                               DebugInformationFormat="3"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=""
+                               LinkIncremental="1"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               ImportLibrary="$(OutDir)/dll_derived2.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\polymorphic_base.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived2.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived2.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/readme.txt b/deal.II/contrib/boost/libs/serialization/vc7ide/readme.txt
new file mode 100644 (file)
index 0000000..f47ffda
--- /dev/null
@@ -0,0 +1,29 @@
+Notes on vc 7.1 ide project files
+=================================
+
+These project files use the directory structure created by the Boost Build system.
+This means that BJAM has to have been run at least once for the directories to
+be created in the expected places.  Once this has been done, one should be able
+to rebuild/rerun any demo or test from within the VC 7 IDE.
+
+There are a large number of project configurations.  There is one for each permitted
+boost configuration.  E.G. Debug runtime-dynamic, Debug runtime-static threading-mulit,
+etc.  which correspond to boost build configurations.
+
+For tests which are designed to be run with different types of archives, the number
+of project configurations is mulitplied by 5 - one for each type archive.  For example, for 
+Debug runtime-static there exists Debug runtime-static text_archive, 
+Debug runtime-static text_warchive, ... Debug runtime-static xml_warchive.
+
+By selecting the appropriate configuration it should be possible to replicate the 
+behavior of the failed test from withing the IDE.  This is helpful in debugging.
+
+After each test is built, it is run and the ouput is shown in the IDE Output window.
+
+Note that the fact that all configurations are not valid for all tests precludes building 
+the all the tests from withing the IDE in one batch.
+
+(C) Copyright 2008 Robert Ramey - http://www.rrsd.com . 
+Use, modification and distribution is subject to 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)
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_array.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_array.vcproj
new file mode 100644 (file)
index 0000000..03b5b81
--- /dev/null
@@ -0,0 +1,1828 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_array"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_array"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic text_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_archive.test/msvc-7.1/debug/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_DYN_LINK=1;BOOST_ARCHIVE_TEST=text_archive.hpp"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static text_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_archive.test/msvc-7.1/debug/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_archive.hpp"
+                               RuntimeLibrary="5"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static threading-multi text_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_archive.test/msvc-7.1/debug/threading-multi/link-static&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_archive.hpp"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic text_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_archive.test/msvc-7.1/release/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_archive.hpp"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static text_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_archive.test/msvc-7.1/release/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_archive.hpp"
+                               RuntimeLibrary="4"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static threading-multi text_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_archive.test/msvc-7.1/release/threading-multi/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_archive.hpp"
+                               RuntimeLibrary="0"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic text_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_warchive.test/msvc-7.1/debug/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_warchive.hpp"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static text_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_warchive.test/msvc-7.1/debug/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_warchive.hpp"
+                               RuntimeLibrary="5"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static threading-multi text_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_warchive.test/msvc-7.1/debug/threading-multi/link-static&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_warchive.hpp"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic text_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_warchive.test/msvc-7.1/release/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_warchive.hpp"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static text_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_warchive.test/msvc-7.1/release/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_warchive.hpp"
+                               RuntimeLibrary="4"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static threading-multi text_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_text_warchive.test/msvc-7.1/release/threading-multi/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=text_warchive.hpp"
+                               RuntimeLibrary="0"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic xml_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_archive.test/msvc-7.1/debug/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_archive.hpp"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static xml_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_archive.test/msvc-7.1/debug/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_archive.hpp"
+                               RuntimeLibrary="5"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static threading-multi xml_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_archive.test/msvc-7.1/debug/threading-multi/link-static&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_archive.hpp"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic xml_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_archive.test/msvc-7.1/release/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_archive.hpp"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static xml_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_archive.test/msvc-7.1/release/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_archive.hpp"
+                               RuntimeLibrary="4"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static threading-multi xml_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_archive.test/msvc-7.1/release/threading-multi/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_archive.hpp"
+                               RuntimeLibrary="0"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic xml_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_warchive.test/msvc-7.1/debug/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_warchive.hpp"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static xml_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_warchive.test/msvc-7.1/debug/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_warchive.hpp"
+                               RuntimeLibrary="5"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static threading-multi xml_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_warchive.test/msvc-7.1/debug/threading-multi/link-static&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_warchive.hpp"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic xml_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_warchive.test/msvc-7.1/release/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_warchive.hpp"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static xml_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_warchive.test/msvc-7.1/release/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_warchive.hpp"
+                               RuntimeLibrary="4"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static threading-multi xml_warchive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_xml_warchive.test/msvc-7.1/release/threading-multi/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=xml_warchive.hpp"
+                               RuntimeLibrary="0"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic binary_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_binary_archive.test/msvc-7.1/debug/threading-multi&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_DYN_LINK=1"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/threading-multi&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static binary_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_binary_archive.test/msvc-7.1/debug/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               RuntimeLibrary="5"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static threading-multi binary_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_binary_archive.test/msvc-7.1/debug/threading-multi/link-static&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/debug/link-static/threading-multi&quot;"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic binary_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_binary_archive.test/msvc-7.1/release/threading-multi/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static binary_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_binary_archive.test/msvc-7.1/release/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               RuntimeLibrary="4"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-static threading-multi binary_archive|Win32"
+                       OutputDirectory="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/test/$(ProjectName)_binary_archive.test/msvc-7.1/release/threading-multi/link-static/&quot;"
+                       IntermediateDirectory="$(OutDir)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               RuntimeLibrary="0"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;;&quot;$(ProjectDir)../../../bin.v2/libs/serialization/build/msvc-7.1/release/threading-multi/link-static&quot;"
+                               SubSystem="1"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic threading-multi|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               RuntimeTypeInfo="TRUE"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               BasicRuntimeChecks="0"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               DebugInformationFormat="1"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_array.cpp">
+                       <FileConfiguration
+                               Name="Debug runtime-dynamic threading-multi|Win32">
+                               <Tool
+                                       Name="VCCLCompilerTool"
+                                       AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"/>
+                       </FileConfiguration>
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_binary.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_binary.vcproj
new file mode 100644 (file)
index 0000000..4172fc7
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_binary"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_binary"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_binary.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_bitset.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_bitset.vcproj
new file mode 100644 (file)
index 0000000..1ddbc62
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_bitset"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_bitset"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_bitset.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_check.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_check.vcproj
new file mode 100644 (file)
index 0000000..f0abbbd
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_check"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_check"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_check.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_class_info_load.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_class_info_load.vcproj
new file mode 100644 (file)
index 0000000..9ed49ad
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_class_info_load"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_class_info_load"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1;BOOST_ARCHIVE_TEST=xml_warchive.hpp"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_class_info_load.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_class_info_save.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_class_info_save.vcproj
new file mode 100644 (file)
index 0000000..af08fea
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_class_info_save"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_class_info_save"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_class_info_save.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_codecvt_null.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_codecvt_null.vcproj
new file mode 100644 (file)
index 0000000..031f462
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_codecvt_null"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_codecvt_null"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\src\codecvt_null.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_codecvt_null.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_complex.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_complex.vcproj
new file mode 100644 (file)
index 0000000..4e064ea
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_complex"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_complex"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\..\..\boost\serialization\complex.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_complex.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_const.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_const.vcproj
new file mode 100644 (file)
index 0000000..30a52b6
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_const"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_const.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_const_fail.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_const_fail.vcproj
new file mode 100644 (file)
index 0000000..7d33b01
--- /dev/null
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_const_warn"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_const_load_fail1.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_load_fail1_nvp.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_load_fail2.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_load_fail2_nvp.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_load_fail3.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_load_fail3_nvp.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_save_warn1.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_save_warn1_nvp.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_save_warn2.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_save_warn2_nvp.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_save_warn3.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_const_save_warn3_nvp.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_const_pass.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_const_pass.vcproj
new file mode 100644 (file)
index 0000000..25a6eb7
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_const_pass"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_const_pass.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_contained_class.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_contained_class.vcproj
new file mode 100644 (file)
index 0000000..3e1f688
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_contained_class"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_contained_class"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\B.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_contained_class.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_cyclic_ptrs.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_cyclic_ptrs.vcproj
new file mode 100644 (file)
index 0000000..1bc9410
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_cyclic_ptrs"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_cyclic_ptrs"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_cyclic_ptrs.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_delete_pointer.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_delete_pointer.vcproj
new file mode 100644 (file)
index 0000000..9fe90a3
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_delete_pointer"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_delete_pointer"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_delete_pointer.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_deque.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_deque.vcproj
new file mode 100644 (file)
index 0000000..50aed0d
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_deque"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_deque"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_deque.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_derived.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_derived.vcproj
new file mode 100644 (file)
index 0000000..c2a242a
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_derived"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_derived"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_derived.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_derived_class.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_derived_class.vcproj
new file mode 100644 (file)
index 0000000..1b7f409
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_derived_class"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_derived_class"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\B.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_derived_class.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_derived_class_ptr.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_derived_class_ptr.vcproj
new file mode 100644 (file)
index 0000000..4127f6d
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_derived_class_ptr"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_derived_class_ptr"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\B.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_derived_class_ptr.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_diamond.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_diamond.vcproj
new file mode 100644 (file)
index 0000000..1f46341
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_diamond"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_diamond"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_diamond.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_exported.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_exported.vcproj
new file mode 100644 (file)
index 0000000..6c19602
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_dll_exported"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_dll_exported"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="dll_a.lib dll_polymorphic_derived2.lib"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+               <ProjectReference
+                       ReferencedProjectIdentifier="{30E10563-960A-11D7-9FE9-525400E2CF85}"
+                       Name="Library"/>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\polymorphic_base.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived2.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_dll_exported.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_plugin.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_plugin.vcproj
new file mode 100644 (file)
index 0000000..0ea4b79
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_dll_plugin"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_dll_plugin"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\polymorphic_base.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived2.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_dll_plugin.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_simple.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_dll_simple.vcproj
new file mode 100644 (file)
index 0000000..ce61228
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_dll_simple"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_dll_simple"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="dll_a.lib"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+               <ProjectReference
+                       ReferencedProjectIdentifier="{CED1BD64-563F-485D-AE69-668797013AA0}"
+                       Name="dll_a"/>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\B.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_dll_simple.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_exported.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_exported.vcproj
new file mode 100644 (file)
index 0000000..af1cd5e
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_exported"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_exported"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\polymorphic_base.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_base.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived2.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_exported.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_inclusion.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_inclusion.vcproj
new file mode 100644 (file)
index 0000000..f46d841
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_inclusion"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_inclusion.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_iterators.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_iterators.vcproj
new file mode 100644 (file)
index 0000000..3ca53a3
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_iterators"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_iterators"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_iterators.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_iterators_base64.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_iterators_base64.vcproj
new file mode 100644 (file)
index 0000000..1e9b92a
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_iterators_base64"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_iterators_base64"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_iterators_base64.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_list.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_list.vcproj
new file mode 100644 (file)
index 0000000..159c833
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_list"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_list"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_list.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_list_ptrs.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_list_ptrs.vcproj
new file mode 100644 (file)
index 0000000..75043ba
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_list_ptrs"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_list_ptrs"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_list_ptrs.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_map.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_map.vcproj
new file mode 100644 (file)
index 0000000..694096c
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_map"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_map"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_map.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_mi.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_mi.vcproj
new file mode 100644 (file)
index 0000000..6eacab7
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_mi"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_mi"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_mi.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_mult_archive_types.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_mult_archive_types.vcproj
new file mode 100644 (file)
index 0000000..205e77d
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_mult_archive_types"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_mult_archive_types"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_mult_archive_types.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_multiple_inheritance.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_multiple_inheritance.vcproj
new file mode 100644 (file)
index 0000000..aa5f36f
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_multiple_inheritance"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_multiple_inheritance"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ARCHIVE_LIST=xml_warchive.hpp"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_multiple_inheritance.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_multiple_ptrs.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_multiple_ptrs.vcproj
new file mode 100644 (file)
index 0000000..63298ae
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_multiple_ptrs"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_multiple_ptrs"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\B.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\D.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_multiple_ptrs.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_new_operator.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_new_operator.vcproj
new file mode 100644 (file)
index 0000000..96b74bf
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_new_operator"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_new_operator"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_new_operator.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_no_rtti.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_no_rtti.vcproj
new file mode 100644 (file)
index 0000000..85c8a27
--- /dev/null
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_no_rtti"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_no_rtti"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               EnableIntrinsicFunctions="FALSE"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\polymorphic_base.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived1.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived1.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\polymorphic_derived2.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_no_rtti.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_non_default_ctor.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_non_default_ctor.vcproj
new file mode 100644 (file)
index 0000000..61ec56b
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_non_default_ctor"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_non_default_ctor"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_non_default_ctor.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_non_default_ctor2.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_non_default_ctor2.vcproj
new file mode 100644 (file)
index 0000000..f6f6ec2
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_non_default_ctor2"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_non_default_ctor2"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_non_default_ctor2.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_non_intrusive.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_non_intrusive.vcproj
new file mode 100644 (file)
index 0000000..eba3b65
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_non_intrusive"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_non_intrusive"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_non_intrusive.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_not_serializable.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_not_serializable.vcproj
new file mode 100644 (file)
index 0000000..503fc84
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_not_serializable"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_not_serializable.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_null_ptr.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_null_ptr.vcproj
new file mode 100644 (file)
index 0000000..c372b31
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_null_ptr"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_null_ptr"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_null_ptr.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_nvp.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_nvp.vcproj
new file mode 100644 (file)
index 0000000..64114c9
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_nvp"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_nvp"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_nvp.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_object.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_object.vcproj
new file mode 100644 (file)
index 0000000..d300023
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_object"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_object"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_object.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_optional.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_optional.vcproj
new file mode 100644 (file)
index 0000000..eefc40f
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_optional"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_optional"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_optional.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_polymorphic.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_polymorphic.vcproj
new file mode 100644 (file)
index 0000000..3e2cd81
--- /dev/null
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_polymorphic"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_polymorphic"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1;BOOST_ARCHIVE_TEST=polymorphic_text_archive.hpp"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_polymorphic.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_polymorphic_A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_polymorphic_A.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_polymorphic2.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_polymorphic2.vcproj
new file mode 100644 (file)
index 0000000..40b4288
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_polymorphic2"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_polymorphic2"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1;BOOST_ARCHIVE_TEST=polymorphic_text_archive.hpp"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+               <ProjectReference
+                       ReferencedProjectIdentifier="{30E10563-960A-11D7-9FE9-525400E2CF85}"
+                       Name="Library"/>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_polymorphic2.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_polymorphic2.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_polymorphic2imp.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_primitive.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_primitive.vcproj
new file mode 100644 (file)
index 0000000..23792fa
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_primitive"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_primitive"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_primitive.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_private_base.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_private_base.vcproj
new file mode 100644 (file)
index 0000000..f18173d
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_private_base"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_private_base"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_private_base.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_private_ctor.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_private_ctor.vcproj
new file mode 100644 (file)
index 0000000..7f3ca7e
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_private_ctor"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_private_ctor"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_private_ctor.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_recursion.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_recursion.vcproj
new file mode 100644 (file)
index 0000000..09b1de3
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_recursion"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_recursion"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_recursion.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_recusion.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_recusion.vcproj
new file mode 100644 (file)
index 0000000..18503ea
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_recusion"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_recusion"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+              <File
+                     RelativePath="..\test\test_recusion.cpp">
+              </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_registered.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_registered.vcproj
new file mode 100644 (file)
index 0000000..0051386
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_registered"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_registered"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_registered.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_reset_object_addr.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_reset_object_addr.vcproj
new file mode 100644 (file)
index 0000000..4bfc9b4
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_reset_object_address"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_reset_object_address"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_reset_object_address.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_set.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_set.vcproj
new file mode 100644 (file)
index 0000000..01815d7
--- /dev/null
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_set"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_set"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_set.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr.vcproj
new file mode 100644 (file)
index 0000000..329af32
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_shared_ptr"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_shared_ptr"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               AdditionalOptions="/wd4512 /wd4511"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+               <ProjectReference
+                       ReferencedProjectIdentifier="{30E10563-960A-11D7-9FE9-525400E2CF85}"
+                       Name="Library"/>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\..\..\boost\serialization\shared_ptr.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_shared_ptr.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr_132.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr_132.vcproj
new file mode 100644 (file)
index 0000000..fc67680
--- /dev/null
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_shared_ptr_132"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_shared_ptr_132"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="OriginalSharePtr"
+                       Filter="">
+                       <File
+                               RelativePath="..\..\..\boost\serialization\detail\shared_count_132.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\detail\shared_ptr_132.hpp">
+                       </File>
+                       <File
+                               RelativePath="..\..\..\boost\serialization\detail\shared_ptr_nmt_132.hpp">
+                       </File>
+               </Filter>
+               <File
+                       RelativePath="..\..\..\boost\serialization\shared_ptr.hpp">
+               </File>
+               <File
+                       RelativePath="..\..\..\boost\serialization\shared_ptr_132.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_shared_ptr_132.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr_multi_base.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_shared_ptr_multi_base.vcproj
new file mode 100644 (file)
index 0000000..3ff36d6
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_shared_ptr_multi_base"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_shared_ptr_multi_base"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1;BOOST_ARCHIVE_TEST=xml_archive.hpp"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+               <ProjectReference
+                       ReferencedProjectIdentifier="{30E10563-960A-11D7-9FE9-525400E2CF85}"
+                       Name="Library"/>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_shared_ptr_multi_base.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_simple_class.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_simple_class.vcproj
new file mode 100644 (file)
index 0000000..6fd4663
--- /dev/null
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_simple_class"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_simple_class"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="0"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_simple_class.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_simple_class_ptr.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_simple_class_ptr.vcproj
new file mode 100644 (file)
index 0000000..4fcdf57
--- /dev/null
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_simple_class_ptr"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_simple_class_ptr"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+                       <FileConfiguration
+                               Name="Debug runtime-dynamic|Win32">
+                               <Tool
+                                       Name="VCCLCompilerTool"
+                                       SmallerTypeCheck="FALSE"/>
+                       </FileConfiguration>
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_simple_class_ptr.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_singleton.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_singleton.vcproj
new file mode 100644 (file)
index 0000000..c76cf37
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_singleton"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_singleton"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\..\..\boost\serialization\singleton.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_singleton.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_smart_cast.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_smart_cast.vcproj
new file mode 100644 (file)
index 0000000..e82bd4f
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_smart_cast"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_smart_cast"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\..\..\boost\smart_cast.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_smart_cast.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_split.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_split.vcproj
new file mode 100644 (file)
index 0000000..170df4c
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_split"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_split"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_split.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_static_warning.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_static_warning.vcproj
new file mode 100644 (file)
index 0000000..6d51eb2
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_static_warning"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_static_warning"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_static_warning.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_strong_typedef.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_strong_typedef.vcproj
new file mode 100644 (file)
index 0000000..86ba20f
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_strong_typedef"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_strong_typedef"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_strong_typedef.cpp">
+               </File>
+               <File
+                       RelativePath="..\..\..\boost\serialization\void_cast.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_tracking.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_tracking.vcproj
new file mode 100644 (file)
index 0000000..7a7e868
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_tracking"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_tracking"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1;BOOST_ARCHIVE_TEST=binary_archive.hpp"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_tracking.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_traits_fail.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_traits_fail.vcproj
new file mode 100644 (file)
index 0000000..39cb678
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_traits_fail"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_traits_fail.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_traits_pass.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_traits_pass.vcproj
new file mode 100644 (file)
index 0000000..6d29dc3
--- /dev/null
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_traits_pass"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_traits_pass"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_traits_pass.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_unregistered.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_unregistered.vcproj
new file mode 100644 (file)
index 0000000..fe32b0e
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_unregistered"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_unregistered"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_unregistered.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_utf8_codecvt.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_utf8_codecvt.vcproj
new file mode 100644 (file)
index 0000000..1174b1a
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_utf8_codecvt"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_utf8_codecvt"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\../src/utf8_codecvt_facet.cpp">
+                       <FileConfiguration
+                               Name="Debug runtime-dynamic|Win32">
+                               <Tool
+                                       Name="VCCLCompilerTool"
+                                       ObjectFile="$(IntDir)/utf8_codecvt_facet"/>
+                       </FileConfiguration>
+               </File>
+               <File
+                       RelativePath="..\test\test_utf8_codecvt.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_valarray.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_valarray.vcproj
new file mode 100644 (file)
index 0000000..6deb7f1
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_valarray"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_valarray"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\test_valarray.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_variant.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_variant.vcproj
new file mode 100644 (file)
index 0000000..a5ccfef
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_variant"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_variant"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_variant.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_vector.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_vector.vcproj
new file mode 100644 (file)
index 0000000..3692d4a
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_vector"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_vector"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\A.cpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.hpp">
+               </File>
+               <File
+                       RelativePath="..\test\A.ipp">
+               </File>
+               <File
+                       RelativePath="..\test\test_vector.cpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/deal.II/contrib/boost/libs/serialization/vc7ide/test_void_cast.vcproj b/deal.II/contrib/boost/libs/serialization/vc7ide/test_void_cast.vcproj
new file mode 100644 (file)
index 0000000..29eb1fb
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="test_void_cast"
+       ProjectGUID="{A7D4CC95-F2AC-11D6-9E47-525400E2CF85}"
+       RootNamespace="test_void_cast"
+       Keyword="Win32Proj">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               GlobalOptimizations="TRUE"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="TRUE"
+                               FavorSizeOrSpeed="1"
+                               OmitFramePointers="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="FALSE"
+                               RuntimeLibrary="2"
+                               BufferSecurityCheck="FALSE"
+                               EnableFunctionLevelLinking="TRUE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-dynamic|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1;BOOST_ALL_DYN_LINK=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="3"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="4"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug runtime-static|Win32"
+                       OutputDirectory="$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               ImproveFloatingPointConsistency="TRUE"
+                               AdditionalIncludeDirectories="&quot;$(ProjectDir)..\..\..\&quot;"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_LIB_DIAGNOSTIC=1"
+                               SmallerTypeCheck="TRUE"
+                               RuntimeLibrary="1"
+                               BufferSecurityCheck="TRUE"
+                               EnableFunctionLevelLinking="FALSE"
+                               TreatWChar_tAsBuiltInType="TRUE"
+                               ForceConformanceInForLoopScope="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="FALSE"
+                               DebugInformationFormat="1"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               IgnoreImportLibrary="TRUE"
+                               AdditionalDependencies="Library"
+                               LinkIncremental="2"
+                               SuppressStartupBanner="TRUE"
+                               AdditionalLibraryDirectories="$(ConfigurationName)"
+                               GenerateDebugInformation="TRUE"
+                               SubSystem="1"/>
+                       <Tool
+                               Name="VCMIDLTool"/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               Description="run $(TargetName) with $(ConfigurationName)"
+                               CommandLine="&quot;$(TargetDir)/$(TargetName).exe&quot;"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <File
+                       RelativePath="..\test\test_void_cast.cpp">
+               </File>
+               <File
+                       RelativePath="..\..\..\boost\serialization\void_cast.hpp">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.