summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/icl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/boost/libs/icl
parentInitial commit. (diff)
downloadceph-upstream/18.2.2.tar.xz
ceph-upstream/18.2.2.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/icl')
-rw-r--r--src/boost/libs/icl/CMakeLists.txt39
-rw-r--r--src/boost/libs/icl/example/Jamfile.v2153
-rw-r--r--src/boost/libs/icl/example/boost_party_/Jamfile.v211
-rw-r--r--src/boost/libs/icl/example/boost_party_/boost_party.cpp137
-rw-r--r--src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj108
-rw-r--r--src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/example/boost_party_/vc9_boost_party.vcproj220
-rw-r--r--src/boost/libs/icl/example/custom_interval_/Jamfile.v211
-rw-r--r--src/boost/libs/icl/example/custom_interval_/custom_interval.cpp103
-rw-r--r--src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj108
-rw-r--r--src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/example/custom_interval_/vc9_custom_interval.vcproj220
-rw-r--r--src/boost/libs/icl/example/dynamic_interval_/dynamic_interval.cpp140
-rw-r--r--src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj103
-rw-r--r--src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/example/dynamic_interval_/vc9_dynamic_interval.vcproj206
-rw-r--r--src/boost/libs/icl/example/interval_/interval.cpp111
-rw-r--r--src/boost/libs/icl/example/interval_/vc10_interval.vcxproj103
-rw-r--r--src/boost/libs/icl/example/interval_/vc10_interval.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/example/interval_/vc9_interval.vcproj206
-rw-r--r--src/boost/libs/icl/example/interval_container_/interval_container.cpp107
-rw-r--r--src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj109
-rw-r--r--src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj.filters45
-rw-r--r--src/boost/libs/icl/example/interval_container_/vc9_interval_container.vcproj230
-rw-r--r--src/boost/libs/icl/example/itvset_shell_/itvset_shell.cpp132
-rw-r--r--src/boost/libs/icl/example/itvset_shell_/vc9_itvset_shell.vcproj214
-rw-r--r--src/boost/libs/icl/example/large_bitset_/bits.hpp77
-rw-r--r--src/boost/libs/icl/example/large_bitset_/large_bitset.cpp168
-rw-r--r--src/boost/libs/icl/example/large_bitset_/large_bitset.hpp213
-rw-r--r--src/boost/libs/icl/example/large_bitset_/meta_log.hpp26
-rw-r--r--src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj107
-rw-r--r--src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/example/large_bitset_/vc9_large_bitset.vcproj216
-rw-r--r--src/boost/libs/icl/example/man_power_/man_power.cpp190
-rw-r--r--src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj110
-rw-r--r--src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj.filters39
-rw-r--r--src/boost/libs/icl/example/man_power_/vc9_man_power.vcproj228
-rw-r--r--src/boost/libs/icl/example/month_and_week_grid_/month_and_week_grid.cpp140
-rw-r--r--src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj109
-rw-r--r--src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj216
-rw-r--r--src/boost/libs/icl/example/overlap_counter_/overlap_counter.cpp108
-rw-r--r--src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj104
-rw-r--r--src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/example/overlap_counter_/vc9_overlap_counter.vcproj210
-rw-r--r--src/boost/libs/icl/example/party_/party.cpp109
-rw-r--r--src/boost/libs/icl/example/party_/vc10_party.vcxproj106
-rw-r--r--src/boost/libs/icl/example/party_/vc10_party.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/example/party_/vc9_party.vcproj212
-rw-r--r--src/boost/libs/icl/example/partys_height_average_/Jamfile.v211
-rw-r--r--src/boost/libs/icl/example/partys_height_average_/partys_height_average.cpp134
-rw-r--r--src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj108
-rw-r--r--src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/example/partys_height_average_/vc9_partys_height_average.vcproj220
-rw-r--r--src/boost/libs/icl/example/partys_tallest_guests_/Jamfile.v211
-rw-r--r--src/boost/libs/icl/example/partys_tallest_guests_/partys_tallest_guests.cpp161
-rw-r--r--src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj108
-rw-r--r--src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/example/partys_tallest_guests_/vc9_partys_tallest_guests.vcproj220
-rw-r--r--src/boost/libs/icl/example/splititvmap_shell_/splititvmap_shell.cpp131
-rw-r--r--src/boost/libs/icl/example/splititvmap_shell_/vc9_splititvmap_shell.vcproj214
-rw-r--r--src/boost/libs/icl/example/static_interval_/static_interval.cpp123
-rw-r--r--src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj103
-rw-r--r--src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/example/static_interval_/vc9_static_interval.vcproj206
-rw-r--r--src/boost/libs/icl/example/std_copy_/std_copy.cpp105
-rw-r--r--src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj104
-rw-r--r--src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/example/std_copy_/vc9_std_copy.vcproj210
-rw-r--r--src/boost/libs/icl/example/std_transform_/std_transform.cpp149
-rw-r--r--src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj106
-rw-r--r--src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj.filters36
-rw-r--r--src/boost/libs/icl/example/std_transform_/vc9_std_transform.vcproj218
-rw-r--r--src/boost/libs/icl/example/toytime.hpp74
-rw-r--r--src/boost/libs/icl/example/user_groups_/user_groups.cpp197
-rw-r--r--src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj109
-rw-r--r--src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/example/user_groups_/vc9_user_groups.vcproj216
-rw-r--r--src/boost/libs/icl/example/vc10_icl_examples.sln110
-rw-r--r--src/boost/libs/icl/example/vc9_icl_examples.sln110
-rw-r--r--src/boost/libs/icl/index.html22
-rw-r--r--src/boost/libs/icl/meta/libraries.json16
-rw-r--r--src/boost/libs/icl/test/Jamfile.v2160
-rw-r--r--src/boost/libs/icl/test/chrono/utility.hpp49
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing2_/cmp_clang_ttp_passing2.cpp40
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj104
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc9_cmp_clang_ttp_passing2.vcproj210
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing_/cmp_clang_ttp_passing.cpp65
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj104
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc9_cmp_clang_ttp_passing.vcproj210
-rw-r--r--src/boost/libs/icl/test/cmp_msvc_value_born_error_/cmp_msvc_value_born_error.cpp39
-rw-r--r--src/boost/libs/icl/test/disable_test_warnings.hpp25
-rw-r--r--src/boost/libs/icl/test/ex_boost_party_/ex_boost_party.cpp134
-rw-r--r--src/boost/libs/icl/test/ex_boost_party_/vc10_ex_boost_party.vcxproj100
-rw-r--r--src/boost/libs/icl/test/fast_stat_interval_map_/fast_stat_interval_map.cpp39
-rw-r--r--src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fast_stat_interval_map_/vc9_fast_stat_interval_map.vcproj206
-rw-r--r--src/boost/libs/icl/test/fast_stat_interval_map_cases.hpp85
-rw-r--r--src/boost/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp169
-rw-r--r--src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj100
-rw-r--r--src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj.filters22
-rw-r--r--src/boost/libs/icl/test/fastest_icl_interval_/vc9_fastest_icl_interval.vcproj202
-rw-r--r--src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map.cpp39
-rw-r--r--src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp23
-rw-r--r--src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_icl_map_/vc9_fastest_icl_map.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_/fastest_interval_map.cpp36
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_cases.hpp101
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_/fastest_interval_map_infix.cpp35
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_cases.hpp32
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp45
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp84
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp71
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/fastest_interval_map_mixed_/vc9_fastest_interval_map_mixed.vcproj210
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_/fastest_interval_set.cpp34
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_cases.hpp78
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_infix_/fastest_interval_set_infix.cpp35
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_infix_cases.hpp34
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp105
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_partial_icl_quantifier_/fastest_partial_icl_quantifier.cpp37
-rw-r--r--src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc9_fastest_partial_icl_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/fastest_partial_icl_quantifier_cases.hpp77
-rw-r--r--src/boost/libs/icl/test/fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp37
-rw-r--r--src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/fastest_partial_interval_quantifier_cases.hpp84
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_/fastest_separate_interval_set.cpp34
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj105
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_/vc9_fastest_separate_interval_set.vcproj214
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_infix_/fastest_separate_interval_set_infix.cpp34
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set.cpp39
-rw-r--r--src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_cases.hpp35
-rw-r--r--src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_shared.cpp28
-rw-r--r--src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_set_icl_set_/vc9_fastest_set_icl_set.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set.cpp37
-rw-r--r--src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp117
-rw-r--r--src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj103
-rw-r--r--src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_set_interval_set_/vc9_fastest_set_interval_set.vcproj206
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map.cpp37
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map_shared.cpp72
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj107
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj214
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp37
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc9_fastest_split_interval_map_infix.vcproj210
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set.cpp34
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set_shared.cpp56
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj105
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_/vc9_fastest_split_interval_set.vcproj214
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_infix_/fastest_split_interval_set_infix.cpp34
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc9_fastest_split_interval_set_infix.vcproj210
-rw-r--r--src/boost/libs/icl/test/fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp36
-rw-r--r--src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc9_fastest_total_icl_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/fastest_total_icl_quantifier_cases.hpp84
-rw-r--r--src/boost/libs/icl/test/fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp36
-rw-r--r--src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/fastest_total_interval_quantifier_cases.hpp100
-rw-r--r--src/boost/libs/icl/test/fix_icl_after_thread_/fix_icl_after_thread.cpp31
-rw-r--r--src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/fix_icl_after_thread_/vc9_fix_icl_after_thread.vcproj210
-rw-r--r--src/boost/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp48
-rw-r--r--src/boost/libs/icl/test/fix_include_after_thread_/vc9_fix_include_after_thread.vcproj210
-rw-r--r--src/boost/libs/icl/test/fix_tickets_/fix_tickets.cpp236
-rw-r--r--src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj104
-rw-r--r--src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/fix_tickets_/vc9_fix_tickets.vcproj210
-rw-r--r--src/boost/libs/icl/test/portability.hpp71
-rw-r--r--src/boost/libs/icl/test/test_casual_/test_casual.cpp95
-rw-r--r--src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj105
-rw-r--r--src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_casual_/vc9_test_casual.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_changing_interval_defaults_/test_changing_interval_defaults.cpp103
-rw-r--r--src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj105
-rw-r--r--src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_changing_interval_defaults_/vc9_test_changing_interval_defalts.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_combinable_/test_combinable.cpp516
-rw-r--r--src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj103
-rw-r--r--src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_combinable_/vc9_test_combinable.vcproj206
-rw-r--r--src/boost/libs/icl/test/test_doc_code_/test_doc_code.cpp109
-rw-r--r--src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_doc_code_/vc9_test_doc_code.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_functions.hpp67
-rw-r--r--src/boost/libs/icl/test/test_icl_continuous_interval.hpp82
-rw-r--r--src/boost/libs/icl/test/test_icl_discrete_interval.hpp98
-rw-r--r--src/boost/libs/icl/test/test_icl_dynamic_interval.hpp66
-rw-r--r--src/boost/libs/icl/test/test_icl_interval.hpp107
-rw-r--r--src/boost/libs/icl/test/test_icl_interval_/test_icl_interval.cpp192
-rw-r--r--src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj100
-rw-r--r--src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj.filters22
-rw-r--r--src/boost/libs/icl/test/test_icl_interval_/vc9_test_icl_interval.vcproj202
-rw-r--r--src/boost/libs/icl/test/test_icl_interval_shared.hpp302
-rw-r--r--src/boost/libs/icl/test/test_icl_map.hpp186
-rw-r--r--src/boost/libs/icl/test/test_icl_map_/test_icl_map.cpp37
-rw-r--r--src/boost/libs/icl/test/test_icl_map_/test_icl_map_cases.hpp23
-rw-r--r--src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj103
-rw-r--r--src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_icl_map_/vc9_test_icl_map.vcproj206
-rw-r--r--src/boost/libs/icl/test/test_icl_quantifier_shared.hpp308
-rw-r--r--src/boost/libs/icl/test/test_icl_static_interval.hpp24
-rw-r--r--src/boost/libs/icl/test/test_interval_cases.hpp19
-rw-r--r--src/boost/libs/icl/test/test_interval_laws.hpp84
-rw-r--r--src/boost/libs/icl/test/test_interval_map_/test_interval_map.cpp38
-rw-r--r--src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_interval_map_/vc9_test_interval_map.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_interval_map_cases.hpp92
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_/test_interval_map_infix.cpp37
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_/vc9_test_interval_map_infix.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_cases.hpp32
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_mixed_/test_interval_map_infix_mixed.cpp94
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc9_test_interval_map_infix_mixed.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed.hpp1560
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp83
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed2_/vc9_test_interval_map_mixed2.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed_/test_interval_map_mixed.cpp71
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_interval_map_mixed_/vc9_test_interval_map_mixed.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_interval_map_shared.hpp1518
-rw-r--r--src/boost/libs/icl/test/test_interval_quantifier_shared.hpp301
-rw-r--r--src/boost/libs/icl/test/test_interval_set_/test_interval_set.cpp35
-rw-r--r--src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_interval_set_/vc9_test_interval_set.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_interval_set_cases.hpp75
-rw-r--r--src/boost/libs/icl/test/test_interval_set_infix_/test_interval_set_infix.cpp35
-rw-r--r--src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj103
-rw-r--r--src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj206
-rw-r--r--src/boost/libs/icl/test/test_interval_set_infix_cases.hpp34
-rw-r--r--src/boost/libs/icl/test/test_interval_set_laws_shared.hpp182
-rw-r--r--src/boost/libs/icl/test/test_interval_set_mixed.hpp850
-rw-r--r--src/boost/libs/icl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp105
-rw-r--r--src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_interval_set_mixed_/vc9_test_interval_set_mixed.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_interval_set_shared.hpp840
-rw-r--r--src/boost/libs/icl/test/test_laws.hpp795
-rw-r--r--src/boost/libs/icl/test/test_misc_/test_misc.cpp266
-rw-r--r--src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_misc_/vc9_test_misc.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_partial_icl_quantifier_/test_partial_icl_quantifier.cpp36
-rw-r--r--src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_partial_icl_quantifier_/vc9_test_partial_icl_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/test_partial_icl_quantifier_cases.hpp76
-rw-r--r--src/boost/libs/icl/test/test_partial_interval_quantifier_/test_partial_interval_quantifier.cpp36
-rw-r--r--src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/test_partial_interval_quantifier_cases.hpp86
-rw-r--r--src/boost/libs/icl/test/test_quantifier_icl_map.hpp238
-rw-r--r--src/boost/libs/icl/test/test_quantifier_map_shared.hpp190
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_/test_separate_interval_set.cpp34
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj108
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj.filters36
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_/vc9_test_separate_interval_set.vcproj218
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_infix_/test_separate_interval_set_infix.cpp34
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj103
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj206
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set.hpp139
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set.cpp41
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_cases.hpp35
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_shared.cpp28
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj103
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set_/vc9_test_set_icl_set.vcproj206
-rw-r--r--src/boost/libs/icl/test/test_set_icl_set_cases.hpp29
-rw-r--r--src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set.cpp37
-rw-r--r--src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set_cases.hpp118
-rw-r--r--src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj103
-rw-r--r--src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_set_interval_set_/vc9_test_set_interval_set.vcproj206
-rw-r--r--src/boost/libs/icl/test/test_set_interval_set_shared.hpp195
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map.cpp37
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map_shared.cpp72
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_/vc9_test_split_interval_map.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_infix_/test_split_interval_map_infix.cpp37
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_split_interval_map_infix_/vc9_test_split_interval_map_infix.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set.cpp34
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set_shared.cpp60
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj105
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj.filters33
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_/vc9_test_split_interval_set.vcproj214
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_infix_/test_split_interval_set_infix.cpp34
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj103
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj206
-rw-r--r--src/boost/libs/icl/test/test_total_icl_quantifier_/test_total_icl_quantifier.cpp36
-rw-r--r--src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_total_icl_quantifier_/vc9_test_total_icl_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/test_total_icl_quantifier_cases.hpp81
-rw-r--r--src/boost/libs/icl/test/test_total_interval_quantifier_/test_total_interval_quantifier.cpp36
-rw-r--r--src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj.filters27
-rw-r--r--src/boost/libs/icl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj207
-rw-r--r--src/boost/libs/icl/test/test_total_interval_quantifier_cases.hpp100
-rw-r--r--src/boost/libs/icl/test/test_type_lists.hpp316
-rw-r--r--src/boost/libs/icl/test/test_type_traits_/test_type_traits.cpp133
-rw-r--r--src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj104
-rw-r--r--src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj.filters30
-rw-r--r--src/boost/libs/icl/test/test_type_traits_/vc9_test_type_traits.vcproj210
-rw-r--r--src/boost/libs/icl/test/test_value_maker.hpp199
-rw-r--r--src/boost/libs/icl/test/unit_test_unwarned.hpp28
-rw-r--r--src/boost/libs/icl/test/vc10_icl_fast_tests.sln218
-rw-r--r--src/boost/libs/icl/test/vc10_icl_slow_tests.sln158
-rw-r--r--src/boost/libs/icl/test/vc9_icl_fast_tests.sln200
-rw-r--r--src/boost/libs/icl/test/vc9_icl_slow_tests.sln158
370 files changed, 44248 insertions, 0 deletions
diff --git a/src/boost/libs/icl/CMakeLists.txt b/src/boost/libs/icl/CMakeLists.txt
new file mode 100644
index 000000000..488b223f1
--- /dev/null
+++ b/src/boost/libs/icl/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated by `boostdep --cmake icl`
+# Copyright 2020 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# https://www.boost.org/LICENSE_1_0.txt
+
+cmake_minimum_required(VERSION 3.5...3.16)
+
+project(boost_icl VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
+
+add_library(boost_icl INTERFACE)
+add_library(Boost::icl ALIAS boost_icl)
+
+target_include_directories(boost_icl INTERFACE include)
+
+target_link_libraries(boost_icl
+ INTERFACE
+ Boost::assert
+ Boost::concept_check
+ Boost::config
+ Boost::container
+ Boost::core
+ Boost::date_time
+ Boost::detail
+ Boost::iterator
+ Boost::move
+ Boost::mpl
+ Boost::range
+ Boost::rational
+ Boost::static_assert
+ Boost::type_traits
+ Boost::utility
+)
+
+if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
+
+ add_subdirectory(test)
+
+endif()
+
diff --git a/src/boost/libs/icl/example/Jamfile.v2 b/src/boost/libs/icl/example/Jamfile.v2
new file mode 100644
index 000000000..5e48af9d1
--- /dev/null
+++ b/src/boost/libs/icl/example/Jamfile.v2
@@ -0,0 +1,153 @@
+# (C) Copyright 2008: Joachim Faulhaber
+# 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)
+
+# Examples that do not use boost_date_time
+exe interval
+ :
+ interval_/interval.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe interval_container
+ :
+ interval_container_/interval_container.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe overlap_counter
+ :
+ overlap_counter_/overlap_counter.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe party
+ :
+ party_/party.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe std_copy
+ :
+ std_copy_/std_copy.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe std_transform
+ :
+ std_transform_/std_transform.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe custom_interval
+ :
+ custom_interval_/custom_interval.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe dynamic_interval
+ :
+ dynamic_interval_/dynamic_interval.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe static_interval
+ :
+ static_interval_/static_interval.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+# Examples using boost_date_time
+exe boost_party
+ :
+ boost_party_/boost_party.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe partys_height_average
+ :
+ partys_height_average_/partys_height_average.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe partys_tallest_guests
+ :
+ partys_tallest_guests_/partys_tallest_guests.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe man_power
+ :
+ man_power_/man_power.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe month_and_week_grid
+ :
+ month_and_week_grid_/month_and_week_grid.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe user_groups
+ :
+ user_groups_/user_groups.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+# Projects
+exe large_bitset
+ :
+ large_bitset_/large_bitset.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+
+
+exe itvset_shell
+ :
+ itvset_shell_/itvset_shell.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
+exe splititvmap_shell
+ :
+ splititvmap_shell_/splititvmap_shell.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
+
diff --git a/src/boost/libs/icl/example/boost_party_/Jamfile.v2 b/src/boost/libs/icl/example/boost_party_/Jamfile.v2
new file mode 100644
index 000000000..b9a856bd1
--- /dev/null
+++ b/src/boost/libs/icl/example/boost_party_/Jamfile.v2
@@ -0,0 +1,11 @@
+# (C) Copyright 2008: Joachim Faulhaber
+# 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)
+
+exe boost_party
+ :
+ boost_party.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
diff --git a/src/boost/libs/icl/example/boost_party_/boost_party.cpp b/src/boost/libs/icl/example/boost_party_/boost_party.cpp
new file mode 100644
index 000000000..9f52b8acb
--- /dev/null
+++ b/src/boost/libs/icl/example/boost_party_/boost_party.cpp
@@ -0,0 +1,137 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/** Example boost_party.cpp \file boost_party.cpp
+ \brief Generates an attendance history of a party by inserting into an interval_map.
+ Demonstrating <i>aggregate on overlap</i>.
+
+ boost_party.cpp demonstrates the possibilities of an interval map
+ (interval_map or split_interval_map). Boost::posix_time::ptime is used as time
+ parameter. An interval_map maps intervals to a given content. In this case the
+ content is a set of party guests represented by their name strings.
+
+ As time goes by, groups of people join the party and leave later in the evening.
+ So we add a time interval and a name set to the interval_map for the attendance
+ of each group of people, that come together and leave together.
+
+ On every overlap of intervals, the corresponding name sets are accumulated. At
+ the points of overlap the intervals are split. The accumulation of content on
+ overlap of intervals is done via an operator += that has to be implemented
+ for the content parameter of the interval_map.
+
+ Finally the interval_map contains the history of attendance and all points in
+ time, where the group of party guests changed.
+
+ boost_party.cpp demonstrates a principle that we call
+ <b><em>aggregate on overlap</em></b>:
+ On insertion a value associated to the interval is aggregated (added) to those
+ values in the interval_map that overlap with the inserted value.
+
+ There are two behavioral aspects to <b>aggregate on overlap</b>: a <em>decompositional
+ behavior</em> and a <em>accumulative behavior</em>.
+
+ The <em>decompositional behavior</em> splits up intervals on the time dimension of the
+ interval_map so that the intervals change whenever associated values
+ change.
+
+ The <em>accumulative behavior</em> accumulates associated values on every overlap of
+ an insertion for the associated values.
+
+ \include boost_party_/boost_party.cpp
+*/
+//[example_boost_party
+// The next line includes <boost/date_time/posix_time/posix_time.hpp>
+// and a few lines of adapter code.
+#include <boost/icl/ptime.hpp>
+#include <iostream>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost::posix_time;
+using namespace boost::icl;
+
+// Type set<string> collects the names of party guests. Since std::set is
+// a model of the itl's set concept, the concept provides an operator +=
+// that performs a set union on overlap of intervals.
+typedef std::set<string> GuestSetT;
+
+void boost_party()
+{
+ GuestSetT mary_harry;
+ mary_harry.insert("Mary");
+ mary_harry.insert("Harry");
+
+ GuestSetT diana_susan;
+ diana_susan.insert("Diana");
+ diana_susan.insert("Susan");
+
+ GuestSetT peter;
+ peter.insert("Peter");
+
+ // A party is an interval map that maps time intervals to sets of guests
+ interval_map<ptime, GuestSetT> party;
+
+ party.add( // add and element
+ make_pair(
+ interval<ptime>::right_open(
+ time_from_string("2008-05-20 19:30"),
+ time_from_string("2008-05-20 23:00")),
+ mary_harry));
+
+ party += // element addition can also be done via operator +=
+ make_pair(
+ interval<ptime>::right_open(
+ time_from_string("2008-05-20 20:10"),
+ time_from_string("2008-05-21 00:00")),
+ diana_susan);
+
+ party +=
+ make_pair(
+ interval<ptime>::right_open(
+ time_from_string("2008-05-20 22:15"),
+ time_from_string("2008-05-21 00:30")),
+ peter);
+
+
+ interval_map<ptime, GuestSetT>::iterator it = party.begin();
+ cout << "----- History of party guests -------------------------\n";
+ while(it != party.end())
+ {
+ interval<ptime>::type when = it->first;
+ // Who is at the party within the time interval 'when' ?
+ GuestSetT who = (*it++).second;
+ cout << when << ": " << who << endl;
+ }
+
+}
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample boost_party.cpp <<\n";
+ cout << "-------------------------------------------------------\n";
+ boost_party();
+ return 0;
+}
+
+// Program output:
+/*-----------------------------------------------------------------------------
+>>Interval Container Library: Sample boost_party.cpp <<
+-------------------------------------------------------
+----- History of party guests -------------------------
+[2008-May-20 19:30:00, 2008-May-20 20:10:00): Harry Mary
+[2008-May-20 20:10:00, 2008-May-20 22:15:00): Diana Harry Mary Susan
+[2008-May-20 22:15:00, 2008-May-20 23:00:00): Diana Harry Mary Peter Susan
+[2008-May-20 23:00:00, 2008-May-21 00:00:00): Diana Peter Susan
+[2008-May-21 00:00:00, 2008-May-21 00:30:00): Peter
+-----------------------------------------------------------------------------*/
+//]
+
diff --git a/src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj b/src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj
new file mode 100644
index 000000000..aa0b57826
--- /dev/null
+++ b/src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-1907CC6613F8}</ProjectGuid>
+ <RootNamespace>Boost_party</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="boost_party.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj.filters b/src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj.filters
new file mode 100644
index 000000000..b67258bdf
--- /dev/null
+++ b/src/boost/libs/icl/example/boost_party_/vc10_boost_party.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="boost_party.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/boost_party_/vc9_boost_party.vcproj b/src/boost/libs/icl/example/boost_party_/vc9_boost_party.vcproj
new file mode 100644
index 000000000..e051a43bd
--- /dev/null
+++ b/src/boost/libs/icl/example/boost_party_/vc9_boost_party.vcproj
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_boost_party"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-1907CC6613F8}"
+ RootNamespace="Boost_party"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\boost_party.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/custom_interval_/Jamfile.v2 b/src/boost/libs/icl/example/custom_interval_/Jamfile.v2
new file mode 100644
index 000000000..404abbc0e
--- /dev/null
+++ b/src/boost/libs/icl/example/custom_interval_/Jamfile.v2
@@ -0,0 +1,11 @@
+# (C) Copyright 2010: Joachim Faulhaber
+# 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)
+
+exe custom_interval
+ :
+ custom_interval.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
diff --git a/src/boost/libs/icl/example/custom_interval_/custom_interval.cpp b/src/boost/libs/icl/example/custom_interval_/custom_interval.cpp
new file mode 100644
index 000000000..97ac731b0
--- /dev/null
+++ b/src/boost/libs/icl/example/custom_interval_/custom_interval.cpp
@@ -0,0 +1,103 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/** Example custom_interval.cpp \file custom_interval.cpp
+ \brief Shows how to use interval containers with own interval classes.
+
+ There may be instances, where we want to use interval container with our
+ own user defined interval classes. Boost interval containers can be adapted
+ to your interval class by partial template specialisation. Only a few lines
+ of code are needed to achieve this.
+
+ \include custom_interval_/custom_interval.cpp
+*/
+//[example_custom_interval
+#include <iostream>
+#include <boost/icl/interval_set.hpp>
+
+using namespace std;
+using namespace boost::icl;
+
+// Here is a typical class that may model intervals in your application.
+class MyInterval
+{
+public:
+ MyInterval(): _first(), _past(){}
+ MyInterval(int lo, int up): _first(lo), _past(up){}
+ int first()const{ return _first; }
+ int past ()const{ return _past; }
+private:
+ int _first, _past;
+};
+
+namespace boost{ namespace icl
+{
+// Class template interval_traits serves as adapter to register and customize your interval class
+template<>
+struct interval_traits< MyInterval > //1. Partially specialize interval_traits for
+{ // your class MyInterval
+ //2. Define associated types
+ typedef MyInterval interval_type; //2.1 MyInterval will be the interval_type
+ typedef int domain_type; //2.2 The elements of the domain are ints
+ typedef std::less<int> domain_compare; //2.3 This is the way our element shall be ordered.
+ //3. Next we define the essential functions
+ // of the specialisation
+ //3.1 Construction of intervals
+ static interval_type construct(const domain_type& lo, const domain_type& up)
+ { return interval_type(lo, up); }
+ //3.2 Selection of values
+ static domain_type lower(const interval_type& inter_val){ return inter_val.first(); };
+ static domain_type upper(const interval_type& inter_val){ return inter_val.past(); };
+};
+
+template<>
+struct interval_bound_type<MyInterval> //4. Finally we define the interval borders.
+{ // Choose between static_open (lo..up)
+ typedef interval_bound_type type; // static_left_open (lo..up]
+ BOOST_STATIC_CONSTANT(bound_type, value = interval_bounds::static_right_open);//[lo..up)
+}; // and static_closed [lo..up]
+
+}} // namespace boost icl
+
+void custom_interval()
+{
+ // Now we can use class MyInterval with interval containers:
+ typedef interval_set<int, std::less, MyInterval> MyIntervalSet;
+ MyIntervalSet mySet;
+ mySet += MyInterval(1,9);
+ cout << mySet << endl;
+ mySet.subtract(3) -= 6;
+ cout << mySet << " subtracted 3 and 6\n";
+ mySet ^= MyInterval(2,8);
+ cout << mySet << " flipped between 2 and 7\n";
+}
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample custom_interval.cpp <<\n";
+ cout << "-----------------------------------------------------------\n";
+ cout << "This program uses a user defined interval class:\n";
+ custom_interval();
+ return 0;
+}
+
+// Program output:
+/*-----------------------------------------------------------------------------
+>>Interval Container Library: Sample custom_interval.cpp <<
+-----------------------------------------------------------
+This program uses a user defined interval class:
+{[1, 9)}
+{[1, 3) [4, 6) [7, 9)} subtracted 3 and 6
+{[1,2) [3,4) [6,7) [8,9)} flipped between 2 and 7
+-----------------------------------------------------------------------------*/
+//]
+
diff --git a/src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj b/src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj
new file mode 100644
index 000000000..a050dd38b
--- /dev/null
+++ b/src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-1907CC6614F8}</ProjectGuid>
+ <RootNamespace>Custom_interval</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="custom_interval.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj.filters b/src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj.filters
new file mode 100644
index 000000000..35e56b554
--- /dev/null
+++ b/src/boost/libs/icl/example/custom_interval_/vc10_custom_interval.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="custom_interval.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/custom_interval_/vc9_custom_interval.vcproj b/src/boost/libs/icl/example/custom_interval_/vc9_custom_interval.vcproj
new file mode 100644
index 000000000..dd22704fc
--- /dev/null
+++ b/src/boost/libs/icl/example/custom_interval_/vc9_custom_interval.vcproj
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_custom_interval"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-1907CC6614F8}"
+ RootNamespace="Custom_interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\custom_interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/dynamic_interval_/dynamic_interval.cpp b/src/boost/libs/icl/example/dynamic_interval_/dynamic_interval.cpp
new file mode 100644
index 000000000..8cdb34c13
--- /dev/null
+++ b/src/boost/libs/icl/example/dynamic_interval_/dynamic_interval.cpp
@@ -0,0 +1,140 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example dynamic_interval.cpp \file dynamic_interval.cpp
+ \brief Intervals with dynamic interval bounds that can be changed at runtime.
+
+ Intervals types with dynamic interval bounds can represent closed and
+ open interval borders. Interval borders are not static or fixed for
+ the type but may change due to computations in interval containers.
+ Dynamically bounded intervals are the library default for interval
+ parameters in interval containers.
+
+ \include dynamic_interval_/dynamic_interval.cpp
+*/
+//[example_dynamic_interval
+#include <iostream>
+#include <string>
+#include <math.h>
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+// Dynamically bounded intervals 'discrete_interval' and 'continuous_interval'
+// are indirectly included via interval containers as library defaults.
+#include "../toytime.hpp"
+#include <boost/icl/rational.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample interval.cpp <<\n";
+ cout << "----------------------------------------------------\n";
+
+ // Dynamically bounded intervals are the library default for
+ // interval parameters in interval containers.
+ BOOST_STATIC_ASSERT((
+ boost::is_same< interval_set<int>::interval_type
+ , discrete_interval<int> >::value
+ ));
+
+
+ BOOST_STATIC_ASSERT((
+ boost::is_same< interval_set<float>::interval_type
+ , continuous_interval<float> >::value
+ ));
+
+ // As we can see the library default chooses the appropriate
+ // class template instance discrete_interval<T> or continuous_interval<T>
+ // dependent on the domain_type T. The library default for intervals
+ // is also available via the template 'interval':
+ BOOST_STATIC_ASSERT((
+ boost::is_same< interval<int>::type
+ , discrete_interval<int> >::value
+ ));
+
+ BOOST_STATIC_ASSERT((
+ boost::is_same< interval<float>::type
+ , continuous_interval<float> >::value
+ ));
+
+ // template interval also provides static functions for the four border types
+
+ interval<int>::type int_interval = interval<int>::closed(3, 7);
+ interval<double>::type sqrt_interval = interval<double>::right_open(1/sqrt(2.0), sqrt(2.0));
+ interval<string>::type city_interval = interval<string>::left_open("Barcelona", "Boston");
+ interval<Time>::type time_interval = interval<Time>::open(Time(monday,8,30), Time(monday,17,20));
+
+ cout << "----- Dynamically bounded intervals ----------------------------------------\n";
+ cout << " discrete_interval<int> : " << int_interval << endl;
+ cout << "continuous_interval<double>: " << sqrt_interval << " does "
+ << string(contains(sqrt_interval, sqrt(2.0))?"":"NOT")
+ << " contain sqrt(2)" << endl;
+ cout << "continuous_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval,"Barcelona")?"":"NOT")
+ << " contain 'Barcelona'" << endl;
+ cout << "continuous_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval, "Berlin")?"":"NOT")
+ << " contain 'Berlin'" << endl;
+ cout << " discrete_interval<Time> : " << time_interval << "\n\n";
+
+ // Using dynamically bounded intervals allows to apply operations
+ // with intervals and also with elements on all interval containers
+ // including interval containers of continuous domain types:
+
+ interval<rational<int> >::type unit_interval
+ = interval<rational<int> >::right_open(rational<int>(0), rational<int>(1));
+ interval_set<rational<int> > unit_set(unit_interval);
+ interval_set<rational<int> > ratio_set(unit_set);
+ ratio_set -= rational<int>(1,3); // Subtract 1/3 from the set
+
+ cout << "----- Manipulation of single values in continuous sets ---------------------\n";
+ cout << "1/3 subtracted from [0..1) : " << ratio_set << endl;
+ cout << "The set does " << string(contains(ratio_set, rational<int>(1,3))?"":"NOT")
+ << " contain '1/3'" << endl;
+ ratio_set ^= unit_set;
+ cout << "Flipping the holey set : " << ratio_set << endl;
+ cout << "yields the subtracted : 1/3\n\n";
+
+ // Of course we can use interval types that are different from the
+ // library default by explicit instantiation:
+ split_interval_set<int, std::less, closed_interval<Time> > intuitive_times;
+ // Interval set 'intuitive_times' uses statically bounded closed intervals
+ intuitive_times += closed_interval<Time>(Time(monday, 9,00), Time(monday, 10,59));
+ intuitive_times += closed_interval<Time>(Time(monday, 10,00), Time(monday, 11,59));
+ cout << "----- Here we are NOT using the library default for intervals --------------\n";
+ cout << intuitive_times << endl;
+
+ return 0;
+}
+
+// Program output:
+//>>Interval Container Library: Sample interval.cpp <<
+//----------------------------------------------------
+//----- Dynamically bounded intervals ----------------------------------------
+// discrete_interval<int> : [3,7]
+//continuous_interval<double>: [0.707107,1.41421) does NOT contain sqrt(2)
+//continuous_interval<string>: (Barcelona,Boston] does NOT contain 'Barcelona'
+//continuous_interval<string>: (Barcelona,Boston] does contain 'Berlin'
+// discrete_interval<Time> : (mon:08:30,mon:17:20)
+//
+//----- Manipulation of single values in continuous sets ---------------------
+//1/3 subtracted from [0..1) : {[0/1,1/3)(1/3,1/1)}
+//The set does NOT contain '1/3'
+//Flipping the holey set : {[1/3,1/3]}
+//yields the subtracted : 1/3
+//
+//----- Here we are NOT using the library default for intervals --------------
+//{[mon:09:00,mon:09:59][mon:10:00,mon:10:59][mon:11:00,mon:11:59]}
+//]
+
diff --git a/src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj b/src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj
new file mode 100644
index 000000000..a7aeb73a7
--- /dev/null
+++ b/src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D3A9F7C}</ProjectGuid>
+ <RootNamespace>Dynamic_interval</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="dynamic_interval.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\dynamic_interval.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj.filters b/src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj.filters
new file mode 100644
index 000000000..baf45cf3a
--- /dev/null
+++ b/src/boost/libs/icl/example/dynamic_interval_/vc10_dynamic_interval.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="dynamic_interval.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\dynamic_interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/dynamic_interval_/vc9_dynamic_interval.vcproj b/src/boost/libs/icl/example/dynamic_interval_/vc9_dynamic_interval.vcproj
new file mode 100644
index 000000000..126807a8e
--- /dev/null
+++ b/src/boost/libs/icl/example/dynamic_interval_/vc9_dynamic_interval.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_dynamic_interval"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}"
+ RootNamespace="Dynamic_interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\dynamic_interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\dynamic_interval.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/interval_/interval.cpp b/src/boost/libs/icl/example/interval_/interval.cpp
new file mode 100644
index 000000000..5e91c26dc
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_/interval.cpp
@@ -0,0 +1,111 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example interval.cpp \file interval.cpp
+ \brief Intervals for integral and continuous instance types.
+ Closed and open interval borders.
+
+ Much of the library code deals with intervals which are implemented
+ by interval class templates. This program gives a very short samlpe of
+ different interval instances.
+
+ \include interval_/interval.cpp
+*/
+//[example_interval
+#include <iostream>
+#include <string>
+#include <math.h>
+
+// Dynamically bounded intervals
+#include <boost/icl/discrete_interval.hpp>
+#include <boost/icl/continuous_interval.hpp>
+
+// Statically bounded intervals
+#include <boost/icl/right_open_interval.hpp>
+#include <boost/icl/left_open_interval.hpp>
+#include <boost/icl/closed_interval.hpp>
+#include <boost/icl/open_interval.hpp>
+
+#include "../toytime.hpp"
+#include <boost/icl/rational.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample interval.cpp <<\n";
+ cout << "----------------------------------------------------\n";
+
+ // Class template discrete_interval can be used for discrete data types
+ // like integers, date and time and other types that have a least steppable
+ // unit.
+ discrete_interval<int> int_interval
+ = construct<discrete_interval<int> >(3, 7, interval_bounds::closed());
+
+ // Class template continuous_interval can be used for continuous data types
+ // like double, boost::rational or strings.
+ continuous_interval<double> sqrt_interval
+ = construct<continuous_interval<double> >(1/sqrt(2.0), sqrt(2.0));
+ //interval_bounds::right_open() is default
+ continuous_interval<string> city_interval
+ = construct<continuous_interval<string> >("Barcelona", "Boston", interval_bounds::left_open());
+
+ discrete_interval<Time> time_interval
+ = construct<discrete_interval<Time> >(Time(monday,8,30), Time(monday,17,20),
+ interval_bounds::open());
+
+ cout << "Dynamically bounded intervals:\n";
+ cout << " discrete_interval<int>: " << int_interval << endl;
+ cout << "continuous_interval<double>: " << sqrt_interval << " does "
+ << string(contains(sqrt_interval, sqrt(2.0))?"":"NOT")
+ << " contain sqrt(2)" << endl;
+ cout << "continuous_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval,"Barcelona")?"":"NOT")
+ << " contain 'Barcelona'" << endl;
+ cout << "continuous_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval, "Berlin")?"":"NOT")
+ << " contain 'Berlin'" << endl;
+ cout << " discrete_interval<Time>: " << time_interval << "\n\n";
+
+ // There are statically bounded interval types with fixed interval borders
+ right_open_interval<string> fix_interval1; // You will probably use one kind of static intervals
+ // right_open_intervals are recommended.
+ closed_interval<unsigned int> fix_interval2; // ... static closed, left_open and open intervals
+ left_open_interval<float> fix_interval3; // are implemented for sake of completeness but
+ open_interval<short> fix_interval4; // are of minor practical importance.
+
+ right_open_interval<rational<int> > range1(rational<int>(0,1), rational<int>(2,3));
+ right_open_interval<rational<int> > range2(rational<int>(1,3), rational<int>(1,1));
+
+ // This middle third of the unit interval [0,1)
+ cout << "Statically bounded interval:\n";
+ cout << "right_open_interval<rational<int>>: " << (range1 & range2) << endl;
+
+ return 0;
+}
+
+// Program output:
+
+//>>Interval Container Library: Sample interval.cpp <<
+//----------------------------------------------------
+//Dynamically bounded intervals
+// discrete_interval<int>: [3,7]
+//continuous_interval<double>: [0.707107,1.41421) does NOT contain sqrt(2)
+//continuous_interval<string>: (Barcelona,Boston] does NOT contain 'Barcelona'
+//continuous_interval<string>: (Barcelona,Boston] does contain 'Berlin'
+// discrete_interval<Time>: (mon:08:30,mon:17:20)
+//
+//Statically bounded interval
+//right_open_interval<rational<int>>: [1/3,2/3)
+
+//]
+
diff --git a/src/boost/libs/icl/example/interval_/vc10_interval.vcxproj b/src/boost/libs/icl/example/interval_/vc10_interval.vcxproj
new file mode 100644
index 000000000..90facd630
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_/vc10_interval.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F7C}</ProjectGuid>
+ <RootNamespace>Interval</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="interval.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/interval_/vc10_interval.vcxproj.filters b/src/boost/libs/icl/example/interval_/vc10_interval.vcxproj.filters
new file mode 100644
index 000000000..fec5755d9
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_/vc10_interval.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="interval.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/interval_/vc9_interval.vcproj b/src/boost/libs/icl/example/interval_/vc9_interval.vcproj
new file mode 100644
index 000000000..0520587d4
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_/vc9_interval.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_interval"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}"
+ RootNamespace="Interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/interval_container_/interval_container.cpp b/src/boost/libs/icl/example/interval_container_/interval_container.cpp
new file mode 100644
index 000000000..0be197ad1
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_container_/interval_container.cpp
@@ -0,0 +1,107 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example interval_container.cpp \file interval_container.cpp
+
+ \brief Demonstrates basic characteristics of interval container objects.
+
+ \include interval_container_/interval_container.cpp
+*/
+//[example_interval_container
+#include <iostream>
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include "../toytime.hpp"
+
+using namespace std;
+using namespace boost::icl;
+
+void interval_container_basics()
+{
+ interval<Time>::type night_and_day(Time(monday, 20,00), Time(tuesday, 20,00));
+ interval<Time>::type day_and_night(Time(tuesday, 7,00), Time(wednesday, 7,00));
+ interval<Time>::type next_morning(Time(wednesday, 7,00), Time(wednesday,10,00));
+ interval<Time>::type next_evening(Time(wednesday,18,00), Time(wednesday,21,00));
+
+ // An interval set of type interval_set joins intervals that that overlap or touch each other.
+ interval_set<Time> joinedTimes;
+ joinedTimes.insert(night_and_day);
+ joinedTimes.insert(day_and_night); //overlapping in 'day' [07:00, 20.00)
+ joinedTimes.insert(next_morning); //touching
+ joinedTimes.insert(next_evening); //disjoint
+
+ cout << "Joined times :" << joinedTimes << endl;
+
+ // A separate interval set of type separate_interval_set joins intervals that that
+ // overlap but it preserves interval borders that just touch each other. You may
+ // represent time grids like the months of a year as a split_interval_set.
+ separate_interval_set<Time> separateTimes;
+ separateTimes.insert(night_and_day);
+ separateTimes.insert(day_and_night); //overlapping in 'day' [07:00, 20.00)
+ separateTimes.insert(next_morning); //touching
+ separateTimes.insert(next_evening); //disjoint
+
+ cout << "Separate times:" << separateTimes << endl;
+
+ // A split interval set of type split_interval_set preserves all interval
+ // borders. On insertion of overlapping intervals the intervals in the
+ // set are split up at the interval borders of the inserted interval.
+ split_interval_set<Time> splitTimes;
+ splitTimes += night_and_day;
+ splitTimes += day_and_night; //overlapping in 'day' [07:00, 20:00)
+ splitTimes += next_morning; //touching
+ splitTimes += next_evening; //disjoint
+
+ cout << "Split times :\n" << splitTimes << endl;
+
+ // A split interval map splits up inserted intervals on overlap and aggregates the
+ // associated quantities via the operator +=
+ split_interval_map<Time, int> overlapCounter;
+ overlapCounter += make_pair(night_and_day,1);
+ overlapCounter += make_pair(day_and_night,1); //overlapping in 'day' [07:00, 20.00)
+ overlapCounter += make_pair(next_morning, 1); //touching
+ overlapCounter += make_pair(next_evening, 1); //disjoint
+
+ cout << "Split times overlap counted:\n" << overlapCounter << endl;
+
+ // An interval map joins touching intervals, if associated values are equal
+ interval_map<Time, int> joiningOverlapCounter;
+ joiningOverlapCounter = overlapCounter;
+ cout << "Times overlap counted:\n" << joiningOverlapCounter << endl;
+}
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample interval_container.cpp <<\n";
+ cout << "--------------------------------------------------------------\n";
+ interval_container_basics();
+ return 0;
+}
+
+
+// Program output:
+/* ----------------------------------------------------------------------------
+>>Interval Container Library: Sample interval_container.cpp <<
+--------------------------------------------------------------
+Joined times :[mon:20:00,wed:10:00)[wed:18:00,wed:21:00)
+Separate times:[mon:20:00,wed:07:00)[wed:07:00,wed:10:00)[wed:18:00,wed:21:00)
+Split times :
+[mon:20:00,tue:07:00)[tue:07:00,tue:20:00)[tue:20:00,wed:07:00)
+[wed:07:00,wed:10:00)[wed:18:00,wed:21:00)
+Split times overlap counted:
+{([mon:20:00,tue:07:00)->1)([tue:07:00,tue:20:00)->2)([tue:20:00,wed:07:00)->1)
+([wed:07:00,wed:10:00)->1)([wed:18:00,wed:21:00)->1)}
+Times overlap counted:
+{([mon:20:00,tue:07:00)->1)([tue:07:00,tue:20:00)->2)([tue:20:00,wed:10:00)->1)
+([wed:18:00,wed:21:00)->1)}
+-----------------------------------------------------------------------------*/
+//]
diff --git a/src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj b/src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj
new file mode 100644
index 000000000..ff76a8839
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-E91A07F9DD81}</ProjectGuid>
+ <RootNamespace>interval_container</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="interval_container.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_set.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_set.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj.filters b/src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj.filters
new file mode 100644
index 000000000..16d242978
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_container_/vc10_interval_container.vcxproj.filters
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="interval_container.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/interval_container_/vc9_interval_container.vcproj b/src/boost/libs/icl/example/interval_container_/vc9_interval_container.vcproj
new file mode 100644
index 000000000..8020e1134
--- /dev/null
+++ b/src/boost/libs/icl/example/interval_container_/vc9_interval_container.vcproj
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_interval_container"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-E91A07F9DD81}"
+ RootNamespace="interval_container"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\interval_container.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\separate_interval_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\split_interval_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\split_interval_set.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/itvset_shell_/itvset_shell.cpp b/src/boost/libs/icl/example/itvset_shell_/itvset_shell.cpp
new file mode 100644
index 000000000..553678d72
--- /dev/null
+++ b/src/boost/libs/icl/example/itvset_shell_/itvset_shell.cpp
@@ -0,0 +1,132 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2007-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------+
+itvset_shell.cpp provides a simple test shells for interval sets.
+The shell also gives you a good idea how interval container are working.
++-----------------------------------------------------------------------------*/
+#include <iostream>
+
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+void instructions()
+{
+ cout << "+++++ Test shell for interval set +++++\n";
+ cout << "Type: q e or 0 to quit\n";
+ cout << "Type: + for insertions\n";
+ cout << "Type: - for subtraction\n";
+ cout << "Type: j to join contiguous intervals\n";
+ cout << "Type: s to compute total size\n";
+}
+
+void wrongInput()
+{
+ cout << "Wrong Input ------------------\n";
+ instructions();
+}
+
+
+template <class SetTV>
+void setTestShell()
+{
+ SetTV m1;
+
+ try {
+ char cmd = 'b';
+ typename SetTV::domain_type lwb = typename SetTV::domain_type();
+ typename SetTV::domain_type upb = typename SetTV::domain_type();
+
+ instructions();
+
+ for(;;)
+ {
+ cout << "> ";
+ cin >> cmd ;
+
+ switch(cmd)
+ {
+ case 'q':
+ case 'e':
+ case '0': cout << "good bye\n"; return;
+ case '+':
+ {
+ cout << "input: lwb upb >> ";
+ cin >> lwb >> upb;
+ typename SetTV::interval_type itv
+ = typename SetTV::interval_type(lwb,upb);
+ // SetTV::IntervalTD itv = rightOpenInterval(lwb,upb);
+ m1.insert(itv);
+
+ cout << "+" << itv << " =" << endl;
+ cout << "{" << m1 << "}" << endl;
+
+ }
+ break;
+ case '-':
+ {
+ cout << "input: lwb upb >> ";
+ cin >> lwb >> upb;
+ typename SetTV::interval_type itv
+ = typename SetTV::interval_type(lwb,upb);
+ // m1.subtract(itv);
+ SetTV tmp;
+ tmp.insert(itv);
+ m1 -= tmp;
+
+ cout << "-" << itv << " =" << endl;
+ cout << "{" << m1 << "}" << endl;
+
+ }
+ break;
+ case 'j':
+ {
+ icl::join(m1);
+ cout << "{" << m1 << "}" << endl;
+ }
+ break;
+ case 's':
+ {
+ cout << "size = " << m1.size() << endl;
+ }
+ break;
+
+ default: wrongInput();
+ }
+ }
+
+ }
+ catch (exception& e)
+ {
+ cout << "itvset_shell: exception caught: " << endl
+ << e.what() << endl;
+ }
+ catch (...)
+ {
+ cout << "itvset_shell: unknown exception caught" << endl;
+ }
+}
+
+
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Test itvset_shell.cpp <<\n";
+ cout << "------------------------------------------------------\n";
+ setTestShell< interval_set<int> >();
+
+ return 0;
+}
+
diff --git a/src/boost/libs/icl/example/itvset_shell_/vc9_itvset_shell.vcproj b/src/boost/libs/icl/example/itvset_shell_/vc9_itvset_shell.vcproj
new file mode 100644
index 000000000..c301ad4a5
--- /dev/null
+++ b/src/boost/libs/icl/example/itvset_shell_/vc9_itvset_shell.vcproj
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_itvset_shell"
+ ProjectGUID="{FC32CF3E-293A-4576-A5C2-9373AECAF5BB}"
+ RootNamespace="vc9_itvset_shell"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\itvset_shell.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_set.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/large_bitset_/bits.hpp b/src/boost/libs/icl/example/large_bitset_/bits.hpp
new file mode 100644
index 000000000..6f04aec4a
--- /dev/null
+++ b/src/boost/libs/icl/example/large_bitset_/bits.hpp
@@ -0,0 +1,77 @@
+/*-----------------------------------------------------------------------------+
+Author: Joachim Faulhaber
+Copyright (c) 2009-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_LIBS_ICL_EXAMPLE_LARGE_BITSET_BITS_HPP_JOFA_091019
+#define BOOST_LIBS_ICL_EXAMPLE_LARGE_BITSET_BITS_HPP_JOFA_091019
+//[mini_bits_includes
+ // These includes are needed ...
+#include <string> // for conversion to output and to
+#include <boost/icl/type_traits/has_set_semantics.hpp>//declare that bits has the
+ // behavior of a set.
+//]
+
+namespace mini
+{
+//[mini_bits_class_bits
+template<class NaturalT> class bits
+{
+public:
+ typedef NaturalT word_type;
+ static const int digits = std::numeric_limits<NaturalT>::digits;
+ static const word_type w1 = static_cast<NaturalT>(1) ;
+
+ bits():_bits(){}
+ explicit bits(word_type value):_bits(value){}
+
+ word_type word()const{ return _bits; }
+ bits& operator |= (const bits& value){_bits |= value._bits; return *this;}
+ bits& operator &= (const bits& value){_bits &= value._bits; return *this;}
+ bits& operator ^= (const bits& value){_bits ^= value._bits; return *this;}
+ bits operator ~ ()const { return bits(~_bits); }
+ bool operator < (const bits& value)const{return _bits < value._bits;}
+ bool operator == (const bits& value)const{return _bits == value._bits;}
+
+ bool contains(word_type element)const{ return ((w1 << element) & _bits) != 0; }
+ std::string as_string(const char off_on[2] = " 1")const;
+
+private:
+ word_type _bits;
+};
+//]
+
+template<class NaturalT>
+std::string bits<NaturalT>::as_string(const char off_on[2])const
+{
+ std::string sequence;
+ for(int bit=0; bit < digits; bit++)
+ sequence += contains(bit) ? off_on[1] : off_on[0];
+ return sequence;
+}
+
+} // mini
+
+//[mini_bits_is_set
+namespace boost { namespace icl
+{
+ template<class NaturalT>
+ struct is_set<mini::bits<NaturalT> >
+ {
+ typedef is_set<mini::bits<NaturalT> > type;
+ BOOST_STATIC_CONSTANT(bool, value = true);
+ };
+
+ template<class NaturalT>
+ struct has_set_semantics<mini::bits<NaturalT> >
+ {
+ typedef has_set_semantics<mini::bits<NaturalT> > type;
+ BOOST_STATIC_CONSTANT(bool, value = true);
+ };
+}}
+//]
+
+#endif
diff --git a/src/boost/libs/icl/example/large_bitset_/large_bitset.cpp b/src/boost/libs/icl/example/large_bitset_/large_bitset.cpp
new file mode 100644
index 000000000..99f3c7d3a
--- /dev/null
+++ b/src/boost/libs/icl/example/large_bitset_/large_bitset.cpp
@@ -0,0 +1,168 @@
+/*-----------------------------------------------------------------------------+
+Author: Joachim Faulhaber
+Copyright (c) 2009-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example large_bitset.cpp \file large_bitset.cpp
+ \brief Shows a bitset class that combines interval and bitset compression
+ in order to represent very large bitsets efficiently.
+
+ Example large_bitset.cpp demonstrates the usage of a large_bitset class
+ template that is implemented as an interval_map of bitsets. The idea is
+ to combine interval compression and bitset compression. Large uninterrupted
+ runs of bits are represented by intervals (interval compression). Local
+ nests of varying bitsequences are represented by associated bitests
+ (bitset compression).
+
+ Find a commented sample implementation in the boost book documentation
+ <a href="http://www.joachim-faulhaber.de/boost_itl/doc/libs/icl/doc/html/boost_itl/projects.html#boost_itl.projects.large_bitset">
+ here</a>.
+
+ \include large_bitset_/large_bitset.cpp
+*/
+#if defined(_MSC_VER)
+#pragma warning(disable:4244) // Msvc warns on some operations that are needed
+#pragma warning(disable:4245) // in this example - we're working on bit level.
+#endif // So we intentionally disable them.
+
+//[large_bitset_cpp_includes
+#include <limits>
+#include "large_bitset.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+using namespace mini;
+//]
+
+
+//[large_bitset_test_large_set_all
+void test_large()
+{
+ const nat64 much = 0xffffffffffffffffull;
+ large_bitset<> venti; // ... the largest, I can think of ;)
+ venti += discrete_interval<nat64>(0, much);
+
+ cout << "----- Test function test_large() -----------------------------------------------\n";
+ cout << "We have just turned on the awesome amount of 18,446,744,073,709,551,616 bits ;-)\n";
+ venti.show_segments();
+ //]
+
+ //[large_bitset_test_large_erase_last
+ cout << "---- Let's swich off the very last bit -----------------------------------------\n";
+ venti -= much;
+ venti.show_segments();
+
+ cout << "---- Venti is plenty ... let's do something small: A tall ----------------------\n\n";
+}
+//]
+
+//[large_bitset_test_small
+void test_small()
+{
+ large_bitset<nat32, bits8> tall; // small is tall ...
+ // ... because even this 'small' large_bitset
+ // can represent up to 2^32 == 4,294,967,296 bits.
+
+ cout << "----- Test function test_small() -----------\n";
+ cout << "-- Switch on all bits in range [0,64] ------\n";
+ tall += discrete_interval<nat>(0, 64);
+ tall.show_segments();
+ cout << "--------------------------------------------\n";
+
+ cout << "-- Turn off bits: 25,27,28 -----------------\n";
+
+ (((tall -= 25) -= 27) -= 28) ;
+ tall.show_segments();
+ cout << "--------------------------------------------\n";
+
+ cout << "-- Flip bits in range [24,30) --------------\n";
+ tall ^= discrete_interval<nat>::right_open(24,30);
+ tall.show_segments();
+ cout << "--------------------------------------------\n";
+
+ cout << "-- Remove the first 10 bits ----------------\n";
+ tall -= discrete_interval<nat>::right_open(0,10);
+ tall.show_segments();
+
+ cout << "-- Remove even bits in range [0,72) --------\n";
+ int bit;
+ for(bit=0; bit<72; bit++) if(!(bit%2)) tall -= bit;
+ tall.show_segments();
+
+ cout << "-- Set odd bits in range [0,72) --------\n";
+ for(bit=0; bit<72; bit++) if(bit%2) tall += bit;
+ tall.show_segments();
+
+ cout << "--------------------------------------------\n\n";
+
+}
+//]
+
+//[large_bitset_test_picturesque
+void test_picturesque()
+{
+ typedef large_bitset<nat, bits8> Bit8Set;
+
+ Bit8Set square, stare;
+ square += discrete_interval<nat>(0,8);
+ for(int i=1; i<5; i++)
+ {
+ square += 8*i;
+ square += 8*i+7;
+ }
+
+ square += discrete_interval<nat>(41,47);
+
+ cout << "----- Test function test_picturesque() -----\n";
+ cout << "-------- empty face: "
+ << square.interval_count() << " intervals -----\n";
+ square.show_matrix(" *");
+
+ stare += 18; stare += 21;
+ stare += discrete_interval<nat>(34,38);
+
+ cout << "-------- compressed smile: "
+ << stare.interval_count() << " intervals -----\n";
+ stare.show_matrix(" *");
+
+ cout << "-------- staring bitset: "
+ << (square + stare).interval_count() << " intervals -----\n";
+ (square + stare).show_matrix(" *");
+
+ cout << "--------------------------------------------\n";
+}
+//]
+
+template<class NatT, class BitsT>
+void test_set()
+{
+ const NatT much = (numeric_limits<NatT>::max)();
+
+ large_bitset<NatT, BitsT> venti; //the largest, I can think of
+ venti += discrete_interval<NatT>(0, much);
+
+ cout << "--------------------------------------------------------------------------------\n";
+ venti.show_segments();
+
+ venti -= much;
+ cout << "--------------------------------------------------------------------------------\n";
+ venti.show_segments();
+}
+
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample large_bitset.cpp <<\n";
+ cout << "--------------------------------------------------------\n";
+ test_large();
+ test_small();
+ test_picturesque();
+ //test_set<nat64,bits64>();
+ return 0;
+}
+
diff --git a/src/boost/libs/icl/example/large_bitset_/large_bitset.hpp b/src/boost/libs/icl/example/large_bitset_/large_bitset.hpp
new file mode 100644
index 000000000..35d6e6347
--- /dev/null
+++ b/src/boost/libs/icl/example/large_bitset_/large_bitset.hpp
@@ -0,0 +1,213 @@
+/*-----------------------------------------------------------------------------+
+Author: Joachim Faulhaber
+Copyright (c) 2009-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_LIBS_ICL_EXAMPLE_LARGE_BITSET__LARGE_BITSET_HPP_JOFA_091019
+#define BOOST_LIBS_ICL_EXAMPLE_LARGE_BITSET__LARGE_BITSET_HPP_JOFA_091019
+
+//[large_bitset_includes
+#include <iostream> // to organize output
+#include <limits> // limits and associated constants
+#include <boost/operators.hpp> // to define operators with minimal effort
+#include "meta_log.hpp" // a meta logarithm
+#include "bits.hpp" // a minimal bitset implementation
+#include <boost/icl/interval_map.hpp> // base of large bitsets
+
+namespace mini // minimal implementations for example projects
+{
+//]
+
+//[large_bitset_natural_typedefs
+typedef unsigned char nat8; // nati i: number bits
+typedef unsigned short nat16;
+typedef unsigned long nat32;
+typedef unsigned long long nat64;
+typedef unsigned long nat;
+
+typedef bits<nat8> bits8;
+typedef bits<nat16> bits16;
+typedef bits<nat32> bits32;
+typedef bits<nat64> bits64;
+//]
+
+//[large_bitset_class_template_header
+template
+<
+ typename DomainT = nat64,
+ typename BitSetT = bits64,
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, DomainT),
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, DomainT, Compare),
+ ICL_ALLOC Alloc = std::allocator
+>
+class large_bitset
+ : boost::equality_comparable < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+ , boost::less_than_comparable< large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+
+ , boost::addable < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+ , boost::orable < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+ , boost::subtractable < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+ , boost::andable < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+ , boost::xorable < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>
+
+ , boost::addable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+ , boost::orable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+ , boost::subtractable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+ , boost::andable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+ , boost::xorable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, DomainT
+
+ , boost::addable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, ICL_INTERVAL_TYPE(Interval,DomainT,Compare)
+ , boost::orable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, ICL_INTERVAL_TYPE(Interval,DomainT,Compare)
+ , boost::subtractable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, ICL_INTERVAL_TYPE(Interval,DomainT,Compare)
+ , boost::andable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, ICL_INTERVAL_TYPE(Interval,DomainT,Compare)
+ , boost::xorable2 < large_bitset<DomainT,BitSetT,Compare,Interval,Alloc>, ICL_INTERVAL_TYPE(Interval,DomainT,Compare)
+ > > > > > > > > > > > > > > > > >
+ //^ & - | + ^ & - | + ^ & - | + < ==
+ //segment element container
+//]
+{
+public:
+ //[large_bitset_associated_types
+ typedef boost::icl::interval_map
+ <DomainT, BitSetT, boost::icl::partial_absorber,
+ std::less, boost::icl::inplace_bit_add, boost::icl::inplace_bit_and> interval_bitmap_type;
+
+ typedef DomainT domain_type;
+ typedef DomainT element_type;
+ typedef BitSetT bitset_type;
+ typedef typename BitSetT::word_type word_type;
+ typedef typename interval_bitmap_type::interval_type interval_type;
+ typedef typename interval_bitmap_type::value_type value_type;
+ //]
+//[large_bitset_operators
+public:
+ bool operator ==(const large_bitset& rhs)const { return _map == rhs._map; }
+ bool operator < (const large_bitset& rhs)const { return _map < rhs._map; }
+
+ large_bitset& operator +=(const large_bitset& rhs) {_map += rhs._map; return *this;}
+ large_bitset& operator |=(const large_bitset& rhs) {_map |= rhs._map; return *this;}
+ large_bitset& operator -=(const large_bitset& rhs) {_map -= rhs._map; return *this;}
+ large_bitset& operator &=(const large_bitset& rhs) {_map &= rhs._map; return *this;}
+ large_bitset& operator ^=(const large_bitset& rhs) {_map ^= rhs._map; return *this;}
+
+ large_bitset& operator +=(const element_type& rhs) {return add(interval_type(rhs)); }
+ large_bitset& operator |=(const element_type& rhs) {return add(interval_type(rhs)); }
+ large_bitset& operator -=(const element_type& rhs) {return subtract(interval_type(rhs)); }
+ large_bitset& operator &=(const element_type& rhs) {return intersect(interval_type(rhs));}
+ large_bitset& operator ^=(const element_type& rhs) {return flip(interval_type(rhs)); }
+
+ large_bitset& operator +=(const interval_type& rhs){return add(rhs); }
+ large_bitset& operator |=(const interval_type& rhs){return add(rhs); }
+ large_bitset& operator -=(const interval_type& rhs){return subtract(rhs); }
+ large_bitset& operator &=(const interval_type& rhs){return intersect(rhs);}
+ large_bitset& operator ^=(const interval_type& rhs){return flip(rhs); }
+ //]
+ //[large_bitset_fundamental_functions
+ large_bitset& add (const interval_type& rhs){return segment_apply(&large_bitset::add_, rhs);}
+ large_bitset& subtract (const interval_type& rhs){return segment_apply(&large_bitset::subtract_, rhs);}
+ large_bitset& intersect(const interval_type& rhs){return segment_apply(&large_bitset::intersect_,rhs);}
+ large_bitset& flip (const interval_type& rhs){return segment_apply(&large_bitset::flip_, rhs);}
+ //]
+
+ //[large_bitset_demo_functions
+ size_t interval_count()const { return boost::icl::interval_count(_map); }
+
+ void show_segments()const
+ {
+ for(typename interval_bitmap_type::const_iterator it_ = _map.begin();
+ it_ != _map.end(); ++it_)
+ {
+ interval_type itv = it_->first;
+ bitset_type bits = it_->second;
+ std::cout << itv << "->" << bits.as_string("01") << std::endl;
+ }
+ }
+
+ void show_matrix(const char off_on[2] = " 1")const
+ {
+ using namespace boost;
+ typename interval_bitmap_type::const_iterator iter = _map.begin();
+ while(iter != _map.end())
+ {
+ element_type fst = icl::first(iter->first), lst = icl::last(iter->first);
+ for(element_type chunk = fst; chunk <= lst; chunk++)
+ std::cout << iter->second.as_string(off_on) << std::endl;
+ ++iter;
+ }
+ }
+ //]
+
+//[large_bitset_impl_constants
+private: // Example value
+ static const word_type // 8-bit case
+ digits = std::numeric_limits // --------------------------------------------------------------
+ <word_type>::digits , // 8 Size of the associated bitsets
+ divisor = digits , // 8 Divisor to find intervals for values
+ last = digits-1 , // 7 Last bit (0 based)
+ shift = log2_<divisor>::value , // 3 To express the division as bit shift
+ w1 = static_cast<word_type>(1) , // Helps to avoid static_casts for long long
+ mask = divisor - w1 , // 7=11100000 Helps to express the modulo operation as bit_and
+ all = ~static_cast<word_type>(0), // 255=11111111 Helps to express a complete associated bitset
+ top = w1 << (digits-w1) ; // 128=00000001 Value of the most significant bit of associated bitsets
+ // !> Note: Most signigicant bit on the right.
+ //]
+ //[large_bitset_segment_combiner
+ typedef void (large_bitset::*segment_combiner)(element_type, element_type, bitset_type);
+ //]
+
+ //[large_bitset_bitset_filler
+ static word_type from_lower_to(word_type bit){return bit==last ? all : (w1<<(bit+w1))-w1;}
+ static word_type to_upper_from(word_type bit){return bit==last ? top : ~((w1<<bit)-w1); }
+ //]
+
+ //[large_bitset_segment_apply
+ large_bitset& segment_apply(segment_combiner combine, const interval_type& operand)
+ {
+ using namespace boost;
+ if(icl::is_empty(operand))
+ return *this;
+ // same as
+ element_type base = icl::first(operand) >> shift, // icl::first(operand) / divisor
+ ceil = icl::last (operand) >> shift; // icl::last (operand) / divisor
+ word_type base_rest = icl::first(operand) & mask , // icl::first(operand) % divisor
+ ceil_rest = icl::last (operand) & mask ; // icl::last (operand) % divisor
+
+ if(base == ceil) // [first, last] are within one bitset (chunk)
+ (this->*combine)(base, base+1, bitset_type( to_upper_from(base_rest)
+ & from_lower_to(ceil_rest)));
+ else // [first, last] spread over more than one bitset (chunk)
+ {
+ element_type mid_low = base_rest == 0 ? base : base+1, // first element of mid part
+ mid_up = ceil_rest == all ? ceil+1 : ceil ; // last element of mid part
+
+ if(base_rest > 0) // Bitset of base interval has to be filled from base_rest to last
+ (this->*combine)(base, base+1, bitset_type(to_upper_from(base_rest)));
+ if(ceil_rest < all) // Bitset of ceil interval has to be filled from first to ceil_rest
+ (this->*combine)(ceil, ceil+1, bitset_type(from_lower_to(ceil_rest)));
+ if(mid_low < mid_up) // For the middle part all bits have to set.
+ (this->*combine)(mid_low, mid_up, bitset_type(all));
+ }
+ return *this;
+ }
+ //]
+
+ //[large_bitmap_combiners
+ void add_(DomainT lo, DomainT up, BitSetT bits){_map += value_type(interval_type::right_open(lo,up), bits);}
+ void subtract_(DomainT lo, DomainT up, BitSetT bits){_map -= value_type(interval_type::right_open(lo,up), bits);}
+ void intersect_(DomainT lo, DomainT up, BitSetT bits){_map &= value_type(interval_type::right_open(lo,up), bits);}
+ void flip_(DomainT lo, DomainT up, BitSetT bits){_map ^= value_type(interval_type::right_open(lo,up), bits);}
+ //]
+
+//[large_bitmap_impl_map
+private:
+ interval_bitmap_type _map;
+//]
+};
+
+} // mini
+#endif
+
+
diff --git a/src/boost/libs/icl/example/large_bitset_/meta_log.hpp b/src/boost/libs/icl/example/large_bitset_/meta_log.hpp
new file mode 100644
index 000000000..5eb868f52
--- /dev/null
+++ b/src/boost/libs/icl/example/large_bitset_/meta_log.hpp
@@ -0,0 +1,26 @@
+/*-----------------------------------------------------------------------------+
+Author: Joachim Faulhaber
+Copyright (c) 2009-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+namespace mini // minimal implementations for example projects
+{
+// A meta implementation of an the logarithm function on integrals
+template <size_t Argument, size_t Base=2>
+struct log_{ enum { value = 1 + log_<Argument/Base, Base>::value }; };
+
+template <size_t Base>struct log_<1, Base>{ enum { value = 0 }; };
+template <size_t Base>struct log_<0, Base>{ enum { value = 0 }; };
+
+template <size_t Argument>
+struct log2_{ enum { value = log_<Argument, 2>::value }; };
+
+template <size_t Argument>
+struct power2_{ enum { value = 1 << Argument }; };
+
+} // namespace mini
+
diff --git a/src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj b/src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj
new file mode 100644
index 000000000..b474b623d
--- /dev/null
+++ b/src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-AA054DD53759}</ProjectGuid>
+ <RootNamespace>Large_bitset</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;../../boost_1_35_0/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;../../boost_1_35_0/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="large_bitset.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="bits.hpp" />
+ <ClInclude Include="large_bitset.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj.filters b/src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj.filters
new file mode 100644
index 000000000..489593d9e
--- /dev/null
+++ b/src/boost/libs/icl/example/large_bitset_/vc10_large_bitset.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="large_bitset.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="bits.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="large_bitset.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/large_bitset_/vc9_large_bitset.vcproj b/src/boost/libs/icl/example/large_bitset_/vc9_large_bitset.vcproj
new file mode 100644
index 000000000..355532e8b
--- /dev/null
+++ b/src/boost/libs/icl/example/large_bitset_/vc9_large_bitset.vcproj
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_large_bitset"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-AA054DD53759}"
+ RootNamespace="Large_bitset"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib;../../boost_1_35_0/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib;../../boost_1_35_0/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\large_bitset.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\bits.hpp"
+ >
+ </File>
+ <File
+ RelativePath=".\large_bitset.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/man_power_/man_power.cpp b/src/boost/libs/icl/example/man_power_/man_power.cpp
new file mode 100644
index 000000000..a095d0e3c
--- /dev/null
+++ b/src/boost/libs/icl/example/man_power_/man_power.cpp
@@ -0,0 +1,190 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example man_power.cpp \file man_power.cpp
+ \brief Using set style operators to compute with interval sets and maps.
+
+ Interval sets and maps can be filled and manipulated using
+ set style operation like union (+=), difference (-=) and intersection
+ (&=).
+
+ In this example 'man_power' a number of those operations are
+ demonstrated in the process of calculation the available working
+ times (man-power) of a company's employees accounting for weekends,
+ holidays, sickness times and vacations.
+
+ \include man_power_/man_power.cpp
+*/
+//[example_man_power
+// The next line includes <boost/gregorian/date.hpp>
+// and a few lines of adapter code.
+#include <boost/icl/gregorian.hpp>
+#include <iostream>
+#include <boost/icl/discrete_interval.hpp>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost::gregorian;
+using namespace boost::icl;
+
+
+// Function weekends returns the interval_set of weekends that are contained in
+// the date interval 'scope'
+interval_set<date> weekends(const discrete_interval<date>& scope)
+{
+ interval_set<date> weekends;
+
+ date cur_weekend_sat
+ = first(scope)
+ + days(days_until_weekday(first(scope), greg_weekday(Saturday)))
+ - weeks(1);
+ week_iterator week_iter(cur_weekend_sat);
+
+ for(; week_iter <= last(scope); ++week_iter)
+ weekends += discrete_interval<date>::right_open(*week_iter, *week_iter + days(2));
+
+ weekends &= scope; // cut off the surplus
+
+ return weekends;
+}
+
+// The available working time for the employees of a company is calculated
+// for a period of 3 months accounting for weekends and holidays.
+// The available daily working time for the employees is calculated
+// using interval_sets and interval_maps demonstrating a number of
+// addition, subtraction and intersection operations.
+void man_power()
+{
+ date someday = from_string("2008-08-01");
+ date thenday = someday + months(3);
+
+ discrete_interval<date> scope = discrete_interval<date>::right_open(someday, thenday);
+
+ // ------------------------------------------------------------------------
+ // (1) In a first step, the regular working times are computed for the
+ // company within the given scope. From all available days, the weekends
+ // and holidays have to be subtracted:
+ interval_set<date> worktime(scope);
+ // Subtract the weekends
+ worktime -= weekends(scope);
+ // Subtract holidays
+ worktime -= from_string("2008-10-03"); //German reunification ;)
+
+ // company holidays (fictitious ;)
+ worktime -= discrete_interval<date>::closed(from_string("2008-08-18"),
+ from_string("2008-08-22"));
+
+ //-------------------------------------------------------------------------
+ // (2) Now we calculate the individual work times for some employees
+ //-------------------------------------------------------------------------
+ // In the company works Claudia.
+ // This is the map of her regular working times:
+ interval_map<date,int> claudias_working_hours;
+
+ // Claudia is working 8 hours a day. So the next statement says
+ // that every day in the whole scope is mapped to 8 hours worktime.
+ claudias_working_hours += make_pair(scope, 8);
+
+ // But Claudia only works 8 hours on regular working days so we do
+ // an intersection of the interval_map with the interval_set worktime:
+ claudias_working_hours &= worktime;
+
+ // Yet, in addition Claudia has her own absence times like
+ discrete_interval<date> claudias_seminar (from_string("2008-09-16"),
+ from_string("2008-09-24"),
+ interval_bounds::closed());
+ discrete_interval<date> claudias_vacation(from_string("2008-08-01"),
+ from_string("2008-08-14"),
+ interval_bounds::closed());
+
+ interval_set<date> claudias_absence_times(claudias_seminar);
+ claudias_absence_times += claudias_vacation;
+
+ // All the absence times have to subtracted from the map of her working times
+ claudias_working_hours -= claudias_absence_times;
+
+ //-------------------------------------------------------------------------
+ // Claudia's boss is Bodo. He only works part time.
+ // This is the map of his regular working times:
+ interval_map<date,int> bodos_working_hours;
+
+ // Bodo is working 4 hours a day.
+ bodos_working_hours += make_pair(scope, 4);
+
+ // Bodo works only on regular working days
+ bodos_working_hours &= worktime;
+
+ // Bodos additional absence times
+ discrete_interval<date> bodos_flu(from_string("2008-09-19"), from_string("2008-09-29"),
+ interval_bounds::closed());
+ discrete_interval<date> bodos_vacation(from_string("2008-08-15"), from_string("2008-09-03"),
+ interval_bounds::closed());
+
+ interval_set<date> bodos_absence_times(bodos_flu);
+ bodos_absence_times += bodos_vacation;
+
+ // All the absence times have to be subtracted from the map of his working times
+ bodos_working_hours -= bodos_absence_times;
+
+ //-------------------------------------------------------------------------
+ // (3) Finally we want to calculate the available manpower of the company
+ // for the selected time scope: This is done by adding up the employees
+ // working time maps:
+ interval_map<date,int> manpower;
+ manpower += claudias_working_hours;
+ manpower += bodos_working_hours;
+
+
+ cout << first(scope) << " - " << last(scope)
+ << " available man-power:" << endl;
+ cout << "---------------------------------------------------------------\n";
+
+ for(interval_map<date,int>::iterator it = manpower.begin();
+ it != manpower.end(); it++)
+ {
+ cout << first(it->first) << " - " << last(it->first)
+ << " -> " << it->second << endl;
+ }
+}
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample man_power.cpp <<\n";
+ cout << "---------------------------------------------------------------\n";
+ man_power();
+ return 0;
+}
+
+// Program output:
+/*
+>>Interval Container Library: Sample man_power.cpp <<
+---------------------------------------------------------------
+2008-Aug-01 - 2008-Oct-31 available man-power:
+---------------------------------------------------------------
+2008-Aug-01 - 2008-Aug-01 -> 4
+2008-Aug-04 - 2008-Aug-08 -> 4
+2008-Aug-11 - 2008-Aug-14 -> 4
+2008-Aug-15 - 2008-Aug-15 -> 8
+2008-Aug-25 - 2008-Aug-29 -> 8
+2008-Sep-01 - 2008-Sep-03 -> 8
+2008-Sep-04 - 2008-Sep-05 -> 12
+2008-Sep-08 - 2008-Sep-12 -> 12
+2008-Sep-15 - 2008-Sep-15 -> 12
+2008-Sep-16 - 2008-Sep-18 -> 4
+2008-Sep-25 - 2008-Sep-26 -> 8
+2008-Sep-29 - 2008-Sep-29 -> 8
+2008-Sep-30 - 2008-Oct-02 -> 12
+2008-Oct-06 - 2008-Oct-10 -> 12
+2008-Oct-13 - 2008-Oct-17 -> 12
+2008-Oct-20 - 2008-Oct-24 -> 12
+2008-Oct-27 - 2008-Oct-31 -> 12
+*/
+//]
+
diff --git a/src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj b/src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj
new file mode 100644
index 000000000..0be5958cf
--- /dev/null
+++ b/src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-04ED0F38E8C2}</ProjectGuid>
+ <RootNamespace>Party</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="man_power.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_set.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_set.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj.filters b/src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj.filters
new file mode 100644
index 000000000..739b5e0bd
--- /dev/null
+++ b/src/boost/libs/icl/example/man_power_/vc10_man_power.vcxproj.filters
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="man_power.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/man_power_/vc9_man_power.vcproj b/src/boost/libs/icl/example/man_power_/vc9_man_power.vcproj
new file mode 100644
index 000000000..07cbc6a30
--- /dev/null
+++ b/src/boost/libs/icl/example/man_power_/vc9_man_power.vcproj
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_man_power"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-04ED0F38E8C2}"
+ RootNamespace="Party"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\man_power.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_set.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/month_and_week_grid_/month_and_week_grid.cpp b/src/boost/libs/icl/example/month_and_week_grid_/month_and_week_grid.cpp
new file mode 100644
index 000000000..ace4fe35c
--- /dev/null
+++ b/src/boost/libs/icl/example/month_and_week_grid_/month_and_week_grid.cpp
@@ -0,0 +1,140 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example month_and_week_grid.cpp \file month_and_week_grid.cpp
+ \brief Creating and combining time grids.
+
+ A split_interval_set preserves all interval borders on insertion
+ and intersection operations. So given a split_interval_set ...
+ \code
+ x = {[1, 3)}
+ x.add( [2, 4)) then
+ x == {[1,2)[2,3)[3,4)}
+ \endcode
+ ... using this property we can intersect splitting interval containers
+ in order to iterate over intervals accounting for all changes of
+ interval borders.
+
+ In this example we provide an intersection of two split_interval_sets
+ representing a month and week time grid.
+
+ \include month_and_week_grid_/month_and_week_grid.cpp
+*/
+//[example_month_and_week_grid
+// The next line includes <boost/gregorian/date.hpp>
+// and a few lines of adapter code.
+#include <boost/icl/gregorian.hpp>
+#include <iostream>
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost::gregorian;
+using namespace boost::icl;
+
+typedef split_interval_set<boost::gregorian::date> date_grid;
+
+// This function splits a gregorian::date interval 'scope' into a month grid:
+// For every month contained in 'scope' that month is contained as interval
+// in the resulting split_interval_set.
+date_grid month_grid(const discrete_interval<date>& scope)
+{
+ split_interval_set<date> month_grid;
+
+ date frame_months_1st = first(scope).end_of_month() + days(1) - months(1);
+ month_iterator month_iter(frame_months_1st);
+
+ for(; month_iter <= last(scope); ++month_iter)
+ month_grid += discrete_interval<date>::right_open(*month_iter, *month_iter + months(1));
+
+ month_grid &= scope; // cut off the surplus
+
+ return month_grid;
+}
+
+// This function splits a gregorian::date interval 'scope' into a week grid:
+// For every week contained in 'scope' that month is contained as interval
+// in the resulting split_interval_set.
+date_grid week_grid(const discrete_interval<date>& scope)
+{
+ split_interval_set<date> week_grid;
+
+ date frame_weeks_1st = first(scope) + days(days_until_weekday(first(scope), greg_weekday(Monday))) - weeks(1);
+ week_iterator week_iter(frame_weeks_1st);
+
+ for(; week_iter <= last(scope); ++week_iter)
+ week_grid.insert(discrete_interval<date>::right_open(*week_iter, *week_iter + weeks(1)));
+
+ week_grid &= scope; // cut off the surplus
+
+ return week_grid;
+}
+
+// For a period of two months, starting from today, the function
+// computes a partitioning for months and weeks using intersection
+// operator &= on split_interval_sets.
+void month_and_time_grid()
+{
+ date someday = day_clock::local_day();
+ date thenday = someday + months(2);
+
+ discrete_interval<date> itv = discrete_interval<date>::right_open(someday, thenday);
+
+ // Compute a month grid
+ date_grid month_and_week_grid = month_grid(itv);
+ // Intersection of the month and week grids:
+ month_and_week_grid &= week_grid(itv);
+
+ cout << "interval : " << first(itv) << " - " << last(itv)
+ << " month and week partitions:" << endl;
+ cout << "---------------------------------------------------------------\n";
+
+ for(date_grid::iterator it = month_and_week_grid.begin();
+ it != month_and_week_grid.end(); it++)
+ {
+ if(first(*it).day() == 1)
+ cout << "new month: ";
+ else if(first(*it).day_of_week()==greg_weekday(Monday))
+ cout << "new week : " ;
+ else if(it == month_and_week_grid.begin())
+ cout << "first day: " ;
+ cout << first(*it) << " - " << last(*it) << endl;
+ }
+}
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample month_and_time_grid.cpp <<\n";
+ cout << "---------------------------------------------------------------\n";
+ month_and_time_grid();
+ return 0;
+}
+
+// Program output:
+/*
+>>Interval Container Library: Sample month_and_time_grid.cpp <<
+---------------------------------------------------------------
+interval : 2008-Jun-22 - 2008-Aug-21 month and week partitions:
+---------------------------------------------------------------
+first day: 2008-Jun-22 - 2008-Jun-22
+new week : 2008-Jun-23 - 2008-Jun-29
+new week : 2008-Jun-30 - 2008-Jun-30
+new month: 2008-Jul-01 - 2008-Jul-06
+new week : 2008-Jul-07 - 2008-Jul-13
+new week : 2008-Jul-14 - 2008-Jul-20
+new week : 2008-Jul-21 - 2008-Jul-27
+new week : 2008-Jul-28 - 2008-Jul-31
+new month: 2008-Aug-01 - 2008-Aug-03
+new week : 2008-Aug-04 - 2008-Aug-10
+new week : 2008-Aug-11 - 2008-Aug-17
+new week : 2008-Aug-18 - 2008-Aug-21
+*/
+//]
+
diff --git a/src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj b/src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj
new file mode 100644
index 000000000..1586b2c55
--- /dev/null
+++ b/src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-CDC290478F78}</ProjectGuid>
+ <RootNamespace>Party</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="month_and_week_grid.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj.filters b/src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj.filters
new file mode 100644
index 000000000..f4eb9f24f
--- /dev/null
+++ b/src/boost/libs/icl/example/month_and_week_grid_/vc10_month_and_week_grid.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="month_and_week_grid.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj b/src/boost/libs/icl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj
new file mode 100644
index 000000000..f321dd99e
--- /dev/null
+++ b/src/boost/libs/icl/example/month_and_week_grid_/vc9_month_and_week_grid.vcproj
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_month_and_week_grid"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-CDC290478F78}"
+ RootNamespace="Party"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../bin/debug/"
+ IntermediateDirectory="../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../bin/release/"
+ IntermediateDirectory="../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\month_and_week_grid.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\split_interval_set.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/overlap_counter_/overlap_counter.cpp b/src/boost/libs/icl/example/overlap_counter_/overlap_counter.cpp
new file mode 100644
index 000000000..df852e417
--- /dev/null
+++ b/src/boost/libs/icl/example/overlap_counter_/overlap_counter.cpp
@@ -0,0 +1,108 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example overlap_counter.cpp \file overlap_counter.cpp
+
+ \brief The most simple application of an interval map:
+ Counting the overlaps of added intervals.
+
+ The most basic application of an interval_map is a counter counting
+ the number of overlaps of intervals inserted into it.
+
+ On could call an interval_map an aggregate on overlap machine. A very basic
+ aggregation is summation of an integer. A interval_map<int,int> maps
+ intervals of int to ints.
+
+ If we insert a value pair (discrete_interval<int>(2,6), 1) into the interval_map, it
+ increases the content of all value pairs in the map by 1, if their interval
+ part overlaps with discrete_interval<int>(2,6).
+
+ \include overlap_counter_/overlap_counter.cpp
+*/
+//[example_overlap_counter
+#include <iostream>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost::icl;
+
+
+/* The most simple example of an interval_map is an overlap counter.
+ If intervals are added that are associated with the value 1,
+ all overlaps of added intervals are counted as a result in the
+ associated values.
+*/
+typedef interval_map<int, int> OverlapCounterT;
+
+void print_overlaps(const OverlapCounterT& counter)
+{
+ for(OverlapCounterT::const_iterator it = counter.begin(); it != counter.end(); it++)
+ {
+ discrete_interval<int> itv = (*it).first;
+ int overlaps_count = (*it).second;
+ if(overlaps_count == 1)
+ cout << "in interval " << itv << " intervals do not overlap" << endl;
+ else
+ cout << "in interval " << itv << ": "<< overlaps_count << " intervals overlap" << endl;
+ }
+}
+
+void overlap_counter()
+{
+ OverlapCounterT overlap_counter;
+ discrete_interval<int> inter_val;
+
+ inter_val = discrete_interval<int>::right_open(4,8);
+ cout << "-- adding " << inter_val << " -----------------------------------------" << endl;
+ overlap_counter += make_pair(inter_val, 1);
+ print_overlaps(overlap_counter);
+ cout << "-----------------------------------------------------------" << endl;
+
+ inter_val = discrete_interval<int>::right_open(6,9);
+ cout << "-- adding " << inter_val << " -----------------------------------------" << endl;
+ overlap_counter += make_pair(inter_val, 1);
+ print_overlaps(overlap_counter);
+ cout << "-----------------------------------------------------------" << endl;
+
+ inter_val = discrete_interval<int>::right_open(1,9);
+ cout << "-- adding " << inter_val << " -----------------------------------------" << endl;
+ overlap_counter += make_pair(inter_val, 1);
+ print_overlaps(overlap_counter);
+ cout << "-----------------------------------------------------------" << endl;
+
+}
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample overlap_counter.cpp <<\n";
+ cout << "-----------------------------------------------------------\n";
+ overlap_counter();
+ return 0;
+}
+
+// Program output:
+
+// >>Interval Container Library: Sample overlap_counter.cpp <<
+// -----------------------------------------------------------
+// -- adding [4,8) -----------------------------------------
+// in interval [4,8) intervals do not overlap
+// -----------------------------------------------------------
+// -- adding [6,9) -----------------------------------------
+// in interval [4,6) intervals do not overlap
+// in interval [6,8): 2 intervals overlap
+// in interval [8,9) intervals do not overlap
+// -----------------------------------------------------------
+// -- adding [1,9) -----------------------------------------
+// in interval [1,4) intervals do not overlap
+// in interval [4,6): 2 intervals overlap
+// in interval [6,8): 3 intervals overlap
+// in interval [8,9): 2 intervals overlap
+// -----------------------------------------------------------
+//]
diff --git a/src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj b/src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj
new file mode 100644
index 000000000..ed0bc63b1
--- /dev/null
+++ b/src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-D75FD6990B83}</ProjectGuid>
+ <RootNamespace>overlap_counter</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="overlap_counter.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj.filters b/src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj.filters
new file mode 100644
index 000000000..0ecacfde7
--- /dev/null
+++ b/src/boost/libs/icl/example/overlap_counter_/vc10_overlap_counter.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="overlap_counter.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/overlap_counter_/vc9_overlap_counter.vcproj b/src/boost/libs/icl/example/overlap_counter_/vc9_overlap_counter.vcproj
new file mode 100644
index 000000000..6c5bc5f65
--- /dev/null
+++ b/src/boost/libs/icl/example/overlap_counter_/vc9_overlap_counter.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_overlap_counter"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-D75FD6990B83}"
+ RootNamespace="overlap_counter"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\overlap_counter.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/party_/party.cpp b/src/boost/libs/icl/example/party_/party.cpp
new file mode 100644
index 000000000..df660500e
--- /dev/null
+++ b/src/boost/libs/icl/example/party_/party.cpp
@@ -0,0 +1,109 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#include <iostream>
+#include <boost/icl/interval_map.hpp>
+#include "../toytime.hpp"
+
+using namespace std;
+using namespace boost::icl;
+
+/**
+ Party.cpp demonstrates the possibilities of an interval map (interval_map or
+ split_interval_map). An interval_map maps intervals to a given content. In
+ this case the content is a set of party guests represented by their name
+ strings.
+
+ As time goes by, groups of people join the party and leave later in the
+ evening. So we add a time interval and a name set to the interval_map for
+ the attendance of each group of people, that come together and leave
+ together.
+
+ On every overlap of intervals, the corresponding name sets are accumulated.
+ At the points of overlap the intervals are split. The accumulation of content
+ on overlap of intervals is always done via an operator += that has to be
+ implemented for the content parameter of the interval_map.
+
+ Finally the interval_map contains the history of attendance and all points
+ in time, where the group of party guests changed.
+
+ Party.cpp demonstrates a principle that we call aggregate on overlap
+ (aggovering;) On insertion a value associated to the interval is aggregated
+ (added) to those values in the interval_map that overlap with the inserted
+ value.
+
+ There are two behavioral aspects to aggovering: a decompositional behavior
+ and a accumulative behavior.
+
+ The decompositional behavior splits up intervals on the time dimension of
+ the interval_map so that the intervals change whenever associated values
+ change.
+
+ The accumulative behavior accumulates associated values on every overlap of
+ an insertion for the associated values.
+*/
+
+// Type set<string> collects the names of party guests. Since std::set is
+// a model of the itl's set concept, the concept provides an operator +=
+// that performs a set union on overlap of intervals.
+typedef std::set<string> GuestSetT;
+
+// 'Time' is the domain type the interval_map. It's key values are therefore
+// time intervals. The content is the set of names: GuestSetT.
+
+
+void party()
+{
+ GuestSetT mary_harry;
+ mary_harry.insert("Mary");
+ mary_harry.insert("Harry");
+
+ GuestSetT diana_susan;
+ diana_susan.insert("Diana");
+ diana_susan.insert("Susan");
+
+ GuestSetT peter;
+ peter.insert("Peter");
+
+ interval_map<Time, GuestSetT> party;
+
+ party += make_pair( interval<Time>::right_open(Time(19,30), Time(23,00)), mary_harry);
+ party += make_pair( interval<Time>::right_open(Time(20,10), Time(monday,0,0)), diana_susan);
+ party += make_pair( interval<Time>::right_open(Time(22,15), Time(monday,0,30)), peter);
+
+ interval_map<Time, GuestSetT>::iterator it = party.begin();
+ while(it != party.end())
+ {
+ discrete_interval<Time> when = it->first;
+ // Who is at the party within the time interval 'when' ?
+ GuestSetT who = (*it++).second;
+ cout << when << ": " << who << endl;
+ }
+}
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample party.cpp <<\n";
+ cout << "-------------------------------------------------------\n";
+ party();
+ return 0;
+}
+
+// Program output:
+
+// >>Interval Container Library: Sample party.cpp <<
+// -------------------------------------------------
+// [sun:19:30,sun:20:10): Harry Mary
+// [sun:20:10,sun:22:15): Diana Harry Mary Susan
+// [sun:22:15,sun:23:00): Diana Harry Mary Peter Susan
+// [sun:23:00,mon:00:00): Diana Peter Susan
+// [mon:00:00,mon:00:30): Peter
+
+
diff --git a/src/boost/libs/icl/example/party_/vc10_party.vcxproj b/src/boost/libs/icl/example/party_/vc10_party.vcxproj
new file mode 100644
index 000000000..1d6c16f9e
--- /dev/null
+++ b/src/boost/libs/icl/example/party_/vc10_party.vcxproj
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-AA054DD43759}</ProjectGuid>
+ <RootNamespace>Party</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;../../boost_1_35_0/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;../../boost_1_35_0/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="party.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/party_/vc10_party.vcxproj.filters b/src/boost/libs/icl/example/party_/vc10_party.vcxproj.filters
new file mode 100644
index 000000000..b082c17e2
--- /dev/null
+++ b/src/boost/libs/icl/example/party_/vc10_party.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="party.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/party_/vc9_party.vcproj b/src/boost/libs/icl/example/party_/vc9_party.vcproj
new file mode 100644
index 000000000..f5a1072ff
--- /dev/null
+++ b/src/boost/libs/icl/example/party_/vc9_party.vcproj
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_party"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-AA054DD43759}"
+ RootNamespace="Party"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib;../../boost_1_35_0/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib;../../boost_1_35_0/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\party.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/partys_height_average_/Jamfile.v2 b/src/boost/libs/icl/example/partys_height_average_/Jamfile.v2
new file mode 100644
index 000000000..cc035f2e3
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_height_average_/Jamfile.v2
@@ -0,0 +1,11 @@
+# (C) Copyright 2008: Joachim Faulhaber
+# 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)
+
+exe partys_height_average
+ :
+ partys_height_average.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
diff --git a/src/boost/libs/icl/example/partys_height_average_/partys_height_average.cpp b/src/boost/libs/icl/example/partys_height_average_/partys_height_average.cpp
new file mode 100644
index 000000000..a9af3fc26
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_height_average_/partys_height_average.cpp
@@ -0,0 +1,134 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/** Example partys_height_average.cpp \file partys_height_average.cpp
+ \brief Using <i>aggregate on overlap</i> a history of height averages of
+ party guests is computed.
+
+ In partys_height_average.cpp we compute yet another aggregation:
+ The average height of guests as it changes over time. This is done by
+ defining a class counted_sum that sums up heights and counts the number
+ of guests via an operator +=.
+
+ Based on the operator += we can aggregate counted sums on addition
+ of interval value pairs into an interval_map.
+
+ \include partys_height_average_/partys_height_average.cpp
+*/
+//[example_partys_height_average
+// The next line includes <boost/date_time/posix_time/posix_time.hpp>
+// and a few lines of adapter code.
+#include <boost/icl/ptime.hpp>
+#include <iostream>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost::posix_time;
+using namespace boost::icl;
+
+
+class counted_sum
+{
+public:
+ counted_sum():_sum(0),_count(0){}
+ counted_sum(int sum):_sum(sum),_count(1){}
+
+ int sum()const {return _sum;}
+ int count()const{return _count;}
+ double average()const{ return _count==0 ? 0.0 : _sum/static_cast<double>(_count); }
+
+ counted_sum& operator += (const counted_sum& right)
+ { _sum += right.sum(); _count += right.count(); return *this; }
+
+private:
+ int _sum;
+ int _count;
+};
+
+bool operator == (const counted_sum& left, const counted_sum& right)
+{ return left.sum()==right.sum() && left.count()==right.count(); }
+
+
+void partys_height_average()
+{
+ interval_map<ptime, counted_sum> height_sums;
+
+ height_sums +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 19:30"),
+ time_from_string("2008-05-20 23:00")),
+ counted_sum(165)); // Mary is 1,65 m tall.
+
+ height_sums +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 19:30"),
+ time_from_string("2008-05-20 23:00")),
+ counted_sum(180)); // Harry is 1,80 m tall.
+
+ height_sums +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 20:10"),
+ time_from_string("2008-05-21 00:00")),
+ counted_sum(170)); // Diana is 1,70 m tall.
+
+ height_sums +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 20:10"),
+ time_from_string("2008-05-21 00:00")),
+ counted_sum(165)); // Susan is 1,65 m tall.
+
+ height_sums +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 22:15"),
+ time_from_string("2008-05-21 00:30")),
+ counted_sum(200)); // Peters height is 2,00 m
+
+ interval_map<ptime, counted_sum>::iterator height_sum_ = height_sums.begin();
+ cout << "-------------- History of average guest height -------------------\n";
+ while(height_sum_ != height_sums.end())
+ {
+ discrete_interval<ptime> when = height_sum_->first;
+
+ double height_average = (*height_sum_++).second.average();
+ cout << setprecision(3)
+ << "[" << first(when) << " - " << upper(when) << ")"
+ << ": " << height_average <<" cm = " << height_average/30.48 << " ft" << endl;
+ }
+}
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample partys_height_average.cpp <<\n";
+ cout << "------------------------------------------------------------------\n";
+ partys_height_average();
+ return 0;
+}
+
+// Program output:
+/*-----------------------------------------------------------------------------
+>>Interval Container Library: Sample partys_height_average.cpp <<
+------------------------------------------------------------------
+-------------- History of average guest height -------------------
+[2008-May-20 19:30:00 - 2008-May-20 20:10:00): 173 cm = 5.66 ft
+[2008-May-20 20:10:00 - 2008-May-20 22:15:00): 170 cm = 5.58 ft
+[2008-May-20 22:15:00 - 2008-May-20 23:00:00): 176 cm = 5.77 ft
+[2008-May-20 23:00:00 - 2008-May-21 00:00:00): 178 cm = 5.85 ft
+[2008-May-21 00:00:00 - 2008-May-21 00:30:00): 200 cm = 6.56 ft
+-----------------------------------------------------------------------------*/
+//]
+
diff --git a/src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj b/src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj
new file mode 100644
index 000000000..cd72b5ea9
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-1907CC6633F8}</ProjectGuid>
+ <RootNamespace>Partys_height_average</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="partys_height_average.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj.filters b/src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj.filters
new file mode 100644
index 000000000..a4f459922
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_height_average_/vc10_partys_height_average.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="partys_height_average.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/partys_height_average_/vc9_partys_height_average.vcproj b/src/boost/libs/icl/example/partys_height_average_/vc9_partys_height_average.vcproj
new file mode 100644
index 000000000..8c981b07f
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_height_average_/vc9_partys_height_average.vcproj
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_partys_height_average"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-1907CC6633F8}"
+ RootNamespace="Partys_height_average"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\partys_height_average.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/partys_tallest_guests_/Jamfile.v2 b/src/boost/libs/icl/example/partys_tallest_guests_/Jamfile.v2
new file mode 100644
index 000000000..bf2ad30be
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_tallest_guests_/Jamfile.v2
@@ -0,0 +1,11 @@
+# (C) Copyright 2008: Joachim Faulhaber
+# 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)
+
+exe partys_tallest_guests
+ :
+ partys_tallest_guests.cpp
+ :
+ <include>../../..
+ <include>$(BOOST_ROOT)
+ ;
diff --git a/src/boost/libs/icl/example/partys_tallest_guests_/partys_tallest_guests.cpp b/src/boost/libs/icl/example/partys_tallest_guests_/partys_tallest_guests.cpp
new file mode 100644
index 000000000..ff1ae6858
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_tallest_guests_/partys_tallest_guests.cpp
@@ -0,0 +1,161 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/** Example partys_tallest_guests.cpp \file partys_tallest_guests.cpp
+ \brief Using <i>aggregate on overlap</i> the heights of the party's tallest
+ guests are computed.
+
+ In partys_tallest_guests.cpp we use a different instantiation of
+ interval map templates to compute maxima of guest heights.
+
+ Instead of aggregating groups of people attending the party in time
+ we aggregate the maximum of guest height for the time intervals.
+
+ Using a joining interval_map results in a smaller map: All interval
+ value pairs are joined if the maximum does not change in time. Using
+ a split_interval_map results in a larger map: All splits of intervals
+ that occur due to entering and leaving of guests are preserved in
+ the split_interval_map.
+
+ \include partys_tallest_guests_/partys_tallest_guests.cpp
+*/
+//[example_partys_tallest_guests
+// The next line includes <boost/date_time/posix_time/posix_time.hpp>
+// and a few lines of adapter code.
+#include <boost/icl/ptime.hpp>
+#include <iostream>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost::posix_time;
+using namespace boost::icl;
+
+
+// A party's height shall be defined as the maximum height of all guests ;-)
+// The last parameter 'inplace_max' is a functor template that calls a max
+// aggregation on overlap.
+typedef interval_map<ptime, int, partial_absorber, less, inplace_max>
+ PartyHeightHistoryT;
+
+// Using a split_interval_map we preserve interval splittings that occurred via insertion.
+typedef split_interval_map<ptime, int, partial_absorber, less, inplace_max>
+ PartyHeightSplitHistoryT;
+
+void partys_height()
+{
+ PartyHeightHistoryT tallest_guest;
+
+ tallest_guest +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 19:30"),
+ time_from_string("2008-05-20 23:00")),
+ 180); // Mary & Harry: Harry is 1,80 m tall.
+
+ tallest_guest +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 20:10"),
+ time_from_string("2008-05-21 00:00")),
+ 170); // Diana & Susan: Diana is 1,70 m tall.
+
+ tallest_guest +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 22:15"),
+ time_from_string("2008-05-21 00:30")),
+ 200); // Peters height is 2,00 m
+
+ PartyHeightHistoryT::iterator height_ = tallest_guest.begin();
+ cout << "-------------- History of maximum guest height -------------------\n";
+ while(height_ != tallest_guest.end())
+ {
+ discrete_interval<ptime> when = height_->first;
+ // Of what height are the tallest guests within the time interval 'when' ?
+ int height = (*height_++).second;
+ cout << "[" << first(when) << " - " << upper(when) << ")"
+ << ": " << height <<" cm = " << height/30.48 << " ft" << endl;
+ }
+
+}
+
+// Next we are using a split_interval_map instead of a joining interval_map
+void partys_split_height()
+{
+ PartyHeightSplitHistoryT tallest_guest;
+
+ // adding an element can be done wrt. simple aggregate functions
+ // like e.g. min, max etc. in their 'inplace' or op= incarnation
+ tallest_guest +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 19:30"),
+ time_from_string("2008-05-20 23:00")),
+ 180); // Mary & Harry: Harry is 1,80 m tall.
+
+ tallest_guest +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 20:10"),
+ time_from_string("2008-05-21 00:00")),
+ 170); // Diana & Susan: Diana is 1,70 m tall.
+
+ tallest_guest +=
+ make_pair(
+ discrete_interval<ptime>::right_open(
+ time_from_string("2008-05-20 22:15"),
+ time_from_string("2008-05-21 00:30")),
+ 200); // Peters height is 2,00 m
+
+ PartyHeightSplitHistoryT::iterator height_ = tallest_guest.begin();
+ cout << "\n";
+ cout << "-------- Split History of maximum guest height -------------------\n";
+ cout << "--- Same map as above but split for every interval insertion. ---\n";
+ while(height_ != tallest_guest.end())
+ {
+ discrete_interval<ptime> when = height_->first;
+ // Of what height are the tallest guests within the time interval 'when' ?
+ int height = (*height_++).second;
+ cout << "[" << first(when) << " - " << upper(when) << ")"
+ << ": " << height <<" cm = " << height/30.48 << " ft" << endl;
+ }
+
+}
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample partys_tallest_guests.cpp <<\n";
+ cout << "------------------------------------------------------------------\n";
+ partys_height();
+ partys_split_height();
+ return 0;
+}
+
+// Program output:
+/*-----------------------------------------------------------------------------
+>>Interval Container Library: Sample partys_tallest_guests.cpp <<
+------------------------------------------------------------------
+-------------- History of maximum guest height -------------------
+[2008-May-20 19:30:00 - 2008-May-20 22:15:00): 180 cm = 5.90551 ft
+[2008-May-20 22:15:00 - 2008-May-21 00:30:00): 200 cm = 6.56168 ft
+
+-------- Split History of maximum guest height -------------------
+--- Same map as above but split for every interval insertion. ---
+[2008-May-20 19:30:00 - 2008-May-20 20:10:00): 180 cm = 5.90551 ft
+[2008-May-20 20:10:00 - 2008-May-20 22:15:00): 180 cm = 5.90551 ft
+[2008-May-20 22:15:00 - 2008-May-20 23:00:00): 200 cm = 6.56168 ft
+[2008-May-20 23:00:00 - 2008-May-21 00:00:00): 200 cm = 6.56168 ft
+[2008-May-21 00:00:00 - 2008-May-21 00:30:00): 200 cm = 6.56168 ft
+-----------------------------------------------------------------------------*/
+//]
+
diff --git a/src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj b/src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj
new file mode 100644
index 000000000..1c152fb8d
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-1907CC6623F8}</ProjectGuid>
+ <RootNamespace>Partys_tallest_guests</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="partys_tallest_guests.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj.filters b/src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj.filters
new file mode 100644
index 000000000..c1a932631
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_tallest_guests_/vc10_partys_tallest_guests.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="partys_tallest_guests.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_base_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/partys_tallest_guests_/vc9_partys_tallest_guests.vcproj b/src/boost/libs/icl/example/partys_tallest_guests_/vc9_partys_tallest_guests.vcproj
new file mode 100644
index 000000000..6bcbd49b5
--- /dev/null
+++ b/src/boost/libs/icl/example/partys_tallest_guests_/vc9_partys_tallest_guests.vcproj
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_partys_tallest_guests"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-1907CC6623F8}"
+ RootNamespace="Partys_tallest_guests"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\partys_tallest_guests.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_base_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/splititvmap_shell_/splititvmap_shell.cpp b/src/boost/libs/icl/example/splititvmap_shell_/splititvmap_shell.cpp
new file mode 100644
index 000000000..549486da6
--- /dev/null
+++ b/src/boost/libs/icl/example/splititvmap_shell_/splititvmap_shell.cpp
@@ -0,0 +1,131 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2007-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------+
+splititvmap_shell.cpp provides a simple test shell for splitting interval maps.
+The shell also gives you a good idea how interval container are working.
++-----------------------------------------------------------------------------*/
+#include <iostream>
+
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+void instructions()
+{
+ cout << "+++++ Test shell for split interval map +++++\n";
+ cout << "Type: q e or 0 to quit\n";
+ cout << "Type: + for insertions\n";
+ cout << "Type: - for subtraction of ([a,b],value)\n";
+ cout << "Type: _ for subtraction of [a,b]\n";
+ cout << "Type: j to join contiguous intervals\n";
+ cout << "Type: s to compute total size\n";
+}
+
+void wrongInput()
+{
+ cout << "Wrong Input ------------------\n";
+ instructions();
+}
+
+
+template <class MapTV>
+void mapTestShell()
+{
+ MapTV m1;
+
+ try {
+ char cmd = 'b';
+ typename MapTV::domain_type
+ lwb = typename MapTV::domain_type(),
+ upb = typename MapTV::domain_type();
+
+ typename MapTV::codomain_type
+ val = typename MapTV::codomain_type();
+
+ instructions();
+
+ for(;;)
+ {
+ cout << "> ";
+ cin >> cmd ;
+
+ switch(cmd)
+ {
+ case 'q':
+ case 'e':
+ case '0': cout << "good bye\n"; return;
+ case '+':
+ {
+ cout << "input: lwb upb val >> ";
+ cin >> lwb >> upb >> val;
+ typename MapTV::interval_type
+ itv = typename MapTV::interval_type(lwb,upb);
+ m1 += make_pair(itv,val);
+
+ cout << "+" << itv << " " << val << " =" << endl;
+ cout << "{" << m1 << "}" << endl;
+
+ }
+ break;
+ case '-':
+ {
+ cout << "input: lwb upb val >> ";
+ cin >> lwb >> upb >> val;
+ typename MapTV::interval_type
+ itv = typename MapTV::interval_type(lwb,upb);
+ m1 -= make_pair(itv,val);
+
+ cout << "-" << itv << " " << val << " =" << endl;
+ cout << "{" << m1 << "}" << endl;
+
+ }
+ break;
+ case 'j':
+ {
+ icl::join(m1);
+ cout << "{" << m1 << "}" << endl;
+ }
+ break;
+ case 's':
+ {
+ cout << "size = " << m1.size() << endl;
+ }
+ break;
+
+ default: wrongInput();
+ }
+ } // end while
+ }
+ catch (exception& e)
+ {
+ cout << "splititvmap_shell: exception caught: " << endl
+ << e.what() << endl;
+ }
+ catch (...)
+ {
+ cout << "splititvmap_shell: unknown exception caught" << endl;
+ }
+}
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Test splititvmap_shell.cpp <<\n";
+ cout << "-----------------------------------------------------------\n";
+ mapTestShell< interval_map<int, int> >();
+
+ return 0;
+}
+
diff --git a/src/boost/libs/icl/example/splititvmap_shell_/vc9_splititvmap_shell.vcproj b/src/boost/libs/icl/example/splititvmap_shell_/vc9_splititvmap_shell.vcproj
new file mode 100644
index 000000000..c24c304c6
--- /dev/null
+++ b/src/boost/libs/icl/example/splititvmap_shell_/vc9_splititvmap_shell.vcproj
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_splititvmap_shell"
+ ProjectGUID="{639F6AD9-CD50-40BF-92B9-CC9DD069D65A}"
+ RootNamespace="splititvmap_shell"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/Debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\splititvmap_shell.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\split_interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/static_interval_/static_interval.cpp b/src/boost/libs/icl/example/static_interval_/static_interval.cpp
new file mode 100644
index 000000000..6ea17ede3
--- /dev/null
+++ b/src/boost/libs/icl/example/static_interval_/static_interval.cpp
@@ -0,0 +1,123 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example static_interval.cpp \file static_interval.cpp
+ \brief Intervals with static interval bounds.
+
+ Intervals types with static or fixed interval bounds. Statically
+ bounded intervals use up to 33% less memory than dynamically
+ bounded ones. Of the four possible statically bounded intervals types
+ right_open_intervals are the most important ones. We can switch the
+ library default to statically bounded intervals by defining
+ BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS.
+
+ \include static_interval_/static_interval.cpp
+*/
+//[example_static_interval
+#include <iostream>
+#include <string>
+#include <math.h>
+#include <boost/type_traits/is_same.hpp>
+
+// We can change the library default for the interval types by defining
+#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+// prior to other inluces from the icl.
+// The interval type that is automatically used with interval
+// containers then is the statically bounded right_open_interval.
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+// The statically bounded interval type 'right_open_interval'
+// is indirectly included via interval containers.
+
+
+#include "../toytime.hpp"
+#include <boost/icl/rational.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+int main()
+{
+ cout << ">> Interval Container Library: Sample static_interval.cpp <<\n";
+ cout << "------------------------------------------------------------\n";
+
+ // Statically bounded intervals are the user defined library default for
+ // interval parameters in interval containers now.
+ BOOST_STATIC_ASSERT((
+ boost::is_same< interval_set<int>::interval_type
+ , right_open_interval<int> >::value
+ ));
+
+ BOOST_STATIC_ASSERT((
+ boost::is_same< interval_set<float>::interval_type
+ , right_open_interval<float> >::value
+ ));
+
+ // As we can see the library default both for discrete and continuous
+ // domain_types T is 'right_open_interval<T>'.
+ // The user defined library default for intervals is also available via
+ // the template 'interval':
+ BOOST_STATIC_ASSERT((
+ boost::is_same< interval<int>::type
+ , right_open_interval<int> >::value
+ ));
+
+ // Again we are declaring and initializing the four test intervals that have been used
+ // in the example 'interval' and 'dynamic_interval'
+ interval<int>::type int_interval = interval<int>::right_open(3, 8); // shifted the upper bound
+ interval<double>::type sqrt_interval = interval<double>::right_open(1/sqrt(2.0), sqrt(2.0));
+
+ // Interval ("Barcelona", "Boston"] can not be represented because there is no 'steppable next' on
+ // lower bound "Barcelona". Ok. this is a different interval:
+ interval<string>::type city_interval = interval<string>::right_open("Barcelona", "Boston");
+
+ // Toy Time is discrete again so we can transfrom open(Time(monday,8,30), Time(monday,17,20))
+ // to right_open(Time(monday,8,31), Time(monday,17,20))
+ interval<Time>::type time_interval = interval<Time>::right_open(Time(monday,8,31), Time(monday,17,20));
+
+ cout << "----- Statically bounded intervals ----------------------------------------\n";
+ cout << "right_open_interval<int> : " << int_interval << endl;
+ cout << "right_open_interval<double>: " << sqrt_interval << " does "
+ << string(contains(sqrt_interval, sqrt(2.0))?"":"NOT")
+ << " contain sqrt(2)" << endl;
+ cout << "right_open_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval,"Barcelona")?"":"NOT")
+ << " contain 'Barcelona'" << endl;
+ cout << "right_open_interval<string>: " << city_interval << " does "
+ << string(contains(city_interval, "Boston")?"":"NOT")
+ << " contain 'Boston'" << endl;
+ cout << "right_open_interval<Time> : " << time_interval << "\n\n";
+
+ // Using statically bounded intervals does not allows to apply operations
+ // with elements on all interval containers, if their domain_type is continuous.
+ // The code that follows is identical to example 'dynamic_interval'. Only 'internally'
+ // the library default for the interval template now is 'right_open_interval'
+ interval<rational<int> >::type unit_interval
+ = interval<rational<int> >::right_open(rational<int>(0), rational<int>(1));
+ interval_set<rational<int> > unit_set(unit_interval);
+ interval_set<rational<int> > ratio_set(unit_set);
+ // ratio_set -= rational<int>(1,3); // This line will not compile, because we can not
+ // represent a singleton interval as right_open_interval.
+ return 0;
+}
+
+// Program output:
+//>> Interval Container Library: Sample static_interval.cpp <<
+//------------------------------------------------------------
+//----- Statically bounded intervals ----------------------------------------
+//right_open_interval<int> : [3,8)
+//right_open_interval<double>: [0.707107,1.41421) does NOT contain sqrt(2)
+//right_open_interval<string>: [Barcelona,Boston) does contain 'Barcelona'
+//right_open_interval<string>: [Barcelona,Boston) does NOT contain 'Boston'
+//right_open_interval<Time> : [mon:08:31,mon:17:20)
+//]
+
diff --git a/src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj b/src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj
new file mode 100644
index 000000000..978ca07ef
--- /dev/null
+++ b/src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D4A9F7C}</ProjectGuid>
+ <RootNamespace>Static_interval</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="static_interval.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\static_interval.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj.filters b/src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj.filters
new file mode 100644
index 000000000..ccc7c12c4
--- /dev/null
+++ b/src/boost/libs/icl/example/static_interval_/vc10_static_interval.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="static_interval.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\static_interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/static_interval_/vc9_static_interval.vcproj b/src/boost/libs/icl/example/static_interval_/vc9_static_interval.vcproj
new file mode 100644
index 000000000..2607941da
--- /dev/null
+++ b/src/boost/libs/icl/example/static_interval_/vc9_static_interval.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_static_interval"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}"
+ RootNamespace="Static_interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\static_interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\static_interval.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/std_copy_/std_copy.cpp b/src/boost/libs/icl/example/std_copy_/std_copy.cpp
new file mode 100644
index 000000000..946125015
--- /dev/null
+++ b/src/boost/libs/icl/example/std_copy_/std_copy.cpp
@@ -0,0 +1,105 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example std_copy.cpp \file std_copy.cpp
+ \brief Fill interval containers using std::copy.
+
+ Example std_copy shows how algorithm std::copy can be used to
+ fill interval containers from other std::containers and how copying
+ to interval containers differs from other uses of std::copy.
+
+ \include std_copy_/std_copy.cpp
+*/
+//[example_std_copy
+#include <iostream>
+#include <vector>
+#include <algorithm>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+// 'make_segments' returns a vector of interval value pairs, which
+// are not sorted. The values are taken from the minimal example
+// in section 'interval combining styles'.
+vector<pair<discrete_interval<int>, int> > make_segments()
+{
+ vector<pair<discrete_interval<int>, int> > segment_vec;
+ segment_vec.push_back(make_pair(discrete_interval<int>::right_open(2,4), 1));
+ segment_vec.push_back(make_pair(discrete_interval<int>::right_open(4,5), 1));
+ segment_vec.push_back(make_pair(discrete_interval<int>::right_open(1,3), 1));
+ return segment_vec;
+}
+
+// 'show_segments' displays the source segements.
+void show_segments(const vector<pair<discrete_interval<int>, int> >& segments)
+{
+ vector<pair<discrete_interval<int>, int> >::const_iterator iter = segments.begin();
+ while(iter != segments.end())
+ {
+ cout << "(" << iter->first << "," << iter->second << ")";
+ ++iter;
+ }
+}
+
+void std_copy()
+{
+ // So we have some segments stored in an std container.
+ vector<pair<discrete_interval<int>, int> > segments = make_segments();
+ // Display the input
+ cout << "input sequence: "; show_segments(segments); cout << "\n\n";
+
+ // We are going to 'std::copy' those segments into an interval_map:
+ interval_map<int,int> segmap;
+
+ // Use an 'icl::inserter' from <boost/icl/iterator.hpp> to call
+ // insertion on the interval container.
+ std::copy(segments.begin(), segments.end(),
+ icl::inserter(segmap, segmap.end()));
+ cout << "icl::inserting: " << segmap << endl;
+ segmap.clear();
+
+ // When we are feeding data into interval_maps, most of the time we are
+ // intending to compute an aggregation result. So we are not interested
+ // the std::insert semantincs but the aggregating icl::addition semantics.
+ // To achieve this there is an icl::add_iterator and an icl::adder function
+ // provided in <boost/icl/iterator.hpp>.
+ std::copy(segments.begin(), segments.end(),
+ icl::adder(segmap, segmap.end())); //Aggregating associated values
+ cout << "icl::adding : " << segmap << endl;
+
+ // In this last case, the semantics of 'std::copy' transforms to the
+ // generalized addition operation, that is implemented by operator
+ // += or + on itl maps and sets.
+}
+
+int main()
+{
+ cout << ">> Interval Container Library: Example std_copy.cpp <<\n";
+ cout << "-----------------------------------------------------------\n";
+ cout << "Using std::copy to fill an interval_map:\n\n";
+
+ std_copy();
+ return 0;
+}
+
+// Program output:
+/*---------------------------------------------------------
+>> Interval Container Library: Example std_copy.cpp <<
+-----------------------------------------------------------
+Using std::copy to fill an interval_map:
+
+input sequence: ([2,4),1)([4,5),1)([1,3),1)
+
+icl::inserting: {([1,5)->1)}
+icl::adding : {([1,2)->1)([2,3)->2)([3,5)->1)}
+---------------------------------------------------------*/
+//]
diff --git a/src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj b/src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj
new file mode 100644
index 000000000..41cb9d362
--- /dev/null
+++ b/src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-D75FD6990B84}</ProjectGuid>
+ <RootNamespace>std_copy</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="std_copy.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj.filters b/src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj.filters
new file mode 100644
index 000000000..783e0edab
--- /dev/null
+++ b/src/boost/libs/icl/example/std_copy_/vc10_std_copy.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="std_copy.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/std_copy_/vc9_std_copy.vcproj b/src/boost/libs/icl/example/std_copy_/vc9_std_copy.vcproj
new file mode 100644
index 000000000..713184171
--- /dev/null
+++ b/src/boost/libs/icl/example/std_copy_/vc9_std_copy.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_std_copy"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-D75FD6990B84}"
+ RootNamespace="std_copy"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\std_copy.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/std_transform_/std_transform.cpp b/src/boost/libs/icl/example/std_transform_/std_transform.cpp
new file mode 100644
index 000000000..dcc16e2f1
--- /dev/null
+++ b/src/boost/libs/icl/example/std_transform_/std_transform.cpp
@@ -0,0 +1,149 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example std_transform.cpp \file std_transform.cpp
+ \brief Fill interval containers from user defined objects using std::transform.
+
+ Example std_transform shows how algorithm std::transform can be used to
+ fill interval containers from std::containers of objects of a user
+ defined class.
+
+ \include std_transform_/std_transform.cpp
+*/
+//[example_std_transform
+#include <iostream>
+#include <vector>
+#include <algorithm>
+#include <boost/icl/split_interval_map.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace boost::icl;
+
+// Suppose we are working with a class called MyObject, containing some
+// information about interval bounds e.g. _from, _to and some data members
+// that carry associated information like e.g. _value.
+class MyObject
+{
+public:
+ MyObject(){}
+ MyObject(int from, int to, int value): _from(from), _to(to), _value(value){}
+ int from()const {return _from;}
+ int to()const {return _to;}
+ int value()const{return _value;}
+private:
+ int _from;
+ int _to;
+ int _value;
+};
+
+// ... in order to use the std::transform algorithm to fill
+// interval maps with MyObject data we need a function
+// 'to_segment' that maps an object of type MyObject into
+// the value type to the interval map we want to tranform to ...
+pair<discrete_interval<int>, int> to_segment(const MyObject& myObj)
+{
+ return std::pair< discrete_interval<int>, int >
+ (discrete_interval<int>::closed(myObj.from(), myObj.to()), myObj.value());
+}
+
+// ... there may be another function that returns the interval
+// of an object only
+discrete_interval<int> to_interval(const MyObject& myObj)
+{
+ return discrete_interval<int>::closed(myObj.from(), myObj.to());
+}
+
+
+// ... make_object computes a sequence of objects to test.
+vector<MyObject> make_objects()
+{
+ vector<MyObject> object_vec;
+ object_vec.push_back(MyObject(2,3,1));
+ object_vec.push_back(MyObject(4,4,1));
+ object_vec.push_back(MyObject(1,2,1));
+ return object_vec;
+}
+
+// ... show_objects displays the sequence of input objects.
+void show_objects(const vector<MyObject>& objects)
+{
+ vector<MyObject>::const_iterator iter = objects.begin();
+ while(iter != objects.end())
+ {
+ cout << "([" << iter->from() << "," << iter->to() << "],"
+ << iter->value() << ")";
+ ++iter;
+ }
+}
+
+
+void std_transform()
+{
+ // This time we want to transform objects into a splitting interval map:
+ split_interval_map<int,int> segmap;
+ vector<MyObject> myObjects = make_objects();
+
+ // Display the input
+ cout << "input sequence: "; show_objects(myObjects); cout << "\n\n";
+
+ // Use an icl::inserter to fill the interval map via inserts
+ std::transform(myObjects.begin(), myObjects.end(),
+ icl::inserter(segmap, segmap.end()),
+ to_segment);
+ cout << "icl::inserting: " << segmap << endl;
+ segmap.clear();
+
+ // In order to compute aggregation results on associated values, we
+ // usually want to use an icl::adder instead of an std or icl::inserter
+ std::transform(myObjects.begin(), myObjects.end(),
+ icl::adder(segmap, segmap.end()),
+ to_segment);
+ cout << "icl::adding : " << segmap << "\n\n";
+
+ separate_interval_set<int> segset;
+ std::transform(myObjects.begin(), myObjects.end(),
+ icl::adder (segset, segset.end()),
+ // could be a icl::inserter(segset, segset.end()), here: same effect
+ to_interval);
+
+ cout << "Using std::transform to fill a separate_interval_set:\n\n";
+ cout << "icl::adding : " << segset << "\n\n";
+}
+
+
+int main()
+{
+ cout << ">> Interval Container Library: Example std_transform.cpp <<\n";
+ cout << "------------------------------------------------------------\n";
+ cout << "Using std::transform to fill a split_interval_map:\n\n";
+
+ std_transform();
+ return 0;
+}
+
+// Program output:
+/*----------------------------------------------------------
+>> Interval Container Library: Example std_transform.cpp <<
+------------------------------------------------------------
+Using std::transform to fill a split_interval_map:
+
+input sequence: ([2,3],1)([4,4],1)([1,2],1)
+
+icl::inserting: {([1,2)->1)([2,3]->1)([4,4]->1)}
+icl::adding : {([1,2)->1)([2,2]->2)((2,3]->1)([4,4]->1)}
+
+Using std::transform to fill a separate_interval_set:
+
+icl::adding : {[1,3][4,4]}
+----------------------------------------------------------*/
+//]
+
diff --git a/src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj b/src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj
new file mode 100644
index 000000000..a80aac290
--- /dev/null
+++ b/src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-D75FD6990B85}</ProjectGuid>
+ <RootNamespace>std_transform</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="std_transform.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp" />
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_map.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj.filters b/src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj.filters
new file mode 100644
index 000000000..0aebee161
--- /dev/null
+++ b/src/boost/libs/icl/example/std_transform_/vc10_std_transform.vcxproj.filters
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="std_transform.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/std_transform_/vc9_std_transform.vcproj b/src/boost/libs/icl/example/std_transform_/vc9_std_transform.vcproj
new file mode 100644
index 000000000..6bf819732
--- /dev/null
+++ b/src/boost/libs/icl/example/std_transform_/vc9_std_transform.vcproj
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_std_transform"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-D75FD6990B85}"
+ RootNamespace="std_transform"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\std_transform.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\separate_interval_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\boost\itl\split_interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/toytime.hpp b/src/boost/libs/icl/example/toytime.hpp
new file mode 100644
index 000000000..300628782
--- /dev/null
+++ b/src/boost/libs/icl/example/toytime.hpp
@@ -0,0 +1,74 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2007-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#include <boost/config.hpp>
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable:4996) // This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+#endif
+
+namespace boost{namespace icl
+{
+
+/** Time is a toy-class to demonstrate a class that conforms the requirements of
+ a template parameter for class template icl::interval.
+
+ In real world applications you may want to use the integer representation of a
+ time variable. That way intervals and their containers are working most efficiently.
+*/
+
+enum {sunday=0, monday, tuesday, wednesday, thursday, friday, saturday};
+static const char* daynames[] = {"sun", "mon", "tue", "wed", "thu", "fri", "sat"};
+
+class Time
+{
+public:
+ Time(): m_time(0) {}
+ Time(int hours, int minutes): m_time(60*hours+minutes) {}
+ Time(int day, int hours, int minutes): m_time((24*60)*day+60*hours+minutes) {}
+ int getDay()const { return m_time/(24*60); }
+ int getHours()const { return (m_time%(24*60))/60; }
+ int getMinutes()const { return (m_time%(24*60))%60; }
+ int asInt()const { return m_time; }
+ std::string getDayString()const { return daynames[getDay()]; }
+
+ std::string as_string()const
+ {
+ const int MAX_TIMESTING_LEN = 256;
+ char repr[MAX_TIMESTING_LEN];
+ sprintf(repr, "%3s:%02d:%02d", getDayString().c_str(), getHours(), getMinutes());
+ return std::string(repr);
+ }
+
+ Time& operator ++ () { m_time++; return *this; }
+ Time& operator -- () { m_time--; return *this; }
+
+private:
+ int m_time;
+};
+
+
+bool operator < (const Time& x1, const Time& x2) { return x1.asInt() < x2.asInt(); }
+bool operator == (const Time& x1, const Time& x2) { return x1.asInt() == x2.asInt(); }
+bool operator <= (const Time& x1, const Time& x2) { return x1.asInt() <= x2.asInt(); }
+
+
+template<class CharType, class CharTraits>
+std::basic_ostream<CharType, CharTraits> &operator<<
+ (std::basic_ostream<CharType, CharTraits> &stream, Time const& value)
+{
+ return stream << value.as_string();
+}
+
+}} // namespace icl boost
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
diff --git a/src/boost/libs/icl/example/user_groups_/user_groups.cpp b/src/boost/libs/icl/example/user_groups_/user_groups.cpp
new file mode 100644
index 000000000..a04be5196
--- /dev/null
+++ b/src/boost/libs/icl/example/user_groups_/user_groups.cpp
@@ -0,0 +1,197 @@
+/*-----------------------------------------------------------------------------+
+Interval Container Library
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 1999-2006: Cortex Software GmbH, Kantstrasse 57, Berlin
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+/** Example user_groups.cpp \file user_groups.cpp
+ \brief Shows the availability of set operations on interval maps.
+
+ In the example there is a user group 'med_users' of a hosptial staff
+ that has the authorisation to handle medical data of patients.
+ User group 'admin_users' has access to administrative data like
+ health insurance and invoice data.
+
+ The membership for each user in one of the user groups has a time
+ interval of validity. The group membership begins and ends.
+
+ Using a union operation '+' we can have an overview over both
+ user groups and the membership dates of employees.
+
+ Computing an intersection '&' shows the super users. The persons
+ that are members of both med_users and admin_users and the times
+ of the joint memberships.
+
+ \include user_groups_/user_groups.cpp
+*/
+//[example_user_groups
+// The next line includes <boost/gregorian/date.hpp>
+// and a few lines of adapter code.
+#include <boost/icl/gregorian.hpp>
+#include <iostream>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost::gregorian;
+using namespace boost::icl;
+
+// Type icl::set<string> collects the names a user group's members. Therefore
+// it needs to implement operator += that performs a set union on overlap of
+// intervals.
+typedef std::set<string> MemberSetT;
+
+// boost::gregorian::date is the domain type the interval map.
+// It's key values are therefore time intervals: discrete_interval<date>. The content
+// is the set of names: MemberSetT.
+typedef interval_map<date, MemberSetT> MembershipT;
+
+// Collect user groups for medical and administrative staff and perform
+// union and intersection operations on the collected membership schedules.
+void user_groups()
+{
+ MemberSetT mary_harry;
+ mary_harry.insert("Mary");
+ mary_harry.insert("Harry");
+
+ MemberSetT diana_susan;
+ diana_susan.insert("Diana");
+ diana_susan.insert("Susan");
+
+ MemberSetT chief_physician;
+ chief_physician.insert("Dr.Jekyll");
+
+ MemberSetT director_of_admin;
+ director_of_admin.insert("Mr.Hyde");
+
+ //----- Collecting members of user group: med_users -------------------
+ MembershipT med_users;
+
+ med_users.add( // add and element
+ make_pair(
+ discrete_interval<date>::closed(
+ from_string("2008-01-01"), from_string("2008-12-31")), mary_harry));
+
+ med_users += // element addition can also be done via operator +=
+ make_pair(
+ discrete_interval<date>::closed(
+ from_string("2008-01-15"), from_string("2008-12-31")),
+ chief_physician);
+
+ med_users +=
+ make_pair(
+ discrete_interval<date>::closed(
+ from_string("2008-02-01"), from_string("2008-10-15")),
+ director_of_admin);
+
+ //----- Collecting members of user group: admin_users ------------------
+ MembershipT admin_users;
+
+ admin_users += // element addition can also be done via operator +=
+ make_pair(
+ discrete_interval<date>::closed(
+ from_string("2008-03-20"), from_string("2008-09-30")), diana_susan);
+
+ admin_users +=
+ make_pair(
+ discrete_interval<date>::closed(
+ from_string("2008-01-15"), from_string("2008-12-31")),
+ chief_physician);
+
+ admin_users +=
+ make_pair(
+ discrete_interval<date>::closed(
+ from_string("2008-02-01"), from_string("2008-10-15")),
+ director_of_admin);
+
+ MembershipT all_users = med_users + admin_users;
+
+ MembershipT super_users = med_users & admin_users;
+
+ MembershipT::iterator med_ = med_users.begin();
+ cout << "----- Membership of medical staff -----------------------------------\n";
+ while(med_ != med_users.end())
+ {
+ discrete_interval<date> when = (*med_).first;
+ // Who is member of group med_users within the time interval 'when' ?
+ MemberSetT who = (*med_++).second;
+ cout << "[" << first(when) << " - " << last(when) << "]"
+ << ": " << who << endl;
+ }
+
+ MembershipT::iterator admin_ = admin_users.begin();
+ cout << "----- Membership of admin staff -------------------------------------\n";
+ while(admin_ != admin_users.end())
+ {
+ discrete_interval<date> when = (*admin_).first;
+ // Who is member of group admin_users within the time interval 'when' ?
+ MemberSetT who = (*admin_++).second;
+ cout << "[" << first(when) << " - " << last(when) << "]"
+ << ": " << who << endl;
+ }
+
+ MembershipT::iterator all_ = all_users.begin();
+ cout << "----- Membership of all users (med + admin) -------------------------\n";
+ while(all_ != all_users.end())
+ {
+ discrete_interval<date> when = (*all_).first;
+ // Who is member of group med_users OR admin_users ?
+ MemberSetT who = (*all_++).second;
+ cout << "[" << first(when) << " - " << last(when) << "]"
+ << ": " << who << endl;
+ }
+
+ MembershipT::iterator super_ = super_users.begin();
+ cout << "----- Membership of super users: intersection(med,admin) ------------\n";
+ while(super_ != super_users.end())
+ {
+ discrete_interval<date> when = (*super_).first;
+ // Who is member of group med_users AND admin_users ?
+ MemberSetT who = (*super_++).second;
+ cout << "[" << first(when) << " - " << last(when) << "]"
+ << ": " << who << endl;
+ }
+
+}
+
+
+int main()
+{
+ cout << ">>Interval Container Library: Sample user_groups.cpp <<\n";
+ cout << "-------------------------------------------------------\n";
+ user_groups();
+ return 0;
+}
+
+// Program output:
+/*-----------------------------------------------------------------------------
+>>Interval Container Library: Sample user_groups.cpp <<
+-------------------------------------------------------
+----- Membership of medical staff -----------------------------------
+[2008-Jan-01 - 2008-Jan-14]: Harry Mary
+[2008-Jan-15 - 2008-Jan-31]: Dr.Jekyll Harry Mary
+[2008-Feb-01 - 2008-Oct-15]: Dr.Jekyll Harry Mary Mr.Hyde
+[2008-Oct-16 - 2008-Dec-31]: Dr.Jekyll Harry Mary
+----- Membership of admin staff -------------------------------------
+[2008-Jan-15 - 2008-Jan-31]: Dr.Jekyll
+[2008-Feb-01 - 2008-Mar-19]: Dr.Jekyll Mr.Hyde
+[2008-Mar-20 - 2008-Sep-30]: Diana Dr.Jekyll Mr.Hyde Susan
+[2008-Oct-01 - 2008-Oct-15]: Dr.Jekyll Mr.Hyde
+[2008-Oct-16 - 2008-Dec-31]: Dr.Jekyll
+----- Membership of all users (med + admin) -------------------------
+[2008-Jan-01 - 2008-Jan-14]: Harry Mary
+[2008-Jan-15 - 2008-Jan-31]: Dr.Jekyll Harry Mary
+[2008-Feb-01 - 2008-Mar-19]: Dr.Jekyll Harry Mary Mr.Hyde
+[2008-Mar-20 - 2008-Sep-30]: Diana Dr.Jekyll Harry Mary Mr.Hyde Susan
+[2008-Oct-01 - 2008-Oct-15]: Dr.Jekyll Harry Mary Mr.Hyde
+[2008-Oct-16 - 2008-Dec-31]: Dr.Jekyll Harry Mary
+----- Membership of super users: intersection(med,admin) ------------
+[2008-Jan-15 - 2008-Jan-31]: Dr.Jekyll
+[2008-Feb-01 - 2008-Oct-15]: Dr.Jekyll Mr.Hyde
+[2008-Oct-16 - 2008-Dec-31]: Dr.Jekyll
+-----------------------------------------------------------------------------*/
+//]
+
diff --git a/src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj b/src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj
new file mode 100644
index 000000000..29b102289
--- /dev/null
+++ b/src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-DC88DD5BF4A1}</ProjectGuid>
+ <RootNamespace>User_groups</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="user_groups.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj.filters b/src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj.filters
new file mode 100644
index 000000000..aad092bfd
--- /dev/null
+++ b/src/boost/libs/icl/example/user_groups_/vc10_user_groups.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="user_groups.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\interval_map.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ReadMe.txt" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/example/user_groups_/vc9_user_groups.vcproj b/src/boost/libs/icl/example/user_groups_/vc9_user_groups.vcproj
new file mode 100644
index 000000000..6934088b1
--- /dev/null
+++ b/src/boost/libs/icl/example/user_groups_/vc9_user_groups.vcproj
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_user_groups"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-DC88DD5BF4A1}"
+ RootNamespace="User_groups"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="true"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ UseUnicodeResponseFiles="true"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ UseUnicodeResponseFiles="false"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ IgnoreAllDefaultLibraries="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\user_groups.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\interval_map.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/example/vc10_icl_examples.sln b/src/boost/libs/icl/example/vc10_icl_examples.sln
new file mode 100644
index 000000000..6da2c8cae
--- /dev/null
+++ b/src/boost/libs/icl/example/vc10_icl_examples.sln
@@ -0,0 +1,110 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_boost_party", "boost_party_\vc10_boost_party.vcxproj", "{DD9C9854-3882-42B9-BFA2-1907CC6613F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_custom_interval", "custom_interval_\vc10_custom_interval.vcxproj", "{DD9C9854-3882-42B9-BFA2-1907CC6614F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_dynamic_interval", "dynamic_interval_\vc10_dynamic_interval.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D3A9F7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_interval", "interval_\vc10_interval.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_interval_container", "interval_container_\vc10_interval_container.vcxproj", "{DD9C9854-3882-42B9-BFA2-E91A07F9DD81}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_large_bitset", "large_bitset_\vc10_large_bitset.vcxproj", "{DD9C9854-3882-42B9-BFA2-AA054DD53759}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_man_power", "man_power_\vc10_man_power.vcxproj", "{DD9C9854-3882-42B9-BFA2-04ED0F38E8C2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_month_and_week_grid", "month_and_week_grid_\vc10_month_and_week_grid.vcxproj", "{DD9C9854-3882-42B9-BFA2-CDC290478F78}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_overlap_counter", "overlap_counter_\vc10_overlap_counter.vcxproj", "{DD9C9854-3882-42B9-BFA2-D75FD6990B83}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_party", "party_\vc10_party.vcxproj", "{DD9C9854-3882-42B9-BFA2-AA054DD43759}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_partys_height_average", "partys_height_average_\vc10_partys_height_average.vcxproj", "{DD9C9854-3882-42B9-BFA2-1907CC6633F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_partys_tallest_guests", "partys_tallest_guests_\vc10_partys_tallest_guests.vcxproj", "{DD9C9854-3882-42B9-BFA2-1907CC6623F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_static_interval", "static_interval_\vc10_static_interval.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D4A9F7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_std_copy", "std_copy_\vc10_std_copy.vcxproj", "{DD9C9854-3882-42B9-BFA2-D75FD6990B84}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_std_transform", "std_transform_\vc10_std_transform.vcxproj", "{DD9C9854-3882-42B9-BFA2-D75FD6990B85}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_user_groups", "user_groups_\vc10_user_groups.vcxproj", "{DD9C9854-3882-42B9-BFA2-DC88DD5BF4A1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DD9C9854-3882-42B9-BFA2-1907CC6613F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6613F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6613F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6613F8}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6614F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6614F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6614F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6614F8}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F7C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F7C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-E91A07F9DD81}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-E91A07F9DD81}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-E91A07F9DD81}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-E91A07F9DD81}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD53759}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD53759}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD53759}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD53759}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-04ED0F38E8C2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-04ED0F38E8C2}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-04ED0F38E8C2}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-04ED0F38E8C2}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-CDC290478F78}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-CDC290478F78}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-CDC290478F78}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-CDC290478F78}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B83}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B83}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B83}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B83}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD43759}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD43759}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD43759}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-AA054DD43759}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6633F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6633F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6633F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6633F8}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6623F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6623F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6623F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-1907CC6623F8}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F7C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B84}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B84}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B84}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B84}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B85}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B85}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B85}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-D75FD6990B85}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-DC88DD5BF4A1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-DC88DD5BF4A1}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-DC88DD5BF4A1}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-DC88DD5BF4A1}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/libs/icl/example/vc9_icl_examples.sln b/src/boost/libs/icl/example/vc9_icl_examples.sln
new file mode 100644
index 000000000..1a82520bc
--- /dev/null
+++ b/src/boost/libs/icl/example/vc9_icl_examples.sln
@@ -0,0 +1,110 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_std_copy", "std_copy_\vc9_std_copy.vcproj", "{DD9C9854-3882-42B9-BFA1-D75FD6990B84}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_std_transform", "std_transform_\vc9_std_transform.vcproj", "{DD9C9854-3882-42B9-BFA1-D75FD6990B85}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_large_bitset", "large_bitset_\vc9_large_bitset.vcproj", "{DD9C9854-3882-42B9-BFA1-AA054DD53759}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_interval", "interval_\vc9_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_boost_party", "boost_party_\vc9_boost_party.vcproj", "{DD9C9854-3882-42B9-BFA1-1907CC6613F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_interval_container", "interval_container_\vc9_interval_container.vcproj", "{DD9C9854-3882-42B9-BFA1-E91A07F9DD81}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_man_power", "man_power_\vc9_man_power.vcproj", "{DD9C9854-3882-42B9-BFA1-04ED0F38E8C2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_month_and_week_grid", "month_and_week_grid_\vc9_month_and_week_grid.vcproj", "{DD9C9854-3882-42B9-BFA1-CDC290478F78}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_overlap_counter", "overlap_counter_\vc9_overlap_counter.vcproj", "{DD9C9854-3882-42B9-BFA1-D75FD6990B83}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_party", "party_\vc9_party.vcproj", "{DD9C9854-3882-42B9-BFA1-AA054DD43759}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_partys_height_average", "partys_height_average_\vc9_partys_height_average.vcproj", "{DD9C9854-3882-42B9-BFA1-1907CC6633F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_partys_tallest_guests", "partys_tallest_guests_\vc9_partys_tallest_guests.vcproj", "{DD9C9854-3882-42B9-BFA1-1907CC6623F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_user_groups", "user_groups_\vc9_user_groups.vcproj", "{DD9C9854-3882-42B9-BFA1-DC88DD5BF4A1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_custom_interval", "custom_interval_\vc9_custom_interval.vcproj", "{DD9C9854-3882-42B9-BFA1-1907CC6614F8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_dynamic_interval", "dynamic_interval_\vc9_dynamic_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_static_interval", "static_interval_\vc9_static_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B84}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B84}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B84}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B84}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B85}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B85}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B85}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B85}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD53759}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD53759}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD53759}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD53759}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F7C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6613F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6613F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6613F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6613F8}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-E91A07F9DD81}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-E91A07F9DD81}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-E91A07F9DD81}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-E91A07F9DD81}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-04ED0F38E8C2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-04ED0F38E8C2}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-04ED0F38E8C2}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-04ED0F38E8C2}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-CDC290478F78}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-CDC290478F78}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-CDC290478F78}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-CDC290478F78}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B83}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B83}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B83}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-D75FD6990B83}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD43759}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD43759}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD43759}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-AA054DD43759}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6633F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6633F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6633F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6633F8}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6623F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6623F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6623F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6623F8}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-DC88DD5BF4A1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-DC88DD5BF4A1}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-DC88DD5BF4A1}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-DC88DD5BF4A1}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6614F8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6614F8}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6614F8}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-1907CC6614F8}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F7C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F7C}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/libs/icl/index.html b/src/boost/libs/icl/index.html
new file mode 100644
index 000000000..4a55f665f
--- /dev/null
+++ b/src/boost/libs/icl/index.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+ <title>Boost.Icl Documentation</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="refresh" content="0; URL=doc/html/index.html" />
+</head>
+
+<body>
+ Automatic redirection failed, please go to <a href=
+ "doc/html/index.html">doc/html/index.html</a>
+<p>© Copyright Joachim Faulhaber, 2010</p>
+ <p>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file <a href="../../LICENSE_1_0.txt">
+ LICENSE_1_0.txt</a> or copy at
+ <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</p>
+
+</body>
+</html>
+
diff --git a/src/boost/libs/icl/meta/libraries.json b/src/boost/libs/icl/meta/libraries.json
new file mode 100644
index 000000000..3fcfa243c
--- /dev/null
+++ b/src/boost/libs/icl/meta/libraries.json
@@ -0,0 +1,16 @@
+{
+ "key": "icl",
+ "name": "ICL",
+ "authors": [
+ "Joachim Faulhaber"
+ ],
+ "description": "Interval Container Library, interval sets and maps and aggregation of associated values",
+ "category": [
+ "Containers",
+ "Data"
+ ],
+ "maintainers": [
+ "Joachim Faulhaber <afojgo -at- gmail.com>"
+ ],
+ "cxxstd": "03"
+}
diff --git a/src/boost/libs/icl/test/Jamfile.v2 b/src/boost/libs/icl/test/Jamfile.v2
new file mode 100644
index 000000000..3cd9583fc
--- /dev/null
+++ b/src/boost/libs/icl/test/Jamfile.v2
@@ -0,0 +1,160 @@
+# (C) Copyright 2008-2011: Joachim Faulhaber
+# 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)
+
+# bring in rules for testing
+import testing ;
+import feature ;
+
+project
+ : requirements
+ <library>/boost/test//boost_unit_test_framework
+ <library>/boost/chrono//boost_chrono
+ <link>static
+ <include>../../..
+ ;
+
+test-suite "itl"
+ :
+ # interval
+ [ run fastest_icl_interval_/fastest_icl_interval.cpp ]
+
+ # sets
+ [ run fastest_interval_set_/fastest_interval_set.cpp ]
+ [ run fastest_interval_set_infix_/fastest_interval_set_infix.cpp ]
+
+ [ run fastest_separate_interval_set_/fastest_separate_interval_set.cpp ]
+ [ run fastest_separate_interval_set_infix_/fastest_separate_interval_set_infix.cpp ]
+
+ [ run fastest_split_interval_set_/fastest_split_interval_set.cpp ]
+ [ run fastest_split_interval_set_infix_/fastest_split_interval_set_infix.cpp ]
+
+ [ run fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp ]
+
+ # maps
+ [ run fastest_interval_map_/fastest_interval_map.cpp ]
+
+ [ run fast_stat_interval_map_/fast_stat_interval_map.cpp
+ : : : : interval_map_right_open ]
+ [ run fast_stat_interval_map_/fast_stat_interval_map.cpp
+ : : : <define>BOOST_ICL_CONTINUOUS_STATIC_INTERVAL_DEFAULT=left_open_interval
+ : interval_map_left_open ]
+
+ [ run fastest_interval_map_infix_/fastest_interval_map_infix.cpp ]
+ [ run fastest_split_interval_map_/fastest_split_interval_map.cpp ]
+ [ run fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp ]
+ [ run fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp ]
+ [ run fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp ]
+ [ run fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp ]
+ [ run fastest_icl_map_/fastest_icl_map.cpp ]
+
+ # handcoded tests using laws (not LaBatea) -------------------------------
+ # Concept Set
+ [ run fastest_set_interval_set_/fastest_set_interval_set.cpp ]
+ [ run fastest_set_icl_set_/fastest_set_icl_set.cpp ]
+
+ # Concept Map
+ [ run fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp ]
+ [ run fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp ]
+ [ run fastest_partial_icl_quantifier_/fastest_partial_icl_quantifier.cpp ]
+ [ run fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp ]
+
+ # Misc -------------------------------------------------------------------
+ [ run test_misc_/test_misc.cpp ]
+ [ run test_doc_code_/test_doc_code.cpp ]
+ [ run test_type_traits_/test_type_traits.cpp ]
+ # test_combinable is too slow or too large for some compilers
+ #[ run test_combinable_/test_combinable.cpp ]
+ [ run test_changing_interval_defaults_/test_changing_interval_defaults.cpp ]
+
+ # Bug fixes --------------------------------------------------------------
+ [ run fix_icl_after_thread_/fix_icl_after_thread.cpp ]
+ [ run fix_tickets_/fix_tickets.cpp ]
+
+ # Check for compiler bugs ------------------------------------------------
+ # compile-fail-tests
+ [ run cmp_msvc_value_born_error_/cmp_msvc_value_born_error.cpp ]
+ [ run cmp_clang_ttp_passing_/cmp_clang_ttp_passing.cpp ]
+ [ run cmp_clang_ttp_passing2_/cmp_clang_ttp_passing2.cpp ]
+
+ # Examples ---------------------------------------------------------------
+ [ run ex_boost_party_/ex_boost_party.cpp ]
+
+ # Ad hoc -----------------------------------------------------------------
+ #[ run test_casual_/test_casual.cpp ]
+
+
+ # ========================================================================
+ # Chrono -----------------------------------------------------------------
+ # interval
+ [ run fastest_icl_interval_/fastest_icl_interval.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_icl_interval ]
+
+ # sets
+ [ run fastest_interval_set_/fastest_interval_set.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_set ]
+
+ [ run fastest_interval_set_infix_/fastest_interval_set_infix.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_set_infix ]
+
+ [ run fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_set_mixed ]
+
+ # maps
+ [ run fastest_interval_map_/fastest_interval_map.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_map ]
+
+ [ run fastest_interval_map_infix_/fastest_interval_map_infix.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_map_infix ]
+
+ [ run fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_map_mixed ]
+
+ [ run fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_map_mixed2 ]
+
+ [ run fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_interval_map_infix_mixed ]
+
+ [ run fastest_icl_map_/fastest_icl_map.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_icl_map ]
+
+
+ # handcoded tests using laws (not LaBatea) -------------------------------
+ # Concept Set
+ [ run fastest_set_interval_set_/fastest_set_interval_set.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_set_interval_set ]
+
+ [ run fastest_set_icl_set_/fastest_set_icl_set.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_set_icl_set ]
+
+ # Concept Map
+ [ run fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_partial_interval_quantifier ]
+
+ [ run fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_total_interval_quantifier ]
+
+ [ run fastest_partial_icl_quantifier_/fastest_partial_icl_quantifier.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_partial_icl_quantifier ]
+
+ [ run fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp
+ : : : <define>BOOST_ICL_TEST_CHRONO
+ : chrono_total_icl_quantifier ]
+
+ ;
diff --git a/src/boost/libs/icl/test/chrono/utility.hpp b/src/boost/libs/icl/test/chrono/utility.hpp
new file mode 100644
index 000000000..5c12e31b4
--- /dev/null
+++ b/src/boost/libs/icl/test/chrono/utility.hpp
@@ -0,0 +1,49 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_LIBS_ICL_TEST_CHRONO_UTILITY_HPP_JOFA_20110314
+#define BOOST_LIBS_ICL_TEST_CHRONO_UTILITY_HPP_JOFA_20110314
+
+#include <boost/chrono/chrono.hpp>
+#include <boost/chrono/chrono_io.hpp>
+
+// In order to perform simple testing with chrono::time_point
+// we need to provide a dummy test clock
+
+class Now // A trivial test clock
+{
+public:
+ typedef boost::chrono::duration<int> duration;
+ typedef duration::rep rep;
+ typedef duration::period periond;
+ typedef boost::chrono::time_point<Now> time_point;
+
+ static time_point now(){ return time_point(); }
+};
+
+namespace boost{ namespace chrono {
+
+template <class CharT>
+struct clock_string<Now, CharT>
+{
+ static std::basic_string<CharT> name()
+ {
+ static const CharT u[] = {'n', 'o', 'w', '_', 'c', 'l','o', 'c', 'k'};
+ static const std::basic_string<CharT> str(u, u + sizeof(u)/sizeof(u[0]));
+ return str;
+ }
+ static std::basic_string<CharT> since()
+ {
+ const CharT u[] = {' ', 's', 'i', 'n', 'c', 'e', ' ', 'n', 'o', 'w'};
+ const std::basic_string<CharT> str(u, u + sizeof(u)/sizeof(u[0]));
+ return str;
+ }
+};
+
+}} //namespace boost chrono
+
+#endif //BOOST_LIBS_ICL_TEST_CHRONO_UTILITY_HPP_JOFA_20110314
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/cmp_clang_ttp_passing2.cpp b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/cmp_clang_ttp_passing2.cpp
new file mode 100644
index 000000000..3c593cec7
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/cmp_clang_ttp_passing2.cpp
@@ -0,0 +1,40 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::cmp_clang_ttp_passing2 unit test
+#include "../unit_test_unwarned.hpp"
+
+#include <boost/icl/interval_set.hpp>
+
+template
+<
+ template
+ <
+ class _T,
+ template<class>class Compare = std::less,
+ class Interval = typename boost::icl::
+ interval_type_default<_T,Compare>::type,
+ template<class>class Alloc = std::allocator
+ >
+ class IntervalSet,
+ class T
+>
+bool test_ttp()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ IntervalSetT test_set;
+ test_set.clear();
+ return true;
+}
+
+
+BOOST_AUTO_TEST_CASE(dummy)
+{
+ bool result = test_ttp<boost::icl::interval_set, int>();
+ BOOST_CHECK( result );
+}
+
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj
new file mode 100644
index 000000000..9e72c5ccd
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA3}</ProjectGuid>
+ <RootNamespace>cmp_clang_ttp_passing2</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="cmp_clang_ttp_passing2.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj.filters b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj.filters
new file mode 100644
index 000000000..4c40aa16c
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc10_cmp_clang_ttp_passing2.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="cmp_clang_ttp_passing2.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc9_cmp_clang_ttp_passing2.vcproj b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc9_cmp_clang_ttp_passing2.vcproj
new file mode 100644
index 000000000..a302b7589
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing2_/vc9_cmp_clang_ttp_passing2.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_cmp_clang_ttp_passing2"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}"
+ RootNamespace="cmp_clang_ttp_passing2"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\cmp_clang_ttp_passing2.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing_/cmp_clang_ttp_passing.cpp b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/cmp_clang_ttp_passing.cpp
new file mode 100644
index 000000000..9d723ebcd
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/cmp_clang_ttp_passing.cpp
@@ -0,0 +1,65 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::cmp_clang_ttp_passing unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <boost/config.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+namespace sep
+{
+ template<class T>class less{};
+
+ template
+ <
+ class T,
+ template<class>class Less = sep::less
+ >
+ class interv
+ {
+ public:
+ typedef interv<T,Less> type;
+ };
+
+ template
+ <
+ class T,
+ template<class>class Less = sep::less,
+ class I = typename sep::interv<T,Less>::type
+ >
+ class cont
+ {
+ public:
+ bool test()const { return true; }
+ };
+}//namespace sep
+
+template
+<
+ template
+ <
+ class _T,
+ template<class>class _Less = sep::less,
+ class I = typename sep::interv<_T,_Less>::type
+ >
+ class Cont,
+ class T
+>
+bool test_ttp()
+{
+ typedef Cont<T> cont_type;
+ cont_type test_cont;
+ return test_cont.test();
+};
+
+BOOST_AUTO_TEST_CASE(dummy)
+{
+ bool result = test_ttp<sep::cont, int>();
+ BOOST_CHECK( result );
+}
+
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj
new file mode 100644
index 000000000..dd788a257
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA2}</ProjectGuid>
+ <RootNamespace>cmp_clang_ttp_passing</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="cmp_clang_ttp_passing.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj.filters b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj.filters
new file mode 100644
index 000000000..b43ed1140
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc10_cmp_clang_ttp_passing.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="cmp_clang_ttp_passing.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc9_cmp_clang_ttp_passing.vcproj b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc9_cmp_clang_ttp_passing.vcproj
new file mode 100644
index 000000000..9535b2c22
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_clang_ttp_passing_/vc9_cmp_clang_ttp_passing.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_cmp_clang_ttp_passing"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}"
+ RootNamespace="cmp_clang_ttp_passing"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\cmp_clang_ttp_passing.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/cmp_msvc_value_born_error_/cmp_msvc_value_born_error.cpp b/src/boost/libs/icl/test/cmp_msvc_value_born_error_/cmp_msvc_value_born_error.cpp
new file mode 100644
index 000000000..7d3bd454b
--- /dev/null
+++ b/src/boost/libs/icl/test/cmp_msvc_value_born_error_/cmp_msvc_value_born_error.cpp
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::cmp_msvc_value_born_error unit test
+#include <boost/config.hpp>
+#include "../unit_test_unwarned.hpp"
+
+namespace unhelpful{
+ // This declaration of a class template will cause
+ // the compilation of line 17 to fail with syntax error C2059
+ template<class T> class value{};
+}
+
+//--- affected code ---------------------------------------
+template <class Type> struct meta_attribute
+{
+ BOOST_STATIC_CONSTANT(int, value = 0);
+};
+
+template <class Type> struct meta_predicate
+{
+ BOOST_STATIC_CONSTANT(bool, value =
+ ( meta_attribute<Type>::value < 1)
+ //error C2059: syntax error : ')'
+ //IF class template value declared before
+ // ((meta_attribute<Type>::value) < 1) // Remedy#1 enclose into ()
+ // ( meta_attribute<Type>::value <=0) // Remedy#2 use operator <=
+ );
+};
+
+BOOST_AUTO_TEST_CASE(dummy)
+{
+ BOOST_CHECK( meta_predicate<int>::value );
+}
+
diff --git a/src/boost/libs/icl/test/disable_test_warnings.hpp b/src/boost/libs/icl/test/disable_test_warnings.hpp
new file mode 100644
index 000000000..a7aff58eb
--- /dev/null
+++ b/src/boost/libs/icl/test/disable_test_warnings.hpp
@@ -0,0 +1,25 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_DETAIL_DISABLE_TEST_WARNINGS_HPP_JOFA_101031
+#define BOOST_ICL_DETAIL_DISABLE_TEST_WARNINGS_HPP_JOFA_101031
+
+#include <boost/icl/detail/boost_config.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/test/detail/suppress_warnings.hpp>
+
+#ifdef BOOST_MSVC // These warnings are disabled permanently for tests.
+#pragma warning(disable:4996) // Function call with parameters that may be unsafe
+#pragma warning(disable:4503) // decorated name length exceeded, name was truncated
+#pragma warning(disable:4702) // unreachable code
+#endif
+
+#if defined(BOOST_GCC)
+# pragma GCC diagnostic ignored "-Wsign-compare"
+#endif
+
+#endif // BOOST_ICL_DETAIL_DISABLE_TEST_WARNINGS_HPP_JOFA_101031
diff --git a/src/boost/libs/icl/test/ex_boost_party_/ex_boost_party.cpp b/src/boost/libs/icl/test/ex_boost_party_/ex_boost_party.cpp
new file mode 100644
index 000000000..a50a8f685
--- /dev/null
+++ b/src/boost/libs/icl/test/ex_boost_party_/ex_boost_party.cpp
@@ -0,0 +1,134 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::example_boost_party unit test
+
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include "../unit_test_unwarned.hpp"
+//#include <boost/icl/set.hpp> // Needed for implicit calls of operator << on
+//JODO CLANG // GuestSets via test macros.
+
+//------------------------------------------------------------------------------
+// begin example code. return value added to function boost_party
+//------------------------------------------------------------------------------
+#include <boost/icl/ptime.hpp>
+#include <iostream>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost::posix_time;
+using namespace boost::icl;
+
+// Type set<string> collects the names of party guests. Since std::set is
+// a model of the itl's set concept, the concept provides an operator +=
+// that performs a set union on overlap of intervals.
+typedef std::set<string> GuestSetT;
+
+interval_map<ptime, GuestSetT> boost_party()
+{
+ GuestSetT mary_harry;
+ mary_harry.insert("Mary");
+ mary_harry.insert("Harry");
+
+ GuestSetT diana_susan;
+ diana_susan.insert("Diana");
+ diana_susan.insert("Susan");
+
+ GuestSetT peter;
+ peter.insert("Peter");
+
+ // A party is an interval map that maps time intervals to sets of guests
+ interval_map<ptime, GuestSetT> party;
+
+ party.add( // add and element
+ make_pair(
+ interval<ptime>::right_open(
+ time_from_string("2008-05-20 19:30"),
+ time_from_string("2008-05-20 23:00")),
+ mary_harry));
+
+ party += // element addition can also be done via operator +=
+ make_pair(
+ interval<ptime>::right_open(
+ time_from_string("2008-05-20 20:10"),
+ time_from_string("2008-05-21 00:00")),
+ diana_susan);
+
+ party +=
+ make_pair(
+ interval<ptime>::right_open(
+ time_from_string("2008-05-20 22:15"),
+ time_from_string("2008-05-21 00:30")),
+ peter);
+
+
+ interval_map<ptime, GuestSetT>::iterator it = party.begin();
+ cout << "----- History of party guests -------------------------\n";
+ while(it != party.end())
+ {
+ interval<ptime>::type when = it->first;
+ // Who is at the party within the time interval 'when' ?
+ GuestSetT who = (*it++).second;
+ cout << when << ": " << who << endl;
+ }
+
+ return party;
+}
+//------------------------------------------------------------------------------
+// end example code
+//------------------------------------------------------------------------------
+
+typedef interval_map<ptime, GuestSetT> PartyHistory;
+
+typedef PartyHistory::segment_type SegmentT;
+
+SegmentT episode(const char* from, const char* to, GuestSetT guests)
+{
+ return make_pair( interval<ptime>
+ ::right_open( time_from_string(from)
+ , time_from_string(to) )
+ , guests);
+}
+
+PartyHistory check_party()
+{
+ GuestSetT mary_harry;
+ mary_harry.insert("Mary");
+ mary_harry.insert("Harry");
+
+ GuestSetT diana_susan;
+ diana_susan.insert("Diana");
+ diana_susan.insert("Susan");
+
+ GuestSetT peter;
+ peter.insert("Peter");
+
+ GuestSetT Diana_Harry_Mary_Susan = mary_harry + diana_susan;
+ GuestSetT Diana_Harry_Mary_Peter_Susan = Diana_Harry_Mary_Susan + peter;
+ GuestSetT Diana_Peter_Susan = Diana_Harry_Mary_Peter_Susan - mary_harry;
+
+ PartyHistory party;
+
+ party += episode("2008-05-20 19:30", "2008-05-20 20:10", mary_harry);
+ party += episode("2008-05-20 20:10", "2008-05-20 22:15", Diana_Harry_Mary_Susan);
+ party += episode("2008-05-20 22:15", "2008-05-20 23:00", Diana_Harry_Mary_Peter_Susan);
+ party += episode("2008-05-20 23:00", "2008-05-21 00:00", Diana_Peter_Susan);
+ party += episode("2008-05-21 00:00", "2008-05-21 00:30", peter);
+
+ return party;
+}
+
+BOOST_AUTO_TEST_CASE(icl_example_boost_party)
+{
+ PartyHistory party1 = boost_party();
+ PartyHistory party2 = check_party();
+ bool party_equality = (party1==party2);
+ BOOST_CHECK(party_equality);
+ //BOOST_CHECK_EQUAL(boost_party(), check_party());
+}
+
+
diff --git a/src/boost/libs/icl/test/ex_boost_party_/vc10_ex_boost_party.vcxproj b/src/boost/libs/icl/test/ex_boost_party_/vc10_ex_boost_party.vcxproj
new file mode 100644
index 000000000..d36bcb6fc
--- /dev/null
+++ b/src/boost/libs/icl/test/ex_boost_party_/vc10_ex_boost_party.vcxproj
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-EC01-FD5B8D5A9FA0}</ProjectGuid>
+ <RootNamespace>Ex_boost_party</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="ex_boost_party.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fast_stat_interval_map_/fast_stat_interval_map.cpp b/src/boost/libs/icl/test/fast_stat_interval_map_/fast_stat_interval_map.cpp
new file mode 100644
index 000000000..d9fac9583
--- /dev/null
+++ b/src/boost/libs/icl/test/fast_stat_interval_map_/fast_stat_interval_map.cpp
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+//#define BOOST_ICL_CONTINUOUS_STATIC_INTERVAL_DEFAULT left_open_interval
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_functions.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../fast_stat_interval_map_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj b/src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj
new file mode 100644
index 000000000..464514059
--- /dev/null
+++ b/src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D3A900D}</ProjectGuid>
+ <RootNamespace>Fast_stat_interval_map</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fast_stat_interval_map.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj.filters b/src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj.filters
new file mode 100644
index 000000000..42279424a
--- /dev/null
+++ b/src/boost/libs/icl/test/fast_stat_interval_map_/vc10_fast_stat_interval_map.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fast_stat_interval_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fast_stat_interval_map_/vc9_fast_stat_interval_map.vcproj b/src/boost/libs/icl/test/fast_stat_interval_map_/vc9_fast_stat_interval_map.vcproj
new file mode 100644
index 000000000..39a11268c
--- /dev/null
+++ b/src/boost/libs/icl/test/fast_stat_interval_map_/vc9_fast_stat_interval_map.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fast_stat_interval_map"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}"
+ RootNamespace="Fast_stat_interval_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fast_stat_interval_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fast_stat_interval_map_cases.hpp b/src/boost/libs/icl/test/fast_stat_interval_map_cases.hpp
new file mode 100644
index 000000000..23cc2ce03
--- /dev/null
+++ b/src/boost/libs/icl/test/fast_stat_interval_map_cases.hpp
@@ -0,0 +1,85 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FAST_STAT_INTERVAL_MAP_CASES_HPP_JOFA_110301
+#define BOOST_ICL_FAST_STAT_INTERVAL_MAP_CASES_HPP_JOFA_110301
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_fundamentals_4_ordered_types)
+{ interval_map_fundamentals_4_ordered_types<INTERVAL_MAP, discrete_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_ctor_4_bicremental_types)
+{ interval_map_ctor_4_bicremental_types<INTERVAL_MAP, discrete_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_add_sub_4_bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<INTERVAL_MAP, discrete_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_contains_4_bicremental_types)
+{ interval_map_contains_4_bicremental_types<INTERVAL_MAP, discrete_type_4, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_contains_key_objects_4_bicremental_types)
+{ interval_map_contains_key_objects_4_bicremental_types<INTERVAL_MAP, discrete_type_5, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_operators_4_bicremental_types)
+{ interval_map_operators_4_bicremental_types<INTERVAL_MAP, discrete_type_6, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_base_intersect_4_bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<INTERVAL_MAP, discrete_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_base_erase_4_bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<INTERVAL_MAP, signed_discrete_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_base_is_disjoint_4_bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<INTERVAL_MAP, discrete_type_8, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_flip_4_bicremental_types)
+{ interval_map_flip_4_bicremental_types<INTERVAL_MAP, discrete_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_find_4_bicremental_types)
+{ interval_map_find_4_bicremental_types<INTERVAL_MAP, discrete_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_find_4_numeric_continuous_types)
+{ interval_map_find_4_numeric_continuous_types<INTERVAL_MAP, numeric_continuous_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_range_4_bicremental_types)
+{ interval_map_range_4_bicremental_types<INTERVAL_MAP, discrete_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_set_4_bicremental_types)
+{ interval_map_set_4_bicremental_types<INTERVAL_MAP, discrete_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_inclusion_compare_4_bicremental_types)
+{ interval_map_inclusion_compare_4_bicremental_types<discrete_type_4, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_std_copy_via_inserter_4_bicremental_types)
+{ interval_map_std_copy_via_inserter_4_bicremental_types<signed_discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_element_iter_4_discrete_types)
+{ interval_map_element_iter_4_discrete_types<discrete_type_2, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_intersects_4_bicremental_types)
+{ interval_map_intersects_4_bicremental_types<INTERVAL_MAP, discrete_type_3, int>();}
+
+
+#endif // BOOST_ICL_FAST_STAT_INTERVAL_MAP_CASES_HPP_JOFA_110301
+
diff --git a/src/boost/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp b/src/boost/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp
new file mode 100644
index 000000000..8a6d79919
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_interval_/fastest_icl_interval.cpp
@@ -0,0 +1,169 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_interval_laws.hpp"
+
+#include <boost/icl/right_open_interval.hpp>
+#include <boost/icl/left_open_interval.hpp>
+#include <boost/icl/closed_interval.hpp>
+#include <boost/icl/open_interval.hpp>
+
+#include <boost/icl/discrete_interval.hpp>
+#include <boost/icl/continuous_interval.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#include "../test_icl_interval_shared.hpp"
+#include "../test_icl_interval.hpp"
+#include "../test_icl_dynamic_interval.hpp"
+#include "../test_icl_discrete_interval.hpp"
+#include "../test_icl_continuous_interval.hpp"
+#include "../test_icl_static_interval.hpp"
+
+//==============================================================================
+//= Traits
+//==============================================================================
+BOOST_AUTO_TEST_CASE
+(fastest_icl_discrete_interval_traits)
+{ discrete_interval_traits<discrete_type_1, discrete_interval<discrete_type_1> >(); }
+
+//==============================================================================
+
+//- sta.asy.{dis|con} ----------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_right_open_interval_ctor_4_ordered_types)
+{ interval_ctor_4_ordered_types<right_open_interval<ordered_type_1> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_right_open_interval_4_ordered_types)
+{ singelizable_interval_4_ordered_types<right_open_interval<discrete_type_1> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_right_open_interval_4_bicremental_types)
+{ singelizable_interval_4_bicremental_types<right_open_interval<discrete_type_2> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_left_open_interval_ctor_4_ordered_types)
+{ interval_ctor_4_ordered_types<left_open_interval<ordered_type_2> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_left_open_interval_4_ordered_types_singelizable)
+{ singelizable_interval_4_ordered_types<left_open_interval<signed_discrete_type_1> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_left_open_interval_4_bicremental_types)
+{ singelizable_interval_4_bicremental_types<left_open_interval<discrete_type_4> >(); }
+
+//- coverables -----------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_cover_right_open_interval_4_bicremental_types)
+{ coverable_asymmetric_interval_4_bicremental_types<right_open_interval<numeric_continuous_type_1> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_cover_left_open_interval_4_bicremental_types)
+{ coverable_asymmetric_interval_4_bicremental_types<left_open_interval<numeric_continuous_type_3> >(); }
+
+//- dyn.dis --------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_discrete_interval_ctor_4_discrete_types_base)
+{ interval_ctor_4_ordered_types<discrete_interval<discrete_type_1> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_discrete_interval_ctor_4_discrete_types_dynamic)
+{ dynamic_interval_ctor_4_ordered_types<discrete_interval<discrete_type_2> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_discrete_interval_4_ordered_types)
+{ singelizable_interval_4_ordered_types<discrete_interval<discrete_type_3> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_discrete_interval_4_bicremental_types)
+{ singelizable_interval_4_bicremental_types<discrete_interval<discrete_type_3> >(); }
+
+//- dyn.con --------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_continuous_interval_ctor_4_continuous_types_base)
+{ interval_ctor_4_ordered_types<continuous_interval<continuous_type_1> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_continuous_interval_ctor_4_continuous_types_dynamic)
+{ dynamic_interval_ctor_4_ordered_types<continuous_interval<continuous_type_2> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_continuous_interval_4_continuous_types_singelizable)
+{ singelizable_interval_4_ordered_types<continuous_interval<continuous_type_3> >(); }
+
+//------------------------------------------------------------------------------
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_distant_intervals_4_discrete_types)
+{ distant_intervals_4_discrete_types<discrete_type_1, std::less>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_distant_intervals_4_numeric_continuous_types)
+{ distant_intervals_4_numeric_continuous_types<numeric_continuous_type_1, std::less>(); }
+
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_dynamic_interval_bounds_4_bicremental_types)
+{ dynamic_interval_bounds_4_bicremental_types<bicremental_type_2>(); }
+
+//==============================================================================
+//==============================================================================
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_equal_4_integral_types)
+{ interval_equal_4_integral_types<integral_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_less_4_integral_types)
+{ interval_less_4_integral_types<integral_type_3>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_touches_4_bicremental_types)
+{ interval_touches_4_bicremental_types<bicremental_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_touches_4_integral_types)
+{ interval_touches_4_integral_types<integral_type_4>(); }
+
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_ctor_specific)
+{ interval_ctor_specific(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_equal_4_bicremental_continuous_types)
+{ interval_equal_4_bicremental_continuous_types<bicremental_continuous_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_infix_intersect_4_bicremental_types)
+{ interval_infix_intersect_4_bicremental_types<bicremental_type_4>(); }
+
+#else
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_infix_intersect_4_bicremental_types)
+{ interval_infix_intersect_4_bicremental_types<discrete_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_subtract_4_bicremental_types)
+{ interval_subtract_4_bicremental_types<bicremental_type_5>(); }
+
+#endif // ndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
diff --git a/src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj b/src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj
new file mode 100644
index 000000000..2bbacfcc3
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A908C}</ProjectGuid>
+ <RootNamespace>Fastest_icl_interval</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_icl_interval.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj.filters b/src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj.filters
new file mode 100644
index 000000000..8a321ffb3
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_interval_/vc10_fastest_icl_interval.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_icl_interval.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_icl_interval_/vc9_fastest_icl_interval.vcproj b/src/boost/libs/icl/test/fastest_icl_interval_/vc9_fastest_icl_interval.vcproj
new file mode 100644
index 000000000..6b058a092
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_interval_/vc9_fastest_icl_interval.vcproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_icl_interval"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}"
+ RootNamespace="Fastest_icl_interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_icl_interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map.cpp b/src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map.cpp
new file mode 100644
index 000000000..ecd6bc425
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map.cpp
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::icl_map unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <set>
+#include <boost/icl/associative_element_container.hpp>
+#include <boost/icl/map.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_icl_map.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "fastest_icl_map_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp b/src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp
new file mode 100644
index 000000000..9cdb581e6
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_map_/fastest_icl_map_cases.hpp
@@ -0,0 +1,23 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_icl_map_contains_4_bicremental_types)
+{ icl_map_contains_4_bicremental_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_icl_map_find_4_bicremental_types)
+{ icl_map_find_4_bicremental_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_icl_map_move_4_discrete_types)
+{ icl_map_move_4_discrete_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+
+#endif // BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701
diff --git a/src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj b/src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj
new file mode 100644
index 000000000..56aa293c3
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-C6CEBFCE309B}</ProjectGuid>
+ <RootNamespace>Fastest_icl_map</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_icl_map.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj.filters b/src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj.filters
new file mode 100644
index 000000000..9eaba7736
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_map_/vc10_fastest_icl_map.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_icl_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_icl_map_/vc9_fastest_icl_map.vcproj b/src/boost/libs/icl/test/fastest_icl_map_/vc9_fastest_icl_map.vcproj
new file mode 100644
index 000000000..60ed9b57f
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_icl_map_/vc9_fastest_icl_map.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_icl_map"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}"
+ RootNamespace="Fastest_icl_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_icl_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_map_/fastest_interval_map.cpp b/src/boost/libs/icl/test/fastest_interval_map_/fastest_interval_map.cpp
new file mode 100644
index 000000000..b1eb616a3
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_/fastest_interval_map.cpp
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_functions.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../fastest_interval_map_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj b/src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj
new file mode 100644
index 000000000..94870a022
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A900D}</ProjectGuid>
+ <RootNamespace>Fastest_interval_map</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj.filters
new file mode 100644
index 000000000..7205fa33c
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_/vc10_fastest_interval_map.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj b/src/boost/libs/icl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj
new file mode 100644
index 000000000..ccdfdd836
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_/vc9_fastest_interval_map.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_map"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}"
+ RootNamespace="Fastest_interval_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_map_cases.hpp b/src/boost/libs/icl/test/fastest_interval_map_cases.hpp
new file mode 100644
index 000000000..c61ebfc1e
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_cases.hpp
@@ -0,0 +1,101 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_INTERVAL_MAP_CASES_HPP_JOFA_090702
+#define BOOST_ICL_FASTEST_INTERVAL_MAP_CASES_HPP_JOFA_090702
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_fundamentals_4_ordered_types)
+{ interval_map_fundamentals_4_ordered_types<INTERVAL_MAP, ordered_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_ctor_4_bicremental_types)
+{ interval_map_ctor_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_add_sub_4_bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_distinct_4_bicremental_types)
+{ interval_map_distinct_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_distinct_4_bicremental_continuous_types)
+{ interval_map_distinct_4_bicremental_continuous_types<INTERVAL_MAP, continuous_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_isolate_4_bicremental_continuous_types)
+{ interval_map_isolate_4_bicremental_continuous_types<INTERVAL_MAP, continuous_type_2, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_contains_4_bicremental_types)
+{ interval_map_contains_4_bicremental_types<INTERVAL_MAP, bicremental_type_4, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_contains_key_objects_4_bicremental_types)
+{ interval_map_contains_key_objects_4_bicremental_types<INTERVAL_MAP, bicremental_type_4, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_operators_4_bicremental_types)
+{ interval_map_operators_4_bicremental_types<INTERVAL_MAP, bicremental_type_5, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_base_intersect_4_bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<INTERVAL_MAP, bicremental_type_6, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_base_erase_4_bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<INTERVAL_MAP, bicremental_type_7, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_base_is_disjoint_4_bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<INTERVAL_MAP, bicremental_type_8, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_flip_4_bicremental_types)
+{ interval_map_flip_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_find_4_bicremental_types)
+{ interval_map_find_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_find_4_numeric_continuous_types)
+{ interval_map_find_4_numeric_continuous_types<INTERVAL_MAP, numeric_continuous_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_range_4_bicremental_types)
+{ interval_map_range_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, double>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_set_4_bicremental_types)
+{ interval_map_set_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_inclusion_compare_4_bicremental_types)
+{ interval_map_inclusion_compare_4_bicremental_types<discrete_type_4, double, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_std_copy_via_inserter_4_bicremental_types)
+{ interval_map_std_copy_via_inserter_4_bicremental_types<bicremental_type_4, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_element_iter_4_discrete_types)
+{ interval_map_element_iter_4_discrete_types<discrete_type_2, double, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_intersects_4_bicremental_types)
+{ interval_map_intersects_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_move_4_discrete_types)
+{ interval_map_move_4_discrete_types<INTERVAL_MAP, discrete_type_1, double>();}
+
+
+#endif // BOOST_ICL_FASTEST_INTERVAL_MAP_CASES_HPP_JOFA_090702
+
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_/fastest_interval_map_infix.cpp b/src/boost/libs/icl/test/fastest_interval_map_infix_/fastest_interval_map_infix.cpp
new file mode 100644
index 000000000..d7920658e
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_/fastest_interval_map_infix.cpp
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_map_shared are tests that should give identical results for all
+// interval_maps: interval_map and split_interval_map.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_interval_map_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj b/src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj
new file mode 100644
index 000000000..0dea33d0c
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-F47E9765C011}</ProjectGuid>
+ <RootNamespace>Fastest_interval_map_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj.filters
new file mode 100644
index 000000000..94b145662
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_/vc10_fastest_interval_map_infix.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj b/src/boost/libs/icl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj
new file mode 100644
index 000000000..ccdef9885
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_/vc9_fastest_interval_map_infix.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_map_infix"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-F47E9765C011}"
+ RootNamespace="Fastest_interval_map_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_map_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_cases.hpp b/src/boost/libs/icl/test/fastest_interval_map_infix_cases.hpp
new file mode 100644
index 000000000..9150fa472
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_cases.hpp
@@ -0,0 +1,32 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_INTERVAL_MAP_INFIX_CASES_HPP_JOFA_090702
+#define BOOST_ICL_FASTEST_INTERVAL_MAP_INFIX_CASES_HPP_JOFA_090702
+
+BOOST_AUTO_TEST_CASE
+(test_icl_interval_map_infix_plus_overload_4_bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_icl_interval_map_infix_pipe_overload_4_bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_icl_interval_map_infix_minus_overload_4_bicremental_types)
+{ interval_map_infix_minus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_icl_interval_map_infix_et_overload_4_bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_4, int>();}
+
+BOOST_AUTO_TEST_CASE
+(test_icl_interval_map_infix_caret_overload_4_bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+#endif // BOOST_ICL_FASTEST_INTERVAL_MAP_INFIX_CASES_HPP_JOFA_090702
+
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp
new file mode 100644
index 000000000..a4cbcd9ea
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/fastest_interval_map_infix_mixed.cpp
@@ -0,0 +1,45 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_infix_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#include "../test_interval_map_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_infix_plus_overload_4_bicremental_types)
+{ interval_map_mixed_infix_plus_overload_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_infix_pipe_overload_4_bicremental_types)
+{ interval_map_mixed_infix_pipe_overload_4_bicremental_types<bicremental_type_2, double>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_infix_minus_overload_4_bicremental_types)
+{ interval_map_mixed_infix_minus_overload_4_bicremental_types<bicremental_type_3, boost::rational<int> >(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_infix_et_overload_4_bicremental_types)
+{ interval_map_mixed_infix_et_overload_4_bicremental_types<bicremental_type_4, int>(); }
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj
new file mode 100644
index 000000000..b9f3c665f
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D5A902F}</ProjectGuid>
+ <RootNamespace>Fastest_interval_map_infix_mixed</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_infix_mixed.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj.filters
new file mode 100644
index 000000000..4f141cb72
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc10_fastest_interval_map_infix_mixed.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_infix_mixed.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj
new file mode 100644
index 000000000..0bd7571ee
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_infix_mixed_/vc9_fastest_interval_map_infix_mixed.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_map_infix_mixed"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}"
+ RootNamespace="Fastest_interval_map_infix_mixed"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../; ../../../../boost_1_35_0"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_map_infix_mixed.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp
new file mode 100644
index 000000000..072c1050e
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/fastest_interval_map_mixed2.cpp
@@ -0,0 +1,84 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#include "../test_interval_map_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_add_4_bicremental_types)
+{ interval_map_mixed_add_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_add2_4_bicremental_types)
+{ interval_map_mixed_add2_4_bicremental_types<bicremental_type_2, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_subtract_4_bicremental_types)
+{ interval_map_mixed_subtract_4_bicremental_types<bicremental_type_3, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_erase_4_bicremental_types)
+{ interval_map_mixed_erase_4_bicremental_types<bicremental_type_4, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_erase2_4_bicremental_types)
+{ interval_map_mixed_erase2_4_bicremental_types<bicremental_type_5, int>(); }
+
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_insert_erase_4_bicremental_types)
+{ interval_map_mixed_insert_erase_4_bicremental_types<bicremental_type_6, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_insert_erase2_4_bicremental_types)
+{ interval_map_mixed_insert_erase2_4_bicremental_types<bicremental_type_7, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_basic_intersect_4_bicremental_types)
+{ interval_map_mixed_basic_intersect_4_bicremental_types<bicremental_type_8, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_basic_intersect2_4_bicremental_types)
+{ interval_map_mixed_basic_intersect2_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_intersect_4_bicremental_types)
+{ interval_map_mixed_intersect_4_bicremental_types<bicremental_type_2, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_intersect2_4_bicremental_types)
+{ interval_map_mixed_intersect2_4_bicremental_types<bicremental_type_3, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_disjoint_4_bicremental_types)
+{ interval_map_mixed_disjoint_4_bicremental_types<bicremental_type_4, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_erase_if_4_integral_types)
+{ interval_map_mixed_erase_if_4_integral_types<int, int>(); }
+
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj
new file mode 100644
index 000000000..d07ab559b
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D3B903F}</ProjectGuid>
+ <RootNamespace>Fastest_interval_map_mixed2</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_mixed2.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj.filters
new file mode 100644
index 000000000..ce61a218f
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc10_fastest_interval_map_mixed2.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_mixed2.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj
new file mode 100644
index 000000000..629035976
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed2_/vc9_fastest_interval_map_mixed2.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_map_mixed2"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}"
+ RootNamespace="Fastest_interval_map_mixed2"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_map_mixed2.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp b/src/boost/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp
new file mode 100644
index 000000000..fd8972f06
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed_/fastest_interval_map_mixed.cpp
@@ -0,0 +1,71 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wself-assign-overloaded"
+#endif
+
+#include "../test_interval_map_mixed.hpp"
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic pop
+#endif
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_ctor_4_ordered_types)
+{ interval_map_mixed_ctor_4_ordered_types<std::string, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_equal_4_ordered_types)
+{ interval_map_mixed_equal_4_ordered_types<double, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_assign_4_ordered_types)
+{ interval_map_mixed_assign_4_ordered_types<unsigned int, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_ctor_4_bicremental_types)
+{ interval_map_mixed_ctor_4_bicremental_types<bicremental_type_1, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_assign_4_bicremental_types)
+{ interval_map_mixed_assign_4_bicremental_types<bicremental_type_2, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_mixed_equal_4_bicremental_types)
+{ interval_map_mixed_equal_4_bicremental_types<bicremental_type_3, int>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_partial_interval_map_mixed_inclusion_compare_4_bicremental_types)
+{ partial_interval_map_mixed_inclusion_compare_4_bicremental_types<bicremental_type_4, int, partial_absorber>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_partial_interval_map_mixed_contains_4_bicremental_types)
+{ partial_interval_map_mixed_contains_4_bicremental_types<int, int, partial_absorber>(); }
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj b/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj
new file mode 100644
index 000000000..ae4f0052b
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D3A904F}</ProjectGuid>
+ <RootNamespace>Fastest_interval_map_mixed</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_mixed.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\fastest_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj.filters
new file mode 100644
index 000000000..799eb9d75
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc10_fastest_interval_map_mixed.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_map_mixed.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\fastest_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc9_fastest_interval_map_mixed.vcproj b/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc9_fastest_interval_map_mixed.vcproj
new file mode 100644
index 000000000..f34ebf0cf
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_map_mixed_/vc9_fastest_interval_map_mixed.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_map_mixed"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}"
+ RootNamespace="Fastest_interval_map_mixed"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_map_mixed.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\fastest_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_set_/fastest_interval_set.cpp b/src/boost/libs/icl/test/fastest_interval_set_/fastest_interval_set.cpp
new file mode 100644
index 000000000..874ca863a
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_/fastest_interval_set.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET interval_set
+#include "../fastest_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj b/src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj
new file mode 100644
index 000000000..83e13d78b
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A905C}</ProjectGuid>
+ <RootNamespace>Fastest_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj.filters
new file mode 100644
index 000000000..f3dbce382
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_/vc10_fastest_interval_set.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj b/src/boost/libs/icl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj
new file mode 100644
index 000000000..822e3bc56
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_/vc9_fastest_interval_set.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_set"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}"
+ RootNamespace="Fastest_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_set_cases.hpp b/src/boost/libs/icl/test/fastest_interval_set_cases.hpp
new file mode 100644
index 000000000..7adbdff3a
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_cases.hpp
@@ -0,0 +1,78 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
+#define BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_fundamentals_4_ordered_types)
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, ordered_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_ctor_4_bicremental_types)
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, bicremental_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_add_sub_4_bicremental_types)
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, bicremental_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_distinct_4_bicremental_types)
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, bicremental_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_distinct_4_bicremental_continuous_types)
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, continuous_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_isolate_4_bicremental_continuous_types)
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, continuous_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_element_compare_4_bicremental_types)
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, bicremental_type_4>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_contains_4_bicremental_types)
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, bicremental_type_5>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_operators_4_bicremental_types)
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, bicremental_type_6>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_base_intersect_4_bicremental_types)
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, bicremental_type_7>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_flip_4_bicremental_types)
+{ interval_set_flip_4_bicremental_types<INTERVAL_SET, bicremental_type_8>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_find_4_bicremental_types)
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, bicremental_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_element_iter_4_discrete_types)
+{ interval_set_element_iter_4_discrete_types<INTERVAL_SET, discrete_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_intersects_4_bicremental_types)
+{ interval_set_intersects_4_bicremental_types<INTERVAL_SET, bicremental_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_range_4_discrete_types)
+{ interval_set_range_4_discrete_types<INTERVAL_SET, discrete_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_move_4_discrete_types)
+{ interval_set_move_4_discrete_types<INTERVAL_SET, discrete_type_2>();}
+
+#endif // BOOST_ICL_FASTEST_INTERVAL_SET_CASES_HPP_JOFA_090702
+
+
+
diff --git a/src/boost/libs/icl/test/fastest_interval_set_infix_/fastest_interval_set_infix.cpp b/src/boost/libs/icl/test/fastest_interval_set_infix_/fastest_interval_set_infix.cpp
new file mode 100644
index 000000000..ede5b5f7c
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_infix_/fastest_interval_set_infix.cpp
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET interval_set
+#include "../fastest_interval_set_infix_cases.hpp"
+
+
+
diff --git a/src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj b/src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj
new file mode 100644
index 000000000..f19e39d28
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-35D1623E906E}</ProjectGuid>
+ <RootNamespace>Fastest_interval_set_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_set_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj.filters
new file mode 100644
index 000000000..495c4342e
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_infix_/vc10_fastest_interval_set_infix.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_set_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj b/src/boost/libs/icl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj
new file mode 100644
index 000000000..6981f7a31
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_infix_/vc9_fastest_interval_set_infix.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_set_infix"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-35D1623E906E}"
+ RootNamespace="Fastest_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_interval_set_infix_cases.hpp b/src/boost/libs/icl/test/fastest_interval_set_infix_cases.hpp
new file mode 100644
index 000000000..d42b7152f
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_infix_cases.hpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090702
+#define BOOST_ICL_FASTEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090702
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_plus_overload_4_bicremental_types)
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_1>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_pipe_overload_4_bicremental_types)
+{ interval_set_infix_pipe_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_2>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_minus_overload_4_bicremental_types)
+{ interval_set_infix_minus_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_3>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_et_overload_4_bicremental_types)
+{ interval_set_infix_et_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_4>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_infix_caret_overload_4_bicremental_types)
+{ interval_set_infix_caret_overload_4_bicremental_types<INTERVAL_SET, bicremental_type_5>();}
+
+#endif // BOOST_ICL_FASTEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090702
+
+
+
diff --git a/src/boost/libs/icl/test/fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp b/src/boost/libs/icl/test/fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp
new file mode 100644
index 000000000..455bcc78c
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_mixed_/fastest_interval_set_mixed.cpp
@@ -0,0 +1,105 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wself-assign-overloaded"
+#endif
+
+#include "../test_interval_set_mixed.hpp"
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic pop
+#endif
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_ctor_4_ordered_types)
+{ interval_set_mixed_ctor_4_ordered_types<int>(); }
+
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_equal_4_ordered_types)
+{ interval_set_mixed_equal_4_ordered_types<std::string>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_assign_4_ordered_types)
+{ interval_set_mixed_assign_4_ordered_types<float>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_ctor_4_bicremental_types)
+{ interval_set_mixed_ctor_4_bicremental_types<bicremental_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_assign_4_bicremental_types)
+{ interval_set_mixed_assign_4_bicremental_types<bicremental_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_equal_4_bicremental_types)
+{ interval_set_mixed_equal_4_bicremental_types<bicremental_type_3>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_contains_4_bicremental_types)
+{ interval_set_mixed_contains_4_bicremental_types<bicremental_type_4>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_add_4_bicremental_types)
+{ interval_set_mixed_add_4_bicremental_types<bicremental_type_5>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_subtract_4_bicremental_types)
+{ interval_set_mixed_subtract_4_bicremental_types<bicremental_type_6>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_erase_4_bicremental_types)
+{ interval_set_mixed_erase_4_bicremental_types<bicremental_type_7>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_basic_intersect_4_bicremental_types)
+{ interval_set_mixed_basic_intersect_4_bicremental_types<bicremental_type_8>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_disjoint_4_bicremental_types)
+{ interval_set_mixed_disjoint_4_bicremental_types<bicremental_type_1>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_infix_plus_overload_4_bicremental_types)
+{ interval_set_mixed_infix_plus_overload_4_bicremental_types<bicremental_type_2>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_infix_pipe_overload_4_bicremental_types)
+{ interval_set_mixed_infix_pipe_overload_4_bicremental_types<bicremental_type_3>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_infix_minus_overload_4_bicremental_types)
+{ interval_set_mixed_infix_minus_overload_4_bicremental_types<bicremental_type_4>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_infix_et_overload_4_bicremental_types)
+{ interval_set_mixed_infix_et_overload_4_bicremental_types<bicremental_type_5>(); }
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_mixed_infix_caret_overload_4_bicremental_types)
+{ interval_set_mixed_infix_caret_overload_4_bicremental_types<bicremental_type_6>(); }
diff --git a/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj b/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj
new file mode 100644
index 000000000..0c54a8af8
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D3A907E}</ProjectGuid>
+ <RootNamespace>Fastest_interval_set_mixed</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_set_mixed.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj.filters b/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj.filters
new file mode 100644
index 000000000..50db0ac89
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc10_fastest_interval_set_mixed.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_interval_set_mixed.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj b/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj
new file mode 100644
index 000000000..484e84f6e
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_interval_set_mixed_/vc9_fastest_interval_set_mixed.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_interval_set_mixed"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}"
+ RootNamespace="Fastest_interval_set_mixed"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_interval_set_mixed.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/fastest_partial_icl_quantifier.cpp b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/fastest_partial_icl_quantifier.cpp
new file mode 100644
index 000000000..8ead79f85
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/fastest_partial_icl_quantifier.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::partial_icl_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_icl_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../fastest_partial_icl_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj
new file mode 100644
index 000000000..14f9fa36a
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5A-FD5B7D3A909F}</ProjectGuid>
+ <RootNamespace>Fastest_partial_icl_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_partial_icl_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj.filters b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj.filters
new file mode 100644
index 000000000..83cc6be88
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc10_fastest_partial_icl_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_partial_icl_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc9_fastest_partial_icl_quantifier.vcproj b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc9_fastest_partial_icl_quantifier.vcproj
new file mode 100644
index 000000000..58a21913d
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_/vc9_fastest_partial_icl_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_partial_icl_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}"
+ RootNamespace="Fastest_partial_icl_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_partial_icl_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_partial_icl_quantifier_cases.hpp b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_cases.hpp
new file mode 100644
index 000000000..862e6ce66
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_icl_quantifier_cases.hpp
@@ -0,0 +1,77 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+#define BOOST_ICL_FASTEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
+//------------------------------------------------------------------------------
+// partial_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_icl_quantifier_check_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_1, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_icl_quantifier_check_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_2, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_icl_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_3, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_icl_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, int, partial_absorber, INTERVAL_MAP>();}
+
+// x - x = 0 | partial absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_icl_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_5, int, partial_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// partial_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_icl_quantifier_check_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_6, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_icl_quantifier_check_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_7, int, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_icl_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_8, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_icl_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, int, partial_enricher, INTERVAL_MAP>();}
+
+// x - x =d= 0 | partial enricher
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_icl_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types)
+{ icl_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types<bicremental_type_2, int, partial_enricher, INTERVAL_MAP>();}
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+//------------------------------------------------------------------------------
+// Containedness
+//------------------------------------------------------------------------------
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_icl_quantifier_check_containedness_4_bicremental_types)
+{ icl_quantifier_check_containedness_4_bicremental_types<bicremental_type_1, mono, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_icl_quantifier_check_containedness_4_bicremental_types)
+{ icl_quantifier_check_containedness_4_bicremental_types<bicremental_type_1, mono, partial_enricher, INTERVAL_MAP>();}
+
+
+#endif // BOOST_ICL_FASTEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
diff --git a/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp
new file mode 100644
index 000000000..51570bea9
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/fastest_partial_interval_quantifier.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::partial_interval_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../fastest_partial_interval_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj
new file mode 100644
index 000000000..5a1f66be6
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5A-FD5B7D2A909F}</ProjectGuid>
+ <RootNamespace>Fastest_partial_interval_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_partial_interval_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj.filters b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj.filters
new file mode 100644
index 000000000..d15fa6eda
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc10_fastest_partial_interval_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_partial_interval_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj
new file mode 100644
index 000000000..60e934603
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_/vc9_fastest_partial_interval_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_partial_interval_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}"
+ RootNamespace="Fastest_partial_interval_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_partial_interval_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_partial_interval_quantifier_cases.hpp b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_cases.hpp
new file mode 100644
index 000000000..df965eaeb
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_partial_interval_quantifier_cases.hpp
@@ -0,0 +1,84 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+#define BOOST_ICL_FASTEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
+//------------------------------------------------------------------------------
+// partial_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_itv_quantifier_check_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_1, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_itv_quantifier_check_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_2, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_3, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_itv_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, int, partial_absorber, INTERVAL_MAP>();}
+
+// x - x = 0 | partial absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_5, int, partial_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// partial_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_6, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_7, int, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_8, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, int, partial_enricher, INTERVAL_MAP>();}
+
+// x - x =d= 0 | partial enricher
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types)
+{ itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types<bicremental_type_2, int, partial_enricher, INTERVAL_MAP>();}
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_4, int, partial_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_5, double, partial_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_6, int, partial_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_partial_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_7, double, partial_absorber, interval_map>();}
+
+#endif // BOOST_ICL_FASTEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_/fastest_separate_interval_set.cpp b/src/boost/libs/icl/test/fastest_separate_interval_set_/fastest_separate_interval_set.cpp
new file mode 100644
index 000000000..a53cafdaf
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_/fastest_separate_interval_set.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::separate_interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET separate_interval_set
+#include "../fastest_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj b/src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj
new file mode 100644
index 000000000..cb4e96479
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D3A910C}</ProjectGuid>
+ <RootNamespace>Fastest_separate_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_separate_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp" />
+ <ClInclude Include="..\test_interval_set_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj.filters b/src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj.filters
new file mode 100644
index 000000000..8811c2e62
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_/vc10_fastest_separate_interval_set.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_separate_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_interval_set_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_/vc9_fastest_separate_interval_set.vcproj b/src/boost/libs/icl/test/fastest_separate_interval_set_/vc9_fastest_separate_interval_set.vcproj
new file mode 100644
index 000000000..b71d62bde
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_/vc9_fastest_separate_interval_set.vcproj
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_separate_interval_set"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}"
+ RootNamespace="Fastest_separate_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_separate_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\separate_interval_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_interval_set_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/fastest_separate_interval_set_infix.cpp b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/fastest_separate_interval_set_infix.cpp
new file mode 100644
index 000000000..247b134ee
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/fastest_separate_interval_set_infix.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::separate_interval_set_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET separate_interval_set
+#include "../fastest_interval_set_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj
new file mode 100644
index 000000000..157a96717
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-35D2623E911E}</ProjectGuid>
+ <RootNamespace>Fastest_separate_interval_set_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_separate_interval_set_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj.filters b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj.filters
new file mode 100644
index 000000000..8d3a8e186
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc10_fastest_separate_interval_set_infix.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_separate_interval_set_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj
new file mode 100644
index 000000000..4cd75b663
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_separate_interval_set_infix_/vc9_fastest_separate_interval_set_infix.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_separate_interval_set_infix"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-35D2623E911E}"
+ RootNamespace="Fastest_separate_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_separate_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set.cpp b/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set.cpp
new file mode 100644
index 000000000..d40d3e7b0
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set.cpp
@@ -0,0 +1,39 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::set_itl_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <set>
+#include <boost/icl/associative_element_container.hpp>
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_set_icl_set.hpp"
+
+#include "fastest_set_icl_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_cases.hpp b/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_cases.hpp
new file mode 100644
index 000000000..0001e4a4b
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_cases.hpp
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_SET_ICL_SET_CASES_HPP_JOFA_090703
+#define BOOST_ICL_FASTEST_SET_ICL_SET_CASES_HPP_JOFA_090703
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_monoid_plus_4_bicremental_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<discrete_type_1, interval_set>();}
+ //MEMO: interval_set
+// is used here pragmatically to be able to recycle test code for initializing
+// sets. These interval_set are then converted to icl::set by atomize.
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<discrete_type_2, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_abelian_monoid_et_4_bicremental_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<discrete_type_3, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<discrete_type_4, interval_set>();}
+
+#endif // BOOST_ICL_FASTEST_SET_ICL_SET_CASES_HPP_JOFA_090703
+
+
diff --git a/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_shared.cpp b/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_shared.cpp
new file mode 100644
index 000000000..9432d4df2
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_icl_set_/fastest_set_icl_set_shared.cpp
@@ -0,0 +1,28 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_et_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
+
diff --git a/src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj b/src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj
new file mode 100644
index 000000000..aa382187a
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-A8885151D13F}</ProjectGuid>
+ <RootNamespace>Fastest_set_icl_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_set_icl_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj.filters b/src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj.filters
new file mode 100644
index 000000000..4cd5d0716
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_icl_set_/vc10_fastest_set_icl_set.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_set_icl_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_set_icl_set_/vc9_fastest_set_icl_set.vcproj b/src/boost/libs/icl/test/fastest_set_icl_set_/vc9_fastest_set_icl_set.vcproj
new file mode 100644
index 000000000..9ee5b0ef4
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_icl_set_/vc9_fastest_set_icl_set.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_set_icl_set"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-A8885151D13F}"
+ RootNamespace="Fastest_set_icl_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_set_icl_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set.cpp b/src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set.cpp
new file mode 100644
index 000000000..6f6676e31
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::set_interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_set_interval_set_shared.hpp"
+
+#include "fastest_set_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp b/src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp
new file mode 100644
index 000000000..451cc06fc
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_interval_set_/fastest_set_interval_set_cases.hpp
@@ -0,0 +1,117 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090703
+#define BOOST_ICL_FASTEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090703
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_check_monoid_plus_4_bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_1, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_2, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_check_abelian_monoid_et_4_bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_3, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_4, interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// separate_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_separate_interval_set_check_monoid_plus_4_bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_5, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_separate_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_6, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_separate_interval_set_check_abelian_monoid_et_4_bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_7, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_separate_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_8, separate_interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// split_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_split_interval_set_check_monoid_plus_4_bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<bicremental_type_1, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_split_interval_set_check_abelian_monoid_plus_4_bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_2, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_split_interval_set_check_abelian_monoid_et_4_bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<bicremental_type_3, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_split_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<bicremental_type_4, split_interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// Containedness
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_check_containedness_4_bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<bicremental_type_4, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_split_interval_set_check_containedness_4_bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<bicremental_type_5, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_separate_interval_set_check_containedness_4_bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<bicremental_type_6, separate_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Inner Complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_check_inner_complementarity_4_bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_7, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_separate_interval_set_check_inner_complementarity_4_bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_8, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_split_interval_set_check_inner_complementarity_4_bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<bicremental_type_1, split_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Inner Complement and Distance
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_set_check_length_complementarity_4_bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_2, interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_separate_interval_set_check_length_complementarity_4_bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_3, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_split_interval_set_check_length_complementarity_4_bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<bicremental_type_4, split_interval_set>();}
+
+#endif // BOOST_ICL_FASTEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090703
+
diff --git a/src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj b/src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj
new file mode 100644
index 000000000..53fb74567
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-C6CEBFCE3129}</ProjectGuid>
+ <RootNamespace>Fastest_set_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_set_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj.filters b/src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj.filters
new file mode 100644
index 000000000..083cf5fed
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_interval_set_/vc10_fastest_set_interval_set.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_set_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_set_interval_set_/vc9_fastest_set_interval_set.vcproj b/src/boost/libs/icl/test/fastest_set_interval_set_/vc9_fastest_set_interval_set.vcproj
new file mode 100644
index 000000000..cdd8a9caf
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_set_interval_set_/vc9_fastest_set_interval_set.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_set_interval_set"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}"
+ RootNamespace="Fastest_set_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_set_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map.cpp b/src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map.cpp
new file mode 100644
index 000000000..35c335fdd
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_map unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_functions.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP split_interval_map
+#include "../fastest_interval_map_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map_shared.cpp b/src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map_shared.cpp
new file mode 100644
index 000000000..c98bdc8b9
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_/fastest_split_interval_map_shared.cpp
@@ -0,0 +1,72 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_map_fundamentals_4_ordered_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_map_ctor_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_map_distinct_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_distinct_4_bicremental_continuous_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_isolate_4_bicremental_continuous_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_contains_4_bicremental_types, T, bicremental_types)
+{ interval_map_contains_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_operators_4_bicremental_types, T, bicremental_types)
+{ interval_map_operators_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_is_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_find_4_bicremental_types, T, bicremental_types)
+{ interval_map_find_4_bicremental_types<split_interval_map, T, int>();}
+
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj b/src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj
new file mode 100644
index 000000000..b4256cf58
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A913E}</ProjectGuid>
+ <RootNamespace>Fastest_split_interval_map</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_map.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\vc10_icl_fast_tests.sln" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj.filters b/src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj.filters
new file mode 100644
index 000000000..1b97e5bbe
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_/vc10_fastest_split_interval_map.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\vc10_icl_fast_tests.sln" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj b/src/boost/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj
new file mode 100644
index 000000000..e22f23107
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_/vc9_fastest_split_interval_map.vcproj
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_split_interval_map"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}"
+ RootNamespace="Fastest_split_interval_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_split_interval_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath="..\vc9_icl_fast_tests.sln"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp
new file mode 100644
index 000000000..8f4bd5b91
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/fastest_split_interval_map_infix.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_map_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_map_shared are tests that should give identical results for all
+// interval_maps: interval_map and split_interval_map.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP split_interval_map
+#include "../fastest_interval_map_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj
new file mode 100644
index 000000000..6d5cc5dfc
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D4A914D}</ProjectGuid>
+ <RootNamespace>Fastest_split_interval_map_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_map_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj.filters b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj.filters
new file mode 100644
index 000000000..c593eda29
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc10_fastest_split_interval_map_infix.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_map_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc9_fastest_split_interval_map_infix.vcproj b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc9_fastest_split_interval_map_infix.vcproj
new file mode 100644
index 000000000..101f33087
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_map_infix_/vc9_fastest_split_interval_map_infix.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_split_interval_map_infix"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D4A914D}"
+ RootNamespace="Fastest_split_interval_map_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_split_interval_map_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set.cpp b/src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set.cpp
new file mode 100644
index 000000000..1d034dee1
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET split_interval_set
+#include "../fastest_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set_shared.cpp b/src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set_shared.cpp
new file mode 100644
index 000000000..56c87d38e
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_/fastest_split_interval_set_shared.cpp
@@ -0,0 +1,56 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_contains_4_bicremental_types, T, bicremental_types)
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_operators_4_bicremental_types, T, bicremental_types)
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_find_4_bicremental_types, T, bicremental_types)
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, T>();}
+
+
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj b/src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj
new file mode 100644
index 000000000..5e970f62a
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D4A915C}</ProjectGuid>
+ <RootNamespace>Fastest_split_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp" />
+ <ClInclude Include="..\test_interval_set_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj.filters b/src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj.filters
new file mode 100644
index 000000000..0f8bbff01
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_/vc10_fastest_split_interval_set.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_interval_set_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_/vc9_fastest_split_interval_set.vcproj b/src/boost/libs/icl/test/fastest_split_interval_set_/vc9_fastest_split_interval_set.vcproj
new file mode 100644
index 000000000..3fded1494
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_/vc9_fastest_split_interval_set.vcproj
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_split_interval_set"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}"
+ RootNamespace="Fastest_split_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_split_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\split_interval_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_interval_set_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_infix_/fastest_split_interval_set_infix.cpp b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/fastest_split_interval_set_infix.cpp
new file mode 100644
index 000000000..179066bb4
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/fastest_split_interval_set_infix.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_set_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET split_interval_set
+#include "../fastest_interval_set_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj
new file mode 100644
index 000000000..ae891338d
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-35D3623E916E}</ProjectGuid>
+ <RootNamespace>Fastest_split_interval_set_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_set_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_split_interval_set_infix_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj.filters b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj.filters
new file mode 100644
index 000000000..09752b782
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc10_fastest_split_interval_set_infix.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_split_interval_set_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_split_interval_set_infix_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc9_fastest_split_interval_set_infix.vcproj b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc9_fastest_split_interval_set_infix.vcproj
new file mode 100644
index 000000000..f853c2fd2
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_split_interval_set_infix_/vc9_fastest_split_interval_set_infix.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_split_interval_set_infix"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-35D3623E916E}"
+ RootNamespace="Fastest_split_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_split_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_split_interval_set_infix_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp
new file mode 100644
index 000000000..48ba0fdd8
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/fastest_total_icl_quantifier.cpp
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::total_icl_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_icl_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../fastest_total_icl_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj
new file mode 100644
index 000000000..7946b836a
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5B-FD5B7D4A917F}</ProjectGuid>
+ <RootNamespace>Fastest_total_icl_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_total_icl_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj.filters b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj.filters
new file mode 100644
index 000000000..898851dce
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc10_fastest_total_icl_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_total_icl_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc9_fastest_total_icl_quantifier.vcproj b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc9_fastest_total_icl_quantifier.vcproj
new file mode 100644
index 000000000..51fc4181d
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_icl_quantifier_/vc9_fastest_total_icl_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_total_icl_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}"
+ RootNamespace="Fastest_total_icl_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_total_icl_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_total_icl_quantifier_cases.hpp b/src/boost/libs/icl/test/fastest_total_icl_quantifier_cases.hpp
new file mode 100644
index 000000000..46e173a0f
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_icl_quantifier_cases.hpp
@@ -0,0 +1,84 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090703
+#define BOOST_ICL_FASTEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090703
+
+//------------------------------------------------------------------------------
+// total_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_icl_quantifier_check_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_1, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_icl_quantifier_check_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_2, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_icl_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_3, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_icl_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, float, total_absorber, INTERVAL_MAP>();}
+
+// (0-x) + x = 0 | total absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_icl_quantifier_check_abelian_group_plus_4_bicremental_domain_and_discrete_codomain)
+{ icl_quantifier_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_icl_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_1)
+{ icl_quantifier_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, double, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_icl_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_2)
+{ icl_quantifier_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, boost::rational<int>, total_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// total_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_icl_quantifier_check_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_6, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_icl_quantifier_check_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_7, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_icl_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_8, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_icl_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ icl_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, double, total_enricher, INTERVAL_MAP>();}
+
+// (0-x) + x =d= 0 | total absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_discrete_codomain)
+{ icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_2, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_continuous_codomain_1)
+{ icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_3, float, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_continuous_codomain_2)
+{ icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_4, boost::rational<int>, total_enricher, INTERVAL_MAP>();}
+
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+
+
+
+#endif // BOOST_ICL_FASTEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090703
+
diff --git a/src/boost/libs/icl/test/fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp
new file mode 100644
index 000000000..749d5bf70
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/fastest_total_interval_quantifier.cpp
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::total_interval_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../fastest_total_interval_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj
new file mode 100644
index 000000000..920ff4c88
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5B-FD5B7D2A917F}</ProjectGuid>
+ <RootNamespace>Fastest_total_interval_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_total_interval_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj.filters b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj.filters
new file mode 100644
index 000000000..c11efb2df
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc10_fastest_total_interval_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fastest_total_interval_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj
new file mode 100644
index 000000000..ecb0431c0
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_interval_quantifier_/vc9_fastest_total_interval_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fastest_total_interval_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}"
+ RootNamespace="Fastest_total_interval_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fastest_total_interval_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fastest_total_interval_quantifier_cases.hpp b/src/boost/libs/icl/test/fastest_total_interval_quantifier_cases.hpp
new file mode 100644
index 000000000..7fe36fd95
--- /dev/null
+++ b/src/boost/libs/icl/test/fastest_total_interval_quantifier_cases.hpp
@@ -0,0 +1,100 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090703
+#define BOOST_ICL_FASTEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090703
+
+//------------------------------------------------------------------------------
+// total_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_itv_quantifier_check_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_1, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_itv_quantifier_check_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_2, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_3, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_itv_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_4, float, total_absorber, INTERVAL_MAP>();}
+
+// (0-x) + x = 0 | total absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_discrete_codomain)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_1)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, double, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_2)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<bicremental_type_5, boost::rational<int>, total_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// total_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<bicremental_type_6, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<bicremental_type_7, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<bicremental_type_8, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_abelian_monoid_et_4_bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<bicremental_type_1, double, total_enricher, INTERVAL_MAP>();}
+
+// (0-x) + x =d= 0 | total absorber
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_discrete_codomain)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_2, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_continuous_codomain_1)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_3, float, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_continuous_codomain_2)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<bicremental_type_4, boost::rational<int>, total_enricher, INTERVAL_MAP>();}
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_4, int, total_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_5, double, total_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<bicremental_type_6, int, total_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_itl_total_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<bicremental_type_7, double, total_absorber, interval_map>();}
+
+#endif // BOOST_ICL_FASTEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090703
+
diff --git a/src/boost/libs/icl/test/fix_icl_after_thread_/fix_icl_after_thread.cpp b/src/boost/libs/icl/test/fix_icl_after_thread_/fix_icl_after_thread.cpp
new file mode 100644
index 000000000..ea4cfa76c
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_icl_after_thread_/fix_icl_after_thread.cpp
@@ -0,0 +1,31 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::fix_icl_after_thread unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include "../unit_test_unwarned.hpp"
+
+// #include <boost/thread.hpp> MEMO: The problem occured when using thread.hpp
+#include <boost/bind.hpp> // but is also triggered from bind.hpp alone
+ // while the cause of it is an error in the msvc-7.1 to 10.0 compilers.
+ // A minimal example is provided by test case 'cmp_msvc_value_born_error'
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+BOOST_AUTO_TEST_CASE(dummy)
+{
+ BOOST_CHECK(true);
+}
+
diff --git a/src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj b/src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj
new file mode 100644
index 000000000..3085287d9
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA0}</ProjectGuid>
+ <RootNamespace>fix_icl_after_thread</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fix_icl_after_thread.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj.filters b/src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj.filters
new file mode 100644
index 000000000..7e7a1547c
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_icl_after_thread_/vc10_fix_icl_after_thread.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fix_icl_after_thread.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fix_icl_after_thread_/vc9_fix_icl_after_thread.vcproj b/src/boost/libs/icl/test/fix_icl_after_thread_/vc9_fix_icl_after_thread.vcproj
new file mode 100644
index 000000000..8169ce623
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_icl_after_thread_/vc9_fix_icl_after_thread.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fix_icl_after_thread"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}"
+ RootNamespace="fix_icl_after_thread"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fix_icl_after_thread.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp b/src/boost/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp
new file mode 100644
index 000000000..9da224dbd
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_include_after_thread_/fix_include_after_thread.cpp
@@ -0,0 +1,48 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+//JODO REMOVE THIS TESTCASE
+
+#define BOOST_TEST_MODULE icl::fix_include_after_thread unit test
+#include <boost/config.hpp>
+#include <boost/test/unit_test.hpp>
+
+//Problem: If <boost/thread.hpp> is included before this
+//example code, it influences compilation: Code that has
+//compiled well, produces a syntax error error C2059 under
+//msvc-9/10. This can be fixed by enclosing subexpressions
+//like some_attribute<Type>::value in parentheses
+// ->(some_attribute<Type>::value)
+//The problem does not occur for gcc compilers.
+
+// #include <boost/thread.hpp> MEMO: The problem occured when using thread.hpp
+#include <boost/bind.hpp> // but is also triggered from bind.hpp alone
+ // while the cause of it is an error in the msvc-7.1 to 10.0 compilers.
+ // A minimal example is provided by test case 'cmp_msvc_value_born_error'
+
+//--- included code ---------------------------------------
+template <class Type> struct some_attribute
+{
+ BOOST_STATIC_CONSTANT(int, value = 0);
+};
+
+template <class Type> struct some_predicate
+{
+ BOOST_STATIC_CONSTANT(bool,
+ value = ((some_attribute<Type>::value) < 0)
+ // value = ( some_attribute<Type>::value < 0)
+ //error C2059: syntax error : ')' ONLY
+ //IF <boost/thread.hpp> is included before
+ );
+};
+//--- end of included code --------------------------------
+
+BOOST_AUTO_TEST_CASE(dummy)
+{
+ BOOST_CHECK(true);
+}
+
diff --git a/src/boost/libs/icl/test/fix_include_after_thread_/vc9_fix_include_after_thread.vcproj b/src/boost/libs/icl/test/fix_include_after_thread_/vc9_fix_include_after_thread.vcproj
new file mode 100644
index 000000000..ce2510caa
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_include_after_thread_/vc9_fix_include_after_thread.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fix_include_after_thread"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA0}"
+ RootNamespace="fix_include_after_thread"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fix_include_after_thread.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/fix_tickets_/fix_tickets.cpp b/src/boost/libs/icl/test/fix_tickets_/fix_tickets.cpp
new file mode 100644
index 000000000..0232c3194
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_tickets_/fix_tickets.cpp
@@ -0,0 +1,236 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2011-2011: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::fix_icl_after_thread unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include "../unit_test_unwarned.hpp"
+
+//#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+
+#include <iostream>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+BOOST_AUTO_TEST_CASE(ticket_5482)
+{
+ typedef interval_map<int,int,partial_absorber,std::less> m1_t;
+ typedef interval_map<int,int,partial_absorber,std::greater> m2_t;
+ m1_t m1;
+ m2_t m2;
+ m1.insert(make_pair(m1_t::interval_type(1), 20));
+ m1.insert(make_pair(m1_t::interval_type(2), 20));
+ m1.insert(make_pair(m1_t::interval_type(3), 20));
+
+ m2.insert(make_pair(m2_t::interval_type(1), 20));
+ m2.insert(make_pair(m2_t::interval_type(2), 20));
+ m2.insert(make_pair(m2_t::interval_type(3), 20));
+
+ BOOST_CHECK_EQUAL(m1.iterative_size(), m2.iterative_size());
+ BOOST_CHECK_EQUAL(m1.iterative_size(), 1);
+ BOOST_CHECK_EQUAL(m2.iterative_size(), 1);
+}
+
+
+#include <boost/cstdint.hpp>
+BOOST_AUTO_TEST_CASE(ticket_5559_Denis)
+{
+ //Submitted by Denis
+ typedef boost::icl::interval_set<boost::uint32_t, std::greater> Set;
+ const uint32_t ui32_max = (std::numeric_limits<uint32_t>::max)();
+
+ Set q1( Set::interval_type::closed(ui32_max, 0) );
+ Set q5( Set::interval_type::closed(0, 0) );
+
+ BOOST_CHECK_EQUAL(q1, q1+q5);
+}
+
+//------------------------------------------------------------------------------
+// Ticket #6095 Marvin Sielenkemper
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE(ticket_6095_Marvin_Sielenkemper_isEmptyTest)
+{
+ typedef int Value;
+ typedef boost::icl::interval<Value> Interval;
+ typedef std::numeric_limits<Value> Limits;
+
+ Value const max((Limits::max)());
+
+ //Interval::interval_type piff = Interval::open(max, max);
+
+ BOOST_CHECK(!icl::is_empty(Interval::open(max - 2, max)));
+ BOOST_CHECK( icl::is_empty(Interval::open(max - 1, max)));
+ BOOST_CHECK( icl::is_empty(Interval::open(max, max)));
+}
+
+BOOST_AUTO_TEST_CASE(ticket_6095_Marvin_Sielenkemper_totalRangeTest)
+{
+ typedef int Value;
+ typedef boost::icl::interval<Value> Interval;
+ typedef std::numeric_limits<Value> Limits;
+
+ Value const min((Limits::min)());
+ Value const max((Limits::max)());
+
+ boost::icl::interval_map<Value, int, boost::icl::total_enricher> intervals;
+
+ intervals += std::make_pair(Interval::closed(min, max), 0);
+ intervals += std::make_pair(Interval::right_open(0, 10), 3);
+
+ BOOST_CHECK_EQUAL(intervals.iterative_size(), 3);
+}
+
+BOOST_AUTO_TEST_CASE(test_ticket_7871)
+{
+ boost::icl::split_interval_map <int, int> a, b;
+ a = b;
+ BOOST_CHECK_EQUAL(a, b);
+}
+
+//------------------------------------------------------------------------------
+// Ticket #11308 Stephen Hewitt
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE(ticket_11308_Stephen_Hewitt_extreme_valued_closed_intervals)
+{
+ typedef boost::icl::closed_interval<boost::uint16_t, std::less> interval_t;
+ typedef boost::icl::split_interval_set<boost::uint16_t, std::less, interval_t> set_t;
+
+ set_t s1, s2;
+
+ s1 += interval_t(0x0000, 0x9fff);
+ s1 += interval_t(0xa000, 0xbfff);
+ s1 += interval_t(0xc000, 0xffff);
+
+ s2 += interval_t(0x0000, 0xffff);
+ s2 += interval_t(0xa000, 0xbfff);
+
+ BOOST_CHECK_EQUAL(s1, s2);
+}
+
+BOOST_AUTO_TEST_CASE(extreme_valued_right_open_intervals)
+{
+ typedef boost::icl::right_open_interval<boost::uint16_t, std::less> interval_t;
+ typedef boost::icl::split_interval_set<boost::uint16_t, std::less, interval_t> set_t;
+
+ set_t s1, s2;
+
+ s1 += interval_t(0x0000, 0xa000);
+ s1 += interval_t(0xa000, 0xc000);
+ s1 += interval_t(0xc000, 0xffff); //Contains 0xfffe as largest element
+
+ s2 += interval_t(0x0000, 0xffff);
+ s2 += interval_t(0xa000, 0xc000);
+
+ BOOST_CHECK_EQUAL(s1, s2);
+}
+
+BOOST_AUTO_TEST_CASE(extreme_valued_left_open_intervals)
+{
+ typedef boost::icl::left_open_interval<boost::uint16_t, std::less> interval_t;
+ typedef boost::icl::split_interval_set<boost::uint16_t, std::less, interval_t> set_t;
+
+ set_t s1, s2;
+
+ s1 += interval_t(0x0000, 0x9fff); //Contains 1 as smallest element
+ s1 += interval_t(0x9fff, 0xbfff);
+ s1 += interval_t(0xbfff, 0xffff);
+
+ s2 += interval_t(0x0000, 0xffff);
+ s2 += interval_t(0x9fff, 0xbfff);
+
+ BOOST_CHECK_EQUAL(s1, s2);
+}
+
+BOOST_AUTO_TEST_CASE(extreme_valued_open_intervals)
+{
+ typedef boost::icl::open_interval<boost::uint16_t, std::less> interval_t;
+ typedef boost::icl::split_interval_set<boost::uint16_t, std::less, interval_t> set_t;
+
+ set_t s1, s2;
+
+ s1 += interval_t(0x0000, 0xa000); //Contains 1 as smallest element
+ s1 += interval_t(0x9fff, 0xc000);
+ s1 += interval_t(0xbfff, 0xffff); //Contains 0xfffe as largest element
+
+ s2 += interval_t(0x0000, 0xffff);
+ s2 += interval_t(0x9fff, 0xc000);
+
+ BOOST_CHECK_EQUAL(s1, s2);
+}
+
+BOOST_AUTO_TEST_CASE(test_span_and_hull)
+{
+ typedef closed_interval<int> cl_I_int;
+ cl_I_int span_1_2 = span< cl_I_int >(1,2);
+ cl_I_int span_2_1 = span< cl_I_int >(2,1);
+ BOOST_CHECK_EQUAL(span_1_2, span_2_1);
+ BOOST_CHECK_EQUAL(hull< cl_I_int >(1,2), hull< cl_I_int >(2,1));
+
+ BOOST_CHECK_EQUAL( span< right_open_interval<int> >(2,1)
+ , construct< right_open_interval<int> >(1,2) );
+
+ BOOST_CHECK_EQUAL( hull< right_open_interval<int> >(2,1)
+ , construct< right_open_interval<int> >(1,3) );
+}
+
+BOOST_AUTO_TEST_CASE(test_ticket_11942)
+{
+ boost::icl::split_interval_set<int> intervals;
+ intervals.insert(boost::icl::discrete_interval<int>(1, 2));
+ intervals.insert(boost::icl::discrete_interval<int>(2, 3));
+ intervals.insert(boost::icl::discrete_interval<int>(0, 3));
+
+ BOOST_CHECK_EQUAL(intervals.size(), 3);
+}
+
+BOOST_AUTO_TEST_CASE(test_ticket_12872)
+{
+ boost::icl::split_interval_set<unsigned> ss
+ = boost::icl::split_interval_set<unsigned>();
+ std::vector<std::pair<unsigned, unsigned> > rs;
+ rs.push_back(make_pair(88, 96));
+ rs.push_back(make_pair(72, 96));
+ rs.push_back(make_pair(80, 96));
+ rs.push_back(make_pair(24, 64));
+ rs.push_back(make_pair(80, 96));
+ rs.push_back(make_pair(32, 72));
+ rs.push_back(make_pair(88, 96));
+ rs.push_back(make_pair(16, 56));
+ // {{88, 96}, {72, 96}, {80, 96}, {24, 64}, {80, 96}, {32, 72},
+ // {88, 96}, {16, 56}};
+
+ for(int i=0; i < rs.size(); i++) {
+ ss.add( boost::icl::interval<unsigned>::right_open(rs[i].first, rs[i].second) );
+ }
+
+ boost::icl::split_interval_map<unsigned, unsigned> im
+ = boost::icl::split_interval_map<unsigned, unsigned>();
+ for(int i=0; i < rs.size(); i++) {
+ im.add( make_pair( boost::icl::interval<unsigned>::right_open(rs[i].first, rs[i].second), 1 ) );
+ }
+
+ BOOST_CHECK_EQUAL(interval_count(ss), interval_count(im));
+ BOOST_CHECK_EQUAL(icl::size(ss), icl::size(im));
+ BOOST_CHECK_EQUAL(hull(ss), hull(im));
+}
+
+BOOST_AUTO_TEST_CASE(test_ticket_12926)
+{
+ boost::icl::interval_set<int> a;
+ a.insert(boost::icl::interval<int>::right_open(-100, 100));
+ a.insert(-50);
+
+ BOOST_CHECK_EQUAL(a.size(), 200);
+}
+
diff --git a/src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj b/src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj
new file mode 100644
index 000000000..e4d8ef4dd
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA1}</ProjectGuid>
+ <RootNamespace>fix_tickets</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="fix_tickets.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj.filters b/src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj.filters
new file mode 100644
index 000000000..119e40e30
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_tickets_/vc10_fix_tickets.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="fix_tickets.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/fix_tickets_/vc9_fix_tickets.vcproj b/src/boost/libs/icl/test/fix_tickets_/vc9_fix_tickets.vcproj
new file mode 100644
index 000000000..dc9e78b95
--- /dev/null
+++ b/src/boost/libs/icl/test/fix_tickets_/vc9_fix_tickets.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_fix_tickets"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}"
+ RootNamespace="fix_tickets"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\fix_tickets.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/portability.hpp b/src/boost/libs/icl/test/portability.hpp
new file mode 100644
index 000000000..0efdd186f
--- /dev/null
+++ b/src/boost/libs/icl/test/portability.hpp
@@ -0,0 +1,71 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_PORTABILITY_HPP_JOFA_101111
+#define BOOST_ICL_TEST_PORTABILITY_HPP_JOFA_101111
+
+#include <boost/icl/detail/design_config.hpp>
+
+// This file contains auxiliary macros to help with portability problems
+// It is not designed to for general use but only in the context of test
+// code for the ICL. There will be a number of specific assumptions about
+// e.g. template parameter names that are only valid for icl tests.
+
+//PORT: msvc-7.1: For local template template parameters, msvc-7.1 does not
+// accept a subsequent instantiation of that parameter using default arguments e.g.:
+// test_functions.hpp(37) : error C2976: 'IntervalMap' : too few template arguments
+
+//ASSUMPTION: Fixed name IntervalMap
+#define ICL_PORT_msvc_7_1_IntervalMap(tp_T, tp_U, tp_Trt) \
+IntervalMap<tp_T, tp_U, tp_Trt \
+ ,ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, tp_T) \
+ ,ICL_COMBINE_INSTANCE(icl::inplace_plus, tp_U) \
+ ,ICL_SECTION_INSTANCE(icl::inter_section, tp_U) \
+ ,ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, tp_T)) \
+ ,std::allocator>
+
+//ASSUMPTION: Fixed name IntervalSet
+#define ICL_PORT_msvc_7_1_IntervalSet(tp_T) \
+IntervalSet<tp_T \
+ ,ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, tp_T) \
+ ,ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, tp_T)) \
+ ,std::allocator>
+
+
+//------------------------------------------------------------------------------
+// Signature Macros: Help reducing redundancies in template headers
+//------------------------------------------------------------------------------
+#define ICL_IntervalMap_TEMPLATE(tp_T, tp_U, tp_Traits, tp_Trt) \
+template<class tp_T, class tp_U, \
+ class tp_Traits = tp_Trt, \
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, tp_T), \
+ ICL_COMBINE Combine = ICL_COMBINE_INSTANCE(icl::inplace_plus, tp_U), \
+ ICL_SECTION Section = ICL_SECTION_INSTANCE(icl::inter_section, tp_U), \
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, Compare), \
+ ICL_ALLOC Alloc = std::allocator>class
+
+
+#ifndef ICL_INTERVAL_BITSET_IMPL
+
+# define ICL_IntervalSet_TEMPLATE(tp_T) \
+ template<class tp_T, \
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, tp_T), \
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, Compare), \
+ ICL_ALLOC Alloc = std::allocator>class
+
+#else
+
+# define ICL_IntervalSet_TEMPLATE(tp_T) \
+ template<class tp_T, \
+ class BitSetT = icl::bits<unsigned long>, \
+ ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, tp_T), \
+ ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, tp_T, Compare), \
+ ICL_ALLOC Alloc = std::allocator>class
+
+#endif //ICL_INTERVAL_BITSET_IMPL
+
+#endif // BOOST_ICL_TEST_PORTABILITY_HPP_JOFA_101111
diff --git a/src/boost/libs/icl/test/test_casual_/test_casual.cpp b/src/boost/libs/icl/test/test_casual_/test_casual.cpp
new file mode 100644
index 000000000..584954b60
--- /dev/null
+++ b/src/boost/libs/icl/test/test_casual_/test_casual.cpp
@@ -0,0 +1,95 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::casual unit test
+
+#define BOOST_ICL_TEST_CHRONO
+
+#include <libs/icl/test/disable_test_warnings.hpp>
+
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/rational.hpp>
+
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/icl/gregorian.hpp>
+#include <boost/icl/ptime.hpp>
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/interval.hpp>
+
+
+
+namespace my
+{
+
+class Spy
+{
+public:
+ Spy():_val(0){
+ std::cout << "Spy() ";
+ }
+ Spy(int val):_val(val){}
+ int val()const { return _val; }
+
+ Spy& operator += (const Spy& rhs){
+ std::cout << "+= ";
+ return *this;
+ }
+ Spy& operator -= (const Spy& rhs){ if(_val == rhs.val()) _val=0; return *this; }
+ Spy& operator &= (const Spy& rhs){ if(_val != rhs.val()) _val=0; return *this; }
+
+private:
+ int _val;
+};
+
+bool operator == (const Spy& lhs, const Spy& rhs){ return lhs.val() == rhs.val(); }
+bool operator < (const Spy& lhs, const Spy& rhs){ return lhs.val() < rhs.val(); }
+
+template<class CharType, class CharTraits>
+std::basic_ostream<CharType, CharTraits> &operator<<
+ (std::basic_ostream<CharType, CharTraits> &stream, Spy const& value)
+{
+ return stream << value.val();
+}
+
+} // namespace my
+
+
+
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+BOOST_AUTO_TEST_CASE(casual)
+{
+ using namespace my;
+
+
+ typedef interval_map<int, Spy> SpyMapT;
+ SpyMapT imap;
+
+ //imap += make_pair(interval<int>::right_open( 0, 8), Spy(1));
+
+ imap.add(imap.begin(), make_pair(interval<int>::right_open( 0, 8), Spy(1)));
+
+ BOOST_CHECK_EQUAL(true, true);
+}
+
+
diff --git a/src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj b/src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj
new file mode 100644
index 000000000..6e11b455d
--- /dev/null
+++ b/src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>vc10_test_casual</ProjectName>
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}</ProjectGuid>
+ <RootNamespace>Test_casual</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../; ../../../../boost_1_35_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../; %(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_casual.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj.filters b/src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj.filters
new file mode 100644
index 000000000..ed5685bed
--- /dev/null
+++ b/src/boost/libs/icl/test/test_casual_/vc10_test_casual.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_casual.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_casual_/vc9_test_casual.vcproj b/src/boost/libs/icl/test/test_casual_/vc9_test_casual.vcproj
new file mode 100644
index 000000000..de9d06f0f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_casual_/vc9_test_casual.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_casual"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}"
+ RootNamespace="Test_casual"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_casual.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_changing_interval_defaults_/test_changing_interval_defaults.cpp b/src/boost/libs/icl/test/test_changing_interval_defaults_/test_changing_interval_defaults.cpp
new file mode 100644
index 000000000..9501436d7
--- /dev/null
+++ b/src/boost/libs/icl/test/test_changing_interval_defaults_/test_changing_interval_defaults.cpp
@@ -0,0 +1,103 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::test_doc_code unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+
+#include <limits>
+#include <complex>
+
+
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/type_traits/is_same.hpp>
+
+
+#define BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+#define BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT right_open_interval
+#define BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS 2 //0=() 1=(] 2=[) 3=[]
+
+#include <boost/icl/rational.hpp>
+
+#include <boost/icl/detail/interval_morphism.hpp>
+#include <boost/icl/interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+BOOST_AUTO_TEST_CASE(test_intervals_4_changed_lib_defaults)
+{
+
+#if defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && !defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
+ BOOST_CHECK( (boost::is_same<icl::interval<int >::type, right_open_interval<int > >::value) );
+ BOOST_CHECK( (boost::is_same<icl::interval<double>::type, right_open_interval<double> >::value) );
+
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<right_open_interval<int> >(1,2) );
+
+ BOOST_CHECK_EQUAL( icl::interval<float>::right_open(1.0,2.0), icl::construct<right_open_interval<float> >(1.0,2.0) );
+ //The next yields compiletime error: STATIC_ASSERTION_FAILURE
+ //BOOST_CHECK_EQUAL( icl::interval<float>::left_open(1.0,2.0), icl::construct<right_open_interval<float> >(1.0,2.0) );
+#endif
+
+#if defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
+# if defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 0)
+ cout << "discrete_interval == open_interval\n";
+ BOOST_CHECK( (boost::is_same<icl::interval<int>::type, open_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<open_interval<int> >(0,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<open_interval<int> >(0,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<open_interval<int> >(0,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<open_interval<int> >(0,2) );
+
+# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 1)
+ cout << "discrete_interval == left_open_interval\n";
+ BOOST_CHECK( (boost::is_same<icl::interval<int>::type, left_open_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<left_open_interval<int> >(0,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<left_open_interval<int> >(0,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<left_open_interval<int> >(0,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<left_open_interval<int> >(0,1) );
+
+# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 2)
+ cout << "discrete_interval == right_open_interval\n";
+ BOOST_CHECK( (boost::is_same<icl::interval<int>::type, right_open_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<right_open_interval<int> >(1,2) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<right_open_interval<int> >(1,2) );
+
+# elif defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS) && (BOOST_ICL_DISCRETE_STATIC_INTERVAL_BORDERS == 3)
+ cout << "discrete_interval == closed_interval\n";
+ BOOST_CHECK( (boost::is_same<icl::interval<int>::type, closed_interval<int> >::value) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::open(0,2), icl::construct<closed_interval<int> >(1,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::left_open(0,1), icl::construct<closed_interval<int> >(1,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::right_open(1,2), icl::construct<closed_interval<int> >(1,1) );
+ BOOST_CHECK_EQUAL( icl::interval<int>::closed(1,1), icl::construct<closed_interval<int> >(1,1) );
+
+# else
+ cout << "#else part, INTERVAL_BORDERS not in {0,1,2,3}\n";
+#endif //defined(BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS) && defined(BOOST_ICL_DISCRETE_STATIC_INTERVAL_DEFAULT)
+
+#else
+ BOOST_CHECK( (boost::is_same<icl::interval<int >::type, discrete_interval<int > >::value) );
+ BOOST_CHECK( (boost::is_same<icl::interval<double>::type, continuous_interval<double> >::value) );
+#endif
+
+}
diff --git a/src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj b/src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj
new file mode 100644
index 000000000..e1a3dabe5
--- /dev/null
+++ b/src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>vc10_test_changing_interval_defaults</ProjectName>
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D8A9FA0}</ProjectGuid>
+ <RootNamespace>Test_changing_interval_defaults</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_changing_interval_defaults.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj.filters b/src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj.filters
new file mode 100644
index 000000000..2c548ec08
--- /dev/null
+++ b/src/boost/libs/icl/test/test_changing_interval_defaults_/vc10_test_changing_interval_defalts.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_changing_interval_defaults.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_changing_interval_defaults_/vc9_test_changing_interval_defalts.vcproj b/src/boost/libs/icl/test/test_changing_interval_defaults_/vc9_test_changing_interval_defalts.vcproj
new file mode 100644
index 000000000..f7bfb52d8
--- /dev/null
+++ b/src/boost/libs/icl/test/test_changing_interval_defaults_/vc9_test_changing_interval_defalts.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_changing_interval_defaults"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}"
+ RootNamespace="Test_changing_interval_defaults"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_changing_interval_defaults.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_combinable_/test_combinable.cpp b/src/boost/libs/icl/test/test_combinable_/test_combinable.cpp
new file mode 100644
index 000000000..78607956e
--- /dev/null
+++ b/src/boost/libs/icl/test/test_combinable_/test_combinable.cpp
@@ -0,0 +1,516 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::casual unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+template<template<class, class>class IsCombinable,
+ class LeftT, class RightT>
+void check_combinable(bool expected, const char* type_combi, const char* combi_text)
+{
+ std::string type_combination = type_combi;
+ std::string is_combi_text = combi_text;
+ bool is_combinable = IsCombinable<LeftT,RightT>::value;
+ std::string combination_result = is_combinable
+ ? (is_combinable == expected ? type_combination : "expected: NOT "+is_combi_text+"<"+type_combination+">")
+ : (is_combinable == expected ? type_combination : "expected: IS "+is_combi_text+"<"+type_combination+">");
+
+ //BOOST_CHECK_EQUAL(expected, is_combinable);
+ BOOST_CHECK_EQUAL(type_combination, combination_result);
+}
+
+template<template<class, class>class IsCombinable>
+void check_combine_pattern(const char* text,
+ bool jS_e, bool jS_i, bool jS_b, bool jS_p, bool jS_jS, bool jS_zS, bool jS_sS, bool jS_jM, bool jS_sM,
+ bool zS_e, bool zS_i, bool zS_b, bool zS_p, bool zS_jS, bool zS_zS, bool zS_sS, bool zS_jM, bool zS_sM,
+ bool sS_e, bool sS_i, bool sS_b, bool sS_p, bool sS_jS, bool sS_zS, bool sS_sS, bool sS_jM, bool sS_sM,
+ bool jM_e, bool jM_i, bool jM_b, bool jM_p, bool jM_jS, bool jM_zS, bool jM_sS, bool jM_jM, bool jM_sM,
+ bool sM_e, bool sM_i, bool sM_b, bool sM_p, bool sM_jS, bool sM_zS, bool sM_sS, bool sM_jM, bool sM_sM,
+ bool check_base_class = true
+ )
+{
+ typedef interval_set<int> jS;
+ typedef separate_interval_set<int> zS;
+ typedef split_interval_set<int> sS;
+ typedef interval_map<int,double> jM;
+ typedef split_interval_map<int,double> sM;
+
+ typedef interval_base_set<jS,int> jT;
+ typedef interval_base_set<zS,int> zT;
+ typedef interval_base_set<sS,int> sT;
+ typedef interval_base_map<jM,int,double> jN;
+ typedef interval_base_map<sM,int,double> sN;
+
+ typedef interval_set<int>::element_type S_e;
+ typedef interval_set<int>::segment_type S_i;
+
+ typedef interval_map<int,double>::element_type M_b;
+ typedef interval_map<int,double>::segment_type M_p;
+
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, jS, S_e>(jS_e , "jS_e ", text);
+ check_combinable<IsCombinable, jS, S_i>(jS_i , "jS_i ", text);
+ check_combinable<IsCombinable, jS, M_b>(jS_b , "jS_b ", text);
+ check_combinable<IsCombinable, jS, M_p>(jS_p , "jS_p ", text);
+ check_combinable<IsCombinable, jS, jS >(jS_jS, "jS_jS", text);
+ check_combinable<IsCombinable, jS, zS >(jS_zS, "jS_zS", text);
+ check_combinable<IsCombinable, jS, sS >(jS_sS, "jS_sS", text);
+ check_combinable<IsCombinable, jS, jM >(jS_jM, "jS_jM", text);
+ check_combinable<IsCombinable, jS, sM >(jS_sM, "jS_sM", text);
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, zS, S_e>(zS_e , "zS_e ", text);
+ check_combinable<IsCombinable, zS, S_i>(zS_i , "zS_i ", text);
+ check_combinable<IsCombinable, zS, M_b>(zS_b , "zS_b ", text);
+ check_combinable<IsCombinable, zS, M_p>(zS_p , "zS_p ", text);
+ check_combinable<IsCombinable, zS, jS >(zS_jS, "zS_jS", text);
+ check_combinable<IsCombinable, zS, zS >(zS_zS, "zS_zS", text);
+ check_combinable<IsCombinable, zS, sS >(zS_sS, "zS_sS", text);
+ check_combinable<IsCombinable, zS, jM >(zS_jM, "zS_jM", text);
+ check_combinable<IsCombinable, zS, sM >(zS_sM, "zS_sM", text);
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, sS, S_e>(sS_e , "sS_e ", text);
+ check_combinable<IsCombinable, sS, S_i>(sS_i , "sS_i ", text);
+ check_combinable<IsCombinable, sS, M_b>(sS_b , "sS_b ", text);
+ check_combinable<IsCombinable, sS, M_p>(sS_p , "sS_p ", text);
+ check_combinable<IsCombinable, sS, jS >(sS_jS, "sS_jS", text);
+ check_combinable<IsCombinable, sS, zS >(sS_zS, "sS_zS", text);
+ check_combinable<IsCombinable, sS, sS >(sS_sS, "sS_sS", text);
+ check_combinable<IsCombinable, sS, jM >(sS_jM, "sS_jM", text);
+ check_combinable<IsCombinable, sS, sM >(sS_sM, "sS_sM", text);
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, jM, S_e>(jM_e , "jM_e ", text);
+ check_combinable<IsCombinable, jM, S_i>(jM_i , "jM_i ", text);
+ check_combinable<IsCombinable, jM, M_b>(jM_b , "jM_b ", text);
+ check_combinable<IsCombinable, jM, M_p>(jM_p , "jM_p ", text);
+ check_combinable<IsCombinable, jM, jS >(jM_jS, "jM_jS", text);
+ check_combinable<IsCombinable, jM, zS >(jM_zS, "jM_zS", text);
+ check_combinable<IsCombinable, jM, sS >(jM_sS, "jM_sS", text);
+ check_combinable<IsCombinable, jM, jM >(jM_jM, "jM_jM", text);
+ check_combinable<IsCombinable, jM, sM >(jM_sM, "jM_sM", text);
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, sM, S_e>(sM_e , "sM_e ", text);
+ check_combinable<IsCombinable, sM, S_i>(sM_i , "sM_i ", text);
+ check_combinable<IsCombinable, sM, M_b>(sM_b , "sM_b ", text);
+ check_combinable<IsCombinable, sM, M_p>(sM_p , "sM_p ", text);
+ check_combinable<IsCombinable, sM, jS >(sM_jS, "sM_jS", text);
+ check_combinable<IsCombinable, sM, zS >(sM_zS, "sM_zS", text);
+ check_combinable<IsCombinable, sM, sS >(sM_sS, "sM_sS", text);
+ check_combinable<IsCombinable, sM, jM >(sM_jM, "sM_jM", text);
+ check_combinable<IsCombinable, sM, sM >(sM_sM, "sM_sM", text);
+ //--------------------------------------------------------------------------
+
+ if(check_base_class)
+ {
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, jT, S_e>(jS_e , "jT_e ", text);
+ check_combinable<IsCombinable, jT, S_i>(jS_i , "jT_i ", text);
+ check_combinable<IsCombinable, jT, M_b>(jS_b , "jT_b ", text);
+ check_combinable<IsCombinable, jT, M_p>(jS_p , "jT_p ", text);
+ check_combinable<IsCombinable, jT, jS >(jS_jS, "jT_jS", text);
+ check_combinable<IsCombinable, jT, zS >(jS_zS, "jT_zS", text);
+ check_combinable<IsCombinable, jT, sS >(jS_sS, "jT_sS", text);
+ check_combinable<IsCombinable, jT, jM >(jS_jM, "jT_jM", text);
+ check_combinable<IsCombinable, jT, sM >(jS_sM, "jT_sM", text);
+ check_combinable<IsCombinable, jT, jT >(jS_jS, "jT_jT", text);
+ check_combinable<IsCombinable, jT, zT >(jS_zS, "jT_zT", text);
+ check_combinable<IsCombinable, jT, sT >(jS_sS, "jT_sT", text);
+ check_combinable<IsCombinable, jT, jN >(jS_jM, "jT_jN", text);
+ check_combinable<IsCombinable, jT, sN >(jS_sM, "jT_sN", text);
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, zT, S_e>(zS_e , "zT_e ", text);
+ check_combinable<IsCombinable, zT, S_i>(zS_i , "zT_i ", text);
+ check_combinable<IsCombinable, zT, M_b>(zS_b , "zT_b ", text);
+ check_combinable<IsCombinable, zT, M_p>(zS_p , "zT_p ", text);
+ check_combinable<IsCombinable, zT, jS >(zS_jS, "zT_jS", text);
+ check_combinable<IsCombinable, zT, zS >(zS_zS, "zT_zS", text);
+ check_combinable<IsCombinable, zT, sS >(zS_sS, "zT_sS", text);
+ check_combinable<IsCombinable, zT, jM >(zS_jM, "zT_jM", text);
+ check_combinable<IsCombinable, zT, sM >(zS_sM, "zT_sM", text);
+ check_combinable<IsCombinable, zT, jT >(zS_jS, "zT_jT", text);
+ check_combinable<IsCombinable, zT, zT >(zS_zS, "zT_zT", text);
+ check_combinable<IsCombinable, zT, sT >(zS_sS, "zT_sT", text);
+ check_combinable<IsCombinable, zT, jN >(zS_jM, "zT_jN", text);
+ check_combinable<IsCombinable, zT, sN >(zS_sM, "zT_sN", text);
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, sT, S_e>(sS_e , "sT_e ", text);
+ check_combinable<IsCombinable, sT, S_i>(sS_i , "sT_i ", text);
+ check_combinable<IsCombinable, sT, M_b>(sS_b , "sT_b ", text);
+ check_combinable<IsCombinable, sT, M_p>(sS_p , "sT_p ", text);
+ check_combinable<IsCombinable, sT, jS >(sS_jS, "sT_jS", text);
+ check_combinable<IsCombinable, sT, zS >(sS_zS, "sT_zS", text);
+ check_combinable<IsCombinable, sT, sS >(sS_sS, "sT_sS", text);
+ check_combinable<IsCombinable, sT, jM >(sS_jM, "sT_jM", text);
+ check_combinable<IsCombinable, sT, sM >(sS_sM, "sT_sM", text);
+ check_combinable<IsCombinable, sT, jT >(sS_jS, "sT_jT", text);
+ check_combinable<IsCombinable, sT, zT >(sS_zS, "sT_zT", text);
+ check_combinable<IsCombinable, sT, sT >(sS_sS, "sT_sT", text);
+ check_combinable<IsCombinable, sT, jN >(sS_jM, "sT_jN", text);
+ check_combinable<IsCombinable, sT, sN >(sS_sM, "sT_sN", text);
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, jN, S_e>(jM_e , "jN_e ", text);
+ check_combinable<IsCombinable, jN, S_i>(jM_i , "jN_i ", text);
+ check_combinable<IsCombinable, jN, M_b>(jM_b , "jN_b ", text);
+ check_combinable<IsCombinable, jN, M_p>(jM_p , "jN_p ", text);
+ check_combinable<IsCombinable, jN, jS >(jM_jS, "jN_jS", text);
+ check_combinable<IsCombinable, jN, zS >(jM_zS, "jN_zS", text);
+ check_combinable<IsCombinable, jN, sS >(jM_sS, "jN_sS", text);
+ check_combinable<IsCombinable, jN, jM >(jM_jM, "jN_jM", text);//
+ check_combinable<IsCombinable, jN, sM >(jM_sM, "jN_sM", text);//
+ check_combinable<IsCombinable, jN, jT >(jM_jS, "jN_jT", text);
+ check_combinable<IsCombinable, jN, zT >(jM_zS, "jN_zT", text);
+ check_combinable<IsCombinable, jN, sT >(jM_sS, "jN_sT", text);
+ check_combinable<IsCombinable, jN, jN >(jM_jM, "jN_jN", text);//
+ check_combinable<IsCombinable, jN, sN >(jM_sM, "jN_sN", text);//
+ //--------------------------------------------------------------------------
+ check_combinable<IsCombinable, sN, S_e>(sM_e , "sN_e ", text);
+ check_combinable<IsCombinable, sN, S_i>(sM_i , "sN_i ", text);
+ check_combinable<IsCombinable, sN, M_b>(sM_b , "sN_b ", text);
+ check_combinable<IsCombinable, sN, M_p>(sM_p , "sN_p ", text);
+ check_combinable<IsCombinable, sN, jS >(sM_jS, "sN_jS", text);
+ check_combinable<IsCombinable, sN, zS >(sM_zS, "sN_zS", text);
+ check_combinable<IsCombinable, sN, sS >(sM_sS, "sN_sS", text);
+ check_combinable<IsCombinable, sN, jM >(sM_jM, "sN_jM", text);
+ check_combinable<IsCombinable, sN, sM >(sM_sM, "sN_sM", text);
+ check_combinable<IsCombinable, sN, jT >(sM_jS, "sN_jT", text);
+ check_combinable<IsCombinable, sN, zT >(sM_zS, "sN_zT", text);
+ check_combinable<IsCombinable, sN, sT >(sM_sS, "sN_sT", text);
+ check_combinable<IsCombinable, sN, jN >(sM_jM, "sN_jN", text);
+ check_combinable<IsCombinable, sN, sN >(sM_sM, "sN_sN", text);
+ }
+}
+
+
+BOOST_AUTO_TEST_CASE(test_icl_is_derivative)
+{
+ //--------------------------------------------------------------------------
+ // 1.1
+ check_combine_pattern<is_intra_derivative>(
+ "is_intra_derivative",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // zS
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // sS
+ 0, 0, 1, 1, 0, 0, 0, 0, 0, // jM
+ 0, 0, 1, 1, 0, 0, 0, 0, 0 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 1.2
+ check_combine_pattern<is_cross_derivative>(
+ "is_cross_derivative",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // sS
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jM
+ 1, 1, 0, 0, 0, 0, 0, 0, 0 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 1.3
+ check_combine_pattern<is_inter_derivative>(
+ "is_inter_derivative",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // zS
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // sS
+ 1, 1, 1, 1, 0, 0, 0, 0, 0, // jM
+ 1, 1, 1, 1, 0, 0, 0, 0, 0 // sM
+ );
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_is_combinable)
+{
+ //--------------------------------------------------------------------------
+ // 2.1
+ check_combine_pattern<is_intra_combinable>(
+ "is_intra_combinable",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // jS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // zS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // sS
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, // jM
+ 0, 0, 0, 0, 0, 0, 0, 1, 1 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 2.2
+ check_combine_pattern<is_cross_combinable>(
+ "is_cross_combinable",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, // jS
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, // zS
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, // sS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // jM
+ 0, 0, 0, 0, 1, 1, 1, 0, 0 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 2.3
+ check_combine_pattern<is_inter_combinable>(
+ "is_inter_combinable",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 1, 1, 1, 1, 1, // jS
+ 0, 0, 0, 0, 1, 1, 1, 1, 1, // zS
+ 0, 0, 0, 0, 1, 1, 1, 1, 1, // sS
+ 0, 0, 0, 0, 1, 1, 1, 1, 1, // jM
+ 0, 0, 0, 0, 1, 1, 1, 1, 1 // sM
+ );
+
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_is_container_right_combinable)
+{
+ //--------------------------------------------------------------------------
+ // 3.1
+ // LeftT is an interval_set:
+ // is_interval_set_right_combinable<LeftT, RightT> determines what can
+ // be combined as RightT argument type.
+ check_combine_pattern<is_interval_set_right_combinable>(
+ "is_interval_set_right_combinable",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // jS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // sS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 3.2
+ check_combine_pattern<is_interval_map_right_intra_combinable>(
+ "is_interval_map_right_intra_combinable",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // sS
+ 0, 0, 1, 1, 0, 0, 0, 1, 1, // jM
+ 0, 0, 1, 1, 0, 0, 0, 1, 1 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 3.3
+ check_combine_pattern<is_interval_map_right_cross_combinable>(
+ "is_interval_map_right_cross_combinable",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // sS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // jM
+ 1, 1, 0, 0, 1, 1, 1, 0, 0 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 3.4
+ check_combine_pattern<is_interval_map_right_inter_combinable>(
+ "is_interval_map_right_inter_combinable",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // sS
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, // jM
+ 1, 1, 1, 1, 1, 1, 1, 1, 1 // sM
+ );
+
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_is_right_combinable)
+{
+ //--------------------------------------------------------------------------
+ // 4.1
+ check_combine_pattern<is_right_intra_combinable>(
+ "is_right_intra_combinable",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // jS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // sS
+ 0, 0, 1, 1, 0, 0, 0, 1, 1, // jM
+ 0, 0, 1, 1, 0, 0, 0, 1, 1 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 4.2
+ check_combine_pattern<is_right_inter_combinable>(
+ "is_right_inter_combinable",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // jS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // sS
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, // jM
+ 1, 1, 1, 1, 1, 1, 1, 1, 1 // sM
+ );
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_combines_right_to)
+{
+ //--------------------------------------------------------------------------
+ // 5.1
+ check_combine_pattern<combines_right_to_interval_set>(
+ "combines_right_to_interval_set",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // jS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // zS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // sS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // jM
+ 0, 0, 0, 0, 1, 1, 1, 0, 0 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 5.2
+ check_combine_pattern<combines_right_to_interval_map>(
+ "combines_right_to_interval_map",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // sS
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, // jM
+ 0, 0, 0, 0, 0, 0, 0, 1, 1 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 5.3
+ check_combine_pattern<combines_right_to_interval_container>(
+ "combines_right_to_interval_container",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // jS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // zS
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, // sS
+ 0, 0, 0, 0, 1, 1, 1, 1, 1, // jM
+ 0, 0, 0, 0, 1, 1, 1, 1, 1 // sM
+ );
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_is_companion)
+{
+ //--------------------------------------------------------------------------
+ // 6.1
+ check_combine_pattern<is_interval_set_companion>(
+ "is_interval_set_companion",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // jS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // sS
+ 1, 1, 0, 0, 1, 1, 1, 0, 0, // jM
+ 1, 1, 0, 0, 1, 1, 1, 0, 0 // sM
+ );
+
+ //--------------------------------------------------------------------------
+ // 6.2
+ check_combine_pattern<is_interval_map_companion>(
+ "is_interval_map_companion",
+ // e i b p jS zS sS jM sM
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, // sS
+ 0, 0, 1, 1, 0, 0, 0, 1, 1, // jM
+ 0, 0, 1, 1, 0, 0, 0, 1, 1 // sM
+ );
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_is_coarser_combinable)
+{
+ //--------------------------------------------------------------------------
+ // 7.1
+ check_combine_pattern<is_coarser_interval_set_companion>(
+ "is_coarser_interval_set_companion",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 1, 1, 0, 0, 1, 0, 0, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 0, 0, 0, // sS
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jM
+ 1, 1, 0, 0, 1, 1, 0, 0, 0, // sM
+ false
+ );
+
+ //--------------------------------------------------------------------------
+ // 7.2
+ check_combine_pattern<is_coarser_interval_map_companion>(
+ "is_coarser_interval_map_companion",
+ // e i b p jS zS sS jM sM
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, // sS
+ 0, 0, 1, 1, 0, 0, 0, 0, 0, // jM
+ 0, 0, 1, 1, 0, 0, 0, 1, 0, // sM
+ false
+ );
+
+ //--------------------------------------------------------------------------
+ // 8.1
+ check_combine_pattern<is_binary_interval_set_combinable>(
+ "is_binary_interval_set_combinable",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 1, 1, 0, 0, 1, 0, 0, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 0, 0, 0, // sS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // sM
+ false
+ );
+
+ //--------------------------------------------------------------------------
+ // 8.2
+ check_combine_pattern<is_binary_interval_map_combinable>(
+ "is_binary_interval_map_combinable",
+ // e i b p jS zS sS jM sM
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // jS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // zS
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // sS
+ 0, 0, 1, 1, 0, 0, 0, 0, 0, // jM
+ 0, 0, 1, 1, 0, 0, 0, 1, 0, // sM
+ false
+ );
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_is_binary_combinable)
+{
+ //--------------------------------------------------------------------------
+ // 9.1
+ check_combine_pattern<is_binary_intra_combinable>(
+ "is_binary_intra_combinable",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 1, 1, 0, 0, 1, 0, 0, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 0, 0, 0, // sS
+ 0, 0, 1, 1, 0, 0, 0, 0, 0, // jM
+ 0, 0, 1, 1, 0, 0, 0, 1, 0, // sM
+ false
+ );
+
+ //--------------------------------------------------------------------------
+ // 9.2
+ check_combine_pattern<is_binary_inter_combinable>(
+ "is_binary_inter_combinable",
+ // e i b p jS zS sS jM sM
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, // jS
+ 1, 1, 0, 0, 1, 0, 0, 0, 0, // zS
+ 1, 1, 0, 0, 1, 1, 0, 0, 0, // sS
+ 1, 1, 1, 1, 1, 1, 1, 0, 0, // jM
+ 1, 1, 1, 1, 1, 1, 1, 1, 0, // sM
+ false
+ );
+}
diff --git a/src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj b/src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj
new file mode 100644
index 000000000..5cc569c06
--- /dev/null
+++ b/src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}</ProjectGuid>
+ <RootNamespace>Test_combinable</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_combinable.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj.filters b/src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj.filters
new file mode 100644
index 000000000..3a73e697b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_combinable_/vc10_test_combinable.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_combinable.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_combinable_/vc9_test_combinable.vcproj b/src/boost/libs/icl/test/test_combinable_/vc9_test_combinable.vcproj
new file mode 100644
index 000000000..65268360c
--- /dev/null
+++ b/src/boost/libs/icl/test/test_combinable_/vc9_test_combinable.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_combinable"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}"
+ RootNamespace="Test_combinable"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_combinable.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_doc_code_/test_doc_code.cpp b/src/boost/libs/icl/test/test_doc_code_/test_doc_code.cpp
new file mode 100644
index 000000000..7339a5fc1
--- /dev/null
+++ b/src/boost/libs/icl/test/test_doc_code_/test_doc_code.cpp
@@ -0,0 +1,109 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::test_doc_code unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+
+#include <limits>
+#include <complex>
+
+
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/icl/rational.hpp>
+
+#include <boost/icl/detail/interval_morphism.hpp>
+#include <boost/icl/interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+BOOST_AUTO_TEST_CASE(intro_sample_telecast)
+{
+ // Switch on my favorite telecasts using an interval_set
+ interval<int>::type news(2000, 2015);
+ interval<int>::type talk_show(2245, 2330);
+ interval_set<int> myTvProgram;
+ myTvProgram.add(news).add(talk_show);
+
+ // Iterating over elements (seconds) would be silly ...
+ for(interval_set<int>::iterator telecast = myTvProgram.begin();
+ telecast != myTvProgram.end(); ++telecast)
+ //...so this iterates over intervals
+ //TV.switch_on(*telecast);
+ cout << *telecast;
+
+ cout << endl;
+}
+
+BOOST_AUTO_TEST_CASE(interface_sample_identifiers)
+{
+ typedef interval_set<std::string, less, continuous_interval<std::string> > IdentifiersT;
+ IdentifiersT identifiers, excluded;
+
+ // special identifiers shall be excluded
+ identifiers += continuous_interval<std::string>::right_open("a", "c");
+ identifiers -= std::string("boost");
+ cout << "identifiers: " << identifiers << endl;
+
+ excluded = IdentifiersT(icl::hull(identifiers)) - identifiers;
+ cout << "excluded : " << excluded << endl;
+
+ if(icl::contains(identifiers, std::string("boost")))
+ cout << "error, identifiers.contains('boost')\n";
+}
+
+BOOST_AUTO_TEST_CASE(function_reference_element_iteration)
+{
+ // begin of doc code -------------------------------------------------------
+ interval_set<int> inter_set;
+ inter_set.add(interval<int>::right_open(0,3))
+ .add(interval<int>::right_open(7,9));
+
+ for(interval_set<int>::element_const_iterator creeper = elements_begin(inter_set);
+ creeper != elements_end(inter_set); ++creeper)
+ cout << *creeper << " ";
+ cout << endl;
+ //Program output: 0 1 2 7 8
+
+ for(interval_set<int>::element_reverse_iterator repeerc = elements_rbegin(inter_set);
+ repeerc != elements_rend(inter_set); ++repeerc)
+ cout << *repeerc << " ";
+ cout << endl;
+ //Program output: 8 7 2 1 0
+ // end of doc code ---------------------------------------------------------
+
+ // Testcode
+ std::stringstream result;
+ for(interval_set<int>::element_iterator creeper2 = elements_begin(inter_set);
+ creeper2 != elements_end(inter_set); ++creeper2)
+ result << *creeper2 << " ";
+
+ BOOST_CHECK_EQUAL(result.str(), std::string("0 1 2 7 8 "));
+
+ std::stringstream tluser;
+ for(interval_set<int>::element_const_reverse_iterator repeerc2
+ = elements_rbegin(const_cast<const interval_set<int>&>(inter_set));
+ repeerc2 != elements_rend(const_cast<const interval_set<int>&>(inter_set)); ++repeerc2)
+ tluser << *repeerc2 << " ";
+
+ BOOST_CHECK_EQUAL(tluser.str(), std::string("8 7 2 1 0 "));
+}
+
diff --git a/src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj b/src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj
new file mode 100644
index 000000000..3d3677a1a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D5A9FA0}</ProjectGuid>
+ <RootNamespace>Test_doc_code</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_doc_code.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj.filters b/src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj.filters
new file mode 100644
index 000000000..51ccfe7df
--- /dev/null
+++ b/src/boost/libs/icl/test/test_doc_code_/vc10_test_doc_code.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_doc_code.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_doc_code_/vc9_test_doc_code.vcproj b/src/boost/libs/icl/test/test_doc_code_/vc9_test_doc_code.vcproj
new file mode 100644
index 000000000..9094b850b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_doc_code_/vc9_test_doc_code.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_doc_code"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}"
+ RootNamespace="Test_doc_code"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_doc_code.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_functions.hpp b/src/boost/libs/icl/test/test_functions.hpp
new file mode 100644
index 000000000..3ca87025c
--- /dev/null
+++ b/src/boost/libs/icl/test/test_functions.hpp
@@ -0,0 +1,67 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------+
+Auxiliary functions to reduce redundancies in test case code.
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_FUNCTIONS_H_JOFA_091003
+#define BOOST_ICL_TEST_FUNCTIONS_H_JOFA_091003
+
+#include <boost/icl/detail/notate.hpp>
+#include <boost/icl/type_traits/interval_type_default.hpp>
+#include <boost/icl/discrete_interval.hpp>
+
+#include <boost/icl/type_traits/identity_element.hpp>
+#include <boost/icl/functors.hpp>
+#include "portability.hpp"
+
+
+namespace boost{namespace icl
+{
+
+template <class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap,
+#endif
+ class SequenceT
+>
+void itl_map_copy(const SequenceT& segments,
+ ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)& destination)
+{
+ ICL_const_FORALL(typename SequenceT, segment_, segments)
+ destination.insert(*segment_);
+}
+
+
+template <class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap,
+#endif
+ class SequenceT
+>
+void test_interval_map_copy_via_inserter(const SequenceT& segments,
+ ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)& std_copied_map)
+{
+ // The second parameter (std_copied_map) could be omitted and is only held as a
+ // local variable. It is there to help gcc-3.4.4 resolving the function template type.
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT looped_copied_map;
+ std_copied_map.clear();
+ itl_map_copy(segments, looped_copied_map);
+ std::copy(segments.begin(), segments.end(), std::inserter(std_copied_map, std_copied_map.end()));
+ BOOST_CHECK_EQUAL( looped_copied_map, std_copied_map );
+}
+
+}} // namespace icl boost
+
+#endif // BOOST_ICL_TEST_FUNCTIONS_H_JOFA_091003
+
diff --git a/src/boost/libs/icl/test/test_icl_continuous_interval.hpp b/src/boost/libs/icl/test/test_icl_continuous_interval.hpp
new file mode 100644
index 000000000..5cbd1bdaf
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_continuous_interval.hpp
@@ -0,0 +1,82 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_ICL_INTERVAL_CONTINUOUS_HPP_JOFA_100930
+#define BOOST_ICL_TEST_ICL_INTERVAL_CONTINUOUS_HPP_JOFA_100930
+
+template <class T, class IntervalT>
+void interval_ctor_4_ordered_types()
+{
+ BOOST_CHECK_EQUAL(icl::is_empty(IntervalT()), true);
+ BOOST_CHECK_EQUAL(icl::cardinality(IntervalT()), icl::identity_element<typename icl::size_type_of<T>::type>::value());
+ BOOST_CHECK_EQUAL(icl::size(IntervalT()), icl::identity_element<typename icl::size_type_of<T>::type>::value());
+
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT() );
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT(IntervalT().lower(), IntervalT().upper()) );
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT(icl::lower(IntervalT()), icl::upper(IntervalT())) );
+}
+
+
+template <class T, ICL_COMPARE Compare>
+void distant_intervals_4_numeric_continuous_types()
+{
+ typedef right_open_interval<T,Compare> L__D; // L__D for [..)
+ typedef left_open_interval<T,Compare> C__I; // C__I for (..]
+ typedef typename icl::interval<T,Compare>::type IntervalT;
+
+ BOOST_CHECK( is_interval<L__D>::value );
+ BOOST_CHECK( has_difference<typename interval_traits<L__D>::domain_type>::value );
+ BOOST_CHECK( is_continuous<typename interval_traits<L__D>::domain_type>::value );
+ BOOST_CHECK( (boost::is_same<typename interval_traits<L__D>::domain_type, T>::value) );
+
+ //CL typedef typename difference_type_of<T>::type DiffT;
+
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,0,4), MK_I(L__D,8,9));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,7,8), MK_I(L__D,2,3));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,2,4), MK_I(L__D,4,6));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,3,7), MK_I(L__D,5,8));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,7,9), MK_I(L__D,0,4));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,0,0), MK_I(L__D,0,0));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,1,0), MK_I(L__D,2,0));
+
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,1,5), MK_I(C__I,4,9));
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,4,6), MK_I(C__I,1,3));
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,0,2), MK_I(C__I,4,6));
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,0,2), MK_I(C__I,0,6));
+
+ //--------------------------------------------------------------------------
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+ test_inner_complement<T,Compare,IntervalT>(I_D(0,4), I_D(8,9));
+ test_inner_complement<T,Compare,IntervalT>(I_D(7,8), I_D(2,3));
+ test_inner_complement<T,Compare,IntervalT>(I_D(2,4), I_D(4,6));
+ test_inner_complement<T,Compare,IntervalT>(I_D(3,7), I_D(5,8));
+ test_inner_complement<T,Compare,IntervalT>(I_D(7,9), I_D(0,4));
+ test_inner_complement<T,Compare,IntervalT>(I_D(0,0), I_D(0,0));
+ test_inner_complement<T,Compare,IntervalT>(I_D(1,0), I_D(2,0));
+
+ test_inner_complement<T,Compare,IntervalT>(C_I(1,5), C_I(4,9));
+ test_inner_complement<T,Compare,IntervalT>(C_I(4,6), C_I(1,3));
+ test_inner_complement<T,Compare,IntervalT>(C_I(0,2), C_I(4,6));
+ test_inner_complement<T,Compare,IntervalT>(C_I(0,2), C_I(0,6));
+
+ test_inner_complement<T,Compare,IntervalT>(I_I(7,9), I_I(0,5));
+ test_inner_complement<T,Compare,IntervalT>(I_I(0,9), I_I(2,5));
+
+ test_inner_complement<T,Compare,IntervalT>(C_D(6,9), C_D(1,4));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,3), C_D(1,4));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,3), C_D(6,8));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,7), C_D(1,6));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,1), C_D(1,1));
+ test_inner_complement<T,Compare,IntervalT>(C_D(3,0), C_D(4,0));
+ test_inner_complement<T,Compare,IntervalT>(C_D(0,2), C_D(4,6));
+ test_inner_complement<T,Compare,IntervalT>(C_D(0,2), C_D(0,6));
+#endif //BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+}
+
+
+
+#endif // BOOST_ICL_TEST_ICL_INTERVAL_CONTINUOUS_HPP_JOFA_100930
diff --git a/src/boost/libs/icl/test/test_icl_discrete_interval.hpp b/src/boost/libs/icl/test/test_icl_discrete_interval.hpp
new file mode 100644
index 000000000..e7aea275b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_discrete_interval.hpp
@@ -0,0 +1,98 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_ICL_DISCRETE_INTERVAL_HPP_JOFA_100930
+#define BOOST_ICL_TEST_ICL_DISCRETE_INTERVAL_HPP_JOFA_100930
+
+
+template <class T, class IntervalT>
+void discrete_interval_traits()
+{
+ BOOST_CHECK( is_interval<IntervalT>::value );
+ BOOST_CHECK( is_discrete_interval<IntervalT>::value );
+ BOOST_CHECK( is_discrete<typename IntervalT::domain_type>::value );
+ BOOST_CHECK(!is_continuous<typename IntervalT::domain_type>::value);
+ BOOST_CHECK( has_dynamic_bounds<IntervalT>::value );
+ BOOST_CHECK(!has_static_bounds<IntervalT>::value );
+}
+
+template <class T, class IntervalT>
+void discrete_interval_ctor__dis_4_dyn_v_sta() // discrete && (dynamic or static)
+{
+ BOOST_CHECK_EQUAL( IntervalT(MK_v(3)), IntervalT(MK_v(3)) );
+ BOOST_CHECK_EQUAL( icl::contains(IntervalT(MK_v(1)), MK_v(1)), true );
+}
+
+template <class T, ICL_COMPARE Compare>
+void distant_intervals_4_discrete_types()
+{
+ typedef right_open_interval<T,Compare> L__D; // L__D for [..)
+ typedef left_open_interval<T,Compare> C__I; // C__I for (..]
+ typedef closed_interval<T,Compare> L__I; // L__I for [..]
+ typedef open_interval<T,Compare> C__D; // C__D for (..)
+ typedef typename icl::interval<T,Compare>::type IntervalT;
+
+ BOOST_CHECK( is_interval<L__D>::value );
+ BOOST_CHECK( has_difference<typename interval_traits<L__D>::domain_type>::value );
+ BOOST_CHECK( is_discrete<typename interval_traits<L__D>::domain_type>::value );
+ BOOST_CHECK( (boost::is_same<typename interval_traits<L__D>::domain_type, T>::value) );
+
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,0,4), MK_I(L__D,8,9));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,7,8), MK_I(L__D,2,3));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,2,4), MK_I(L__D,4,6));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,3,7), MK_I(L__D,5,8));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,7,9), MK_I(L__D,0,4));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,0,0), MK_I(L__D,0,0));
+ test_inner_complement<T,Compare,L__D>(MK_I(L__D,1,0), MK_I(L__D,2,0));
+
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,1,5), MK_I(C__I,4,9));
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,4,6), MK_I(C__I,1,3));
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,0,2), MK_I(C__I,4,6));
+ test_inner_complement<T,Compare,C__I>(MK_I(C__I,0,2), MK_I(C__I,0,6));
+
+ test_inner_complement<T,Compare,L__I>(MK_I(L__I,7,9), MK_I(L__I,0,5));
+ test_inner_complement<T,Compare,L__I>(MK_I(L__I,0,9), MK_I(L__I,2,5));
+
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,6,9), MK_I(C__D,1,4));
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,1,3), MK_I(C__D,1,4));
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,1,3), MK_I(C__D,6,8));
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,1,7), MK_I(C__D,1,6));
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,1,1), MK_I(C__D,1,1));
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,3,0), MK_I(C__D,4,0));
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,0,2), MK_I(C__D,4,6));
+ test_inner_complement<T,Compare,C__D>(MK_I(C__D,0,2), MK_I(C__D,0,6));
+
+ //--------------------------------------------------------------------------
+ test_inner_complement<T,Compare,IntervalT>(I_D(0,4), I_D(8,9));
+ test_inner_complement<T,Compare,IntervalT>(I_D(7,8), I_D(2,3));
+ test_inner_complement<T,Compare,IntervalT>(I_D(2,4), I_D(4,6));
+ test_inner_complement<T,Compare,IntervalT>(I_D(3,7), I_D(5,8));
+ test_inner_complement<T,Compare,IntervalT>(I_D(7,9), I_D(0,4));
+ test_inner_complement<T,Compare,IntervalT>(I_D(0,0), I_D(0,0));
+ test_inner_complement<T,Compare,IntervalT>(I_D(1,0), I_D(2,0));
+
+ test_inner_complement<T,Compare,IntervalT>(C_I(1,5), C_I(4,9));
+ test_inner_complement<T,Compare,IntervalT>(C_I(4,6), C_I(1,3));
+ test_inner_complement<T,Compare,IntervalT>(C_I(0,2), C_I(4,6));
+ test_inner_complement<T,Compare,IntervalT>(C_I(0,2), C_I(0,6));
+
+ test_inner_complement<T,Compare,IntervalT>(I_I(7,9), I_I(0,5));
+ test_inner_complement<T,Compare,IntervalT>(I_I(0,9), I_I(2,5));
+
+ test_inner_complement<T,Compare,IntervalT>(C_D(6,9), C_D(1,4));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,3), C_D(1,4));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,3), C_D(6,8));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,7), C_D(1,6));
+ test_inner_complement<T,Compare,IntervalT>(C_D(1,1), C_D(1,1));
+ test_inner_complement<T,Compare,IntervalT>(C_D(3,0), C_D(4,0));
+ test_inner_complement<T,Compare,IntervalT>(C_D(0,2), C_D(4,6));
+ test_inner_complement<T,Compare,IntervalT>(C_D(0,2), C_D(0,6));
+
+}
+
+
+#endif // BOOST_ICL_TEST_ICL_DISCRETE_INTERVAL_HPP_JOFA_100930
diff --git a/src/boost/libs/icl/test/test_icl_dynamic_interval.hpp b/src/boost/libs/icl/test/test_icl_dynamic_interval.hpp
new file mode 100644
index 000000000..dcafcfab3
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_dynamic_interval.hpp
@@ -0,0 +1,66 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_ICL_DYNAMIC_INTERVAL_HPP_JOFA_100930
+#define BOOST_ICL_TEST_ICL_DYNAMIC_INTERVAL_HPP_JOFA_100930
+
+template <class IntervalT>
+void dynamic_interval_ctor_4_ordered_types()
+{
+ typedef typename domain_type_of<interval_traits<IntervalT> >::type T;
+
+ BOOST_CHECK_EQUAL(IntervalT().lower(), icl::identity_element<T>::value());
+ BOOST_CHECK_EQUAL(IntervalT().upper(), icl::identity_element<T>::value());
+ BOOST_CHECK_EQUAL(icl::lower(IntervalT()), icl::identity_element<T>::value());
+ BOOST_CHECK_EQUAL(icl::upper(IntervalT()), icl::identity_element<T>::value());
+
+ IntervalT empty_itv = IntervalT(icl::identity_element<T>::value(), icl::identity_element<T>::value());
+ BOOST_CHECK_EQUAL(IntervalT(), empty_itv);
+ BOOST_CHECK_EQUAL(IntervalT(), IntervalT(icl::identity_element<T>::value(), icl::identity_element<T>::value()));
+ BOOST_CHECK_EQUAL(IntervalT(), IntervalT(icl::identity_element<T>::value(), icl::identity_element<T>::value(), interval_bounds::right_open()));
+}
+
+template <class T>
+void dynamic_interval_bounds_4_bicremental_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+
+ // BOOST_CHECK_EQUAL( T(), icl::pred(icl::succ(T())));
+ BOOST_CHECK_EQUAL( icl::identity_element<T>::value(), icl::pred(icl::succ(icl::identity_element<T>::value())) );
+ BOOST_CHECK_EQUAL( icl::unit_element<T>::value(), icl::succ(icl::identity_element<T>::value()) );
+ BOOST_CHECK_EQUAL( length(IntervalT()), icl::identity_element<typename difference_type_of<T>::type>::value() );
+
+ //LAW: I x: borders(x)==closed => contains(x, lower(x)) && contains(x, upper(x))
+ check_border_containedness(I_I(0,0));
+ check_border_containedness(I_I(2,5));
+
+ check_border_containedness(I_D(0,1));
+ check_border_containedness(I_D(2,5));
+
+ check_border_containedness(C_I(0,1));
+ check_border_containedness(C_I(2,5));
+
+ check_border_containedness(C_D(0,2));
+ check_border_containedness(C_D(2,5));
+
+}
+
+template <class T>
+void discrete_dynamic_interval_bounds_4_bicremental_types()
+{
+ //CL typedef typename icl::interval<T>::type IntervalT;
+
+ BOOST_CHECK( icl::bounds(I_I(2,4)) == interval_bounds::closed() );
+ BOOST_CHECK( icl::bounds(I_D(2,5)) == interval_bounds::right_open() );
+ BOOST_CHECK( icl::bounds(C_I(1,4)) == interval_bounds::left_open() );
+ BOOST_CHECK( icl::bounds(C_D(1,5)) == interval_bounds::open() );
+
+}
+
+
+
+#endif // BOOST_ICL_TEST_ICL_DYNAMIC_INTERVAL_HPP_JOFA_100930
diff --git a/src/boost/libs/icl/test/test_icl_interval.hpp b/src/boost/libs/icl/test/test_icl_interval.hpp
new file mode 100644
index 000000000..f443395eb
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_interval.hpp
@@ -0,0 +1,107 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_ICL_INTERVAL_HPP_JOFA_100930
+#define BOOST_ICL_TEST_ICL_INTERVAL_HPP_JOFA_100930
+
+// NOTE: ordered_types is the largest class of types that is admissable as
+// domain parameters for intervals and interval containers.
+// bicremental_types is a smaller class of types used for testing instead of
+// ordered types, because they can be generated in a simple
+// way using the functions of test_value_maker.hpp.
+
+template <class IntervalT>
+void interval_ctor_4_ordered_types()
+{
+ typedef typename domain_type_of<interval_traits<IntervalT> >::type T;
+ typedef typename icl::size_type_of<T>::type SizeT;
+ T t_0 = icl::identity_element<T>::value();
+ T t_1 = icl::unit_element<T>::value();
+ SizeT s_0 = icl::identity_element<SizeT>::value();
+ SizeT s_1 = icl::unit_element<SizeT>::value();
+
+ // Default ctor and emptieness
+ BOOST_CHECK_EQUAL( icl::is_empty(IntervalT()), true );
+ BOOST_CHECK_EQUAL( icl::cardinality(IntervalT()), s_0 );
+ BOOST_CHECK_EQUAL( icl::size(IntervalT()), s_0 );
+
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT() );
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT(IntervalT().lower(), IntervalT().upper()) );
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT(icl::lower(IntervalT()), icl::upper(IntervalT())) );
+
+ BOOST_CHECK_EQUAL(icl::cardinality(IntervalT(t_0, t_1)) >= s_1, true);
+ BOOST_CHECK_EQUAL(( icl::contains(IntervalT(t_0, t_1), t_0)
+ || icl::contains(IntervalT(t_0, t_1), t_1)), true);
+
+ BOOST_CHECK_EQUAL(IntervalT(t_0, t_1).lower(), t_0);
+ BOOST_CHECK_EQUAL(IntervalT(t_0, t_1).upper(), t_1);
+ BOOST_CHECK_EQUAL(lower(icl::construct<IntervalT>(t_0, t_1)), t_0);
+ BOOST_CHECK_EQUAL(upper(icl::construct<IntervalT>(t_0, t_1)), t_1);
+}
+
+
+template <class IntervalT>
+void singelizable_interval_4_ordered_types()
+{
+ // Singleton ctor and singleness
+ // LAW: !is_asymmetric_continuous(IntervalT) => size(singleton(x))==1
+ // LAW: This law applies to all discrete and to dynamic continuous intervals
+ // LAW: No singletons can be constructed for static continuous right_open and left_open intervals
+ typedef typename domain_type_of<interval_traits<IntervalT> >::type T;
+ typedef typename icl::size_type_of<T>::type SizeT;
+ T t_0 = icl::identity_element<T>::value();
+ T t_1 = icl::unit_element<T>::value();
+ SizeT s_1 = icl::unit_element<SizeT>::value();
+
+ BOOST_CHECK( is_singelizable<IntervalT>::value );
+
+ BOOST_CHECK_EQUAL( icl::cardinality(icl::singleton<IntervalT>(t_0)), s_1 );
+ BOOST_CHECK_EQUAL( icl::size(icl::singleton<IntervalT>(t_0)), s_1 );
+ BOOST_CHECK_EQUAL( icl::cardinality(icl::singleton<IntervalT>(t_1)), s_1 );
+ BOOST_CHECK_EQUAL( icl::size(icl::singleton<IntervalT>(t_1)), s_1 );
+
+ BOOST_CHECK_EQUAL( icl::contains(icl::singleton<IntervalT>(t_0), t_0), true );
+ BOOST_CHECK_EQUAL( icl::contains(icl::singleton<IntervalT>(t_1), t_1), true );
+}
+
+template <class IntervalT>
+void singelizable_interval_4_bicremental_types()
+{
+ typedef typename domain_type_of<interval_traits<IntervalT> >::type T;
+ typedef typename icl::size_type_of<T>::type SizeT;
+ //T t_0 = icl::identity_element<T>::value();
+ SizeT s_1 = icl::unit_element<SizeT>::value();
+
+ BOOST_CHECK( is_singelizable<IntervalT>::value );
+
+ BOOST_CHECK_EQUAL( icl::cardinality(IntervalT(MK_v(3))), s_1 );
+ BOOST_CHECK_EQUAL( icl::size(IntervalT(MK_v(4))), s_1 );
+ BOOST_CHECK_EQUAL( icl::singleton<IntervalT>(MK_v(2)), icl::singleton<IntervalT>(MK_v(2)) );
+ BOOST_CHECK_EQUAL( icl::contains(IntervalT(MK_v(1)), MK_v(1)), true );
+}
+
+template <class IntervalT>
+void coverable_asymmetric_interval_4_bicremental_types()
+{
+ typedef typename domain_type_of<interval_traits<IntervalT> >::type T;
+ //CL typedef typename icl::size_type_of<T>::type SizeT;
+ typedef typename icl::difference_type_of<T>::type DiffT;
+ //T t_0 = icl::identity_element<T>::value();
+ //SizeT s_1 = icl::unit_element<SizeT>::value();
+ DiffT d_1 = icl::unit_element<DiffT>::value();
+
+ //JODO BOOST_CHECK( is_incremental_coverable<IntervalT>::value );
+ BOOST_CHECK( has_difference<T>::value );
+
+ BOOST_CHECK_EQUAL( icl::contains(icl::detail::unit_trail<IntervalT>(MK_v(4)), MK_v(4)), true );
+ BOOST_CHECK_EQUAL( icl::length (icl::detail::unit_trail<IntervalT>(MK_v(3))), d_1 );
+ BOOST_CHECK ( icl::touches (icl::detail::unit_trail<IntervalT>(MK_v(2)), icl::detail::unit_trail<IntervalT>(MK_v(3))) );
+}
+
+
+
+#endif // BOOST_ICL_TEST_ICL_INTERVAL_HPP_JOFA_100930
diff --git a/src/boost/libs/icl/test/test_icl_interval_/test_icl_interval.cpp b/src/boost/libs/icl/test/test_icl_interval_/test_icl_interval.cpp
new file mode 100644
index 000000000..fb9db038b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_interval_/test_icl_interval.cpp
@@ -0,0 +1,192 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_interval_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#include "../test_icl_interval_shared.hpp"
+#include "../test_icl_interval.hpp"
+#include "../test_icl_dynamic_interval.hpp"
+#include "../test_icl_discrete_interval.hpp"
+#include "../test_icl_continuous_interval.hpp"
+#include "../test_icl_static_interval.hpp"
+
+#include <boost/icl/right_open_interval.hpp>
+#include <boost/icl/left_open_interval.hpp>
+#include <boost/icl/closed_interval.hpp>
+#include <boost/icl/open_interval.hpp>
+
+#include <boost/icl/discrete_interval.hpp>
+#include <boost/icl/continuous_interval.hpp>
+
+//- sta.asy.{dis|con} ----------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_right_open_interval_ctor_4_ordered_types, T, ordered_types)
+{ interval_ctor_4_ordered_types<right_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_right_open_interval_4_ordered_types, T, discrete_types)
+{ singelizable_interval_4_ordered_types<right_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_right_open_interval_4_bicremental_types, T, discrete_types)
+{ singelizable_interval_4_bicremental_types<right_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_left_open_interval_ctor_4_ordered_types, T, ordered_types)
+{ interval_ctor_4_ordered_types<left_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_left_open_interval_4_ordered_types_singelizable, T, signed_discrete_types)
+{ singelizable_interval_4_ordered_types<left_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_left_open_interval_4_bicremental_types, T, discrete_types)
+{ singelizable_interval_4_bicremental_types<left_open_interval<T> >(); }
+
+//------------------------------------------------------------------------------
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_distant_intervals_4_discrete_types, T, discrete_types)
+{ distant_intervals_4_discrete_types<T, std::less>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_distant_intervals_4_numeric_continuous_types, T, numeric_continuous_types)
+{ distant_intervals_4_numeric_continuous_types<T, std::less>(); }
+
+
+//- sta.asy.{dis|con} ----------------------------------------------------------
+//- n tests for right_open_inverval --------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_right_open_interval_ctor_4_ordered_types, T, ordered_types)
+{ interval_ctor_4_ordered_types<right_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_right_open_interval_4_ordered_types, T, discrete_types)
+{ singelizable_interval_4_ordered_types<right_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_right_open_interval_4_bicremental_types, T, discrete_types)
+{ singelizable_interval_4_bicremental_types<right_open_interval<T> >(); }
+
+//- n tests for left_open_inverval ---------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_left_open_interval_ctor_4_ordered_types, T, ordered_types)
+{ interval_ctor_4_ordered_types<left_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_left_open_interval_4_ordered_types_singelizable, T, signed_discrete_types)
+{ singelizable_interval_4_ordered_types<left_open_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_left_open_interval_4_bicremental_types, T, discrete_types)
+{ singelizable_interval_4_bicremental_types<left_open_interval<T> >(); }
+
+//- dyn.dis --------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_discrete_interval_ctor_4_discrete_types_base, T, discrete_types)
+{ interval_ctor_4_ordered_types<discrete_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_discrete_interval_ctor_4_discrete_types_dynamic, T, discrete_types)
+{ dynamic_interval_ctor_4_ordered_types<discrete_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_discrete_interval_4_ordered_types, T, discrete_types)
+{ singelizable_interval_4_ordered_types<discrete_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_discrete_interval_4_bicremental_types, T, discrete_types)
+{ singelizable_interval_4_bicremental_types<discrete_interval<T> >(); }
+
+//- dyn.con --------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_continuous_interval_ctor_4_continuous_types_base, T, continuous_types)
+{ interval_ctor_4_ordered_types<continuous_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_continuous_interval_ctor_4_continuous_types_dynamic, T, continuous_types)
+{ dynamic_interval_ctor_4_ordered_types<continuous_interval<T> >(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_continuous_interval_4_continuous_types_singelizable, T, continuous_types)
+{ singelizable_interval_4_ordered_types<continuous_interval<T> >(); }
+
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_distant_intervals_4_discrete_types, T, discrete_types)
+{ distant_intervals_4_discrete_types<T, std::less>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_distant_intervals_4_numeric_continuous_types, T, numeric_continuous_types)
+{ distant_intervals_4_numeric_continuous_types<T, std::less>(); }
+
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_dynamic_interval_bounds_4_bicremental_types, T, bicremental_types)
+{ dynamic_interval_bounds_4_bicremental_types<T>(); }
+
+//==============================================================================
+//==============================================================================
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_equal_4_integral_types, T, integral_types)
+{ interval_equal_4_integral_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_less_4_integral_types, T, integral_types)
+{ interval_less_4_integral_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_touches_4_bicremental_types, T, bicremental_types)
+{ interval_touches_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_touches_4_integral_types, T, integral_types)
+{ interval_touches_4_integral_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_subtract_4_bicremental_types, T, bicremental_types)
+{ interval_subtract_4_bicremental_types<T>(); }
+
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_ctor_specific)
+{ interval_ctor_specific(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_equal_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_equal_4_bicremental_continuous_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_infix_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_infix_intersect_4_bicremental_types<T>(); }
+
+#else
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_infix_intersect_4_bicremental_types, T, discrete_types)
+{ interval_infix_intersect_4_bicremental_types<T>(); }
+
+#endif // ndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+
+
+
diff --git a/src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj b/src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj
new file mode 100644
index 000000000..187ef23c9
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F8C}</ProjectGuid>
+ <RootNamespace>Test_itl_interval</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_icl_interval.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj.filters b/src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj.filters
new file mode 100644
index 000000000..47d68c842
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_interval_/vc10_test_icl_interval.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_icl_interval.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_icl_interval_/vc9_test_icl_interval.vcproj b/src/boost/libs/icl/test/test_icl_interval_/vc9_test_icl_interval.vcproj
new file mode 100644
index 000000000..ff0b29369
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_interval_/vc9_test_icl_interval.vcproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_icl_interval"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}"
+ RootNamespace="Test_itl_interval"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_icl_interval.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_icl_interval_shared.hpp b/src/boost/libs/icl/test/test_icl_interval_shared.hpp
new file mode 100644
index 000000000..bef5faac2
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_interval_shared.hpp
@@ -0,0 +1,302 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_ICL_interval_shared_hpp_JOFA_100306__
+#define LIBS_ICL_TEST_TEST_ICL_interval_shared_hpp_JOFA_100306__
+
+#include <boost/icl/interval_set.hpp>
+
+template <class DomainT, ICL_COMPARE Compare,
+ ICL_INTERVAL(ICL_COMPARE) Interval>
+void test_inner_complement(const ICL_INTERVAL_TYPE(Interval,DomainT,Compare)& itv1,
+ const ICL_INTERVAL_TYPE(Interval,DomainT,Compare)& itv2)
+{
+ typedef interval_set<DomainT,Compare,Interval> ItvSetT;
+ typedef ICL_INTERVAL_TYPE(Interval,DomainT,Compare) IntervalT;
+
+ BOOST_CHECK_EQUAL(icl::length(inner_complement(itv1,itv2)), icl::distance(itv1,itv2));
+ BOOST_CHECK_EQUAL(icl::length(inner_complement(itv1,itv2)), icl::distance(itv2,itv1));
+ BOOST_CHECK_EQUAL(icl::length(inner_complement(itv2,itv1)), icl::distance(itv1,itv2));
+ BOOST_CHECK_EQUAL(icl::length(inner_complement(itv2,itv1)), icl::distance(itv2,itv1));
+
+ IntervalT in_comp = inner_complement(itv1,itv2);
+ ItvSetT itvset, inner_comp;
+ itvset.add(itv1).add(itv2);
+ ItvSetT hullset = ItvSetT(hull(itvset));
+ inner_comp = hullset - itvset;
+ IntervalT inner_comp_itv;
+ if(inner_comp.begin() != inner_comp.end())
+ inner_comp_itv = *inner_comp.begin();
+
+ BOOST_CHECK_EQUAL(inner_complement(itv1,itv2), inner_comp_itv);
+ BOOST_CHECK_EQUAL(inner_complement(itv2,itv1), inner_comp_itv);
+ BOOST_CHECK_EQUAL(icl::length(inner_comp), icl::distance(itv1,itv2));
+ BOOST_CHECK_EQUAL(icl::length(inner_comp), icl::distance(itv2,itv1));
+
+ BOOST_CHECK(icl::disjoint(itv1, in_comp));
+ BOOST_CHECK(icl::disjoint(itv2, in_comp));
+
+ IntervalT itv1_comp = hull(itv1, in_comp);
+ IntervalT itv2_comp = hull(itv2, in_comp);
+
+ if(!icl::is_empty(in_comp))
+ {
+ BOOST_CHECK(icl::intersects(itv1_comp, in_comp));
+ BOOST_CHECK(icl::intersects(itv2_comp, in_comp));
+
+ BOOST_CHECK_EQUAL(itv1_comp & itv2_comp, in_comp);
+ BOOST_CHECK_EQUAL( icl::is_empty(itv1_comp & itv2_comp), icl::disjoint(itv1_comp, itv2_comp));
+ BOOST_CHECK_EQUAL(!icl::is_empty(itv1_comp & itv2_comp), icl::intersects(itv1_comp, itv2_comp));
+ }
+}
+
+template <class IntervalT>
+void test_inner_complement_(const IntervalT& itv1, const IntervalT& itv2)
+{
+ typedef typename interval_traits<IntervalT>::domain_type DomainT;
+ // For the test of plain interval types we assume that std::less is
+ // the compare functor
+ test_inner_complement<DomainT, std::less, IntervalT>(itv1, itv2);
+}
+
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+
+void interval_ctor_specific()
+{
+ BOOST_CHECK_EQUAL(icl::length(icl::interval<double>::type()), 0.0);
+ BOOST_CHECK_EQUAL(icl::cardinality(icl::interval<double>::closed(5.0, 5.0)), 1);
+ BOOST_CHECK_EQUAL(icl::cardinality(icl::interval<std::string>::closed("test", "test")), 1);
+ BOOST_CHECK_EQUAL(icl::cardinality(icl::interval<std::string>::closed("best","test")),
+ icl::cardinality(icl::interval<double>::closed(0.0,0.1)));
+ BOOST_CHECK_EQUAL(icl::cardinality(icl::interval<std::string>::right_open("best","test")),
+ icl::infinity<size_type_of<icl::interval<std::string>::type>::type >::value() );
+ BOOST_CHECK_EQUAL(icl::cardinality(icl::interval<double>::right_open(0.0, 1.0)),
+ icl::infinity<size_type_of<icl::interval<double>::type>::type >::value() );
+}
+
+#endif // ndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+
+template <class T>
+void interval_equal_4_integral_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ BOOST_CHECK_EQUAL(IntervalT(), IntervalT(v7,v3));
+
+ //I: (I)nside = closed bound
+ //C: left open bound
+ //D: right open bound
+ IntervalT I3_7I = icl::interval<T>::closed(v3,v7);
+ IntervalT I3__8D = icl::interval<T>::right_open(v3,v8);
+ IntervalT C2__7I = icl::interval<T>::left_open(v2,v7);
+ IntervalT C2___8D = icl::interval<T>::open(v2,v8);
+
+ BOOST_CHECK_EQUAL( I3_7I , I3_7I );
+ BOOST_CHECK_EQUAL( I3_7I , I3__8D );
+ BOOST_CHECK_EQUAL( I3_7I , C2__7I );
+ BOOST_CHECK_EQUAL( I3_7I , C2___8D );
+
+ BOOST_CHECK_EQUAL( I3__8D, I3__8D );
+ BOOST_CHECK_EQUAL( I3__8D, C2__7I );
+ BOOST_CHECK_EQUAL( I3__8D, C2___8D );
+
+ BOOST_CHECK_EQUAL( C2__7I , C2__7I );
+ BOOST_CHECK_EQUAL( C2__7I , C2___8D );
+
+ BOOST_CHECK_EQUAL( C2___8D, C2___8D );
+}
+
+template <class T>
+void interval_less_4_integral_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ BOOST_CHECK_EQUAL(IntervalT() < IntervalT(v7,v3), false);
+ BOOST_CHECK_EQUAL(icl::interval<T>::open(v2,v3) < icl::interval<T>::right_open(v7,v7), false);
+ BOOST_CHECK_EQUAL(icl::interval<T>::left_open(v3,v3) < icl::interval<T>::closed(v7,v3), false);
+
+ BOOST_CHECK_EQUAL(IntervalT() < IntervalT(v3,v4), true);
+ BOOST_CHECK_EQUAL(icl::interval<T>::open(v2,v3) < icl::interval<T>::right_open(v7,v8), true);
+
+ //I: (I)nside = closed bound
+ //C: left open bound
+ //D: right open bound
+ IntervalT I3_7I = icl::interval<T>::closed(v3,v7);
+ IntervalT I4_7I = icl::interval<T>::closed(v4,v7);
+
+ IntervalT I3__8D = icl::interval<T>::right_open(v3,v8);
+ IntervalT C2__7I = icl::interval<T>::left_open(v2,v7);
+ IntervalT C2___8D = icl::interval<T>::open(v2,v8);
+
+ BOOST_CHECK_EQUAL( I3_7I < I3_7I , false);
+ BOOST_CHECK_EQUAL( I3_7I < I3__8D , false);
+ BOOST_CHECK_EQUAL( I3_7I < C2__7I , false);
+ BOOST_CHECK_EQUAL( I3_7I < C2___8D , false);
+
+ BOOST_CHECK_EQUAL( I3_7I < I4_7I , true);
+
+
+ BOOST_CHECK_EQUAL( I3__8D< I3__8D , false);
+ BOOST_CHECK_EQUAL( I3__8D< C2__7I , false);
+ BOOST_CHECK_EQUAL( I3__8D< C2___8D , false);
+
+ BOOST_CHECK_EQUAL( C2__7I < C2__7I , false);
+ BOOST_CHECK_EQUAL( C2__7I < C2___8D , false);
+
+ BOOST_CHECK_EQUAL( C2___8D< C2___8D , false);
+}
+
+template <class T>
+void interval_equal_4_bicremental_continuous_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+ T v3 = make<T>(3);
+ T v7 = make<T>(7);
+ BOOST_CHECK_EQUAL(IntervalT(), IntervalT(v7,v3));
+
+ //I: (I)nside = closed bound
+ //O: (O)utside = open bound
+ IntervalT I3_7I = icl::interval<T>::closed(v3,v7);
+ IntervalT I3_7D = icl::interval<T>::right_open(v3,v7);
+ IntervalT C3_7I = icl::interval<T>::left_open(v3,v7);
+ IntervalT C3_7D = icl::interval<T>::open(v3,v7);
+
+ BOOST_CHECK_EQUAL( I3_7I , I3_7I );
+ BOOST_CHECK_EQUAL( I3_7I == I3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7I == C3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7I != I3_7D, true );
+ BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
+ BOOST_CHECK_EQUAL( I3_7I != C3_7D, true );
+
+ BOOST_CHECK_EQUAL( I3_7D , I3_7D );
+ BOOST_CHECK_EQUAL( I3_7D == C3_7I, false );
+ BOOST_CHECK_EQUAL( I3_7D == C3_7D, false );
+ BOOST_CHECK_EQUAL( I3_7D != C3_7I, true );
+ BOOST_CHECK_EQUAL( I3_7D != C3_7D, true );
+
+ BOOST_CHECK_EQUAL( C3_7I , C3_7I );
+ BOOST_CHECK_EQUAL( C3_7I == C3_7D, false );
+ BOOST_CHECK_EQUAL( C3_7I != C3_7D, true );
+
+ BOOST_CHECK_EQUAL( C3_7D, C3_7D );
+}
+
+template <class T>
+void interval_touches_4_bicremental_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+ T v3 = make<T>(3);
+ T v7 = make<T>(7);
+ T v9 = make<T>(9);
+
+ IntervalT I3_7D = icl::interval<T>::right_open(v3,v7);
+ IntervalT I7_9I = icl::interval<T>::closed(v7,v9);
+ BOOST_CHECK_EQUAL( icl::touches(I3_7D, I7_9I), true );
+
+ IntervalT I3_7I = icl::interval<T>::closed(v3,v7);
+ IntervalT C7_9I = icl::interval<T>::left_open(v7,v9);
+ BOOST_CHECK_EQUAL( icl::touches(I3_7I, C7_9I), true );
+
+ BOOST_CHECK_EQUAL( icl::touches(I3_7D, C7_9I), false );
+ BOOST_CHECK_EQUAL( icl::touches(I3_7I, I7_9I), false );
+}
+
+template <class T>
+void interval_touches_4_integral_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+ T v3 = make<T>(3);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v9 = make<T>(9);
+
+ IntervalT I3_6I = icl::interval<T>::closed(v3,v6);
+ IntervalT I7_9I = icl::interval<T>::closed(v7,v9);
+ BOOST_CHECK_EQUAL( icl::touches(I3_6I, I7_9I), true );
+
+ IntervalT I3_7D = icl::interval<T>::right_open(v3,v7);
+ IntervalT C6_9I = icl::interval<T>::left_open(v6,v9);
+ BOOST_CHECK_EQUAL( icl::touches(I3_7D, C6_9I), true );
+}
+
+template <class T>
+void interval_infix_intersect_4_bicremental_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+
+ IntervalT section;
+ IntervalT I3_7D = I_D(3,7);
+
+ IntervalT I0_3D = I_D(0,3);
+ section = I3_7D & I0_3D;
+ BOOST_CHECK_EQUAL( icl::disjoint(I0_3D, I3_7D), true );
+ BOOST_CHECK_EQUAL( icl::is_empty(section), true );
+ BOOST_CHECK_EQUAL( section, IntervalT() );
+
+ IntervalT I0_5D = I_D(0,5);
+ section = I3_7D & I0_5D;
+ BOOST_CHECK_EQUAL( section, I_D(3,5) );
+
+ IntervalT I0_9D = I_D(0,9);
+ section = I3_7D & I0_9D;
+ BOOST_CHECK_EQUAL( section, I3_7D );
+
+ IntervalT I4_5I = I_I(4,5);
+ section = I3_7D & I4_5I;
+ BOOST_CHECK_EQUAL( section, I4_5I );
+
+ IntervalT C4_6D = C_D(4,6);
+ section = I3_7D & C4_6D;
+ BOOST_CHECK_EQUAL( section, C4_6D );
+
+ IntervalT C4_9I = C_I(4,9);
+ section = I3_7D & C4_9I;
+ BOOST_CHECK_EQUAL( section, C_D(4,7) );
+
+ IntervalT I7_9I = I_I(7,9);
+ section = I3_7D & I7_9I;
+ BOOST_CHECK_EQUAL( icl::exclusive_less(I3_7D, I7_9I), true );
+ BOOST_CHECK_EQUAL( icl::disjoint(I3_7D, I7_9I), true );
+ BOOST_CHECK_EQUAL( icl::is_empty(section), true );
+}
+
+template <class T>
+void interval_subtract_4_bicremental_types()
+{
+ typedef typename icl::interval<T>::type IntervalT;
+
+ IntervalT diff_1, diff_2;
+ IntervalT I0_3D = I_D(0,3);
+ IntervalT I2_6D = I_D(2,6);
+ IntervalT I4_7D = I_D(4,7);
+ IntervalT I6_7D = I_D(6,7);
+ IntervalT I2_4D = I_D(2,4);
+
+ diff_1 = right_subtract(I2_6D, I4_7D);
+ BOOST_CHECK_EQUAL( diff_1, I2_4D );
+
+ diff_1 = right_subtract(I0_3D, I4_7D);
+ BOOST_CHECK_EQUAL( diff_1, I0_3D );
+
+ // ---------------------------------
+ diff_1 = left_subtract(I4_7D, I2_6D);
+ BOOST_CHECK_EQUAL( diff_1, I6_7D );
+
+ diff_1 = left_subtract(I4_7D, I0_3D);
+ BOOST_CHECK_EQUAL( diff_1, I4_7D );
+}
+
+
+#endif // LIBS_ICL_TEST_TEST_ICL_interval_shared_hpp_JOFA_100306__
diff --git a/src/boost/libs/icl/test/test_icl_map.hpp b/src/boost/libs/icl/test/test_icl_map.hpp
new file mode 100644
index 000000000..f16c11007
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_map.hpp
@@ -0,0 +1,186 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_ICL_MAP_HPP_JOFA_090119
+#define LIBS_ICL_TEST_TEST_ICL_MAP_HPP_JOFA_090119
+
+#include "portability.hpp"
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_map_contains_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ //CL typedef std::set<T> SetT;
+ typedef typename MapT::element_type map_element_type;
+
+ IntervalMapT itv_map_a;
+ itv_map_a.add(IDv(2,4,1)).add(IIv(6,7,3));
+
+ MapT map_a;
+ segmental::atomize(map_a, itv_map_a);
+
+ BOOST_CHECK_EQUAL( contains(map_a, MK_v(3)), true );
+ BOOST_CHECK_EQUAL( within(MK_v(3), map_a), true );
+
+ map_element_type key_value_pair(MK_v(6), MK_u(3));
+ BOOST_CHECK( contains(map_a, key_value_pair) );
+ BOOST_CHECK( within(key_value_pair, map_a) );
+
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_map_find_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a;
+ itv_map_a.add(IDv(2,4,1)).add(IIv(6,7,3));
+
+ MapT map_a;
+ segmental::atomize(map_a, itv_map_a);
+
+ typename MapT::const_iterator found = map_a.find(MK_v(6));
+
+ BOOST_CHECK_EQUAL( found->second, MK_u(3) );
+ BOOST_CHECK_EQUAL( map_a(MK_v(6)), MK_u(3) );
+
+ found = map_a.find(MK_v(5));
+
+ BOOST_CHECK_EQUAL( found == map_a.end(), true );
+ BOOST_CHECK_EQUAL( map_a(MK_v(5)), MK_u(0) );
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_map_inclusion_compare_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ typedef std::set<T> SetT;
+
+ IntervalMapT itv_map_sub_a, itv_map_a, itv_map_super_a,
+ itv_map_b, itv_map_c;
+ itv_map_sub_a.add(IDv(2,4,1)).add(IIv(6,7,3));
+ itv_map_a = itv_map_sub_a;
+ itv_map_a.add(IIv(9,9,1));
+ itv_map_c = itv_map_sub_a;
+ itv_map_c.erase(MK_v(7)).add(IIv(11,11,2));
+ itv_map_b = itv_map_a;
+ itv_map_b.set(IIv(6,7,2));
+
+ MapT map_sub_a, map_a, map_a2, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+ segmental::atomize(map_sub_a, itv_map_sub_a);
+
+ map_a2 = map_a;
+ BOOST_CHECK_EQUAL( inclusion_compare(MapT(), MapT()), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, map_a), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, map_a2), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, MapT()), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, map_sub_a), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(MapT(), map_a), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(map_sub_a, map_a), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, map_b), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, map_c), inclusion::unrelated );
+
+ SetT set_sub_a, set_a, set_a2, set_b, set_c;
+ icl::domain(set_a, map_a);
+ icl::domain(set_a2, map_a2);
+ icl::domain(set_sub_a, map_sub_a);
+
+ BOOST_CHECK_EQUAL( inclusion_compare(MapT(), SetT()), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(SetT(), MapT()), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(SetT(), SetT()), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, set_a), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, map_a), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, set_a2), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, SetT()), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(map_a, set_sub_a), inclusion::superset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(SetT(), map_a), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_sub_a, map_a), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, SetT()), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, set_sub_a), inclusion::superset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(SetT(), set_a), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_sub_a, set_a), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, map_c), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare(map_c, set_a), inclusion::unrelated );
+
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_map_move_4_discrete_types()
+{
+ typedef icl::map<T,U,Trt> MapT;
+ typedef typename MapT::element_type map_element_type;
+
+ map_element_type kv_6_3(MK_v(6), MK_u(3));
+
+ MapT map_b;
+ map_b.add(kv_6_3);
+ MapT mv_cons_1(boost::move(MapT().add(kv_6_3)));
+ MapT cp_cons_1(map_b);
+
+ BOOST_CHECK_EQUAL( mv_cons_1, cp_cons_1 );
+ BOOST_CHECK_EQUAL( map_b, cp_cons_1 );
+
+ MapT mv_ass_1, cp_ass_1;
+ mv_ass_1 = boost::move(MapT().add(kv_6_3));
+ cp_ass_1 = map_b;
+
+ BOOST_CHECK_EQUAL( mv_ass_1, cp_ass_1 );
+ BOOST_CHECK_EQUAL( map_b, cp_ass_1 );
+}
+
+
+#endif // LIBS_ICL_TEST_TEST_ICL_MAP_HPP_JOFA_090119
+
diff --git a/src/boost/libs/icl/test/test_icl_map_/test_icl_map.cpp b/src/boost/libs/icl/test/test_icl_map_/test_icl_map.cpp
new file mode 100644
index 000000000..f43345968
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_map_/test_icl_map.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::icl_map unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/map.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_icl_map.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "test_icl_map_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_icl_map_/test_icl_map_cases.hpp b/src/boost/libs/icl/test/test_icl_map_/test_icl_map_cases.hpp
new file mode 100644
index 000000000..b5d453353
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_map_/test_icl_map_cases.hpp
@@ -0,0 +1,23 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_icl_map_find_4_bicremental_types, T, discrete_types)
+{ icl_map_find_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_icl_map_inclusion_compare_4_bicremental_types, T, discrete_types)
+{ icl_map_inclusion_compare_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(test_icl_icl_map_move_4_discrete_types)
+{ icl_map_move_4_discrete_types<discrete_type_1, int, partial_absorber, INTERVAL_MAP>();}
+
+#endif // BOOST_ICL_TEST_ICL_MAP_CASES_HPP_JOFA_090701
diff --git a/src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj b/src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj
new file mode 100644
index 000000000..b7d3c4def
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-C6CEBFCE352B}</ProjectGuid>
+ <RootNamespace>Test_itl_map</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_icl_map.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj.filters b/src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj.filters
new file mode 100644
index 000000000..a78be60fa
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_map_/vc10_test_icl_map.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_icl_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_icl_map_/vc9_test_icl_map.vcproj b/src/boost/libs/icl/test/test_icl_map_/vc9_test_icl_map.vcproj
new file mode 100644
index 000000000..202ade3a9
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_map_/vc9_test_icl_map.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_icl_map"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}"
+ RootNamespace="Test_itl_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_icl_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_icl_quantifier_shared.hpp b/src/boost/libs/icl/test/test_icl_quantifier_shared.hpp
new file mode 100644
index 000000000..7d19509b7
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_quantifier_shared.hpp
@@ -0,0 +1,308 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_ICL_QUANTIFIER_SHARED_HPP_JOFA_100819
+#define LIBS_ICL_TEST_TEST_ICL_QUANTIFIER_SHARED_HPP_JOFA_100819
+
+#include "portability.hpp"
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void make_3_icl_maps_and_derivatives_1
+ (icl::map<T,U,Trt>& map_a,
+ icl::map<T,U,Trt>& map_b,
+ icl::map<T,U,Trt>& map_c,
+ std::pair<T,U>& map_pair_a,
+ std::pair<T,U>& map_pair_b,
+ ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)*)
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ map_pair_a = sK_v(5,1);
+ map_pair_b = sK_v(9,1);
+
+ add(map_a, sK_v(3,1));
+ add(map_a, sK_v(4,1));
+ add(map_a, sK_v(5,1));
+ add(map_a, sK_v(5,1));
+ add(map_a, sK_v(6,1));
+ add(map_a, sK_v(7,1));
+
+ add(map_b, sK_v(2,1));
+ add(map_b, sK_v(8,1));
+
+ add(map_c, sK_v(0,2));
+ add(map_c, sK_v(1,2));
+ add(map_c, sK_v(2,2));
+ add(map_c, sK_v(3,2));
+ add(map_c, sK_v(4,2));
+ add(map_c, sK_v(5,2));
+ add(map_c, sK_v(6,2));
+ add(map_c, sK_v(7,2));
+ add(map_c, sK_v(8,2));
+
+ add(map_c, sK_v(3,1));
+ add(map_c, sK_v(4,1));
+ add(map_c, sK_v(5,1));
+ add(map_c, sK_v(6,1));
+
+ add(map_c, sK_v(5,1));
+ add(map_c, sK_v(6,1));
+}
+
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair_a, map_pair_b);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair_a, map_pair_b);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+}
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid with distinct equality for inversion
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(map_a, map_b, map_c, map_pair_a, map_pair_b);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(plus)(is_distinct_equal, map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(pipe)(is_distinct_equal, map_a, map_b, map_c, map_pair_a, map_pair_b);
+#endif
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian group EANIC
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_abelian_group_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+}
+
+//------------------------------------------------------------------------------
+// (0 - x) + x =d= 0
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types()
+{
+ // check abelian group wrt. + and inverability wrt. distinct equality =d= :
+ // (1) (IntervalMapT, +) is an abelian group and
+ // (2) The inverability law: (0 - x) + x =d= 0 holds.
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair_a, map_pair_b);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(plus) (is_distinct_equal, map_a, map_b, map_c, map_pair_a, map_pair_b);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(pipe) (is_distinct_equal, map_a, map_b, map_c, map_pair_a, map_pair_b);
+#endif
+}
+
+//------------------------------------------------------------------------------
+// Containedness
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void icl_quantifier_check_containedness_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+ IntervalMapT aux;
+ MapT map_a, map_b, map_c;
+ std::pair<T,U> map_pair_a, map_pair_b;
+ make_3_icl_maps_and_derivatives_1(map_a, map_b, map_c, map_pair_a, map_pair_b, &aux);
+
+ check_intersection_containedness(map_a, map_c);
+ check_intersection_containedness(map_c, map_pair_a);
+
+ check_union_containedness(map_a, map_c);
+ check_union_containedness(map_c, map_pair_a);
+
+ check_domain_containedness(map_a);
+}
+
+
+#endif // LIBS_ICL_TEST_TEST_ICL_QUANTIFIER_SHARED_HPP_JOFA_100819
diff --git a/src/boost/libs/icl/test/test_icl_static_interval.hpp b/src/boost/libs/icl/test/test_icl_static_interval.hpp
new file mode 100644
index 000000000..663f5641d
--- /dev/null
+++ b/src/boost/libs/icl/test/test_icl_static_interval.hpp
@@ -0,0 +1,24 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_ICL_STATIC_INTERVAL_HPP_JOFA_100930
+#define BOOST_ICL_TEST_ICL_STATIC_INTERVAL_HPP_JOFA_100930
+
+template <class T, class IntervalT>
+void static_interval_ctor_4_ordered_types()
+{
+ BOOST_CHECK_EQUAL(icl::is_empty(IntervalT()), true);
+ BOOST_CHECK_EQUAL(icl::cardinality(IntervalT()), icl::identity_element<typename icl::size_type_of<T>::type>::value());
+ BOOST_CHECK_EQUAL(icl::size(IntervalT()), icl::identity_element<typename icl::size_type_of<T>::type>::value());
+
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT() );
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT(IntervalT().lower(), IntervalT().upper()) );
+ BOOST_CHECK_EQUAL( IntervalT(), IntervalT(icl::lower(IntervalT()), icl::upper(IntervalT())) );
+}
+
+
+#endif // BOOST_ICL_TEST_ICL_STATIC_INTERVAL_HPP_JOFA_100930
diff --git a/src/boost/libs/icl/test/test_interval_cases.hpp b/src/boost/libs/icl/test/test_interval_cases.hpp
new file mode 100644
index 000000000..5ff512246
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_cases.hpp
@@ -0,0 +1,19 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __test_IntervalT_hpp_JOFA_100401__
+#define __test_IntervalT_hpp_JOFA_100401__
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_ctor_4_ordered_types, T, ORDERED_TYPES)
+{ interval_ctor_4_ordered_types<T, std::less, INTERVAL>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_ctor_4_bicremental_types, T, BICREMENTAL_TYPES)
+{ interval_ctor_4_bicremental_types<T, std::less, INTERVAL>();}
+
+#endif // __test_IntervalT_hpp_JOFA_100401__
diff --git a/src/boost/libs/icl/test/test_interval_laws.hpp b/src/boost/libs/icl/test/test_interval_laws.hpp
new file mode 100644
index 000000000..587588efd
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_laws.hpp
@@ -0,0 +1,84 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2010-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------+
+Function templates to call functions in object oriented or namespace glabal
+versions.
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_LIBS_ICL_TEST_INTERVAL_LAWS_HPP_JOFA_101011
+#define BOOST_LIBS_ICL_TEST_INTERVAL_LAWS_HPP_JOFA_101011
+
+#include <boost/icl/detail/notate.hpp>
+#include <boost/icl/detail/design_config.hpp>
+#include <boost/icl/type_traits/interval_type_default.hpp>
+#include <boost/icl/interval.hpp>
+#include <boost/icl/type_traits/is_interval.hpp>
+#include <boost/icl/concept/interval.hpp>
+
+namespace boost{ namespace icl
+{
+
+template<class Type>
+typename enable_if<is_interval<Type>, void>::type
+check_border_containedness(const Type& itv)
+{
+ typedef typename interval_traits<Type>::domain_type domain_type;
+ domain_type lo = icl::lower(itv);
+ domain_type up = icl::upper(itv);
+
+ //LAW: The empty set is contained in every set
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::identity_element<Type>::value()), true);
+ //LAW: Reflexivity: Every interval contains itself
+ BOOST_CHECK_EQUAL(icl::contains(itv, itv), true);
+
+ if(icl::bounds(itv) == interval_bounds::closed())
+ {
+ BOOST_CHECK_EQUAL(icl::contains(itv, lo), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, up), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: closed(lo,up)), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>::right_open(lo,up)), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: left_open(lo,up)), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: open(lo,up)), true);
+ }
+ else if(icl::bounds(itv) == interval_bounds::right_open())
+ {
+ BOOST_CHECK_EQUAL(icl::contains(itv, lo), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, up), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: closed(lo,up)), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>::right_open(lo,up)), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: left_open(lo,up)), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: open(lo,up)), true);
+ }
+ else if(icl::bounds(itv) == interval_bounds::left_open())
+ {
+ BOOST_CHECK_EQUAL(icl::contains(itv, lo), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, up), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: closed(lo,up)), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>::right_open(lo,up)), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: left_open(lo,up)), true);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: open(lo,up)), true);
+ }
+ else if(icl::bounds(itv) == interval_bounds::open())
+ {
+ BOOST_CHECK_EQUAL(icl::contains(itv, lo), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, up), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: closed(lo,up)), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>::right_open(lo,up)), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: left_open(lo,up)), false);
+ BOOST_CHECK_EQUAL(icl::contains(itv, icl::interval<domain_type>:: open(lo,up)), true);
+ }
+ else
+ {
+ bool interval_borders_are_open_v_left_open_v_right_open_v_closed = true;
+ BOOST_CHECK_EQUAL(interval_borders_are_open_v_left_open_v_right_open_v_closed, false);
+ }
+}
+
+}} // namespace boost icl
+
+#endif // BOOST_ICL_TEST_INTERVAL_LAWS_HPP_JOFA_100908
diff --git a/src/boost/libs/icl/test/test_interval_map_/test_interval_map.cpp b/src/boost/libs/icl/test/test_interval_map_/test_interval_map.cpp
new file mode 100644
index 000000000..2b41e8e6c
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_/test_interval_map.cpp
@@ -0,0 +1,38 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_functions.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_map_shared are tests that should give identical results for all
+// interval_maps: interval_map and split_interval_map.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_interval_map_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj b/src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj
new file mode 100644
index 000000000..cfbc7054f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9D}</ProjectGuid>
+ <RootNamespace>Test_interval_map</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj.filters b/src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj.filters
new file mode 100644
index 000000000..34d88cb34
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_/vc10_test_interval_map.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_/vc9_test_interval_map.vcproj b/src/boost/libs/icl/test/test_interval_map_/vc9_test_interval_map.vcproj
new file mode 100644
index 000000000..0500e2fa9
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_/vc9_test_interval_map.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_map"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}"
+ RootNamespace="Test_interval_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_map_cases.hpp b/src/boost/libs/icl/test/test_interval_map_cases.hpp
new file mode 100644
index 000000000..a1fad6f3b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_cases.hpp
@@ -0,0 +1,92 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_INTERVAL_MAP_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_INTERVAL_MAP_CASES_HPP_JOFA_090701
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_map_fundamentals_4_ordered_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_map_ctor_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_map_distinct_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_distinct_4_bicremental_continuous_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_isolate_4_bicremental_continuous_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_contains_4_bicremental_types, T, bicremental_types)
+{ interval_map_contains_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_contains_key_objects_4_bicremental_types, T, bicremental_types)
+{ interval_map_contains_key_objects_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_operators_4_bicremental_types, T, bicremental_types)
+{ interval_map_operators_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_is_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_flip_4_bicremental_types, T, bicremental_types)
+{ interval_map_flip_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_find_4_bicremental_types, T, bicremental_types)
+{ interval_map_find_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_find_4_numeric_continuous_types, T, numeric_continuous_types)
+{ interval_map_find_4_numeric_continuous_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_range_4_bicremental_types, T, bicremental_types)
+{ interval_map_range_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_set_4_bicremental_types, T, bicremental_types)
+{ interval_map_set_4_bicremental_types<INTERVAL_MAP, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_inclusion_compare_4_bicremental_types, T, bicremental_types)
+{ interval_map_inclusion_compare_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_std_copy_via_inserter_4_bicremental_types, T, bicremental_types)
+{ interval_map_std_copy_via_inserter_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_element_iter_4_discrete_types, T, discrete_types)
+{ interval_map_element_iter_4_discrete_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+#endif // BOOST_ICL_TEST_INTERVAL_MAP_CASES_HPP_JOFA_090701
+
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_/test_interval_map_infix.cpp b/src/boost/libs/icl/test/test_interval_map_infix_/test_interval_map_infix.cpp
new file mode 100644
index 000000000..b59053504
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_/test_interval_map_infix.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_map_shared are tests that should give identical results for all
+// interval_maps: interval_map and split_interval_map.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_interval_map_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj b/src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj
new file mode 100644
index 000000000..104164d80
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9D}</ProjectGuid>
+ <RootNamespace>Test_interval_map_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj.filters b/src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj.filters
new file mode 100644
index 000000000..0f026deca
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_/vc10_test_interval_map_infix.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_/vc9_test_interval_map_infix.vcproj b/src/boost/libs/icl/test/test_interval_map_infix_/vc9_test_interval_map_infix.vcproj
new file mode 100644
index 000000000..45a59284c
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_/vc9_test_interval_map_infix.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_map_infix"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}"
+ RootNamespace="Test_interval_map_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_map_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_cases.hpp b/src/boost/libs/icl/test/test_interval_map_infix_cases.hpp
new file mode 100644
index 000000000..9865dce59
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_cases.hpp
@@ -0,0 +1,32 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_FASTEST_INTERVAL_MAP_INFIX_CASES_HPP_JOFA_090702
+#define BOOST_ICL_FASTEST_INTERVAL_MAP_INFIX_CASES_HPP_JOFA_090702
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_infix_plus_overload_4_bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_1, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_infix_pipe_overload_4_bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_2, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_infix_minus_overload_4_bicremental_types)
+{ interval_map_infix_minus_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_3, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_infix_et_overload_4_bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_4, int>();}
+
+BOOST_AUTO_TEST_CASE
+(fastest_icl_interval_map_infix_caret_overload_4_bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<INTERVAL_MAP, bicremental_type_5, int>();}
+
+#endif // BOOST_ICL_FASTEST_INTERVAL_MAP_INFIX_CASES_HPP_JOFA_090702
+
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_mixed_/test_interval_map_infix_mixed.cpp b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/test_interval_map_infix_mixed.cpp
new file mode 100644
index 000000000..3390c16b3
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/test_interval_map_infix_mixed.cpp
@@ -0,0 +1,94 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_infix_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_icl_interval_map_mixed_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{
+ typedef int U;
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a;
+ split_interval_map<T,U> split_a;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a + join_a, join_a + split_a);
+}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_icl_interval_map_mixed_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{
+ typedef int U;
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a;
+ split_interval_map<T,U> split_a;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a | join_a, join_a | split_a);
+}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_icl_interval_map_mixed_infix_minus_overload_4_bicremental_types, T, bicremental_types)
+{
+ typedef int U;
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a, join_b;
+ split_interval_map<T,U> split_a, split_b;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ join_b .add(CDv(1,3,1)).add(IIv(6,11,3));
+ split_b.add(IDv(0,9,2)).add(IIv(3,6,1));
+
+ BOOST_CHECK_EQUAL(split_a - join_a, (split_b = split_a) -= join_a);
+ BOOST_CHECK_EQUAL(split_a - join_a, split_b);
+
+ BOOST_CHECK_EQUAL(join_a - split_a, (join_b = join_a) -= split_a);
+ BOOST_CHECK_EQUAL(join_a - split_a, join_b);
+}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_icl_interval_map_mixed_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{
+ typedef int U;
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a, join_b;
+ split_interval_map<T,U> split_a, split_b;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a & join_a, join_a & split_a);
+ BOOST_CHECK_EQUAL(split_a & join_a, (split_b = split_a) &= join_a);
+ BOOST_CHECK_EQUAL(split_a & join_a, split_b);
+
+ BOOST_CHECK_EQUAL(join_a & split_a, (split_b = split_a) &= join_a);
+ BOOST_CHECK_EQUAL(join_a & split_a, split_b);
+}
+
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj
new file mode 100644
index 000000000..bf5bda517
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D5A9F9F}</ProjectGuid>
+ <RootNamespace>Test_interval_map_infix_mixed</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_infix_mixed.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj.filters b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj.filters
new file mode 100644
index 000000000..511814fd6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc10_test_interval_map_infix_mixed.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_infix_mixed.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc9_test_interval_map_infix_mixed.vcproj b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc9_test_interval_map_infix_mixed.vcproj
new file mode 100644
index 000000000..767fed3ff
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_infix_mixed_/vc9_test_interval_map_infix_mixed.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_map_infix_mixed"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}"
+ RootNamespace="Test_interval_map_infix_mixed"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_map_infix_mixed.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed.hpp b/src/boost/libs/icl/test/test_interval_map_mixed.hpp
new file mode 100644
index 000000000..dbf8d8ca3
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed.hpp
@@ -0,0 +1,1560 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_ICL_interval_map_mixed_hpp_JOFA_081005__
+#define LIBS_ICL_TEST_TEST_ICL_interval_map_mixed_hpp_JOFA_081005__
+
+
+//------------------------------------------------------------------------------
+//- part1: Basic operations and predicates
+//------------------------------------------------------------------------------
+
+template <class T, class U>
+void interval_map_mixed_ctor_4_ordered_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+
+ T v0 = boost::icl::identity_element<T>::value();
+ U u1 = unit_element<U>::value();
+
+ SplitIntervalMapT split_map(mapping_pair<T,U>(v0,u1));
+ //JODO: clang err: ctor ambiguous. Should compile
+ //JODO CLANG SplitIntervalMapT split_map(make_pair(v0,u1));
+ IntervalMapT join_map(split_map);
+
+ BOOST_CHECK_EQUAL( hull(split_map).lower(), hull(join_map).lower() );
+ BOOST_CHECK_EQUAL( hull(split_map).upper(), hull(join_map).upper() );
+}
+
+template <class T, class U>
+void interval_map_mixed_equal_4_ordered_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+
+ T v0 = boost::icl::identity_element<T>::value();
+ U u1 = unit_element<U>::value();
+
+ SplitIntervalMapT split_empty, split_single(mapping_pair<T,U>(v0,u1));
+ IntervalMapT join_empty, join_single(mapping_pair<T,U>(v0,u1));
+ //JODO CLANG SplitIntervalMapT split_empty, split_single(make_pair(v0,u1));
+ //JODO CLANG IntervalMapT join_empty, join_single(make_pair(v0,u1));
+
+ // mixed ==-equality is a strange thing. Most times is does not
+ // make sense. It is better to allow only for same type == equality.
+ BOOST_CHECK_EQUAL( split_empty == split_empty, true );
+ BOOST_CHECK_EQUAL( join_empty == join_empty, true );
+
+ // There were Problems with operator== and emtpy sets.
+ BOOST_CHECK_EQUAL( split_empty == split_single, false );
+ BOOST_CHECK_EQUAL( join_empty == join_single, false );
+
+ BOOST_CHECK_EQUAL( split_single == split_empty, false );
+ BOOST_CHECK_EQUAL( join_single == join_empty, false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_empty), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_empty), true );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, join_empty), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, join_empty), false );
+}
+
+template <class T, class U>
+void interval_map_mixed_assign_4_ordered_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+
+ T v0 = boost::icl::identity_element<T>::value();
+ T v1 = unit_element<T>::value();
+ U u1 = unit_element<U>::value();
+
+ mapping_pair<T,U> v0_u1(v0,u1);
+ mapping_pair<T,U> v1_u1(v1,u1);
+
+ SplitIntervalMapT split_map;
+ IntervalMapT join_map;
+ split_map.add(v0_u1); //NOTE: make_pair(v0,u1); fails
+ join_map = split_map; //=t T& T::operator=(const P&) ...
+
+
+ BOOST_CHECK_EQUAL( hull(split_map).lower(), hull(join_map).lower() );
+ BOOST_CHECK_EQUAL( hull(split_map).upper(), hull(join_map).upper() );
+
+ SplitIntervalMapT split_self = SplitIntervalMapT().add(v0_u1);
+ IntervalMapT join_self = IntervalMapT().add(v1_u1);
+
+ split_self = split_self;
+ join_self = join_self;
+
+ BOOST_CHECK_EQUAL( split_self, split_self );
+ BOOST_CHECK_EQUAL( join_self, join_self );
+}
+
+template <class T, class U>
+void interval_map_mixed_ctor_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I2_4D_1(I2_4D, u1);
+ std::pair<IntervalT,U> I4_5D_1(I4_5D, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 4 );
+ IntervalMapT join_map(split_map);
+}
+
+
+template <class T, class U>
+void interval_map_mixed_assign_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I2_4D_1(I2_4D, u1);
+ std::pair<IntervalT,U> I4_5D_1(I4_5D, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 4 );
+ IntervalMapT join_map;
+ join_map = split_map;
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 3 );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_equal_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I2_4D_1(I2_4D, u1);
+ std::pair<IntervalT,U> I4_5D_1(I4_5D, u1);
+
+ IntervalMapT join_map;
+ join_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ IntervalMapT join_map2 = join_map;
+ BOOST_CHECK_EQUAL( join_map, join_map2 );
+ BOOST_CHECK_EQUAL( is_element_equal(join_map, join_map2), true );
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1).add(I4_5D_1);
+ SplitIntervalMapT split_map2 = split_map;
+ BOOST_CHECK_EQUAL( split_map, split_map2 );
+ BOOST_CHECK_EQUAL( is_element_equal(split_map2, split_map), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_map, join_map), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_map, split_map), true );
+}
+
+
+template <class T, class U, class Trt>
+void partial_interval_map_mixed_inclusion_compare_4_bicremental_types()
+{
+ typedef interval_map<T,U,Trt> IntervalMapT;
+
+ //--------------------------------------------------------------------------
+ // equalities
+ // { 0 1 2 3 4 5 8 9 }
+ // {[0,2)[2,3](3,6) (7,9]}
+ // ->2 ->1 ->1 ->2
+ split_interval_map<T,U,Trt> split_map;
+ interval_map<T,U,Trt> join_map;
+ split_interval_set<T> split_set;
+ separate_interval_set<T> sep_set;
+ interval_set<T> join_set;
+
+ split_map.add(IDv(0,2,2)).add(IIv(2,3,1)).add(CDv(3,6,1)).add(CIv(7,9,2));
+ join_map = split_map;
+ icl::domain(split_set, split_map);
+ icl::domain(sep_set, split_map);
+ icl::domain(join_set, split_map);
+
+ iterative_size(split_map);
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 4 );
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 3 );
+ BOOST_CHECK_EQUAL( iterative_size(split_set), 4 );
+ BOOST_CHECK_EQUAL( iterative_size(sep_set), 4 );
+ BOOST_CHECK_EQUAL( iterative_size(join_set), 2 );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, join_map), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(join_map, split_map), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, split_set), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, sep_set ), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, join_set ), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(join_map , split_set), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(join_map , sep_set ), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(join_map , join_set ), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_set, split_map), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(sep_set , split_map), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(join_set , split_map), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_set, join_map ), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(sep_set , join_map ), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(join_set , join_map ), inclusion::equal );
+
+ //--------------------------------------------------------------------------
+ // inclusions
+ // { 0 1 2 3 4 5 8 9 }
+ // {[0, 2)[2, 3](3, 6) (7, 9]}
+ // ->2 ->1 ->1 ->2
+ // {[0, 2) [3,3](3, 6) (7, 9]}
+ // ->2 ->1 ->1 ->2
+ split_interval_map<T,U,Trt> split_sub_map1 = split_map;
+ split_sub_map1.erase(MK_v(2));
+ BOOST_CHECK_EQUAL( icl::contains(split_sub_map1, MK_v(2)), false );
+
+ interval_map<T,U,Trt> join_sub_map2;
+ join_sub_map2 = split_map;
+ join_sub_map2.erase(MK_v(1));
+ BOOST_CHECK_EQUAL( icl::contains(join_sub_map2, MK_v(1)), false );
+
+ split_interval_set<T> split_sub_set1;
+ separate_interval_set<T> sep_sub_set1;
+ interval_set<T> join_sub_set1;
+
+ icl::domain(split_sub_set1, split_sub_map1);
+ icl::domain(sep_sub_set1, split_sub_map1);
+ icl::domain(join_sub_set1, split_sub_map1);
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_sub_map1, split_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_sub_map2, split_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_sub_map1, join_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_sub_map2, join_map), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_sub_set1, split_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare( sep_sub_set1, split_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_sub_set1, split_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_sub_set1, join_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare( sep_sub_set1, join_map), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_sub_set1, join_map), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, split_sub_map1), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, join_sub_map2), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_map, split_sub_map1), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_map, join_sub_map2), inclusion::superset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, split_sub_set1), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, sep_sub_set1), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, join_sub_set1), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_map, split_sub_set1), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_map, sep_sub_set1), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_map, join_sub_set1), inclusion::superset );
+
+ split_interval_map<T,U,Trt> split_unrel_map11 = split_sub_map1;
+ split_unrel_map11.set(CIv(7,9,1));
+ BOOST_CHECK_EQUAL( split_unrel_map11(MK_v(8)), MK_u(1) );
+
+ interval_map<T,U,Trt> join_unrel_map21 = join_sub_map2;
+ join_unrel_map21.set(K_v(0,1));
+ BOOST_CHECK_EQUAL( join_unrel_map21(MK_v(0)), MK_u(1) );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_unrel_map11, split_map), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_unrel_map21, split_map), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_unrel_map11, join_map), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_unrel_map21, join_map), inclusion::unrelated );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, split_unrel_map11), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare(split_map, join_unrel_map21), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_map, split_unrel_map11), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare( join_map, join_unrel_map21), inclusion::unrelated );
+
+ split_interval_map<T,U,Trt> split_unrel_map1 = split_sub_map1;
+ split_unrel_map1.add(IDv(11,12,1));
+ BOOST_CHECK_EQUAL( split_unrel_map1(MK_v(11)), MK_u(1) );
+
+ interval_map<T,U,Trt> join_unrel_map2 = join_sub_map2;
+ join_unrel_map2.add(K_v(6,1));
+ BOOST_CHECK_EQUAL( join_unrel_map2(MK_v(6)), MK_u(1) );
+}
+
+
+template <class T, class U, class Trt>
+void partial_interval_map_mixed_contains_4_bicremental_types()
+{
+ typedef interval_map<T,U,Trt> IntervalMapT;
+ //--------------------------------------------------------------------------
+ // { 0 1 2 3 4 5 8 9 }
+ // {[0,2)[2,3](3,6) (7,9]}
+ // ->2 ->1 ->1 ->2
+ split_interval_map<T,U,Trt> split_map;
+ interval_map<T,U,Trt> join_map;
+ split_interval_set<T> split_set;
+ separate_interval_set<T> sep_set;
+ interval_set<T> join_set;
+
+ split_map.add(IDv(0,2,2)).add(IIv(2,3,1)).add(CDv(3,6,1)).add(CIv(7,9,2));
+ join_map = split_map;
+ icl::domain(split_set, split_map);
+ icl::domain(sep_set, split_map);
+ icl::domain(join_set, split_map);
+
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 4 );
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 3 );
+ BOOST_CHECK_EQUAL( iterative_size(split_set), 4 );
+ BOOST_CHECK_EQUAL( iterative_size(sep_set), 4 );
+ BOOST_CHECK_EQUAL( iterative_size(join_set), 2 );
+
+ // Key types
+ BOOST_CHECK_EQUAL( icl::contains(split_map, MK_v(0)), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, MK_v(5)), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, MK_v(9)), true );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_map, I_D(2,3)), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, I_D(0,6)), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, I_D(0,7)), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, I_D(2,3)), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, I_D(0,6)), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, I_D(0,7)), false );
+
+ // Map types
+ BOOST_CHECK_EQUAL( icl::contains(join_map, K_v(1,2)), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, K_v(5,1)), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, K_v(9,2)), true );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_map, IDv(2,6,1)), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, IDv(1,6,1)), false );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, IIv(8,9,2)), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, IIv(8,9,3)), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, IDv(2,6,1)), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, IDv(1,6,1)), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, IIv(8,9,2)), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, IIv(8,9,3)), false );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_map, join_map), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, split_map), true );
+ BOOST_CHECK_EQUAL( icl::within(split_map, join_map), true );
+ BOOST_CHECK_EQUAL( icl::within(join_map, split_map), true );
+
+ //--------------------------------------------------------------------------
+ // inclusions
+ // { 0 1 2 3 4 5 8 9 }
+ // {[0, 2)[2, 3](3, 6) (7, 9]}
+ // ->2 ->1 ->1 ->2
+ // {[0, 2) [3,3](3, 6) (7, 9]}
+ // ->2 ->1 ->1 ->2
+ split_interval_map<T,U,Trt> split_sub_map1 = split_map;
+ split_sub_map1.erase(MK_v(2));
+ BOOST_CHECK_EQUAL( icl::contains(split_sub_map1, MK_v(2)), false );
+
+ interval_map<T,U,Trt> join_sub_map2;
+ join_sub_map2 = split_map;
+ join_sub_map2.erase(MK_v(1));
+ BOOST_CHECK_EQUAL( icl::contains(join_sub_map2, MK_v(1)), false );
+
+ split_interval_set<T> split_sub_set1;
+ separate_interval_set<T> sep_sub_set1;
+ interval_set<T> join_sub_set1;
+
+ icl::domain(split_sub_set1, split_sub_map1);
+ icl::domain(sep_sub_set1, split_sub_map1);
+ icl::domain(join_sub_set1, split_sub_map1);
+
+ BOOST_CHECK_EQUAL( icl::within(split_sub_map1, split_map), true );
+ BOOST_CHECK_EQUAL( icl::within(join_sub_map2, split_map), true );
+ BOOST_CHECK_EQUAL( icl::within(split_sub_map1, join_map ), true );
+ BOOST_CHECK_EQUAL( icl::within(join_sub_map2, join_map ), true );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_map, split_sub_map1), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, join_sub_map2), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, split_sub_map1), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, join_sub_map2), true );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_map, split_sub_set1), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, sep_sub_set1), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, join_sub_set1), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, split_sub_set1), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, sep_sub_set1), true );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, join_sub_set1), true );
+
+ split_interval_map<T,U,Trt> split_unrel_map11 = split_sub_map1;
+ split_unrel_map11.set(CIv(7,9,1));
+ BOOST_CHECK_EQUAL( split_unrel_map11(MK_v(8)), MK_u(1) );
+
+ interval_map<T,U,Trt> join_unrel_map21 = join_sub_map2;
+ join_unrel_map21.set(K_v(0,1));
+ BOOST_CHECK_EQUAL( join_unrel_map21(MK_v(0)), MK_u(1) );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_unrel_map11, split_map), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_unrel_map21, split_map), false );
+ BOOST_CHECK_EQUAL( icl::contains(split_unrel_map11, join_map), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_unrel_map21, join_map), false );
+
+ BOOST_CHECK_EQUAL( icl::within(split_unrel_map11, split_map), false );
+ BOOST_CHECK_EQUAL( icl::within(join_unrel_map21, split_map), false );
+ BOOST_CHECK_EQUAL( icl::within(split_unrel_map11, join_map), false );
+ BOOST_CHECK_EQUAL( icl::within(join_unrel_map21, join_map), false );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_map, split_unrel_map11), false );
+ BOOST_CHECK_EQUAL( icl::contains(split_map, join_unrel_map21), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, split_unrel_map11), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_map, join_unrel_map21), false );
+
+}
+
+//------------------------------------------------------------------------------
+//- part2: Operations
+//------------------------------------------------------------------------------
+
+template <class T, class U>
+void interval_map_mixed_add_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I2_4D_1(I2_4D, u1);
+ std::pair<IntervalT,U> I4_5D_1(I4_5D, u1);
+ mapping_pair<T,U> v1_1(v1, u1);
+ mapping_pair<T,U> v3_1(v3, u1);
+ mapping_pair<T,U> v5_1(v5, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1);
+ split_map += I4_5D_1;
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 4 );
+ IntervalMapT join_map;
+ join_map += split_map;
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 3 );
+
+ IntervalMapT join_map3;
+ join_map3.add(v1_1).add(v3_1);
+ join_map3 += v5_1;
+ BOOST_CHECK_EQUAL( iterative_size(join_map3), 3 );
+ SplitIntervalMapT split_map3;
+ split_map3 += join_map3;
+ BOOST_CHECK_EQUAL( iterative_size(split_map3), 3 );
+}
+
+template <class T, class U>
+void interval_map_mixed_add2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I2_4D_1(I2_4D, u1);
+ std::pair<IntervalT,U> I4_5D_1(I4_5D, u1);
+ mapping_pair<T,U> v1_1(v1, u1);
+ mapping_pair<T,U> v3_1(v3, u1);
+ mapping_pair<T,U> v5_1(v5, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I1_3D_1).add(I2_4D_1);
+ split_map |= I4_5D_1;
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 4 );
+ IntervalMapT join_map;
+ join_map |= split_map;
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 3 );
+
+ IntervalMapT join_map3;
+ join_map3.add(v1_1).add(v3_1);
+ join_map3 |= v5_1;
+ BOOST_CHECK_EQUAL( iterative_size(join_map3), 3 );
+ SplitIntervalMapT split_map3;
+ split_map3 |= join_map3;
+ BOOST_CHECK_EQUAL( iterative_size(split_map3), 3 );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_subtract_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_4D = IntervalT::right_open(v0,v4);
+ IntervalT I2_6D = IntervalT::right_open(v2,v6);
+ IntervalT I3_6D = IntervalT::right_open(v3,v6);
+ IntervalT I5_7D = IntervalT::right_open(v5,v7);
+ IntervalT I7_8D = IntervalT::right_open(v7,v8);
+ IntervalT I8_9D = IntervalT::right_open(v8,v9);
+ IntervalT I8_9I = IntervalT::closed(v8,v9);
+
+ std::pair<IntervalT,U> I0_4D_1(I0_4D, u1);
+ std::pair<IntervalT,U> I2_6D_1(I2_6D, u1);
+ std::pair<IntervalT,U> I3_6D_1(I3_6D, u1);
+ std::pair<IntervalT,U> I5_7D_1(I5_7D, u1);
+ std::pair<IntervalT,U> I7_8D_1(I7_8D, u1);
+ std::pair<IntervalT,U> I8_9D_1(I8_9D, u1);
+ std::pair<IntervalT,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 7 );
+
+ IntervalMapT join_map;
+ join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 5 );
+
+ // Make maps to be subtracted
+ SplitIntervalMapT split_sub;
+ split_sub.add(I3_6D_1).add(I8_9D_1);
+
+ IntervalMapT join_sub;
+ join_sub.add(I3_6D_1).add(I8_9D_1);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_map
+ SplitIntervalMapT split_diff = split_map;
+ IntervalMapT join_diff = join_map;
+
+ //subtraction combinations
+ split_diff -= split_sub;
+ join_diff -= split_sub;
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff), 7 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_map. Reinitialize
+ split_diff = split_map;
+ join_diff = join_map;
+
+ //subtraction combinations
+ split_diff -= join_sub;
+ join_diff -= join_sub;
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff), 7 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_erase_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_4D = IntervalT::right_open(v0,v4);
+ IntervalT I2_6D = IntervalT::right_open(v2,v6);
+ IntervalT I3_6D = IntervalT::right_open(v3,v6);
+ IntervalT I5_7D = IntervalT::right_open(v5,v7);
+ IntervalT I7_8D = IntervalT::right_open(v7,v8);
+ IntervalT I8_9D = IntervalT::right_open(v8,v9);
+ IntervalT I8_9I = IntervalT::closed(v8,v9);
+
+ std::pair<IntervalT,U> I0_4D_1(I0_4D, u1);
+ std::pair<IntervalT,U> I2_6D_1(I2_6D, u1);
+ std::pair<IntervalT,U> I3_6D_1(I3_6D, u1);
+ std::pair<IntervalT,U> I5_7D_1(I5_7D, u1);
+ std::pair<IntervalT,U> I7_8D_1(I7_8D, u1);
+ std::pair<IntervalT,U> I8_9D_1(I8_9D, u1);
+ std::pair<IntervalT,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 7 );
+
+ IntervalMapT join_map;
+ join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 5 );
+
+ // Make sets to be erased
+ SplitIntervalMapT split_sub;
+ split_sub.add(I3_6D_1).add(I8_9D_1);
+
+ IntervalMapT join_sub;
+ join_sub.add(I3_6D_1).add(I8_9D_1);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_map
+ SplitIntervalMapT split_diff = split_map;
+ IntervalMapT join_diff = join_map;
+
+ //subtraction combinations
+ erase(split_diff, split_sub);
+ erase(join_diff, split_sub);
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff), 6 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_map. Reinitialize
+ split_diff = split_map;
+ join_diff = join_map;
+
+ //subtraction combinations
+ erase(split_diff, join_sub);
+ erase(join_diff, join_sub);
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff), 6 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff), 5 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_erase2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_4D = IntervalT::right_open(v0,v4);
+ IntervalT I2_6D = IntervalT::right_open(v2,v6);
+ IntervalT I3_6D = IntervalT::right_open(v3,v6);
+ IntervalT I5_7D = IntervalT::right_open(v5,v7);
+ IntervalT I7_8D = IntervalT::right_open(v7,v8);
+ IntervalT I8_9D = IntervalT::right_open(v8,v9);
+ IntervalT I8_9I = IntervalT::closed(v8,v9);
+
+ std::pair<IntervalT,U> I0_4D_1(I0_4D, u1);
+ std::pair<IntervalT,U> I2_6D_1(I2_6D, u1);
+ std::pair<IntervalT,U> I3_6D_1(I3_6D, u1);
+ std::pair<IntervalT,U> I5_7D_1(I5_7D, u1);
+ std::pair<IntervalT,U> I7_8D_1(I7_8D, u1);
+ std::pair<IntervalT,U> I8_9D_1(I8_9D, u1);
+ std::pair<IntervalT,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_map;
+ split_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( iterative_size(split_map), 7 );
+
+ IntervalMapT join_map;
+ join_map.add(I0_4D_1).add(I2_6D_1).add(I5_7D_1).add(I7_8D_1).add(I8_9I_1);
+ BOOST_CHECK_EQUAL( iterative_size(join_map), 5 );
+
+ // Make sets to be erased
+ SplitIntervalSetT split_sub;
+ split_sub.add(I3_6D).add(I8_9D);
+
+ IntervalSetT join_sub;
+ join_sub.add(I3_6D).add(I8_9D);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_map
+ SplitIntervalMapT split_diff = split_map;
+ IntervalMapT join_diff = join_map;
+ SplitIntervalMapT split_diff2 = split_map;
+ IntervalMapT join_diff2 = join_map;
+
+ //erase combinations
+ erase(split_diff, split_sub);
+ erase(join_diff, split_sub);
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff), 5 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff), 4 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //subtraction combinations
+ split_diff2 -= split_sub;
+ join_diff2 -= split_sub;
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff2), 5 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff2), 4 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff2, split_diff2), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff2, join_diff2), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff2, split_diff2), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_map. Reinitialize
+ split_diff = split_map;
+ join_diff = join_map;
+ split_diff2 = split_map;
+ join_diff2 = join_map;
+
+ //erase combinations
+ erase(split_diff, join_sub);
+ erase(join_diff, join_sub);
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff), 5 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff), 4 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+
+ //subtraction combinations
+ split_diff2 -= join_sub;
+ join_diff2 -= join_sub;
+
+ BOOST_CHECK_EQUAL( iterative_size(split_diff2), 5 );
+ BOOST_CHECK_EQUAL( iterative_size(join_diff2), 4 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff2, join_diff2), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff2, split_diff2), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff2, join_diff2), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_insert_erase_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_4D = IntervalT::right_open(v0,v4);
+ IntervalT I2_6D = IntervalT::right_open(v2,v6);
+ IntervalT I3_6D = IntervalT::right_open(v3,v6);
+ IntervalT I5_7D = IntervalT::right_open(v5,v7);
+ IntervalT I7_8D = IntervalT::right_open(v7,v8);
+ IntervalT I8_9D = IntervalT::right_open(v8,v9);
+ IntervalT I8_9I = IntervalT::closed(v8,v9);
+
+ std::pair<IntervalT,U> I0_4D_1(I0_4D, u1);
+ std::pair<IntervalT,U> I2_6D_1(I2_6D, u1);
+ std::pair<IntervalT,U> I3_6D_1(I3_6D, u1);
+ std::pair<IntervalT,U> I5_7D_1(I5_7D, u1);
+ std::pair<IntervalT,U> I7_8D_1(I7_8D, u1);
+ std::pair<IntervalT,U> I8_9D_1(I8_9D, u1);
+ std::pair<IntervalT,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_A, split_B, split_all, split_X;
+ IntervalMapT join_A, join_B, join_all, join_X;
+
+ split_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ split_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ split_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ join_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ join_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ join_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ //-------------------------------------------------------------------------
+ insert(split_X, split_A);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ insert(split_X, split_B);
+ BOOST_CHECK_EQUAL( split_X, split_all );
+
+ erase(split_X, split_B);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ erase(split_X, split_A);
+ BOOST_CHECK_EQUAL( split_X, SplitIntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ insert(join_X, join_A);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ insert(join_X, join_B);
+ BOOST_CHECK_EQUAL( join_X, join_all );
+
+ erase(join_X, join_B);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ erase(join_X, join_A);
+ BOOST_CHECK_EQUAL( join_X, IntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(split_X, join_A);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ insert(split_X, join_B);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_all), true );
+
+ erase(split_X, join_B);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ erase(split_X, join_A);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, SplitIntervalMapT()), true );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(join_X, split_A);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ insert(join_X, split_B);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, join_all), true );
+
+ erase(join_X, split_B);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ erase(join_X, split_A);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, IntervalMapT()), true );
+}
+
+template <class T, class U>
+void interval_map_mixed_insert_erase2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_4D = IntervalT::right_open(v0,v4);
+ IntervalT I2_6D = IntervalT::right_open(v2,v6);
+ IntervalT I3_6D = IntervalT::right_open(v3,v6);
+ IntervalT I5_7D = IntervalT::right_open(v5,v7);
+ IntervalT I7_8D = IntervalT::right_open(v7,v8);
+ IntervalT I8_9D = IntervalT::right_open(v8,v9);
+ IntervalT I8_9I = IntervalT::closed(v8,v9);
+
+ std::pair<IntervalT,U> I0_4D_1(I0_4D, u1);
+ std::pair<IntervalT,U> I2_6D_1(I2_6D, u1);
+ std::pair<IntervalT,U> I3_6D_1(I3_6D, u1);
+ std::pair<IntervalT,U> I5_7D_1(I5_7D, u1);
+ std::pair<IntervalT,U> I7_8D_1(I7_8D, u1);
+ std::pair<IntervalT,U> I8_9D_1(I8_9D, u1);
+ std::pair<IntervalT,U> I8_9I_1(I8_9I, u1);
+
+ SplitIntervalMapT split_A, split_B, split_all, split_X;
+ IntervalMapT join_A, join_B, join_all, join_X;
+ SplitIntervalSetT split_dA, split_dB;
+ IntervalSetT join_dA, join_dB;
+
+ split_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ split_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ split_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ join_all.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1).insert(I7_8D_1).insert(I8_9I_1);
+ join_A.insert(I0_4D_1).insert(I2_6D_1).insert(I5_7D_1);
+ join_B.insert(I7_8D_1).insert(I8_9I_1);
+
+ icl::domain(split_dA, split_A);
+ icl::domain(split_dB, split_B);
+ icl::domain(join_dA, join_A);
+ icl::domain(join_dB, join_B);
+
+ //-------------------------------------------------------------------------
+ insert(split_X, split_A);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ insert(split_X, split_B);
+ BOOST_CHECK_EQUAL( split_X, split_all );
+
+ erase(split_X, split_dB);
+ BOOST_CHECK_EQUAL( split_X, split_A );
+ erase(split_X, split_dA);
+ BOOST_CHECK_EQUAL( split_X, SplitIntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ insert(join_X, join_A);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ insert(join_X, join_B);
+ BOOST_CHECK_EQUAL( join_X, join_all );
+
+ erase(join_X, join_dB);
+ BOOST_CHECK_EQUAL( join_X, join_A );
+ erase(join_X, join_dA);
+ BOOST_CHECK_EQUAL( join_X, IntervalMapT() );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(split_X, join_A);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ insert(split_X, join_B);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_all), true );
+
+ erase(split_X, join_dB);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, split_A), true );
+ erase(split_X, join_dA);
+ BOOST_CHECK_EQUAL( is_element_equal(split_X, SplitIntervalMapT()), true );
+
+ //-------------------------------------------------------------------------
+ split_X.clear();
+ insert(join_X, split_A);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ insert(join_X, split_B);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, join_all), true );
+
+ erase(join_X, split_dB);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, split_A), true );
+ erase(join_X, split_dA);
+ BOOST_CHECK_EQUAL( is_element_equal(join_X, IntervalMapT()), true );
+}
+
+template <class T, class U>
+void interval_map_mixed_basic_intersect_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+ U u3 = make<U>(3);
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+
+
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I1_8D = IntervalT::right_open(v1,v8);
+ IntervalT I2_7D = IntervalT::right_open(v2,v7);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I6_7D = IntervalT::right_open(v6,v7);
+ IntervalT I6_8D = IntervalT::right_open(v6,v8);
+ IntervalT I6_9D = IntervalT::right_open(v6,v9);
+
+ std::pair<IntervalT,U> I0_3D_1(I0_3D, u1);
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I1_3D_2(I1_3D, u2);
+ std::pair<IntervalT,U> I1_8D_1(I1_8D, u1);
+ std::pair<const IntervalT,U> I2_7D_1(I2_7D, u1);
+ std::pair<IntervalT,U> I2_3D_1(I2_3D, u1);
+ std::pair<IntervalT,U> I2_3D_3(I2_3D, u3);
+ std::pair<IntervalT,U> I6_7D_1(I6_7D, u1);
+ std::pair<IntervalT,U> I6_7D_3(I6_7D, u3);
+ std::pair<IntervalT,U> I6_8D_1(I6_8D, u1);
+ std::pair<IntervalT,U> I6_8D_2(I6_8D, u2);
+ std::pair<IntervalT,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_map
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= [1 8)
+ //split_AB -> [1 3) [6 8)
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab2;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= I1_8D_1;
+ split_ab.add(I1_3D_2).add(I6_8D_2);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= I1_8D_1) &= I2_7D_1;
+ split_ab2.add(I2_3D_3).add(I6_7D_3);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab2 );
+
+
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ // &= 1
+ // 1
+ //split_AB -> [1]
+ // 2
+ // += (1 7)
+ // 2
+ // -> [1](1 7)
+ // 2 2
+ split_A.clear();
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= mapping_pair<T,U>(v1,u1);
+ split_ab.clear();
+ split_ab.add(mapping_pair<T,U>(v1,u2));
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ split_AB &= mapping_pair<T,U>(v1,u1);
+ split_AB += make_pair(IntervalT::open(v1,v7), u2);
+ split_ab2.clear();
+ split_ab2 += make_pair(IntervalT::right_open(v1,v7), u2);
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_basic_intersect2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+ U u3 = make<U>(3);
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+
+
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I1_8D = IntervalT::right_open(v1,v8);
+ IntervalT I2_7D = IntervalT::right_open(v2,v7);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I6_7D = IntervalT::right_open(v6,v7);
+ IntervalT I6_8D = IntervalT::right_open(v6,v8);
+ IntervalT I6_9D = IntervalT::right_open(v6,v9);
+
+ std::pair<IntervalT,U> I0_3D_1(I0_3D, u1);
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I1_3D_2(I1_3D, u2);
+ std::pair<IntervalT,U> I1_8D_1(I1_8D, u1);
+ std::pair<IntervalT,U> I2_7D_1(I2_7D, u1);
+ std::pair<IntervalT,U> I2_3D_1(I2_3D, u1);
+ std::pair<IntervalT,U> I2_3D_3(I2_3D, u3);
+ std::pair<IntervalT,U> I6_7D_1(I6_7D, u1);
+ std::pair<IntervalT,U> I6_7D_3(I6_7D, u3);
+ std::pair<IntervalT,U> I6_8D_1(I6_8D, u1);
+ std::pair<IntervalT,U> I6_8D_2(I6_8D, u2);
+ std::pair<IntervalT,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_map
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= [1 8)
+ //split_AB -> [1 3) [6 8)
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab2;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= I1_8D;
+ split_ab.add(I1_3D_1).add(I6_8D_1);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= I1_8D) &= I2_7D;
+ split_ab2.add(I2_3D_1).add(I6_7D_1);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab2 );
+
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ // &= 1
+ // 1
+ //split_AB -> [1]
+ // 2
+ // += (1 7)
+ // 2
+ // -> [1](1 7)
+ // 2 2
+ split_A.clear();
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_AB = split_A;
+ split_AB &= v1;
+ split_ab.clear();
+ split_ab.add(mapping_pair<T,U>(v1,u1));
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ split_AB &= IntervalT(v1);
+ split_AB += make_pair(IntervalT::open(v1,v7), u1);
+ split_ab2.clear();
+ split_ab2 += make_pair(IntervalT::right_open(v1,v7), u1);
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
+
+ split_interval_map<T,U> left, right;
+ left. add(IDv(0,2,2));
+ right.add(IDv(0,2,2));
+ BOOST_CHECK_EQUAL( is_element_equal(left, right), true );
+
+ split_interval_set<T> left2, right2;
+ left2. add(I_D(0,2));
+ right2.add(I_D(0,1));
+ is_element_equal(left2, right2);
+ BOOST_CHECK_EQUAL( is_element_equal(left2, right2), false );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_intersect_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I1_2D = IntervalT::right_open(v1,v2);
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I5_8D = IntervalT::right_open(v5,v8);
+ IntervalT I6_8D = IntervalT::right_open(v6,v8);
+ IntervalT I6_9D = IntervalT::right_open(v6,v9);
+
+ std::pair<IntervalT,U> I0_3D_1(I0_3D, u1);
+ std::pair<IntervalT,U> I1_2D_1(I1_2D, u1);
+ std::pair<IntervalT,U> I1_2D_2(I1_2D, u2);
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I1_3D_2(I1_3D, u2);
+ std::pair<IntervalT,U> I2_3D_1(I2_3D, u1);
+ std::pair<IntervalT,U> I2_3D_2(I2_3D, u2);
+ std::pair<IntervalT,U> I2_4D_1(I2_4D, u1);
+ std::pair<IntervalT,U> I5_8D_1(I5_8D, u1);
+ std::pair<IntervalT,U> I6_8D_1(I6_8D, u1);
+ std::pair<IntervalT,U> I6_8D_2(I6_8D, u2);
+ std::pair<IntervalT,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ //split_B &= [1 2)[2 4) [5 8)
+ // 1 1 1
+ //split_AB -> [1 2)[2 3) [6 8)
+ // 2 2 2
+ SplitIntervalMapT split_A, split_B, split_AB, split_ab, split_ab_jn;
+ IntervalMapT join_A, join_B, join_AB, join_ab;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_B.add(I1_2D_1).add(I2_4D_1).add(I5_8D_1);
+ split_ab.add(I1_2D_2).add(I2_3D_2).add(I6_8D_2);
+ split_ab_jn.add(I1_3D_2).add(I6_8D_2);
+ split_AB = split_A;
+ split_AB &= split_B;
+ BOOST_CHECK_EQUAL( iterative_size(split_AB), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ // 1 1
+ //join_B &= [1 4) [5 8)
+ // 1 1
+ //split_AB -> [1 3) [6 8)
+ // 2 2
+ split_AB = split_A;
+ join_B = split_B;
+ split_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( iterative_size(split_AB), 2 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
+}
+
+
+
+template <class T, class U>
+void interval_map_mixed_intersect2_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef interval_set<T> IntervalSetT;
+ typedef split_interval_set<T> SplitIntervalSetT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+ U u2 = make<U>(2);
+
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I1_2D = IntervalT::right_open(v1,v2);
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I5_8D = IntervalT::right_open(v5,v8);
+ IntervalT I6_8D = IntervalT::right_open(v6,v8);
+ IntervalT I6_9D = IntervalT::right_open(v6,v9);
+
+ std::pair<IntervalT,U> I0_3D_1(I0_3D, u1);
+ std::pair<IntervalT,U> I1_2D_1(I1_2D, u1);
+ std::pair<IntervalT,U> I1_2D_2(I1_2D, u2);
+ std::pair<IntervalT,U> I1_3D_1(I1_3D, u1);
+ std::pair<IntervalT,U> I1_3D_2(I1_3D, u2);
+ std::pair<IntervalT,U> I2_3D_1(I2_3D, u1);
+ std::pair<IntervalT,U> I2_3D_2(I2_3D, u2);
+ std::pair<IntervalT,U> I2_4D_1(I2_4D, u1);
+ std::pair<IntervalT,U> I5_8D_1(I5_8D, u1);
+ std::pair<IntervalT,U> I6_8D_1(I6_8D, u1);
+ std::pair<IntervalT,U> I6_8D_2(I6_8D, u2);
+ std::pair<IntervalT,U> I6_9D_1(I6_9D, u1);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // 1 1
+ //split_B &= [1 2)[2 4) [5 8)
+ //split_AB -> [1 2)[2 3) [6 8)
+ // 1 1 1
+ SplitIntervalMapT split_A, split_AB, split_ab, split_ab_jn;
+ SplitIntervalSetT split_B;
+ IntervalMapT join_A, join_AB, join_ab;
+ IntervalSetT join_B;
+
+ split_A.add(I0_3D_1).add(I6_9D_1);
+ split_B.add(I1_2D).add(I2_4D).add(I5_8D);
+ split_ab.add(I1_2D_1).add(I2_3D_1).add(I6_8D_1);
+ split_ab_jn.add(I1_3D_1).add(I6_8D_1);
+ split_AB = split_A;
+ split_AB &= split_B;
+ BOOST_CHECK_EQUAL( iterative_size(split_AB), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ // 1 1
+ //join_B &= [1 4) [5 8)
+ //split_AB -> [1 3) [6 8)
+ // 1 1
+ split_AB = split_A;
+ join_B = split_B;
+ split_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( iterative_size(split_AB), 2 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
+}
+
+
+template <class T, class U>
+void interval_map_mixed_disjoint_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v6 = make<T>(6);
+
+ IntervalT I0_2D = IntervalT::right_open(v0,v2);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I3_4D = IntervalT::right_open(v3,v4);
+ IntervalT I4_4I = IntervalT::closed(v4,v4);
+ IntervalT C4_6D = IntervalT::open(v4,v6);
+ IntervalT I6_6I = IntervalT::closed(v6,v6);
+
+ std::pair<IntervalT,U> I0_2D_1(I0_2D, u1);
+ std::pair<IntervalT,U> I2_3D_1(I2_3D, u1);
+ std::pair<IntervalT,U> I3_4D_1(I3_4D, u1);
+ std::pair<IntervalT,U> I4_4I_1(I4_4I, u1);
+ std::pair<IntervalT,U> C4_6D_1(C4_6D, u1);
+ std::pair<IntervalT,U> I6_6I_1(I6_6I, u1);
+
+ //--------------------------------------------------------------------------
+ //split_A: [0 2) [4 4] [6 6]
+ //split_B: [2 3)[3 4) (4 6)
+ SplitIntervalMapT split_A, split_B;
+
+ split_A.add(I0_2D_1).add(I4_4I_1).add(I6_6I_1);
+ split_B.add(I2_3D_1).add(I3_4D_1).add(C4_6D_1);
+
+ IntervalMapT join_A(split_A), join_B(split_B);
+
+ BOOST_CHECK_EQUAL( disjoint(split_A, split_B), true );
+ BOOST_CHECK_EQUAL( disjoint(split_A, join_B), true );
+
+ BOOST_CHECK_EQUAL( disjoint(join_A, split_B), true );
+ BOOST_CHECK_EQUAL( disjoint(join_A, join_B), true );
+}
+
+template<class Type>
+struct size_greater_1 : public icl::property<Type>
+{
+ bool operator()(const Type& value)const
+ {
+ return icl::size(value.first) > 1 ;
+ }
+};
+
+
+template <class T, class U>
+void interval_map_mixed_erase_if_4_integral_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ typedef split_interval_map<T,U> SplitIntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ U u1 = make<U>(1);
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v6 = make<T>(6);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I3_4D = IntervalT::right_open(v3,v4);
+ IntervalT I4_4I = IntervalT::closed(v4,v4);
+ IntervalT C4_6D = IntervalT::open(v4,v6);
+ IntervalT I6_6I = IntervalT::closed(v6,v6);
+
+ std::pair<IntervalT,U> I0_3D_1(I0_3D, u1);
+ std::pair<IntervalT,U> I2_3D_1(I2_3D, u1);
+ std::pair<IntervalT,U> I3_4D_1(I3_4D, u1);
+ std::pair<IntervalT,U> I4_4I_1(I4_4I, u1);
+ std::pair<IntervalT,U> C4_6D_1(C4_6D, u1);
+ std::pair<IntervalT,U> I6_6I_1(I6_6I, u1);
+
+ //--------------------------------------------------------------------------
+ //split_A: [0 2) [4 4] [6 6]
+ //split_B: [2 3)[3 4) (4 6)
+ SplitIntervalMapT split_A, split_B;
+
+ split_A.add(I0_3D_1).add(I4_4I_1).add(I6_6I_1);
+ split_B.add(I4_4I_1).add(I6_6I_1);
+
+ icl::erase_if(size_greater_1<typename SplitIntervalMapT::value_type>(), split_A);
+
+ BOOST_CHECK_EQUAL( split_A, split_B );
+}
+
+//------------------------------------------------------------------------------
+//- infix operators
+//------------------------------------------------------------------------------
+
+template <class T, class U>
+void interval_map_mixed_infix_plus_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+
+ interval_map<T,U> join_a;
+ split_interval_map<T,U> split_a;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a + join_a, join_a + split_a);
+}
+
+template <class T, class U>
+void interval_map_mixed_infix_pipe_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a;
+ split_interval_map<T,U> split_a;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a | join_a, join_a | split_a);
+}
+
+template <class T, class U>
+void interval_map_mixed_infix_minus_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a, join_b;
+ split_interval_map<T,U> split_a, split_b;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ join_b .add(CDv(1,3,1)).add(IIv(6,11,3));
+ split_b.add(IDv(0,9,2)).add(IIv(3,6,1));
+
+ BOOST_CHECK_EQUAL(split_a - join_a, (split_b = split_a) -= join_a);
+ BOOST_CHECK_EQUAL(split_a - join_a, split_b);
+
+ BOOST_CHECK_EQUAL(join_a - split_a, (join_b = join_a) -= split_a);
+ BOOST_CHECK_EQUAL(join_a - split_a, join_b);
+}
+
+template <class T, class U>
+void interval_map_mixed_infix_et_overload_4_bicremental_types()
+{
+ typedef interval_map<T,U> IntervalMapT;
+ interval_map<T,U> join_a, join_b;
+ split_interval_map<T,U> split_a, split_b;
+
+ join_a .add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ split_a.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(split_a & join_a, join_a & split_a);
+ BOOST_CHECK_EQUAL(split_a & join_a, (split_b = split_a) &= join_a);
+ BOOST_CHECK_EQUAL(split_a & join_a, split_b);
+
+ BOOST_CHECK_EQUAL(join_a & split_a, (split_b = split_a) &= join_a);
+ BOOST_CHECK_EQUAL(join_a & split_a, split_b);
+}
+
+
+
+#endif // LIBS_ICL_TEST_TEST_ICL_interval_map_mixed_hpp_JOFA_081005__
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp b/src/boost/libs/icl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp
new file mode 100644
index 000000000..9b8954218
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed2_/test_interval_map_mixed2.cpp
@@ -0,0 +1,83 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#include "../test_interval_map_mixed.hpp"
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_add_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_add_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_add2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_add2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_subtract_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_subtract_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_erase_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_erase2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_erase2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_insert_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_insert_erase_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_insert_erase2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_insert_erase2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_basic_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_basic_intersect_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_basic_intersect2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_basic_intersect2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_intersect_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_intersect2_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_intersect2_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_disjoint_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_mixed_erase_if_4_integral_types, T, integral_types)
+{ interval_map_mixed_erase_if_4_integral_types<T, int>(); }
+
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj b/src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj
new file mode 100644
index 000000000..e41e3f7f0
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D3B9F9F}</ProjectGuid>
+ <RootNamespace>Test_interval_map_mixed2</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_mixed2.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj.filters b/src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj.filters
new file mode 100644
index 000000000..33eada0bc
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed2_/vc10_test_interval_map_mixed2.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_mixed2.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed2_/vc9_test_interval_map_mixed2.vcproj b/src/boost/libs/icl/test/test_interval_map_mixed2_/vc9_test_interval_map_mixed2.vcproj
new file mode 100644
index 000000000..c6b937551
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed2_/vc9_test_interval_map_mixed2.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_map_mixed2"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}"
+ RootNamespace="Test_interval_map_mixed2"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_map_mixed2.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed_/test_interval_map_mixed.cpp b/src/boost/libs/icl/test/test_interval_map_mixed_/test_interval_map_mixed.cpp
new file mode 100644
index 000000000..55bac53a3
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed_/test_interval_map_mixed.cpp
@@ -0,0 +1,71 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_map_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wself-assign-overloaded"
+#endif
+
+#include "../test_interval_map_mixed.hpp"
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic pop
+#endif
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_map_mixed_ctor_4_ordered_types, T, ordered_types)
+{ interval_map_mixed_ctor_4_ordered_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_map_mixed_equal_4_ordered_types, T, ordered_types)
+{ interval_map_mixed_equal_4_ordered_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_map_mixed_assign_4_ordered_types, T, ordered_types)
+{ interval_map_mixed_assign_4_ordered_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_map_mixed_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_ctor_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_map_mixed_assign_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_assign_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_map_mixed_equal_4_bicremental_types, T, bicremental_types)
+{ interval_map_mixed_equal_4_bicremental_types<T, int>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_interval_map_mixed_inclusion_compare_4_bicremental_types, T, bicremental_types)
+{ partial_interval_map_mixed_inclusion_compare_4_bicremental_types<T, int, partial_absorber>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_interval_map_mixed_contains_4_bicremental_types, T, bicremental_types)
+{ partial_interval_map_mixed_contains_4_bicremental_types<T, int, partial_absorber>(); }
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj b/src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj
new file mode 100644
index 000000000..b2ace4473
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9F}</ProjectGuid>
+ <RootNamespace>Test_interval_map_mixed</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_mixed.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj.filters b/src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj.filters
new file mode 100644
index 000000000..f42f1013b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed_/vc10_test_interval_map_mixed.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_map_mixed.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_map_mixed_/vc9_test_interval_map_mixed.vcproj b/src/boost/libs/icl/test/test_interval_map_mixed_/vc9_test_interval_map_mixed.vcproj
new file mode 100644
index 000000000..ea48070cb
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_mixed_/vc9_test_interval_map_mixed.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_map_mixed"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}"
+ RootNamespace="Test_interval_map_mixed"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_map_mixed.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_map_shared.hpp b/src/boost/libs/icl/test/test_interval_map_shared.hpp
new file mode 100644
index 000000000..7ffcaa15f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_map_shared.hpp
@@ -0,0 +1,1518 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2012: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_INTERVAL_MAP_SHARED_HPP_JOFA_081005
+#define LIBS_ICL_TEST_TEST_INTERVAL_MAP_SHARED_HPP_JOFA_081005
+
+#include "portability.hpp"
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_fundamentals_4_ordered_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ typedef typename IntervalMapT::size_type size_T;
+
+ // ordered types is the largest set of instance types.
+ // Because we can not generate values via incrementation for e.g. string,
+ // we are able to test operations only for the most basic values
+ // identity_element (0, empty, T() ...) and unit_element.
+
+ T v0 = boost::icl::identity_element<T>::value();
+ T v1 = unit_element<T>::value();
+ IntervalT I0_0I(v0);
+ IntervalT I1_1I(v1);
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+ IntervalT I0_1I(v0, v1, interval_bounds::closed());
+#else
+ IntervalT I0_1I = icl::interval<T>::closed(v0, v1);
+#endif
+ U u1 = unit_element<U>::value();
+
+ //-------------------------------------------------------------------------
+ //empty set
+ //-------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL(IntervalMapT().empty(), true);
+ BOOST_CHECK_EQUAL(icl::is_empty(IntervalMapT()), true);
+ BOOST_CHECK_EQUAL(cardinality(IntervalMapT()), boost::icl::identity_element<size_T>::value());
+ BOOST_CHECK_EQUAL(IntervalMapT().size(), boost::icl::identity_element<size_T>::value());
+ BOOST_CHECK_EQUAL(icl::size(IntervalMapT()), boost::icl::identity_element<size_T>::value());
+ BOOST_CHECK_EQUAL(interval_count(IntervalMapT()), 0);
+ BOOST_CHECK_EQUAL(IntervalMapT().iterative_size(), 0);
+ BOOST_CHECK_EQUAL(iterative_size(IntervalMapT()), 0);
+ BOOST_CHECK_EQUAL(IntervalMapT(), IntervalMapT());
+
+ IntervalT mt_interval = boost::icl::identity_element<IntervalT >::value();
+ BOOST_CHECK_EQUAL(mt_interval, IntervalT());
+ typename IntervalMapT::value_type mt_u1 = make_pair(mt_interval, u1);
+ IntervalMapT mt_map = boost::icl::identity_element<IntervalMapT >::value();
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+
+ //adding emptieness to emptieness yields emptieness ;)
+ mt_map.add(mt_u1).add(mt_u1);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ mt_map.insert(mt_u1).insert(mt_u1);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ (mt_map += mt_u1) += mt_u1;
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ BOOST_CHECK_EQUAL(hull(mt_map), boost::icl::identity_element<IntervalT >::value());
+
+ //subtracting emptieness
+ mt_map.subtract(mt_u1).subtract(mt_u1);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+
+ mt_map.erase(mt_interval).erase(mt_interval);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ (mt_map -= mt_u1) -= mt_u1;
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+
+ //subtracting elements form emptieness
+ typename IntervalMapT::domain_mapping_type v0_u1 = make_pair(v0,u1);
+ typename IntervalMapT::domain_mapping_type v1_u1 = make_pair(v1,u1);
+ //mt_map.subtract(make_pair(v0,u1)).subtract(make_pair(v1,u1));
+ mt_map.subtract(v0_u1).subtract(v1_u1);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ mt_map.erase(v0_u1).erase(v1_u1);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ (mt_map -= v0_u1) -= v1_u1;
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+
+ //subtracting intervals form emptieness
+ typename IntervalMapT::segment_type I0_0I_u1 = make_pair(I0_0I,u1);
+ typename IntervalMapT::segment_type I0_1I_u1 = make_pair(I0_1I,u1);
+ typename IntervalMapT::segment_type I1_1I_u1 = make_pair(I1_1I,u1);
+ mt_map.subtract(I0_1I_u1).subtract(I1_1I_u1);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ mt_map.erase(I0_1I_u1).erase(I1_1I_u1);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ (mt_map -= I0_1I_u1) -= I1_1I_u1;
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+
+ mt_map.erase(I0_1I).erase(I1_1I);
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+
+ //insecting emptieness
+ (mt_map &= mt_u1) &= mt_u1;
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+ (mt_map &= mt_interval) &= mt_interval;
+ BOOST_CHECK_EQUAL(mt_map, IntervalMapT());
+
+
+
+ //-------------------------------------------------------------------------
+ //unary set
+ //-------------------------------------------------------------------------
+ IntervalMapT single_I0_0I_u1_from_element(v0_u1);
+ IntervalMapT single_I0_0I_u1_from_interval(I0_0I_u1);
+ IntervalMapT single_I0_0I_u1(single_I0_0I_u1_from_interval);
+
+ BOOST_CHECK_EQUAL(single_I0_0I_u1_from_element, single_I0_0I_u1_from_interval);
+ BOOST_CHECK_EQUAL(single_I0_0I_u1_from_element, single_I0_0I_u1);
+ BOOST_CHECK_EQUAL(hull(single_I0_0I_u1), I0_0I);
+ BOOST_CHECK_EQUAL(hull(single_I0_0I_u1).lower(), I0_0I.lower());
+ BOOST_CHECK_EQUAL(hull(single_I0_0I_u1).upper(), I0_0I.upper());
+
+ IntervalMapT single_I1_1I_u1_from_element(v1_u1);
+ IntervalMapT single_I1_1I_u1_from_interval(I1_1I_u1);
+ IntervalMapT single_I1_1I_u1(single_I1_1I_u1_from_interval);
+
+ BOOST_CHECK_EQUAL(single_I1_1I_u1_from_element, single_I1_1I_u1_from_interval);
+ BOOST_CHECK_EQUAL(single_I1_1I_u1_from_element, single_I1_1I_u1);
+
+ IntervalMapT single_I0_1I_u1_from_interval(I0_1I_u1);
+ IntervalMapT single_I0_1I_u1(single_I0_1I_u1_from_interval);
+
+ BOOST_CHECK_EQUAL(single_I0_1I_u1_from_interval, single_I0_1I_u1);
+ BOOST_CHECK_EQUAL(hull(single_I0_1I_u1), I0_1I);
+ BOOST_CHECK_EQUAL(hull(single_I0_1I_u1).lower(), I0_1I.lower());
+ BOOST_CHECK_EQUAL(hull(single_I0_1I_u1).upper(), I0_1I.upper());
+
+ //contains predicate
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_0I_u1, v0), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_0I_u1, v0_u1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_0I_u1, I0_0I_u1), true);
+
+ BOOST_CHECK_EQUAL(icl::contains(single_I1_1I_u1, v1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I1_1I_u1, v1_u1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I1_1I_u1, I1_1I_u1), true);
+
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I_u1, v0), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I_u1, I0_1I_u1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I_u1, v1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I_u1, I1_1I_u1), true);
+
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I_u1, single_I0_0I_u1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I_u1, single_I1_1I_u1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I_u1, single_I0_1I_u1), true);
+
+ BOOST_CHECK_EQUAL(cardinality(single_I0_0I_u1), unit_element<size_T>::value());
+ BOOST_CHECK_EQUAL(single_I0_0I_u1.size(), unit_element<size_T>::value());
+ BOOST_CHECK_EQUAL(interval_count(single_I0_0I_u1), 1);
+ BOOST_CHECK_EQUAL(single_I0_0I_u1.iterative_size(), 1);
+ BOOST_CHECK_EQUAL(iterative_size(single_I0_0I_u1), 1);
+
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_ctor_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ T v4 = make<T>(4);
+ U u2 = make<U>(2);
+ IntervalT I4_4I(v4);
+ typename IntervalMapT::domain_mapping_type v4_u2(v4,u2);
+ typename IntervalMapT::value_type I4_4I_u2(I4_4I,u2);
+
+ IntervalMapT _I4_4I_u2;
+ BOOST_CHECK_EQUAL( _I4_4I_u2.empty(), true );
+ IntervalMapT _I4_4I_u2_1;
+ IntervalMapT _I4_4I_u2_2;
+ IntervalMapT _I4_4I_u2_3;
+ _I4_4I_u2 += v4_u2;
+ _I4_4I_u2_1 += I4_4I_u2;
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u2_1 );
+ _I4_4I_u2_2.add(v4_u2);
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u2_2 );
+ _I4_4I_u2_3.add(I4_4I_u2);
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u2_3 );
+
+ _I4_4I_u2.clear();
+ _I4_4I_u2.add(I4_4I_u2).add(I4_4I_u2);
+ IntervalMapT _I4_4I_u4(make_pair(I4_4I, make<U>(4)));
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u4 );
+
+ _I4_4I_u2.clear();
+ _I4_4I_u2.insert(I4_4I_u2).insert(I4_4I_u2);
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u2_1 );
+
+ BOOST_CHECK_EQUAL( cardinality(_I4_4I_u2), unit_element<typename IntervalMapT::size_type>::value() );
+ BOOST_CHECK_EQUAL( _I4_4I_u2.size(), unit_element<typename IntervalMapT::size_type>::value() );
+ BOOST_CHECK_EQUAL( interval_count(_I4_4I_u2), 1 );
+ BOOST_CHECK_EQUAL( _I4_4I_u2.iterative_size(), 1 );
+ BOOST_CHECK_EQUAL( iterative_size(_I4_4I_u2), 1 );
+
+ if(has_dynamic_bounds<IntervalT>::value)
+ {
+ BOOST_CHECK_EQUAL( hull(_I4_4I_u2).lower(), v4 );
+ BOOST_CHECK_EQUAL( hull(_I4_4I_u2).upper(), v4 );
+ }
+
+ IntervalMapT _I4_4I_u2_copy(_I4_4I_u2);
+ IntervalMapT _I4_4I_u2_assigned;
+ _I4_4I_u2_assigned = _I4_4I_u2;
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u2_copy );
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u2_assigned );
+
+ _I4_4I_u2_assigned.clear();
+ BOOST_CHECK_EQUAL( true, _I4_4I_u2_assigned.empty() );
+
+ _I4_4I_u2_assigned.swap(_I4_4I_u2_copy);
+ BOOST_CHECK_EQUAL( true, _I4_4I_u2_copy.empty() );
+ BOOST_CHECK_EQUAL( _I4_4I_u2, _I4_4I_u2_assigned );
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_add_sub_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v9 = make<T>(9);
+ U u1 = make<U>(1);
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+ IntervalT I5_6I(v5,v6, interval_bounds::closed());
+ IntervalT I5_9I(v5,v9, interval_bounds::closed());
+ IntervalT I0_9I = IntervalT::closed(v0, v9);
+#else
+ IntervalT I5_6I = icl::interval<T>::closed(v5,v6);
+ IntervalT I5_9I = icl::interval<T>::closed(v5,v9);
+ IntervalT I0_9I = icl::interval<T>::closed(v0,v9);
+#endif
+ typename IntervalMapT::domain_mapping_type v0_u1 = make_pair(v0, u1);
+ typename IntervalMapT::domain_mapping_type v9_u1 = make_pair(v9, u1);
+ typename IntervalMapT::value_type I5_6I_u1 = make_pair(I5_6I, u1);
+ typename IntervalMapT::value_type I5_9I_u1 = make_pair(I5_9I, u1);
+
+ BOOST_CHECK_EQUAL( IntervalMapT(I5_6I_u1).add(v0_u1).add(v9_u1),
+ IntervalMapT().add(v9_u1).add(I5_6I_u1).add(v0_u1) );
+
+ IntervalMapT map_A = IntervalMapT(I5_6I_u1).add(v0_u1).add(v9_u1);
+ IntervalMapT map_B = IntervalMapT().insert(v9_u1).insert(I5_6I_u1).insert(v0_u1);
+ BOOST_CHECK_EQUAL( map_A, map_B );
+ BOOST_CHECK_EQUAL( hull(map_A), I0_9I );
+ BOOST_CHECK_EQUAL( hull(map_A).lower(), I0_9I.lower() );
+ BOOST_CHECK_EQUAL( hull(map_A).upper(), I0_9I.upper() );
+
+ IntervalMapT map_A1 = map_A, map_B1 = map_B,
+ map_A2 = map_A, map_B2 = map_B;
+
+ map_A1.subtract(I5_6I_u1).subtract(v9_u1);
+ map_B1.erase(v9_u1).erase(I5_6I_u1);
+ BOOST_CHECK_EQUAL( map_A1, map_B1 );
+
+ map_B1 = map_B;
+ map_B2.erase(v9).erase(I5_6I);
+ BOOST_CHECK_EQUAL( map_A1, map_B2 );
+
+ map_A2.subtract(I5_9I_u1);
+ map_B2.erase(I5_9I);
+ BOOST_CHECK_EQUAL( map_A2, map_B2 );
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_distinct_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMap<T,U>::size_type size_T;
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+ U u1 = make<U>(1);
+ typename IntervalMapT::domain_mapping_type v1_u1(v1,u1);
+ typename IntervalMapT::domain_mapping_type v3_u1(v3,u1);
+ typename IntervalMapT::domain_mapping_type v5_u1(v5,u1);
+
+ size_T s3 = make<size_T>(3);
+
+ IntervalMapT is_1_3_5;
+ is_1_3_5.add(v1_u1).add(v3_u1).add(v5_u1);
+
+ BOOST_CHECK_EQUAL( cardinality(is_1_3_5), s3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.size(), s3 );
+ BOOST_CHECK_EQUAL( interval_count(is_1_3_5), 3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( iterative_size(is_1_3_5), 3 );
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_distinct_4_bicremental_continuous_types()
+{
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::size_type size_T;
+ typedef typename IntervalMapT::difference_type diff_T;
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+ U u1 = make<U>(1);
+ typename IntervalMapT::domain_mapping_type v1_u1(v1,u1);
+ typename IntervalMapT::domain_mapping_type v3_u1(v3,u1);
+ typename IntervalMapT::domain_mapping_type v5_u1(v5,u1);
+
+ size_T s3 = make<size_T>(3);
+ diff_T d0 = make<diff_T>(0);
+ diff_T d2 = make<diff_T>(2);
+
+ IntervalMapT is_1_3_5;
+ is_1_3_5.add(v1_u1).add(v3_u1).add(v5_u1);
+
+ BOOST_CHECK_EQUAL( cardinality(is_1_3_5), s3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.size(), s3 );
+ icl::length(is_1_3_5);
+ BOOST_CHECK_EQUAL( icl::length(is_1_3_5), d0 );
+ BOOST_CHECK_EQUAL( interval_count(is_1_3_5), 3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( iterative_size(is_1_3_5), 3 );
+
+
+ IntervalMapT is_123_5;
+ is_123_5 = is_1_3_5;
+ //OPROM: open problem: Ambiguity resolving value_type and mapping_type for overloaded o= operators.
+ //is_123_5 += make_pair(IntervalT::open(v1,v3),u1); //error C2593: 'operator +=' is ambiguous
+ //is_123_5 += make_pair<IntervalT, U>(IntervalT::open(v1,v3),u1); //error C2593: 'operator +=' is ambiguous
+ //USASO: unsatisfctory solution 1: explicit IntervalMapT::value_type instead of make_pair
+ is_123_5 += typename IntervalMapT::value_type(icl::interval<T>::open(v1,v3),u1);
+ //USASO: unsatisfctory solution 2: not implementing mapping_type version of o=
+
+ BOOST_CHECK_EQUAL( cardinality(is_123_5), icl::infinity<size_T>::value() );
+ BOOST_CHECK_EQUAL( is_123_5.size(), icl::infinity<size_T>::value() );
+ BOOST_CHECK_EQUAL( icl::length(is_123_5), d2 );
+
+#endif //BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_isolate_4_bicremental_continuous_types()
+{
+#ifndef BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ typedef typename IntervalMapT::size_type size_T;
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v4 = make<T>(4);
+ U u1 = make<U>(1);
+ IntervalT I0_4I = icl::interval<T>::closed(v0,v4);
+ IntervalT C0_2D = icl::interval<T>::open(v0,v2);
+ IntervalT C2_4D = icl::interval<T>::open(v2,v4);
+ typename IntervalMapT::value_type I0_4I_u1(I0_4I,u1);
+ typename IntervalMapT::value_type C0_2D_u1(C0_2D,u1);
+ typename IntervalMapT::value_type C2_4D_u1(C2_4D,u1);
+ // {[0 4]}
+ // - { (0,2) (2,4) }
+ // = {[0] [2] [4]}
+ IntervalMapT iso_map = IntervalMapT(I0_4I_u1);
+ IntervalMapT gap_set;
+ gap_set.add(C0_2D_u1).add(C2_4D_u1);
+ iso_map -= gap_set;
+
+ BOOST_CHECK_EQUAL( cardinality(iso_map), static_cast<size_T>(3) );
+ BOOST_CHECK_EQUAL( iso_map.iterative_size(), static_cast<std::size_t>(3) );
+ BOOST_CHECK_EQUAL( iterative_size(iso_map), static_cast<std::size_t>(3) );
+ BOOST_CHECK_EQUAL( iterative_size(iso_map), static_cast<std::size_t>(3) );
+
+ IntervalMapT iso_map2;
+ iso_map2.add(I0_4I_u1);
+ iso_map2.subtract(C0_2D_u1).subtract(C2_4D_u1);
+
+ IntervalMapT iso_map3(I0_4I_u1);
+ (iso_map3 -= C0_2D_u1) -= C2_4D_u1;
+
+ IntervalMapT iso_map4;
+ iso_map4.insert(I0_4I_u1);
+ iso_map4.erase(C0_2D_u1).erase(C2_4D_u1);
+
+ BOOST_CHECK_EQUAL( iso_map, iso_map2 );
+ BOOST_CHECK_EQUAL( iso_map, iso_map3 );
+ BOOST_CHECK_EQUAL( iso_map, iso_map4 );
+#endif //BOOST_ICL_USE_STATIC_BOUNDED_INTERVALS
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_contains_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::set_type IntervalSetT;
+
+ IntervalMapT itv_map;
+ itv_map.add(K_v(3,1));
+
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, MK_v(3)), true );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, K_v(3,1)), true );
+
+ BOOST_CHECK_EQUAL( icl::contains(IntervalMapT().add(K_v(3,1)), K_v(3,1)), true );
+ BOOST_CHECK_EQUAL( icl::contains(IntervalMapT().add(K_v(3,1)), MK_v(3)), true );
+ BOOST_CHECK_EQUAL( icl::contains(IntervalMapT().insert(K_v(3,1)), K_v(3,1)), true );
+ itv_map.clear();
+ BOOST_CHECK_EQUAL( icl::contains((itv_map += IIv(3,7,1)), IIv(3,7,1)), true );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, IIv(3,7,2)), false );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, I_I(3,7)), true );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, I_I(4,6)), true );
+ BOOST_CHECK_EQUAL( icl::contains((itv_map += CIv(7,9,1)),IIv(3,9,1)), true );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, I_I(4,8)), true );
+ BOOST_CHECK_EQUAL( icl::contains((itv_map += IIv(11,12,1)), IIv(3,12,1)), false );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, I_I(4,11)), false );
+
+ IntervalMapT itv_map0 = itv_map;
+
+ itv_map.clear();
+ IntervalMapT itv_map2(IIv(5,8,1));
+ itv_map2.add(K_v(9,1)).add(K_v(11,1));
+ itv_map += itv_map2;
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, itv_map2), true );
+ IntervalSetT itv_set2;
+ icl::domain(itv_set2, itv_map2);
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, itv_set2), true );
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_contains_key_objects_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::set_type IntervalSetT;
+ IntervalMapT itv_map;
+
+ itv_map.add(IDv(1,3,1));
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, MK_v(0)), false );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, MK_v(2)), true );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, MK_v(3)), false );
+
+ itv_map.add(IDv(3,6,2));
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, I_I(0,0)), false );
+ contains(itv_map, I_I(2,4));
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, I_I(2,4)), true );
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, I_I(6,6)), false );
+
+ itv_map.add(IDv(8,9,2));
+
+ IntervalSetT itv_set;
+ itv_set.add(C_I(1,2)).add(C_D(2,6)).add(I_I(8,8));
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, itv_set), true );
+ itv_set.add(I_I(1,4));
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, itv_set), true );
+ itv_set.add(I_I(1,4));
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, itv_set), true );
+ itv_set.add(I_I(7,7));
+ BOOST_CHECK_EQUAL( icl::contains(itv_map, itv_set), false );
+
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_operators_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ U u1 = make<U>(1);
+ //typename IntervalMapT::interval_type I3_5I(icl::interval<T>::closed(v3,v5));
+ typename IntervalMapT::value_type I0_1I_u1(icl::interval<T>::closed(v0,v1),u1);
+ typename IntervalMapT::value_type I3_5I_u1(icl::interval<T>::closed(v3,v5),u1);
+ typename IntervalMapT::value_type I7_8I_u1(icl::interval<T>::closed(v7,v8),u1);
+
+ IntervalMapT left, left2, right, all, section, complement;
+ left.add(I0_1I_u1).add(I3_5I_u1);
+ (right += I3_5I_u1) += I7_8I_u1;
+ BOOST_CHECK_EQUAL( disjoint(left, right), false );
+ BOOST_CHECK_EQUAL( intersects(left, right), true );
+
+ (all += left) += right;
+ (section += left) &= right;
+ all -= section;
+ complement += all;
+ //complement.erase(I3_5I);
+ icl::erase(complement, section);
+ BOOST_CHECK_EQUAL( disjoint(section, complement), true );
+ BOOST_CHECK_EQUAL( intersects(section, complement), false );
+}
+
+
+// Test for nontrivial intersection of interval maps with intervals and values
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_base_intersect_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ U u1 = make<U>(1);
+
+ IntervalT I0_3D = icl::interval<T>::right_open(v0,v3);
+ IntervalT I1_3D = icl::interval<T>::right_open(v1,v3);
+ IntervalT I1_4D = icl::interval<T>::right_open(v1,v4);
+ IntervalT I1_8D = icl::interval<T>::right_open(v1,v8);
+ IntervalT I2_7D = icl::interval<T>::right_open(v2,v7);
+ IntervalT I2_3D = icl::interval<T>::right_open(v2,v3);
+ IntervalT I5_8D = icl::interval<T>::right_open(v5,v8);
+ IntervalT I6_7D = icl::interval<T>::right_open(v6,v7);
+ IntervalT I6_8D = icl::interval<T>::right_open(v6,v8);
+ IntervalT I6_9D = icl::interval<T>::right_open(v6,v9);
+
+ typename IntervalMapT::value_type I0_3D_1(I0_3D, u1);
+ typename IntervalMapT::value_type I6_9D_1(I6_9D, u1);
+ typename IntervalMapT::value_type I1_3D_1(I1_3D, u1);
+ typename IntervalMapT::value_type I6_8D_1(I6_8D, u1);
+ typename IntervalMapT::value_type I2_3D_1(I2_3D, u1);
+ typename IntervalMapT::value_type I6_7D_1(I6_7D, u1);
+
+ //--------------------------------------------------------------------------
+ //map_A [0 3) [6 9)
+ // 1 1
+ // &= [1 8)
+ //map_AB -> [1 3) [6 8)
+ // 1 1
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ // 1 1
+ IntervalMap<T,U> map_A, map_AB, map_ab, map_ab2;
+ interval_set<T> set_B;
+ map_A.add(I0_3D_1).add(I6_9D_1);
+ map_AB = map_A;
+ map_AB &= I1_8D;
+ map_ab.add(I1_3D_1).add(I6_8D_1);
+
+ BOOST_CHECK_EQUAL( map_AB, map_ab );
+
+ map_AB = map_A;
+ (map_AB &= I1_8D) &= I2_7D;
+ map_ab2.add(I2_3D_1).add(I6_7D_1);
+
+ BOOST_CHECK_EQUAL( map_AB, map_ab2 );
+
+ //--------------------------------------------------------------------------
+ //map_A [0 3) [6 9)
+ // 1 1
+ // &= [1 4) [5 8)
+ //map_AB -> [1 3) [6 8)
+ // 1 1
+ // &= [2 4) [5 7)
+ // -> [2 3) [6 7)
+ // 1 1
+ map_A.clear();
+ map_A.add(I0_3D_1).add(I6_9D_1);
+ set_B.add(I1_4D).add(I5_8D);
+ map_AB = map_A;
+
+ map_AB &= set_B;
+ map_ab.clear();
+ map_ab.add(I1_3D_1).add(I6_8D_1);
+ BOOST_CHECK_EQUAL( map_AB, map_ab );
+
+ //--------------------------------------------------------------------------
+ //map_A [0 3) [6 9)
+ // 1 1
+ // &= 1
+ //map_AB -> [1]
+ // 1
+
+ map_A.clear();
+ map_A.add(I0_3D_1).add(I6_9D_1);
+ map_AB = map_A;
+ map_AB &= v1;
+ map_ab.clear();
+ map_ab.add(mapping_pair<T,U>(v1,u1));
+
+ BOOST_CHECK_EQUAL( map_AB, map_ab );
+}
+
+
+// Test for nontrivial erasure of interval maps with intervals and interval sets
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_base_erase_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ U u1 = make<U>(1);
+
+ IntervalT I0_1D = icl::interval<T>::right_open(v0,v1);
+ IntervalT I0_2D = icl::interval<T>::right_open(v0,v2);
+ IntervalT I0_3D = icl::interval<T>::right_open(v0,v3);
+ IntervalT I1_3D = icl::interval<T>::right_open(v1,v3);
+ //IntervalT I1_4D = icl::interval<T>::right_open(v1,v4);
+ IntervalT I1_8D = icl::interval<T>::right_open(v1,v8);
+ IntervalT I2_4D = icl::interval<T>::right_open(v2,v4);
+ IntervalT I2_7D = icl::interval<T>::right_open(v2,v7);
+ IntervalT I2_3D = icl::interval<T>::right_open(v2,v3);
+ IntervalT I5_7D = icl::interval<T>::right_open(v5,v7);
+ //IntervalT I5_8D = icl::interval<T>::right_open(v5,v8);
+ IntervalT I6_7D = icl::interval<T>::right_open(v6,v7);
+ IntervalT I6_8D = icl::interval<T>::right_open(v6,v8);
+ IntervalT I6_9D = icl::interval<T>::right_open(v6,v9);
+ IntervalT I7_9D = icl::interval<T>::right_open(v7,v9);
+ IntervalT I8_9D = icl::interval<T>::right_open(v8,v9);
+
+ typename IntervalMapT::value_type I0_1D_1(I0_1D, u1);
+ typename IntervalMapT::value_type I0_3D_1(I0_3D, u1);
+ typename IntervalMapT::value_type I0_2D_1(I0_2D, u1);
+ typename IntervalMapT::value_type I6_9D_1(I6_9D, u1);
+ typename IntervalMapT::value_type I1_3D_1(I1_3D, u1);
+ typename IntervalMapT::value_type I6_8D_1(I6_8D, u1);
+ typename IntervalMapT::value_type I2_3D_1(I2_3D, u1);
+ typename IntervalMapT::value_type I6_7D_1(I6_7D, u1);
+ typename IntervalMapT::value_type I7_9D_1(I7_9D, u1);
+ typename IntervalMapT::value_type I8_9D_1(I8_9D, u1);
+
+ //--------------------------------------------------------------------------
+ //map_A [0 3) [6 9)
+ // 1 1
+ // erase [2 7)
+ //map_A2 -> [0 2) [7 9)
+ // 1 1
+ // erase [1 8)
+ // -> [0 1) [8 9)
+ // 1 1
+ IntervalMap<T,U> map_A, map_A2, map_A3, map_check2, map_check3;
+ interval_set<T> set_B;
+ map_A.add(I0_3D_1).add(I6_9D_1);
+ map_A2 = map_A;
+ map_A2.erase(I2_7D);
+ map_check2.add(I0_2D_1).add(I7_9D_1);
+ BOOST_CHECK_EQUAL( map_A2, map_check2 );
+
+ map_A3 = map_A2;
+ map_A3.erase(I1_8D);
+ map_check3.add(I0_1D_1).add(I8_9D_1);
+ BOOST_CHECK_EQUAL( map_A3, map_check3 );
+
+
+ //--------------------------------------------------------------------------
+ //map_A [0 3) [6 9)
+ // 1 1
+ // erase [2 7)
+ // -> [0 2) [7 9)
+ // 1 1
+ // erase [1 8)
+ // -> [0 1) [8 9)
+ // 1 1
+ map_A3 = map_A;
+ map_A3.erase(I2_7D).erase(I1_8D);
+ BOOST_CHECK_EQUAL( map_A3, map_check3 );
+
+ //--------------------------------------------------------------------------
+ //map_A [0 3) [6 9)
+ // 1 1
+ // -= [2 7)
+ // -> [0 2) [7 9)
+ // 1 1
+ // -= [1 8)
+ // -> [0 1) [8 9)
+ // 1 1
+ map_A3 = map_A;
+ (map_A3 -= I2_7D) -= I1_8D;
+ BOOST_CHECK_EQUAL( map_A3, map_check3 );
+
+ //--------------------------------------------------------------------------
+ //map_A [0 3) [6 9)
+ // 1 1
+ // erase [2 4) [5 7)
+ // -> [0 2) [7 9)
+ // 1 1
+ map_A3 = map_A;
+ set_B.add(I2_4D).add(I5_7D);
+ map_A3 -= set_B;
+ BOOST_CHECK_EQUAL( map_A3, map_check2 );
+}
+
+
+// Test first_collision
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_base_is_disjoint_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ typedef typename IntervalMap<T,U>::interval_set_type IntervalSetT;
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ U u1 = make<U>(1);
+
+ IntervalT I0_1D = icl::interval<T>::right_open(v0,v1);
+ IntervalT I1_3D = icl::interval<T>::right_open(v1,v3);
+ IntervalT I3_6D = icl::interval<T>::right_open(v3,v6);
+ IntervalT I5_7D = icl::interval<T>::right_open(v5,v7);
+ IntervalT I6_8D = icl::interval<T>::right_open(v6,v8);
+ IntervalT I8_9D = icl::interval<T>::right_open(v8,v9);
+
+ typename IntervalMapT::value_type I0_1D_1(I0_1D, u1);
+ typename IntervalMapT::value_type I1_3D_1(I1_3D, u1);
+ typename IntervalMapT::value_type I3_6D_1(I3_6D, u1);
+ typename IntervalMapT::value_type I5_7D_1(I5_7D, u1);
+ typename IntervalMapT::value_type I6_8D_1(I6_8D, u1);
+ typename IntervalMapT::value_type I8_9D_1(I8_9D, u1);
+
+ //--------------------------------------------------------------------------
+ //map_A [1 3) [6 8)
+ // 1 1
+ //map_B [0 1) [3 6) [8 9)
+ // 1 1 1
+ IntervalMapT map_A, map_B;
+ IntervalSetT set_A, set_B;
+
+ map_A.add(I1_3D_1).add(I6_8D_1);
+ map_B.add(I0_1D_1).add(I3_6D_1).add(I8_9D_1);
+ BOOST_CHECK_EQUAL( disjoint(map_A, map_B), true );
+ BOOST_CHECK_EQUAL( disjoint(map_B, map_A), true );
+ BOOST_CHECK_EQUAL( intersects(map_A, map_B), false );
+ BOOST_CHECK_EQUAL( intersects(map_B, map_A), false );
+
+ icl::domain(set_A, map_A);
+ icl::domain(set_B, map_B);
+ BOOST_CHECK_EQUAL( disjoint(map_A, set_B), true );
+ BOOST_CHECK_EQUAL( disjoint(set_B, map_A), true );
+ BOOST_CHECK_EQUAL( disjoint(set_A, map_B), true );
+ BOOST_CHECK_EQUAL( disjoint(map_B, set_A), true );
+ BOOST_CHECK_EQUAL( intersects(map_A, set_B), false );
+ BOOST_CHECK_EQUAL( intersects(set_B, map_A), false );
+ BOOST_CHECK_EQUAL( intersects(set_A, map_B), false );
+ BOOST_CHECK_EQUAL( intersects(map_B, set_A), false );
+
+ map_A += I5_7D_1;
+
+ BOOST_CHECK_EQUAL( disjoint(map_A, map_B), false );
+ BOOST_CHECK_EQUAL( disjoint(map_B, map_A), false );
+ BOOST_CHECK_EQUAL( intersects(map_A, map_B), true );
+ BOOST_CHECK_EQUAL( intersects(map_B, map_A), true );
+
+ icl::domain(set_A, map_A);
+ icl::domain(set_B, map_B);
+ BOOST_CHECK_EQUAL( disjoint(map_A, set_B), false );
+ BOOST_CHECK_EQUAL( disjoint(set_B, map_A), false );
+ BOOST_CHECK_EQUAL( disjoint(set_A, map_B), false );
+ BOOST_CHECK_EQUAL( disjoint(map_B, set_A), false );
+ BOOST_CHECK_EQUAL( intersects(map_A, set_B), true );
+ BOOST_CHECK_EQUAL( intersects(set_B, map_A), true );
+ BOOST_CHECK_EQUAL( intersects(set_A, map_B), true );
+ BOOST_CHECK_EQUAL( intersects(map_B, set_A), true );
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_flip_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef IntervalMapT IMap;
+
+ IntervalMapT set_a;
+ //[0 2)
+ // 1
+ // [1 3)
+ // 1
+ //[0 1) [2 3) : {[0 2)->1} ^= ([2 3)->1)
+ // 1 1
+ //BOOST_CHECK_EQUAL(IMap(IDv(0,2,1)) ^= (IDv(1,3,1)), IMap(IDv(0,1,1)) + IDv(2,3,1));
+ set_a = IMap(IDv(0,2,1));
+ IntervalMapT set_b = set_a;
+ BOOST_CHECK_EQUAL(set_a ^= IDv(1,3,1), IMap(IDv(0,1,1)) + IDv(2,3,1));
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_infix_plus_overload_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ typename IntervalMapT::interval_mapping_type val_pair1 = IDv(6,9,1);
+ std::pair<const IntervalT, U> val_pair2 = IDv(3,5,3);
+ mapping_pair<T,U> map_pair = K_v(4,3);
+
+ IntervalMapT map_a, map_b;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ map_b.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(map_a + map_b, map_b + map_a);
+ //This checks all cases of is_interval_map_derivative<T>
+ BOOST_CHECK_EQUAL(map_a + val_pair1, val_pair1 + map_a);
+ BOOST_CHECK_EQUAL(map_b + val_pair2, val_pair2 + map_b);
+ BOOST_CHECK_EQUAL(map_b + map_pair, map_pair + map_b);
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_infix_pipe_overload_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ typename IntervalMapT::interval_mapping_type val_pair1 = IDv(6,9,1);
+ std::pair<const IntervalT, U> val_pair2 = IDv(3,5,3);
+ mapping_pair<T,U> map_pair = K_v(4,3);
+
+ IntervalMapT map_a, map_b;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ map_b.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ BOOST_CHECK_EQUAL(map_a | map_b, map_b | map_a);
+ //This checks all cases of is_interval_map_derivative<T>
+ BOOST_CHECK_EQUAL(map_a | val_pair1, val_pair1 | map_a);
+ BOOST_CHECK_EQUAL(map_b | val_pair2, val_pair2 | map_b);
+ BOOST_CHECK_EQUAL(map_b | map_pair, map_pair | map_b);
+}
+
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_infix_minus_overload_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ typename IntervalMapT::interval_mapping_type val_pair1 = IDv(6,9,1);
+ std::pair<const IntervalT, U> val_pair2 = IDv(3,5,3);
+ mapping_pair<T,U> map_pair = K_v(4,3);
+
+ IntervalT itv = C_D(4,11);
+ typename IntervalMapT::interval_mapping_type itv_v = CDv(4,11,3);
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ map_b.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+ map_c = map_a;
+
+ interval_set<T> join_set_a;
+ separate_interval_set<T> sep_set_a;
+ split_interval_set<T> split_set_a;
+ join_set_a .add(I_D(0,4)).add(I_I(4,6)).add(I_D(5,9));
+ sep_set_a .add(I_D(0,4)).add(I_I(4,6)).add(I_D(5,11));
+ split_set_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ //Happy day overloading
+ BOOST_CHECK_EQUAL(map_a - map_b, (map_c = map_a) -= map_b);
+ BOOST_CHECK_EQUAL(map_a - map_b, map_c);
+
+ //This checks all cases of is_interval_map_derivative<T>
+ BOOST_CHECK_EQUAL((map_a - val_pair1) + val_pair1, (map_a + val_pair1) - val_pair1);
+ BOOST_CHECK_EQUAL((map_b - val_pair2) + val_pair2, (map_b + val_pair2) - val_pair2);
+ BOOST_CHECK_EQUAL((map_b - map_pair) + map_pair, (map_b + map_pair) - map_pair);
+
+ //This checks all cases of is_interval_set_derivative<T>
+ BOOST_CHECK_EQUAL(map_a - itv, (map_a + itv_v) - itv);
+ BOOST_CHECK_EQUAL(map_b - MK_v(8), (IIv(8,8,3) + map_b) - MK_v(8));
+
+ //This checks all cases of is_interval_set_companion<T>
+ BOOST_CHECK_EQUAL(map_a - split_set_a, ((split_set_a & map_a) + map_a) - split_set_a);
+ BOOST_CHECK_EQUAL(map_a - sep_set_a, ((sep_set_a & map_a) + map_a) - sep_set_a);
+ BOOST_CHECK_EQUAL(map_a - join_set_a, ((join_set_a & map_a) + map_a) - join_set_a);
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_infix_et_overload_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ typename IntervalMapT::interval_mapping_type val_pair1 = IDv(6,9,1);
+ std::pair<const IntervalT, U> val_pair2 = IDv(3,5,3);
+ mapping_pair<T,U> map_pair = K_v(4,3);
+
+ IntervalT itv = C_D(4,11);
+
+ IntervalMapT map_a, map_b;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ map_b.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ interval_set<T> join_set_a;
+ separate_interval_set<T> sep_set_a;
+ split_interval_set<T> split_set_a;
+ join_set_a .add(I_D(0,4)).add(I_I(4,6)).add(I_D(5,9));
+ sep_set_a .add(I_D(0,4)).add(I_I(4,6)).add(I_D(5,11));
+ split_set_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ //Happy day overloading
+ BOOST_CHECK_EQUAL(map_a & map_b, map_b & map_a);
+
+ //This checks all cases of is_interval_map_derivative<T>
+ BOOST_CHECK_EQUAL(map_a & val_pair1, val_pair1 & map_a);
+ BOOST_CHECK_EQUAL(map_b & val_pair2, val_pair2 & map_b);
+ BOOST_CHECK_EQUAL(map_b & map_pair, map_pair & map_b);
+
+ //This checks all cases of is_interval_set_derivative<T>
+ BOOST_CHECK_EQUAL(map_a & itv, itv & map_a);
+ BOOST_CHECK_EQUAL(map_b & MK_v(8), MK_v(8) & map_b);
+
+ //This checks all cases of is_interval_set_companion<T>
+ BOOST_CHECK_EQUAL(map_a & split_set_a, split_set_a & map_a);
+ BOOST_CHECK_EQUAL(map_a & sep_set_a, sep_set_a & map_a);
+ BOOST_CHECK_EQUAL(map_a & join_set_a, join_set_a & map_a);
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_infix_caret_overload_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ typename IntervalMapT::interval_mapping_type val_pair1 = IDv(6,9,1);
+ std::pair<const IntervalT, U> val_pair2 = IDv(3,5,3);
+ mapping_pair<T,U> map_pair = K_v(4,3);
+
+ //IntervalT itv = C_D(4,11);
+
+ IntervalMapT map_a, map_b;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ map_b.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ interval_set<T> join_set_a;
+ separate_interval_set<T> sep_set_a;
+ split_interval_set<T> split_set_a;
+ join_set_a .add(I_D(0,4)).add(I_I(4,6)).add(I_D(5,9));
+ sep_set_a .add(I_D(0,4)).add(I_I(4,6)).add(I_D(5,11));
+ split_set_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ //Happy day overloading
+ BOOST_CHECK_EQUAL(map_a ^ map_b, map_b ^ map_a);
+
+ //This checks all cases of is_interval_map_derivative<T>
+ BOOST_CHECK_EQUAL(map_a ^ val_pair1, val_pair1 ^ map_a);
+ BOOST_CHECK_EQUAL(map_b ^ val_pair2, val_pair2 ^ map_b);
+ BOOST_CHECK_EQUAL(map_b ^ map_pair, map_pair ^ map_b);
+}
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_find_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::const_iterator c_iterator;
+
+ IntervalMapT map_a;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ // {(1 3) [6 8)[8 9)[9 11)
+ // 1 3 4 3
+ // 5? 6?
+ c_iterator found1 = map_a.find(MK_v(6));
+ c_iterator found2 = icl::find(map_a, MK_v(6));
+
+ BOOST_CHECK ( found1 == found2 );
+ BOOST_CHECK_EQUAL( found1->second, found2->second );
+ BOOST_CHECK_EQUAL( found1->second, MK_u(3) );
+ BOOST_CHECK_EQUAL( map_a(MK_v(6)), MK_u(3) );
+
+ found1 = map_a.find(MK_v(5));
+
+ BOOST_CHECK_EQUAL( found1 == map_a.end(), true );
+ BOOST_CHECK_EQUAL( map_a(MK_v(5)), MK_u(0) );
+ BOOST_CHECK_EQUAL( map_a(MK_v(8)), MK_u(4) );
+
+ /*JODO fix err for boost::chrono instantiation
+ T k_2 = MK_v( 2);
+ T k_11 = MK_v(11);
+ //LAW map c; key k: k in dom(c) => contains(c, (k, find(c, k)->second))
+ BOOST_CHECK( icl::contains(map_a, K_v(k_2, icl::find(map_a, k_2)->second)) );
+ BOOST_CHECK( icl::contains(map_a, K_v(k_11, map_a.find(k_11)->second)) );
+ */
+ BOOST_CHECK( icl::contains(map_a, MK_v(2)) );
+ BOOST_CHECK( icl::contains(map_a, MK_v(10)) );
+ BOOST_CHECK( !icl::contains(map_a, MK_v(1)) );
+ BOOST_CHECK( !icl::contains(map_a, MK_v(3)) );
+ BOOST_CHECK( !icl::contains(map_a, MK_v(12)) );
+
+ BOOST_CHECK( icl::intersects(map_a, MK_v(2)) );
+ BOOST_CHECK( icl::intersects(map_a, MK_v(10)) );
+ BOOST_CHECK( !icl::intersects(map_a, MK_v(1)) );
+ BOOST_CHECK( !icl::intersects(map_a, MK_v(3)) );
+ BOOST_CHECK( !icl::intersects(map_a, MK_v(12)) );
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_find_4_numeric_continuous_types()
+{
+#ifndef BOOST_ICL_TEST_CHRONO
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ typedef typename IntervalMapT::const_iterator c_iterator;
+
+ T q_1_2 = MK_v(1) / MK_v(2);//JODO Doesn't work with chrono
+ T q_3_2 = MK_v(3) / MK_v(2);
+ T q_1_3 = MK_v(1) / MK_v(3);
+ T q_2_3 = MK_v(2) / MK_v(3);
+ T q_4_3 = MK_v(4) / MK_v(3);
+ T q_5_3 = MK_v(5) / MK_v(3);
+
+ IntervalMapT map_a;
+ map_a.add(MK_seg(IntervalT(q_1_3, q_2_3), 1)).add(MK_seg(IntervalT(q_4_3, q_5_3), 2));
+ // {[1/3 2/3) [4/3 5/3)}
+ // 1 2
+
+ c_iterator found1 = map_a.find(q_1_2);
+ c_iterator found2 = icl::find(map_a, q_1_2);
+ BOOST_CHECK ( found1 == found2 );
+ BOOST_CHECK_EQUAL( found1->second, found2->second );
+ BOOST_CHECK_EQUAL( found1->second, MK_u(1) );
+
+ found1 = map_a.find(q_3_2);
+ found2 = icl::find(map_a, q_3_2);
+ BOOST_CHECK ( found1 == found2 );
+ BOOST_CHECK_EQUAL( found1->second, found2->second );
+ BOOST_CHECK_EQUAL( found1->second, MK_u(2) );
+
+ if( mpl::or_<mpl::not_<is_static_left_open<IntervalT> >, boost::is_signed<T> >::value )
+ {
+ found1 = map_a.find(MK_v(0));
+ found2 = icl::find(map_a, MK_v(0));
+ BOOST_CHECK ( found1 == found2 );
+ BOOST_CHECK ( found1 == map_a.end() );
+ }
+
+ found1 = map_a.find(MK_v(1));
+ found2 = icl::find(map_a, MK_v(1));
+ BOOST_CHECK ( found1 == found2 );
+ BOOST_CHECK ( found1 == map_a.end() );
+
+ if( mpl::or_<mpl::not_<is_static_left_open<IntervalT> >, boost::is_signed<T> >::value )
+ {
+ BOOST_CHECK( !icl::contains(map_a, MK_v(0)) );
+ }
+ BOOST_CHECK( icl::contains(map_a, q_1_2) );
+ BOOST_CHECK( !icl::contains(map_a, MK_v(1)) );
+ BOOST_CHECK( icl::contains(map_a, q_3_2) );
+ BOOST_CHECK( !icl::contains(map_a, MK_v(2)) );
+#endif
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_range_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+ typedef typename IntervalMapT::interval_type IntervalT;
+ typedef typename IntervalMapT::const_iterator c_iterator;
+
+ IntervalMapT map_a;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+ // {(1 3) [6 8)[8 9)[9 11)
+ // 1 3 4 3
+ // [2 7) := itv
+
+ IntervalT itv = I_D(2, 7);
+ c_iterator lwb1 = icl::find(map_a, itv);
+ c_iterator lwb2 = map_a.lower_bound(itv);
+
+ BOOST_CHECK ( lwb1 == lwb2 );
+ BOOST_CHECK_EQUAL( lwb1->second, lwb2->second );
+ BOOST_CHECK_EQUAL( lwb1->second, MK_u(1) );
+
+ c_iterator upb1 = map_a.upper_bound(itv);
+ BOOST_CHECK_EQUAL( upb1->second, MK_u(4) );
+
+ std::pair<c_iterator,c_iterator> exterior = map_a.equal_range(itv);
+ BOOST_CHECK ( lwb1 == exterior.first );
+ BOOST_CHECK ( upb1 == exterior.second );
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_set_4_bicremental_types()
+{
+ typedef IntervalMap<T,U> IntervalMapT;
+
+ IntervalMapT map_a;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+
+ BOOST_CHECK_EQUAL( icl::contains(map_a.set(CDv(2,10,4)), CDv(2,10,4)), true );
+ BOOST_CHECK_EQUAL( icl::contains(map_a.set(K_v(4,5)), K_v(4,5)), true );
+ BOOST_CHECK_EQUAL( icl::contains(map_a.set(K_v(4,5)).set(CDv(3,5,6)), CDv(3,5,6)), true );
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void interval_map_inclusion_compare_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef typename IntervalMap<T,U,Trt>::set_type IntervalSetT;
+
+ IntervalMapT itv_map_sub_a, itv_map_a, itv_map_a2, itv_map_super_a,
+ itv_map_b, itv_map_c;
+ itv_map_sub_a.add(IDv(2,4,1)).add(IIv(6,7,3));
+ itv_map_a = itv_map_sub_a;
+ itv_map_a.add(IIv(9,9,1));
+ itv_map_a2 = itv_map_a;
+ itv_map_c = itv_map_sub_a;
+ itv_map_c.erase(MK_v(7)).add(IIv(11,11,2));
+ itv_map_b = itv_map_a;
+ itv_map_b.set(IIv(6,7,2));
+
+
+ BOOST_CHECK_EQUAL( inclusion_compare(IntervalMapT(), IntervalMapT()), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, itv_map_a), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, itv_map_a2), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, IntervalMapT()), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, itv_map_sub_a), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(IntervalMapT(), itv_map_a), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_sub_a, itv_map_a), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, itv_map_b), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, itv_map_c), inclusion::unrelated );
+
+ IntervalSetT set_sub_a, set_a, set_a2, set_b, set_c;
+ icl::domain(set_a, itv_map_a);
+ icl::domain(set_a2, itv_map_a2);
+ icl::domain(set_sub_a, itv_map_sub_a);
+
+ BOOST_CHECK_EQUAL( inclusion_compare(IntervalMapT(), IntervalSetT()), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(IntervalSetT(), IntervalMapT()), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(IntervalSetT(), IntervalSetT()), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, set_a), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, itv_map_a), inclusion::equal );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, set_a2), inclusion::equal );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, IntervalSetT()), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_a, set_sub_a), inclusion::superset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(IntervalSetT(), itv_map_a), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_sub_a, itv_map_a), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, IntervalSetT()), inclusion::superset );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, set_sub_a), inclusion::superset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(IntervalSetT(), set_a), inclusion::subset );
+ BOOST_CHECK_EQUAL( inclusion_compare(set_sub_a, set_a), inclusion::subset );
+
+ BOOST_CHECK_EQUAL( inclusion_compare(set_a, itv_map_c), inclusion::unrelated );
+ BOOST_CHECK_EQUAL( inclusion_compare(itv_map_c, set_a), inclusion::unrelated );
+
+}
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void interval_map_std_copy_via_inserter_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT; //Nedded for the test value generator
+ typedef typename IntervalMapT::interval_type IntervalT;
+
+ // Check equality of copying using handcoded loop or std::copy via inserter.
+ typedef std::pair<IntervalT, U> SegmentT;
+ std::vector<SegmentT> seg_vec_a;
+ IntervalMapT std_copied_map;
+
+ // For an empty sequence
+ test_interval_map_copy_via_inserter(seg_vec_a, std_copied_map);
+
+ // For an singleton sequence
+ seg_vec_a.push_back(IDv(0,1,1));
+ test_interval_map_copy_via_inserter(seg_vec_a, std_copied_map);
+
+ // Two separate segments
+ seg_vec_a.push_back(IDv(3,5,1));
+ test_interval_map_copy_via_inserter(seg_vec_a, std_copied_map);
+
+ // Touching case
+ seg_vec_a.push_back(IDv(5,7,1));
+ test_interval_map_copy_via_inserter(seg_vec_a, std_copied_map);
+
+ // Overlapping case
+ seg_vec_a.push_back(IDv(6,9,1));
+ test_interval_map_copy_via_inserter(seg_vec_a, std_copied_map);
+
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void interval_map_element_iter_4_discrete_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef std::vector<std::pair<T,U> > VectorT;
+
+ IntervalMapT map_a;
+ map_a.insert(IIv(1,3,1)).insert(IIv(6,7,2));
+
+ typename IntervalMapT::atomized_type ato_map_a;
+ //ReptatorT el_it = elements_begin(map_a);
+
+ VectorT vec(5), cev(5);
+ vec[0]=sK_v(1,1);vec[1]=sK_v(2,1);vec[2]=sK_v(3,1);vec[3]=sK_v(6,2);vec[4]=sK_v(7,2);
+ cev[0]=sK_v(7,2);cev[1]=sK_v(6,2);cev[2]=sK_v(3,1);cev[3]=sK_v(2,1);cev[4]=sK_v(1,1);
+
+ VectorT dest;
+ std::copy(elements_begin(map_a), elements_end(map_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( vec == dest, true );
+
+ dest.clear();
+ std::copy(elements_rbegin(map_a), elements_rend(map_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( cev == dest, true );
+
+ dest.clear();
+ std::reverse_copy(elements_rbegin(map_a), elements_rend(map_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( vec == dest, true );
+
+ dest.clear();
+ std::reverse_copy(elements_begin(map_a), elements_end(map_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( cev == dest, true );
+
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_intersects_4_bicremental_types()
+{
+ // Test of intersects and disjoint for domain_type and interval_type.
+ typedef IntervalMap<T,U> IntervalMapT;
+
+ IntervalMapT map_a;
+ map_a.add(CDv(1,3,1)).add(IDv(8,9,1)).add(IIv(6,11,3));
+
+ BOOST_CHECK( icl::is_interval_container<IntervalMapT>::value );
+ BOOST_CHECK( icl::has_domain_type<IntervalMapT>::value );
+ BOOST_CHECK( (boost::is_same<T, typename domain_type_of<IntervalMapT>::type>::value) );
+
+ BOOST_CHECK( icl::intersects(map_a, MK_v(2) ) );
+ BOOST_CHECK( icl::intersects(map_a, MK_v(11)) );
+ BOOST_CHECK( icl::disjoint(map_a, MK_v(1) ) );
+ BOOST_CHECK( icl::disjoint(map_a, MK_v(12)) );
+
+ BOOST_CHECK( icl::intersects(map_a, I_D(2,3)) );
+ BOOST_CHECK( icl::intersects(map_a, I_D(6,8)) );
+ BOOST_CHECK( icl::disjoint(map_a, I_D(3,5)) );
+ BOOST_CHECK( icl::disjoint(map_a, I_D(12,14)) );
+
+ //-------------------------------------+
+ // (1 3) [6 8)[8 9)[9 11]
+ // 1 3 4 3
+ mapping_pair<T,U> map_pair_2_1 = K_v(2,1);
+ BOOST_CHECK( icl::intersects(map_a, map_pair_2_1 ) );
+ BOOST_CHECK( icl::intersects(map_a, K_v(6,3) ) );
+ BOOST_CHECK( icl::intersects(map_a, IDv(6,8,3) ) );
+ BOOST_CHECK( icl::intersects(map_a, CIv(8,11,3) ) );
+ BOOST_CHECK( icl::intersects(map_a, IIv(6,11,3) ) );
+ BOOST_CHECK( icl::intersects(map_a, IIv(6,11,5) ) );
+ BOOST_CHECK(!icl::intersects(map_a, IDv(4,6,5) ) );
+
+ BOOST_CHECK( icl::disjoint(map_a, IDv(4,6,5) ) );
+ BOOST_CHECK(!icl::disjoint(map_a, IDv(0,12,1) ) );
+}
+
+
+template
+<
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,partial_absorber) IntervalMap,
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,partial_absorber) IntervalMap,
+#endif
+ class T, class U
+>
+void interval_map_move_4_discrete_types()
+{
+# ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+ typedef IntervalMap<T,U> IntervalMapT;
+
+ IntervalMapT map_A(boost::move(IntervalMapT(IDv(0,4,2))));
+ IntervalMapT map_B(boost::move(IntervalMapT(IDv(0,2,1)).add(IDv(2,4,1)).add(IDv(0,4,1))));
+
+ BOOST_CHECK( icl::is_element_equal(map_A, map_B) );
+ BOOST_CHECK_EQUAL( map_A, join(map_B) );
+
+ map_A = boost::move(IntervalMapT(IIv(1,4,2)));
+ map_B = boost::move(IntervalMapT(CIv(0,2,1)).insert(IDv(3,5,1)).add(CDv(0,5,1)));
+
+ BOOST_CHECK( icl::is_element_equal(map_A, map_B) );
+ BOOST_CHECK_EQUAL( map_A, join(map_B) );
+
+# endif // BOOST_NO_CXX11_RVALUE_REFERENCES
+}
+
+
+#endif // LIBS_ICL_TEST_TEST_INTERVAL_MAP_SHARED_HPP_JOFA_081005
diff --git a/src/boost/libs/icl/test/test_interval_quantifier_shared.hpp b/src/boost/libs/icl/test/test_interval_quantifier_shared.hpp
new file mode 100644
index 000000000..4455a4ec5
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_quantifier_shared.hpp
@@ -0,0 +1,301 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef __TEST_INTERVAL_QUANTIFIER_SHARED_H_JOFA_090119__
+#define __TEST_INTERVAL_QUANTIFIER_SHARED_H_JOFA_090119__
+
+#include "portability.hpp"
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void make_3_itv_maps_and_derivatives_1
+ (ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)& itv_map_a,
+ ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)& itv_map_b,
+ ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)& itv_map_c,
+ typename ICL_PORT_msvc_7_1_IntervalMap(T,U,Trt)::interval_mapping_type& val_pair,
+ mapping_pair<T,U>& map_pair)
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ val_pair = IDv(6,9,1);
+ map_pair = K_v(5,1);
+}
+
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid with distinct equality for inversion
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(map_a, map_b, map_c, val_pair, map_pair);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(plus)(is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(pipe)(is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+#endif
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian group EANIC
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_abelian_group_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// (0 - x) + x =d= 0
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types()
+{
+ // check abelian group wrt. + and inverability wrt. distinct equality =d= :
+ // (1) (IntervalMapT, +) is an abelian group and
+ // (2) The inverability law: (0 - x) + x =d= 0 holds.
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(plus) (is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(pipe) (is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+#endif
+}
+
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_inner_complementarity_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef typename IntervalMap<T,U,Trt>::set_type IntervalSetT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ has_inner_complementarity<IntervalMapT,IntervalSetT>(map_a);
+ has_inner_complementarity<IntervalMapT,IntervalSetT>(map_b);
+ has_inner_complementarity<IntervalMapT,IntervalSetT>(map_c);
+}
+
+template
+<
+ class T, class U, class Trt,
+#if (defined(__GNUC__) && (__GNUC__ < 4)) //MEMO Can be simplified, if gcc-3.4 is obsolete
+ ICL_IntervalMap_TEMPLATE(T,U,Traits,Trt) IntervalMap
+#else
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap
+#endif
+>
+void itv_quantifier_check_length_complementarity_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef typename IntervalMap<T,U,Trt>::set_type IntervalSetT;
+ IntervalMapT map_a, map_b, map_c;
+ typename IntervalMapT::interval_mapping_type val_pair;
+ mapping_pair<T,U> map_pair;
+ make_3_itv_maps_and_derivatives_1(map_a, map_b, map_c, val_pair, map_pair);
+
+ has_length_complementarity(map_a);
+ has_length_complementarity(map_b);
+ has_length_complementarity(map_c);
+
+ has_length_as_distance<IntervalMapT,IntervalSetT>(map_a);
+ has_length_as_distance<IntervalMapT,IntervalSetT>(map_b);
+ has_length_as_distance<IntervalMapT,IntervalSetT>(map_c);
+}
+
+
+
+#endif // __TEST_INTERVAL_QUANTIFIER_SHARED_H_JOFA_090119__
+
diff --git a/src/boost/libs/icl/test/test_interval_set_/test_interval_set.cpp b/src/boost/libs/icl/test/test_interval_set_/test_interval_set.cpp
new file mode 100644
index 000000000..c2ee2ea31
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_/test_interval_set.cpp
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET interval_set
+#include "../test_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj b/src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj
new file mode 100644
index 000000000..d4bf74b0d
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9C}</ProjectGuid>
+ <RootNamespace>Test_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_set_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj.filters b/src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj.filters
new file mode 100644
index 000000000..b72a6c06a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_/vc10_test_interval_set.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_set_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_set_/vc9_test_interval_set.vcproj b/src/boost/libs/icl/test/test_interval_set_/vc9_test_interval_set.vcproj
new file mode 100644
index 000000000..a37bfde3e
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_/vc9_test_interval_set.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_set"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}"
+ RootNamespace="Test_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_set_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_set_cases.hpp b/src/boost/libs/icl/test/test_interval_set_cases.hpp
new file mode 100644
index 000000000..b8e1fd54a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_cases.hpp
@@ -0,0 +1,75 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_INTERVAL_SET_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_INTERVAL_SET_CASES_HPP_JOFA_090701
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_contains_4_bicremental_types, T, bicremental_types)
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_operators_4_bicremental_types, T, bicremental_types)
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_flip_4_bicremental_types, T, bicremental_types)
+{ interval_set_flip_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_find_4_bicremental_types, T, bicremental_types)
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_element_iter_4_discrete_types, T, discrete_types)
+{ interval_set_element_iter_4_discrete_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_intersects_4_bicremental_types, T, bicremental_types)
+{ interval_set_intersects_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_range_4_discrete_types, T, discrete_types)
+{ interval_set_range_4_discrete_types<INTERVAL_SET, T>();}
+
+
+#endif // BOOST_ICL_TEST_INTERVAL_SET_CASES_HPP_JOFA_090701
+
+
+
diff --git a/src/boost/libs/icl/test/test_interval_set_infix_/test_interval_set_infix.cpp b/src/boost/libs/icl/test/test_interval_set_infix_/test_interval_set_infix.cpp
new file mode 100644
index 000000000..8ef0eca6b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_infix_/test_interval_set_infix.cpp
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET interval_set
+#include "../test_interval_set_infix_cases.hpp"
+
+
+
diff --git a/src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj b/src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj
new file mode 100644
index 000000000..ecb658b8f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-35D1623E950E}</ProjectGuid>
+ <RootNamespace>test_interval_set_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_set_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj.filters b/src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj.filters
new file mode 100644
index 000000000..8f9867567
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_infix_/vc10_test_interval_set_infix.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_set_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj b/src/boost/libs/icl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj
new file mode 100644
index 000000000..92a7358b6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_infix_/vc9_test_interval_set_infix.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_set_infix"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-35D1623E950E}"
+ RootNamespace="test_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_set_infix_cases.hpp b/src/boost/libs/icl/test/test_interval_set_infix_cases.hpp
new file mode 100644
index 000000000..404a62f60
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_infix_cases.hpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090701
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_pipe_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_infix_minus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_minus_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_et_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_caret_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+#endif // BOOST_ICL_TEST_INTERVAL_SET_INFIX_CASES_HPP_JOFA_090701
+
+
+
diff --git a/src/boost/libs/icl/test/test_interval_set_laws_shared.hpp b/src/boost/libs/icl/test/test_interval_set_laws_shared.hpp
new file mode 100644
index 000000000..97c65216d
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_laws_shared.hpp
@@ -0,0 +1,182 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_INTERVAL_SET_LAWS_SHARED_HPP_JOFA_090201
+#define LIBS_ICL_TEST_TEST_INTERVAL_SET_LAWS_SHARED_HPP_JOFA_090201
+
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, segm, elem);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, segm, elem);
+}
+
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (set_a, set_b, set_c, segm, elem);
+ CHECK_MONOID_INSTANCE_WRT(caret)(set_a, set_b, set_c, segm, elem);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, segm, elem);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, segm, elem);
+}
+
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (set_a, set_b, set_c, segm, elem);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(set_a, set_b, set_c, segm, elem);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, segm, elem);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, segm, elem);
+}
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid with distinct equality for inversion
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(set_a, set_b, set_c, segm, elem);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(set_a, set_b, set_c, segm, elem);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(plus)(is_distinct_equal, set_a, set_b, set_c, segm, elem);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(pipe)(is_distinct_equal, set_a, set_b, set_c, segm, elem);
+#endif
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian group EANIC
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_abelian_group_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (set_a, set_b, set_c, segm, elem);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (set_a, set_b, set_c, segm, elem);
+}
+
+//------------------------------------------------------------------------------
+// (0 - x) + x =d= 0 |
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_abelian_group_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type segm = I_D(6,9);
+ T elem = make<T>(5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, segm, elem);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, segm, elem);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(plus) (is_distinct_equal, set_a, set_b, set_c, segm, elem);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(pipe) (is_distinct_equal, set_a, set_b, set_c, segm, elem);
+#endif
+}
+
+#endif // LIBS_ICL_TEST_TEST_INTERVAL_SET_LAWS_SHARED_HPP_JOFA_090201
+
diff --git a/src/boost/libs/icl/test/test_interval_set_mixed.hpp b/src/boost/libs/icl/test/test_interval_set_mixed.hpp
new file mode 100644
index 000000000..173779150
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_mixed.hpp
@@ -0,0 +1,850 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_INTERVAL_SET_MIXED_HPP_JOFA_090702
+#define LIBS_ICL_TEST_TEST_INTERVAL_SET_MIXED_HPP_JOFA_090702
+
+template <class T>
+void interval_set_mixed_ctor_4_ordered_types()
+{
+ T v0 = boost::icl::identity_element<T>::value();
+
+ split_interval_set<T> split_set(v0);
+ separate_interval_set<T> sep_set(split_set);
+ interval_set<T> join_set(sep_set);
+
+ BOOST_CHECK_EQUAL( hull(split_set).lower(), hull(sep_set).lower() );
+ BOOST_CHECK_EQUAL( hull(split_set).lower(), hull(join_set).lower() );
+}
+
+template <class T>
+void interval_set_mixed_equal_4_ordered_types()
+{
+ T v0 = boost::icl::identity_element<T>::value();
+
+ split_interval_set<T> split_empty, split_single(v0);
+ separate_interval_set<T> sep_empty, sep_single(v0);
+ interval_set<T> join_empty, join_single(v0);
+
+ // mixed ==-equality is a strange thing. Most times is does not
+ // make sense. It is better to allow only for same type == equality.
+ BOOST_CHECK_EQUAL( split_empty == split_empty, true );
+ BOOST_CHECK_EQUAL( sep_empty == sep_empty, true );
+ BOOST_CHECK_EQUAL( join_empty == join_empty, true );
+
+ // There were Problems with operator== and emtpy sets.
+ BOOST_CHECK_EQUAL( split_empty == split_single, false );
+ BOOST_CHECK_EQUAL( sep_empty == sep_single, false );
+ BOOST_CHECK_EQUAL( join_empty == join_single, false );
+
+ BOOST_CHECK_EQUAL( split_single == split_empty, false );
+ BOOST_CHECK_EQUAL( sep_single == sep_empty, false );
+ BOOST_CHECK_EQUAL( join_single == join_empty, false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, sep_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_empty), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, sep_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, join_empty), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, sep_empty), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_empty), true );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, sep_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, sep_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_empty, join_single), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, split_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, sep_single), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_empty, join_single), false );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, sep_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(split_single, join_empty), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_single, sep_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_single, join_empty), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, split_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, sep_empty), false );
+ BOOST_CHECK_EQUAL( is_element_equal(join_single, join_empty), false );
+
+}
+
+template <class T>
+void interval_set_mixed_assign_4_ordered_types()
+{
+ T v0 = boost::icl::identity_element<T>::value();
+ T v1 = unit_element<T>::value();
+
+ split_interval_set<T> split_set;
+ separate_interval_set<T> sep_set;
+ interval_set<T> join_set;
+ split_set.add(v0);
+ sep_set = split_set;
+ join_set = sep_set;
+
+ BOOST_CHECK_EQUAL( hull(split_set).lower(), hull(sep_set).lower() );
+ BOOST_CHECK_EQUAL( hull(split_set).lower(), hull(join_set).lower() );
+
+ split_interval_set<T> split_self = split_interval_set<T>().add(v0);
+ separate_interval_set<T> sep_self = separate_interval_set<T>().add(v0).add(v1);
+ interval_set<T> join_self = interval_set<T>().add(v1);
+
+ split_self = split_self;
+ sep_self = sep_self;
+ join_self = join_self;
+
+ BOOST_CHECK_EQUAL( split_self, split_self );
+ BOOST_CHECK_EQUAL( sep_self, sep_self );
+ BOOST_CHECK_EQUAL( join_self, join_self );
+}
+
+template <class T>
+void interval_set_mixed_ctor_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
+ separate_interval_set<T> sep_set(split_set);
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
+ interval_set<T> join_set(split_set);
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ separate_interval_set<T> sep_set2;
+ sep_set2.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
+ split_interval_set<T> split_set2(sep_set2);
+ BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
+ interval_set<T> join_set2(sep_set2);
+ BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
+}
+
+template <class T>
+void interval_set_mixed_assign_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
+ separate_interval_set<T> sep_set;
+ sep_set = split_set;
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
+ interval_set<T> join_set;
+ join_set = split_set;
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ separate_interval_set<T> sep_set2;
+ sep_set2.add(I1_3D).add(I2_4D).add(I4_5D);
+ BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
+ split_interval_set<T> split_set2;
+ split_set2 = sep_set2;
+ BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
+ interval_set<T> join_set2;
+ join_set2 = sep_set2;
+ BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
+}
+
+
+template <class T>
+void interval_set_mixed_equal_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ interval_set<T> join_set;
+ join_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ interval_set<T> join_set2 = join_set;
+ BOOST_CHECK_EQUAL( join_set, join_set2 );
+ BOOST_CHECK_EQUAL( is_element_equal(join_set, join_set2), true );
+
+ separate_interval_set<T> sep_set;
+ sep_set.add(I1_3D).add(I2_4D).add(I4_5D);
+
+ separate_interval_set<T> sep_set2 = sep_set;
+ BOOST_CHECK_EQUAL( sep_set, sep_set2 );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_set2, sep_set), true );
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D).add(I4_5D);
+ split_interval_set<T> split_set2 = split_set;
+ BOOST_CHECK_EQUAL( split_set, split_set2 );
+ BOOST_CHECK_EQUAL( is_element_equal(split_set2, split_set), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_set, join_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_set, sep_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_set, sep_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_set, split_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_set, join_set), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_set, split_set), true );
+}
+
+template <class T>
+void interval_set_mixed_contains_4_bicremental_types()
+{
+ split_interval_set<T> split_set;
+ split_set.add(I_D(0,4)).add(I_D(4,8));
+ BOOST_CHECK_EQUAL( icl::contains(split_set, MK_v(4)), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_set, C_D(2,5)), true );
+
+ interval_set<T> join_set_gap4(split_set.erase(MK_v(4)));
+ BOOST_CHECK_EQUAL( icl::contains(join_set_gap4, MK_v(4)), false );
+ BOOST_CHECK_EQUAL( icl::contains(join_set_gap4, C_D(2,5)), false );
+
+ BOOST_CHECK_EQUAL( icl::contains(split_set, split_set), true );
+ BOOST_CHECK_EQUAL( icl::contains(split_set, join_set_gap4), true );
+
+}
+
+template <class T>
+void interval_set_mixed_add_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I4_5D = IntervalT::right_open(v4,v5);
+
+ split_interval_set<T> split_set;
+ split_set.add(I1_3D).add(I2_4D);
+ split_set += I4_5D;
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 4 );
+ separate_interval_set<T> sep_set;
+ sep_set += split_set;
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 4 );
+ interval_set<T> join_set;
+ join_set += split_set;
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ separate_interval_set<T> sep_set2;
+ sep_set2.add(I1_3D).add(I2_4D);
+ sep_set2 += I4_5D;
+ BOOST_CHECK_EQUAL( sep_set2.iterative_size(), 2 );
+ split_interval_set<T> split_set2;
+ split_set2 += sep_set2;
+ BOOST_CHECK_EQUAL( split_set2.iterative_size(), 2 );
+ interval_set<T> join_set2;
+ join_set2 += sep_set2;
+ BOOST_CHECK_EQUAL( join_set2.iterative_size(), 1 );
+
+ interval_set<T> join_set3;
+ join_set3.add(v1).add(v3);
+ join_set3 += v5;
+ BOOST_CHECK_EQUAL( join_set3.iterative_size(), 3 );
+ split_interval_set<T> split_set3;
+ split_set3 += join_set3;
+ BOOST_CHECK_EQUAL( split_set3.iterative_size(), 3 );
+ separate_interval_set<T> sep_set3;
+ sep_set3 += join_set3;
+ BOOST_CHECK_EQUAL( join_set3.iterative_size(), 3 );
+}
+
+template <class T>
+void interval_set_mixed_subtract_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_4D = IntervalT::right_open(v0,v4);
+ IntervalT I2_6D = IntervalT::right_open(v2,v6);
+ IntervalT I3_6D = IntervalT::right_open(v3,v6);
+ IntervalT I5_7D = IntervalT::right_open(v5,v7);
+ IntervalT I7_8D = IntervalT::right_open(v7,v8);
+ IntervalT I8_9D = IntervalT::right_open(v8,v9);
+ IntervalT I8_9I = IntervalT::closed(v8,v9);
+
+ split_interval_set<T> split_set;
+ split_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 7 );
+
+ separate_interval_set<T> sep_set;
+ sep_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 3 );
+
+ interval_set<T> join_set;
+ join_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ // Make sets to be subtracted
+ split_interval_set<T> split_sub;
+ split_sub.add(I3_6D).add(I8_9D);
+
+ separate_interval_set<T> sep_sub;
+ sep_sub.add(I3_6D).add(I8_9D);
+
+ interval_set<T> join_sub;
+ join_sub.add(I3_6D).add(I8_9D);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_set
+ split_interval_set<T> split_diff = split_set;
+ separate_interval_set<T> sep_diff = sep_set;
+ interval_set<T> join_diff = join_set;
+
+ //subtraction combinations
+ split_diff -= split_sub;
+ sep_diff -= split_sub;
+ join_diff -= split_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for separate_interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ split_diff -= sep_sub;
+ sep_diff -= sep_sub;
+ join_diff -= sep_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ split_diff -= join_sub;
+ sep_diff -= join_sub;
+ join_diff -= join_sub;
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+}
+
+
+template <class T>
+void interval_set_mixed_erase_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_4D = IntervalT::right_open(v0,v4);
+ IntervalT I2_6D = IntervalT::right_open(v2,v6);
+ IntervalT I3_6D = IntervalT::right_open(v3,v6);
+ IntervalT I5_7D = IntervalT::right_open(v5,v7);
+ IntervalT I7_8D = IntervalT::right_open(v7,v8);
+ IntervalT I8_9D = IntervalT::right_open(v8,v9);
+ IntervalT I8_9I = IntervalT::closed(v8,v9);
+
+ split_interval_set<T> split_set;
+ split_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( split_set.iterative_size(), 7 );
+
+ separate_interval_set<T> sep_set;
+ sep_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( sep_set.iterative_size(), 3 );
+
+ interval_set<T> join_set;
+ join_set.add(I0_4D).add(I2_6D).add(I5_7D).add(I7_8D).add(I8_9I);
+ BOOST_CHECK_EQUAL( join_set.iterative_size(), 1 );
+
+ // Make sets to be subtracted
+ split_interval_set<T> split_sub;
+ split_sub.add(I3_6D).add(I8_9D);
+
+ separate_interval_set<T> sep_sub;
+ sep_sub.add(I3_6D).add(I8_9D);
+
+ interval_set<T> join_sub;
+ join_sub.add(I3_6D).add(I8_9D);
+
+ //--------------------------------------------------------------------------
+ // Test for split_interval_set
+ split_interval_set<T> split_diff = split_set;
+ separate_interval_set<T> sep_diff = sep_set;
+ interval_set<T> join_diff = join_set;
+
+ //subtraction combinations
+ erase(split_diff, split_sub);
+ erase(sep_diff, split_sub);
+ erase(join_diff, split_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for separate_interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ erase(split_diff, sep_sub);
+ erase(sep_diff, sep_sub);
+ erase(join_diff, sep_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(split_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+
+ //--------------------------------------------------------------------------
+ // Test for interval_set. Reinitialize
+ split_diff = split_set;
+ sep_diff = sep_set;
+ join_diff = join_set;
+
+ //subtraction combinations
+ erase(split_diff, join_sub);
+ erase(sep_diff, join_sub);
+ erase(join_diff, join_sub);
+
+ BOOST_CHECK_EQUAL( split_diff.iterative_size(), 5 );
+ BOOST_CHECK_EQUAL( sep_diff.iterative_size(), 4 );
+ BOOST_CHECK_EQUAL( join_diff.iterative_size(), 3 );
+
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, split_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, sep_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(sep_diff, join_diff), true );
+ BOOST_CHECK_EQUAL( is_element_equal(join_diff, join_diff), true );
+}
+
+template <class T>
+void interval_set_mixed_basic_intersect_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I1_8D = IntervalT::right_open(v1,v8);
+ IntervalT I2_7D = IntervalT::right_open(v2,v7);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I6_7D = IntervalT::right_open(v6,v7);
+ IntervalT I6_8D = IntervalT::right_open(v6,v8);
+ IntervalT I6_9D = IntervalT::right_open(v6,v9);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= [1 8)
+ //split_AB -> [1 3) [6 8)
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab2;
+
+ split_A.add(I0_3D).add(I6_9D);
+ split_AB = split_A;
+ split_AB &= I1_8D;
+ split_ab.add(I1_3D).add(I6_8D);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= I1_8D) &= I2_7D;
+ split_ab2.add(I2_3D).add(I6_7D);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab2 );
+
+
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= 1
+ //split_AB -> [1]
+ // += (1 7)
+ // -> [1](1 7)
+ split_A.add(I0_3D).add(I6_9D);
+ split_AB = split_A;
+ split_AB &= v1;
+ split_ab.clear();
+ split_ab.add(v1);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= v1) += IntervalT::open(v1,v7);
+ split_ab2.clear();
+ split_ab2 += IntervalT::right_open(v1,v7);
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
+}
+
+template <class T>
+void interval_set_mixed_intersect_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I1_2D = IntervalT::right_open(v1,v2);
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I2_4D = IntervalT::right_open(v2,v4);
+ IntervalT I5_8D = IntervalT::right_open(v5,v8);
+ IntervalT I6_8D = IntervalT::right_open(v6,v8);
+ IntervalT I6_9D = IntervalT::right_open(v6,v9);
+
+ //--------------------------------------------------------------------------
+ // split_interval_set
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ //split_B &= [1 2)[2 4) [5 8)
+ //split_AB -> [1 2)[2 3) [6 8)
+ split_interval_set<T> split_A, split_B, split_AB, split_ab, split_ab_jn;
+ separate_interval_set<T> sep_A, sep_B, sep_AB, sep_ab;
+ interval_set<T> join_A, join_B, join_AB, join_ab;
+
+ split_A.add(I0_3D).add(I6_9D);
+ split_B.add(I1_2D).add(I2_4D).add(I5_8D);
+ split_ab.add(I1_2D).add(I2_3D).add(I6_8D);
+ split_ab_jn.add(I1_3D).add(I6_8D);
+ split_AB = split_A;
+ split_AB &= split_B;
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ //sep_B &= [1 2)[2 4) [5 8)
+ //split_AB -> [1 2)[2 3) [6 8)
+ split_AB = split_A;
+ sep_B = split_B;
+ split_AB &= sep_B;
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ //split_A [0 3) [6 9)
+ //join_B &= [1 4) [5 8)
+ //split_AB -> [1 3) [6 8)
+ split_AB = split_A;
+ join_B = split_B;
+ split_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( split_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( split_AB, split_ab_jn );
+
+ //--------------------------------------------------------------------------
+ // separate_interval_set
+ //--------------------------------------------------------------------------
+ //sep_A [0 3) [6 9)
+ //sep_B &= [1 2)[2 4) [5 8)
+ //sep_AB -> [1 2)[2 3) [6 8)
+ sep_ab = split_ab;
+ BOOST_CHECK_EQUAL( sep_ab.iterative_size(), 3 );
+
+ sep_AB = split_A;
+ sep_B = split_B;
+ sep_AB &= sep_B;
+
+ BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( sep_AB, sep_ab );
+
+ //sep_A [0 3) [6 9)
+ //split_B &= [1 2)[2 4) [5 8)
+ //sep_AB -> [1 2)[2 3) [6 8)
+ sep_AB = split_A;
+ sep_AB &= split_B;
+
+ BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( sep_AB, sep_ab );
+
+ //sep_A [0 3) [6 9)
+ //join_B &= [1 4) [5 8)
+ //sep_AB -> [1 3) [6 8)
+ separate_interval_set<T> sep_ab_jn = split_ab_jn;
+ sep_AB = split_A;
+ join_B = split_B;
+ sep_AB &= join_B;
+
+ BOOST_CHECK_EQUAL( sep_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( sep_AB, sep_ab_jn );
+
+ //--------------------------------------------------------------------------
+ // separate_interval_set
+ //--------------------------------------------------------------------------
+ //join_A [0 3) [6 9)
+ //join_B &= [1 4) [5 8)
+ //join_AB -> [1 3) [6 8)
+ join_ab = split_ab;
+ BOOST_CHECK_EQUAL( join_ab.iterative_size(), 2 );
+
+ join_AB = split_A;
+ join_B = split_B;
+ join_AB &= sep_B;
+
+ BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( join_AB, join_ab );
+
+ //join_A [0 3) [6 9)
+ //split_B &= [1 2)[2 4) [5 8)
+ //join_AB -> [1 3) [6 8)
+ join_AB = split_A;
+ join_AB &= split_B;
+
+ BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( join_AB, join_ab );
+
+ //join_A [0 3) [6 9)
+ //sep_B &= [1 2)[2 4) [5 8)
+ //join_AB -> [1 3) [6 8)
+ join_AB = split_A;
+ join_AB &= sep_B;
+
+ BOOST_CHECK_EQUAL( join_AB.iterative_size(), 2 );
+ BOOST_CHECK_EQUAL( join_AB, join_ab );
+
+}
+
+
+template <class T>
+void interval_set_mixed_disjoint_4_bicremental_types()
+{
+ typedef interval_set<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v4 = make<T>(4);
+ T v6 = make<T>(6);
+
+ IntervalT I0_2D = IntervalT::right_open(v0,v2);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I3_4D = IntervalT::right_open(v3,v4);
+ IntervalT I4_4I = IntervalT::closed(v4,v4);
+ IntervalT C4_6D = IntervalT::open(v4,v6);
+ IntervalT I6_6I = IntervalT::closed(v6,v6);
+
+ //--------------------------------------------------------------------------
+ //split_A: [0 2) [4 4] [6 6]
+ //split_B: [2 3)[3 4) (4 6)
+ split_interval_set<T> split_A, split_B;
+
+ split_A.add(I0_2D).add(I4_4I).add(I6_6I);
+ split_B.add(I2_3D).add(I3_4D).add(C4_6D);
+
+ separate_interval_set<T> sep_A(split_A), sep_B(split_B);
+ interval_set<T> join_A(split_A), join_B(split_B);
+
+ BOOST_CHECK_EQUAL( disjoint(split_A, split_B), true );
+ BOOST_CHECK_EQUAL( disjoint(split_A, sep_B), true );
+ BOOST_CHECK_EQUAL( disjoint(split_A, join_B), true );
+
+ BOOST_CHECK_EQUAL( disjoint(sep_A, split_B), true );
+ BOOST_CHECK_EQUAL( disjoint(sep_A, sep_B), true );
+ BOOST_CHECK_EQUAL( disjoint(sep_A, join_B), true );
+
+ BOOST_CHECK_EQUAL( disjoint(join_A, split_B), true );
+ BOOST_CHECK_EQUAL( disjoint(join_A, sep_B), true );
+ BOOST_CHECK_EQUAL( disjoint(join_A, join_B), true );
+}
+
+template <class T>
+void interval_set_mixed_infix_plus_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a + sep_a, sep_a + split_a );
+ BOOST_CHECK_EQUAL(split_a + join_a, join_a + split_a);
+ BOOST_CHECK_EQUAL(sep_a + join_a, join_a + sep_a );
+}
+
+template <class T> void interval_set_mixed_infix_pipe_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a | sep_a, sep_a | split_a );
+ BOOST_CHECK_EQUAL(split_a | join_a, join_a | split_a);
+ BOOST_CHECK_EQUAL(sep_a | join_a, join_a | sep_a );
+}
+
+template <class T>
+void interval_set_mixed_infix_minus_overload_4_bicremental_types()
+{
+ interval_set<T> join_a, join_b;
+ separate_interval_set<T> sep_a, sep_b;
+ split_interval_set<T> split_a, split_b;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a - sep_a, (split_b = split_a) -= sep_a );
+ BOOST_CHECK_EQUAL(split_a - join_a, (split_b = split_a) -= join_a );
+ BOOST_CHECK_EQUAL(sep_a - join_a, (sep_b = sep_a) -= join_a );
+
+ BOOST_CHECK_EQUAL(sep_a - split_a, (sep_b = sep_a) -= split_a);
+ BOOST_CHECK_EQUAL(join_a - split_a, (join_b = join_a) -= split_a);
+ BOOST_CHECK_EQUAL(join_a - sep_a, (join_b = join_a) -= sep_a );
+}
+
+template <class T> void interval_set_mixed_infix_et_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a & sep_a, sep_a & split_a );
+ BOOST_CHECK_EQUAL(split_a & join_a, join_a & split_a);
+ BOOST_CHECK_EQUAL(sep_a & join_a, join_a & sep_a );
+}
+
+template <class T> void interval_set_mixed_infix_caret_overload_4_bicremental_types()
+{
+ interval_set<T> join_a;
+ separate_interval_set<T> sep_a;
+ split_interval_set<T> split_a;
+
+ join_a.add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,9));
+ sep_a .add(I_D(0,4)) .add(I_I(4,6)).add(I_D(5,11));
+ split_a.add(I_I(0,0)).add(I_D(8,7)).add(I_I(6,11));
+
+ BOOST_CHECK_EQUAL(split_a ^ sep_a, sep_a ^ split_a );
+ BOOST_CHECK_EQUAL(split_a ^ join_a, join_a ^ split_a);
+ BOOST_CHECK_EQUAL(sep_a ^ join_a, join_a ^ sep_a );
+}
+
+#endif // LIBS_ICL_TEST_TEST_INTERVAL_SET_MIXED_HPP_JOFA_090702
diff --git a/src/boost/libs/icl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp b/src/boost/libs/icl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp
new file mode 100644
index 000000000..04a77151c
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_mixed_/test_interval_set_mixed.cpp
@@ -0,0 +1,105 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::interval_set_mixed unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wself-assign-overloaded"
+#endif
+
+#include "../test_interval_set_mixed.hpp"
+
+#ifdef BOOST_CLANG
+#pragma clang diagnostic pop
+#endif
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_ctor_4_ordered_types, T, ordered_types)
+{ interval_set_mixed_ctor_4_ordered_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_equal_4_ordered_types, T, ordered_types)
+{ interval_set_mixed_equal_4_ordered_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_assign_4_ordered_types, T, ordered_types)
+{ interval_set_mixed_assign_4_ordered_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_ctor_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_assign_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_assign_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_equal_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_equal_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_contains_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_contains_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_add_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_add_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_subtract_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_subtract_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_erase_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_erase_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_basic_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_basic_intersect_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_disjoint_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_plus_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_pipe_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_infix_minus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_minus_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_et_overload_4_bicremental_types<T>(); }
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_mixed_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_mixed_infix_caret_overload_4_bicremental_types<T>(); }
diff --git a/src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj b/src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj
new file mode 100644
index 000000000..eb072457b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9E}</ProjectGuid>
+ <RootNamespace>Test_interval_set_mixed</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_set_mixed.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_set_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj.filters b/src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj.filters
new file mode 100644
index 000000000..e8052ccdb
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_mixed_/vc10_test_interval_set_mixed.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_interval_set_mixed.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_set_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_interval_set_mixed_/vc9_test_interval_set_mixed.vcproj b/src/boost/libs/icl/test/test_interval_set_mixed_/vc9_test_interval_set_mixed.vcproj
new file mode 100644
index 000000000..7089ea0f8
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_mixed_/vc9_test_interval_set_mixed.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_interval_set_mixed"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}"
+ RootNamespace="Test_interval_set_mixed"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_interval_set_mixed.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_set_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_interval_set_shared.hpp b/src/boost/libs/icl/test/test_interval_set_shared.hpp
new file mode 100644
index 000000000..aba37964a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_interval_set_shared.hpp
@@ -0,0 +1,840 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_INTERVAL_SET_SHARED_HPP_JOFA_080920
+#define LIBS_ICL_TEST_TEST_INTERVAL_SET_SHARED_HPP_JOFA_080920
+
+#include <boost/range/algorithm.hpp>
+#include "portability.hpp"
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_fundamentals_4_ordered_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef typename IntervalSet<T>::size_type size_T;
+
+ // ordered types is the largest set of instance types.
+ // Because we can not generate values via incrementation for e.g. string,
+ // we are able to test operations only for the most basic values
+ // identity_element (0, empty, T() ...) and unit_element.
+
+ T v0 = boost::icl::identity_element<T>::value();
+ T v1 = unit_element<T>::value();
+ IntervalT I0_0I(v0);
+ IntervalT I1_1I(v1);
+ IntervalT I0_1I(v0, v1, interval_bounds::closed());
+
+ //-------------------------------------------------------------------------
+ //empty set
+ //-------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL(IntervalSet<T>().empty(), true);
+ BOOST_CHECK_EQUAL(icl::is_empty(IntervalSet<T>()), true);
+ BOOST_CHECK_EQUAL(cardinality(IntervalSet<T>()), boost::icl::identity_element<size_T>::value());
+ BOOST_CHECK_EQUAL(IntervalSet<T>().size(), boost::icl::identity_element<size_T>::value());
+ BOOST_CHECK_EQUAL(interval_count(IntervalSet<T>()), 0);
+ BOOST_CHECK_EQUAL(IntervalSet<T>().iterative_size(), 0);
+ BOOST_CHECK_EQUAL(iterative_size(IntervalSet<T>()), 0);
+ BOOST_CHECK_EQUAL(IntervalSet<T>(), IntervalSet<T>());
+
+ IntervalT mt_interval = boost::icl::identity_element<IntervalT>::value();
+ BOOST_CHECK_EQUAL(mt_interval, IntervalT());
+ IntervalSet<T> mt_set = boost::icl::identity_element<IntervalSet<T> >::value();
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+
+ //adding emptieness to emptieness yields emptieness ;)
+ mt_set.add(mt_interval).add(mt_interval);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ mt_set.insert(mt_interval).insert(mt_interval);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ (mt_set += mt_interval) += mt_interval;
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ BOOST_CHECK_EQUAL(hull(mt_set), boost::icl::identity_element<IntervalT >::value());
+
+ //subtracting emptieness
+ mt_set.subtract(mt_interval).subtract(mt_interval);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ mt_set.erase(mt_interval).erase(mt_interval);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ (mt_set -= mt_interval) -= mt_interval;
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+
+ //subtracting elements form emptieness
+ mt_set.subtract(v0).subtract(v1);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ mt_set.erase(v0).erase(v1);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ (mt_set -= v1) -= v0;
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+
+ //subtracting intervals form emptieness
+ mt_set.subtract(I0_1I).subtract(I1_1I);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ mt_set.erase(I0_1I).erase(I1_1I);
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ (mt_set -= I1_1I) -= I0_1I;
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+
+ //insecting emptieness
+ //mt_set.insect(mt_interval).insect(mt_interval);
+ //BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ (mt_set &= mt_interval) &= mt_interval;
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ //insecting emptieness with elements
+ (mt_set &= v1) &= v0;
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+ //insecting emptieness with intervals
+ (mt_set &= I1_1I) &= I0_1I;
+ BOOST_CHECK_EQUAL(mt_set, IntervalSet<T>());
+
+ //-------------------------------------------------------------------------
+ //unary set
+ //-------------------------------------------------------------------------
+ IntervalSet<T> single_I0_0I_from_element(v0);
+ IntervalSet<T> single_I0_0I_from_interval(I0_0I);
+ IntervalSet<T> single_I0_0I(single_I0_0I_from_interval);
+
+ BOOST_CHECK_EQUAL(single_I0_0I_from_element, single_I0_0I_from_interval);
+ BOOST_CHECK_EQUAL(single_I0_0I_from_element, single_I0_0I);
+ BOOST_CHECK_EQUAL(icl::hull(single_I0_0I).lower(), I0_0I.lower());
+ BOOST_CHECK_EQUAL(icl::hull(single_I0_0I).upper(), I0_0I.upper());
+
+ IntervalSet<T> single_I1_1I_from_element(v1);
+ IntervalSet<T> single_I1_1I_from_interval(I1_1I);
+ IntervalSet<T> single_I1_1I(single_I1_1I_from_interval);
+
+ BOOST_CHECK_EQUAL(single_I1_1I_from_element, single_I1_1I_from_interval);
+ BOOST_CHECK_EQUAL(single_I1_1I_from_element, single_I1_1I);
+
+ IntervalSet<T> single_I0_1I_from_interval(I0_1I);
+ IntervalSet<T> single_I0_1I(single_I0_1I_from_interval);
+
+ BOOST_CHECK_EQUAL(single_I0_1I_from_interval, single_I0_1I);
+ BOOST_CHECK_EQUAL(hull(single_I0_1I), I0_1I);
+ BOOST_CHECK_EQUAL(hull(single_I0_1I).lower(), I0_1I.lower());
+ BOOST_CHECK_EQUAL(hull(single_I0_1I).upper(), I0_1I.upper());
+
+ //contains predicate
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_0I, v0), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_0I, I0_0I), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I1_1I, v1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I1_1I, I1_1I), true);
+
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I, v0), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I, I0_1I), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I, v1), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I, I1_1I), true);
+
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I, single_I0_0I), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I, single_I1_1I), true);
+ BOOST_CHECK_EQUAL(icl::contains(single_I0_1I, single_I0_1I), true);
+
+ BOOST_CHECK_EQUAL(cardinality(single_I0_0I), unit_element<size_T>::value());
+ BOOST_CHECK_EQUAL(single_I0_0I.size(), unit_element<size_T>::value());
+ BOOST_CHECK_EQUAL(interval_count(single_I0_0I), 1);
+ BOOST_CHECK_EQUAL(single_I0_0I.iterative_size(), 1);
+ BOOST_CHECK_EQUAL(iterative_size(single_I0_0I), 1);
+}
+
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_ctor_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v4 = make<T>(4);
+ IntervalT I4_4I(v4);
+
+ IntervalSet<T> _I4_4I;
+ BOOST_CHECK_EQUAL( _I4_4I.empty(), true );
+ IntervalSet<T> _I4_4I_1;
+ IntervalSet<T> _I4_4I_2;
+ IntervalSet<T> _I4_4I_3;
+ _I4_4I += v4;
+ _I4_4I_1 += I4_4I;
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_1 );
+ _I4_4I_2.add(v4);
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_2 );
+ _I4_4I_3.add(I4_4I);
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_3 );
+ _I4_4I_1.add(v4).add(I4_4I);
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_1 );
+ _I4_4I_1.insert(v4).insert(I4_4I);
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_1 );
+ (_I4_4I_1 += v4) += I4_4I;
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_1 );
+
+ BOOST_CHECK_EQUAL( cardinality(_I4_4I), unit_element<typename IntervalSet<T>::size_type>::value() );
+ BOOST_CHECK_EQUAL( _I4_4I.size(), unit_element<typename IntervalSet<T>::size_type>::value() );
+ BOOST_CHECK_EQUAL( interval_count(_I4_4I), 1 );
+ BOOST_CHECK_EQUAL( _I4_4I.iterative_size(), 1 );
+ BOOST_CHECK_EQUAL( iterative_size(_I4_4I), 1 );
+ BOOST_CHECK_EQUAL( hull(_I4_4I).lower(), v4 );
+ BOOST_CHECK_EQUAL( hull(_I4_4I).upper(), v4 );
+
+ IntervalSet<T> _I4_4I_copy(_I4_4I);
+ IntervalSet<T> _I4_4I_assigned;
+ _I4_4I_assigned = _I4_4I;
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_copy );
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_assigned );
+ _I4_4I_assigned.clear();
+ BOOST_CHECK_EQUAL( true, _I4_4I_assigned.empty() );
+
+ _I4_4I_assigned.swap(_I4_4I_copy);
+ BOOST_CHECK_EQUAL( true, _I4_4I_copy.empty() );
+ BOOST_CHECK_EQUAL( _I4_4I, _I4_4I_assigned );
+
+}
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_add_sub_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ T v0 = make<T>(0);
+ T v5 = make<T>(5);
+ T v6 = make<T>(6);
+ T v9 = make<T>(9);
+ IntervalT I5_6I(v5,v6,interval_bounds::closed());
+ IntervalT I5_9I(v5,v9,interval_bounds::closed());
+ IntervalT I0_9I = IntervalT::closed(v0, v9);
+
+ BOOST_CHECK_EQUAL( IntervalSet<T>(I5_6I).add(v0).add(v9),
+ IntervalSet<T>().insert(v9).insert(I5_6I).insert(v0) );
+
+ IntervalSet<T> set_A = IntervalSet<T>(I5_6I).add(v0).add(v9);
+ IntervalSet<T> set_B = IntervalSet<T>().insert(v9).insert(I5_6I).insert(v0);
+ BOOST_CHECK_EQUAL( set_A, set_B );
+ BOOST_CHECK_EQUAL( hull(set_A), I0_9I );
+ BOOST_CHECK_EQUAL( hull(set_A).lower(), I0_9I.lower() );
+ BOOST_CHECK_EQUAL( hull(set_A).upper(), I0_9I.upper() );
+
+ IntervalSet<T> set_A1 = set_A, set_B1 = set_B,
+ set_A2 = set_A, set_B2 = set_B;
+
+ set_A1.subtract(I5_6I).subtract(v9);
+ set_B1.erase(v9).erase(I5_6I);
+ BOOST_CHECK_EQUAL( set_A1, set_B1 );
+
+ set_A2.subtract(I5_9I);
+ set_B2.erase(I5_9I);
+ BOOST_CHECK_EQUAL( set_A1, set_B1 );
+ BOOST_CHECK_EQUAL( set_A1, set_A2 );
+ BOOST_CHECK_EQUAL( set_B1, set_B2 );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_distinct_4_bicremental_types()
+{
+ typedef typename IntervalSet<T>::size_type size_T;
+
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+
+ size_T s3 = make<size_T>(3);
+
+ IntervalSet<T> is_1_3_5;
+ is_1_3_5.add(v1).add(v3).add(v5);
+
+ BOOST_CHECK_EQUAL( cardinality(is_1_3_5), s3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.size(), s3 );
+ BOOST_CHECK_EQUAL( interval_count(is_1_3_5), 3 );
+ BOOST_CHECK_EQUAL( iterative_size(is_1_3_5), 3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.iterative_size(), 3 );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_distinct_4_bicremental_continuous_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef typename IntervalSet<T>::size_type size_T;
+ typedef typename IntervalSet<T>::difference_type diff_T;
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+
+ size_T s3 = make<size_T>(3);
+ diff_T d0 = make<diff_T>(0);
+ diff_T d2 = make<diff_T>(2);
+
+ IntervalSet<T> is_1_3_5;
+ is_1_3_5.add(v1).add(v3).add(v5);
+
+ BOOST_CHECK_EQUAL( cardinality(is_1_3_5), s3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.size(), s3 );
+ BOOST_CHECK_EQUAL( icl::length(is_1_3_5), d0 );
+ BOOST_CHECK_EQUAL( interval_count(is_1_3_5), 3 );
+ BOOST_CHECK_EQUAL( is_1_3_5.iterative_size(), 3 );
+ BOOST_CHECK_EQUAL( iterative_size(is_1_3_5), 3 );
+
+
+
+ IntervalSet<T> is_123_5;
+ is_123_5 = is_1_3_5;
+ is_123_5 += IntervalT::open(v1,v3);
+
+ BOOST_CHECK_EQUAL( cardinality(is_123_5), icl::infinity<size_T>::value() );
+ BOOST_CHECK_EQUAL( is_123_5.size(), icl::infinity<size_T>::value() );
+ BOOST_CHECK_EQUAL( icl::length(is_123_5), d2 );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_isolate_4_bicremental_continuous_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ typedef typename IntervalSet<T>::size_type size_T;
+
+ T v0 = make<T>(0);
+ T v2 = make<T>(2);
+ T v4 = make<T>(4);
+ IntervalT I0_4I = IntervalT::closed(v0,v4);
+ IntervalT C0_2D = IntervalT::open(v0,v2);
+ IntervalT C2_4D = IntervalT::open(v2,v4);
+ // {[0 4]}
+ // - { (0,2) (2,4) }
+ // = {[0] [2] [4]}
+ IntervalSet<T> iso_set = IntervalSet<T>(I0_4I);
+ IntervalSet<T> gap_set;
+ gap_set.add(C0_2D).add(C2_4D);
+ BOOST_CHECK_EQUAL( true, true );
+ iso_set -= gap_set;
+
+ BOOST_CHECK_EQUAL( cardinality(iso_set), static_cast<size_T>(3) );
+ BOOST_CHECK_EQUAL( iso_set.iterative_size(), static_cast<std::size_t>(3) );
+ BOOST_CHECK_EQUAL( iterative_size(iso_set), static_cast<std::size_t>(3) );
+
+ IntervalSet<T> iso_set2;
+ iso_set2.add(I0_4I);
+ iso_set2.subtract(C0_2D).subtract(C2_4D);
+
+ IntervalSet<T> iso_set3(I0_4I);
+ (iso_set3 -= C0_2D) -= C2_4D;
+
+ IntervalSet<T> iso_set4;
+ iso_set4.insert(I0_4I);
+ iso_set4.erase(C0_2D).erase(C2_4D);
+
+ BOOST_CHECK_EQUAL( iso_set, iso_set2 );
+ BOOST_CHECK_EQUAL( iso_set, iso_set3 );
+ BOOST_CHECK_EQUAL( iso_set, iso_set4 );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_element_compare_4_bicremental_types()
+{
+ typedef IntervalSet<T> ISet;
+
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(), ISet()), true );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(), ISet(I_D(0,1))), false );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(0,1)), ISet()), false );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(0,1)), ISet(I_D(0,1))), true );
+
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(0,5)), ISet(I_D(3,8))), false );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(3,8)), ISet(I_D(0,5))), false );
+
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(0,1)), ISet(I_D(0,1)) ), true );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(0,1)), ISet(I_D(0,1))+I_D(1,2) ), false );
+ BOOST_CHECK_EQUAL( is_element_equal( I_D(1,2)+ISet(I_D(0,1)), ISet(I_D(0,1)) ), false );
+ BOOST_CHECK_EQUAL( is_element_equal( I_D(1,2)+ISet(I_D(0,1)), ISet(I_D(0,1))+I_D(1,2) ), true );
+
+ //[0 1)[1 2)
+ //[0 2)
+ BOOST_CHECK_EQUAL( is_element_equal( I_D(0,1)+ISet(I_D(1,2)), ISet(I_D(0,2)) ), true );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(0,2)), ISet(I_D(0,1))+I_D(1,2) ), true );
+
+ //[0 1) [2 3)
+ //[0 3)
+ BOOST_CHECK_EQUAL( is_element_equal( I_D(0,1)+ISet(I_D(2,3)), ISet(I_D(0,3)) ), false );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(0,3)), ISet(I_D(0,1))+I_D(2,3) ), false );
+
+ //[0 2)[2 4)
+ // [1 4)
+ BOOST_CHECK_EQUAL( is_element_equal( I_D(0,2)+ISet(I_D(2,4)), ISet(I_D(1,4)) ), false );
+ BOOST_CHECK_EQUAL( is_element_equal( ISet(I_D(1,4)), ISet(I_D(0,2))+I_D(2,4) ), false );
+
+ //[0 2)[2 4)
+ //[0 1)[1 3)[3 4)
+ BOOST_CHECK_EQUAL( is_element_equal( I_D(0,2)+ISet(I_D(2,4)), I_D(0,1)+ISet(I_D(1,4))+I_D(3,4) ), true );
+ BOOST_CHECK_EQUAL( is_element_equal( I_D(0,1)+ISet(I_D(1,4))+I_D(3,4), I_D(0,2)+ISet(I_D(2,4)) ), true );
+}
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_contains_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ //LAW: x.add(e).contains(e);
+ //LAW: z = x + y => contains(z, x) && contains(z, y);
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+ T v11 = make<T>(11);
+ IntervalSet<T> is(v1);
+ BOOST_CHECK_EQUAL( icl::contains(is, v1), true );
+
+ BOOST_CHECK_EQUAL( icl::contains(IntervalSet<T>().add(make<T>(2)), make<T>(2)), true );
+ BOOST_CHECK_EQUAL( icl::contains(IntervalSet<T>().insert(make<T>(2)), make<T>(2)), true );
+ BOOST_CHECK_EQUAL( icl::contains((is += IntervalT(v3,v7)), IntervalT(v3,v7)), true );
+
+ IntervalSet<T> is0 = is;
+
+ IntervalSet<T> is2(IntervalT::closed(v5,v8));
+ is2.add(v9).add(v11);
+ is += is2;
+ BOOST_CHECK_EQUAL( contains(is, is2), true );
+
+ is = is0;
+ IntervalSet<T> is3(IntervalT::closed(v5,v8));
+ is3.insert(v9).insert(v11);
+ is += is3;
+ BOOST_CHECK_EQUAL( contains(is, is3), true );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_operators_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v3 = make<T>(3);
+ T v5 = make<T>(5);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ IntervalSet<T> left, left2, right, all, all2, section, complement, naught;
+ left.add(IntervalT::closed(v0,v1)).add(IntervalT::closed(v3,v5));
+ (right += IntervalT::closed(v3,v5)) += IntervalT::closed(v7,v8);
+
+ BOOST_CHECK_EQUAL( disjoint(left, right), false );
+
+ (all += left) += right;
+ (section += left) &= right;
+ (complement += all) -= section;
+ (all2 += section) += complement;
+
+ BOOST_CHECK_EQUAL( disjoint(section, complement), true );
+ BOOST_CHECK_EQUAL( all, all2 );
+
+ BOOST_CHECK_EQUAL( icl::contains(all, left), true );
+ BOOST_CHECK_EQUAL( icl::contains(all, right), true );
+ BOOST_CHECK_EQUAL( icl::contains(all, complement), true );
+
+ BOOST_CHECK_EQUAL( icl::contains(left, section), true );
+ BOOST_CHECK_EQUAL( icl::contains(right, section), true );
+
+ BOOST_CHECK_EQUAL( within(left, all), true );
+ BOOST_CHECK_EQUAL( within(right, all), true );
+ BOOST_CHECK_EQUAL( within(complement, all), true );
+ BOOST_CHECK_EQUAL( within(section, left), true );
+ BOOST_CHECK_EQUAL( within(section, right), true );
+}
+
+
+// Test for nontrivial intersection of interval sets with intervals and values
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_base_intersect_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ T v0 = make<T>(0);
+ T v1 = make<T>(1);
+ T v2 = make<T>(2);
+ T v3 = make<T>(3);
+ T v6 = make<T>(6);
+ T v7 = make<T>(7);
+ T v8 = make<T>(8);
+ T v9 = make<T>(9);
+
+ IntervalT I0_3D = IntervalT::right_open(v0,v3);
+ IntervalT I1_3D = IntervalT::right_open(v1,v3);
+ IntervalT I1_8D = IntervalT::right_open(v1,v8);
+ IntervalT I2_7D = IntervalT::right_open(v2,v7);
+ IntervalT I2_3D = IntervalT::right_open(v2,v3);
+ IntervalT I6_7D = IntervalT::right_open(v6,v7);
+ IntervalT I6_8D = IntervalT::right_open(v6,v8);
+ IntervalT I6_9D = IntervalT::right_open(v6,v9);
+
+ //--------------------------------------------------------------------------
+ // IntervalSet
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= [1 8)
+ //split_AB -> [1 3) [6 8)
+ // &= [2 7)
+ // -> [2 3) [6 7)
+ IntervalSet<T> split_A, split_B, split_AB, split_ab, split_ab2;
+
+ split_A.add(I0_3D).add(I6_9D);
+ split_AB = split_A;
+ split_AB &= I1_8D;
+ split_ab.add(I1_3D).add(I6_8D);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= I1_8D) &= I2_7D;
+ split_ab2.add(I2_3D).add(I6_7D);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab2 );
+
+
+ //--------------------------------------------------------------------------
+ //split_A [0 3) [6 9)
+ // &= 1
+ //split_AB -> [1]
+ // += (1 7)
+ // -> [1](1 7)
+ split_A.add(I0_3D).add(I6_9D);
+ split_AB = split_A;
+ split_AB &= v1;
+ split_ab.clear();
+ split_ab.add(v1);
+
+ BOOST_CHECK_EQUAL( split_AB, split_ab );
+
+ split_AB = split_A;
+ (split_AB &= v1) += IntervalT::open(v1,v7);
+ split_ab2.clear();
+ split_ab2 += IntervalT::right_open(v1,v7);
+
+ BOOST_CHECK_EQUAL( is_element_equal(split_AB, split_ab2), true );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_flip_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef IntervalSetT ISet;
+
+ IntervalSetT set_a, set_b, lhs, rhs;
+ //[0 2)
+ // [1 3)
+ //[0 1) [2 3) : {[0 2)} ^= [2 3)
+ //gcc seed ambiguities with std::_Ios_Iostate& std::operator^= here:
+ // BOOST_CHECK_EQUAL(ISet(I_D(0,2)) ^= I_D(1,3), ISet(I_D(0,1)) + I_D(2,3));
+ set_a = ISet(I_D(0,2));
+ BOOST_CHECK_EQUAL(set_a ^= I_D(1,3), ISet(I_D(0,1)) + I_D(2,3));
+
+ // [1 3)
+ //[0 2)
+ //[0 1) [2 3) : {[1 3)} ^= [0 2)
+ set_a = ISet(I_D(1,3));
+ BOOST_CHECK_EQUAL(set_a ^= I_D(0,2), ISet(I_D(0,1)) + I_D(2,3));
+
+ //[0 2) (3 5]
+ // [1 3)
+ //[0 1) [2 3) (3 5] : a ^= b
+ set_a.clear();
+ set_a.add(I_D(0,2)).add(C_I(3,5));
+ set_b.add(I_D(1,3));
+ lhs = set_a;
+ lhs ^= set_b;
+ rhs.add(I_D(0,1)).add(I_D(2,3)).add(C_I(3,5));
+ BOOST_CHECK_EQUAL(lhs, rhs);
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_infix_plus_overload_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a, set_b;
+ set_a.add(C_D(1,3)).add(I_D(8,9)).add(I_I(6,11));
+ set_b.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ BOOST_CHECK_EQUAL(set_a + set_b, set_b + set_a);
+ // This checks all cases of is_interval_set_derivative<T>
+ BOOST_CHECK_EQUAL(set_a + itv, itv + set_a);
+ BOOST_CHECK_EQUAL(set_b + MK_v(4), MK_v(4) + set_b);
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_infix_pipe_overload_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a, set_b;
+ set_a.add(C_D(1,3)).add(I_D(8,9)).add(I_I(6,11));
+ set_b.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ BOOST_CHECK_EQUAL(set_a | set_b, set_b | set_a);
+ //This checks all cases of is_interval_set_derivative<T>
+ BOOST_CHECK_EQUAL(set_a | itv, itv | set_a);
+ BOOST_CHECK_EQUAL(set_b | MK_v(4), MK_v(4) | set_b);
+}
+
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_infix_minus_overload_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a, set_b;
+ set_a.add(C_D(1,3)).add(I_D(8,9)).add(I_I(6,11));
+ set_b.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ BOOST_CHECK_EQUAL(set_a - set_b, (set_b + set_a) - set_b);
+ //This checks all cases of is_interval_set_derivative<T>
+ BOOST_CHECK_EQUAL(set_a - itv, (itv + set_a) - itv);
+ BOOST_CHECK_EQUAL(set_b - MK_v(4), (MK_v(4) + set_b) - MK_v(4));
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_infix_et_overload_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a, set_b;
+ set_a.add(C_D(1,3)).add(I_D(8,9)).add(I_I(6,11));
+ set_b.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ BOOST_CHECK_EQUAL(set_a & set_b, set_b & set_a);
+ //This checks all cases of is_interval_set_derivative<T>
+ BOOST_CHECK_EQUAL(set_a & itv, itv & set_a);
+ BOOST_CHECK_EQUAL(set_b & MK_v(4), MK_v(4) & set_b);
+}
+
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_infix_caret_overload_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a, set_b;
+ set_a.add(C_D(1,3)).add(I_D(8,9)).add(I_I(6,11));
+ set_b.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ BOOST_CHECK_EQUAL(set_a ^ set_b, set_b ^ set_a);
+ //This checks all cases of is_interval_set_derivative<T>
+ BOOST_CHECK_EQUAL(set_a ^ itv, itv ^ set_a);
+ BOOST_CHECK_EQUAL(set_b ^ MK_v(4), MK_v(4) ^ set_b);
+}
+
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_find_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::const_iterator c_iterator;
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+
+ typename IntervalSetT::const_iterator found = set_a.find(MK_v(6));
+
+ BOOST_CHECK_EQUAL( *found, I_I(6,11) );
+
+ found = set_a.find(MK_v(5));
+
+ BOOST_CHECK_EQUAL( found == set_a.end(), true );
+
+ c_iterator found1 = set_a.find(MK_v(6));
+ c_iterator found2 = icl::find(set_a, MK_v(6));
+
+ BOOST_CHECK ( found1 == found2 );
+ BOOST_CHECK_EQUAL( *found1, *found2 );
+ BOOST_CHECK_EQUAL( *found1, I_I(6,11) );
+
+ found1 = set_a.find(MK_v(5));
+
+ BOOST_CHECK_EQUAL( found1 == set_a.end(), true );
+
+ //LAW map c; key k: k in dom(c) => contains(c, *find(c, k))
+ BOOST_CHECK( icl::contains(set_a, *icl::find(set_a, MK_v(2))) );
+ BOOST_CHECK( icl::contains(set_a, *set_a.find(MK_v(11))) );
+
+ BOOST_CHECK( icl::contains(set_a, MK_v(2)) );
+ BOOST_CHECK( icl::contains(set_a, MK_v(10)) );
+ BOOST_CHECK( !icl::contains(set_a, MK_v(1)) );
+ BOOST_CHECK( !icl::contains(set_a, MK_v(3)) );
+
+ BOOST_CHECK( icl::intersects(set_a, MK_v(2)) );
+ BOOST_CHECK( icl::intersects(set_a, MK_v(10)) );
+ BOOST_CHECK( !icl::intersects(set_a, MK_v(1)) );
+ BOOST_CHECK( !icl::intersects(set_a, MK_v(3)) );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_intersects_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ IntervalT between = I_D(3,5);
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+ // (1 3) [6 11]
+ BOOST_CHECK( icl::intersects(set_a, MK_v(2)) );
+ BOOST_CHECK( icl::intersects(set_a, MK_v(11)) );
+ BOOST_CHECK( icl::disjoint(set_a, MK_v(3)) );
+ BOOST_CHECK( icl::disjoint(set_a, MK_v(5)) );
+
+ BOOST_CHECK( icl::intersects(set_a, C_D(1,3)) );
+ BOOST_CHECK( icl::intersects(set_a, I_D(8,10)) );
+ BOOST_CHECK( icl::disjoint(set_a, between) );
+ BOOST_CHECK( icl::disjoint(set_a, I_I(0,1)) );
+
+ IntervalSetT to_12 = IntervalSetT(I_D(0, 13));
+ IntervalSetT complement_a = to_12 - set_a;
+ BOOST_CHECK( icl::disjoint(set_a, complement_a) );
+ BOOST_CHECK( icl::intersects(to_12, set_a) );
+
+ BOOST_CHECK_EQUAL( icl::lower(set_a), icl::lower(*(set_a.begin())) );
+ BOOST_CHECK_EQUAL( icl::lower(set_a), MK_v(1) );
+ BOOST_CHECK_EQUAL( icl::upper(set_a), icl::upper(*(set_a.rbegin())) );
+ BOOST_CHECK_EQUAL( icl::upper(set_a), MK_v(11) );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_range_4_discrete_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+ // (1 3) [6 11]
+ BOOST_CHECK_EQUAL( icl::first(set_a), icl::first(*(set_a.begin())) );
+ BOOST_CHECK_EQUAL( icl::first(set_a), MK_v(2) );
+ BOOST_CHECK_EQUAL( icl::last(set_a), icl::last(*(set_a.rbegin())) );
+ BOOST_CHECK_EQUAL( icl::last(set_a), MK_v(11) );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_bitset_find_4_integral_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::interval_type IntervalT;
+
+ IntervalT itv = I_D(3,5);
+
+ IntervalSetT set_a;
+ set_a.add(C_D(1,3)).add(I_I(6,11));
+
+ typename IntervalSetT::const_iterator found = set_a.find(MK_v(6));
+
+ BOOST_CHECK( (found->second).contains(6) );
+
+ found = set_a.find(MK_v(5));
+ BOOST_CHECK( found == set_a.end() );
+
+ set_a.add(MK_v(64));
+ found = set_a.find(MK_v(64));
+ BOOST_CHECK( (found->second).contains(0) );
+
+ set_a.add(MK_v(65));
+ found = set_a.find(MK_v(65));
+ BOOST_CHECK( (found->second).contains(1) );
+
+ found = set_a.find(MK_v(66));
+ BOOST_CHECK( found == set_a.end() );
+}
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_element_iter_4_discrete_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef std::vector<T> VectorT;
+
+ IntervalSetT set_a;
+ set_a.add(I_I(1,3)).add(I_I(6,7));
+
+ VectorT vec(5), cev(5);
+ vec[0]=MK_v(1);vec[1]=MK_v(2);vec[2]=MK_v(3);vec[3]=MK_v(6);vec[4]=MK_v(7);
+ cev[0]=MK_v(7);cev[1]=MK_v(6);cev[2]=MK_v(3);cev[3]=MK_v(2);cev[4]=MK_v(1);
+
+ VectorT dest;
+ // element iteration -----------------------------------------------------
+ std::copy(elements_begin(set_a), elements_end(set_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( vec == dest, true );
+
+ dest.clear();
+ std::copy(elements_rbegin(set_a), elements_rend(set_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( cev == dest, true );
+
+ dest.clear();
+ std::reverse_copy(elements_begin(set_a), elements_end(set_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( cev == dest, true );
+
+ dest.clear();
+ std::reverse_copy(elements_rbegin(set_a), elements_rend(set_a), std::back_inserter(dest));
+ BOOST_CHECK_EQUAL( vec == dest, true );
+
+ // range based element iteration -----------------------------------------
+ dest.clear();
+ boost::copy(elements(set_a), std::back_inserter(dest));
+ BOOST_CHECK( vec == dest );
+
+ dest.clear();
+ boost::reverse_copy(elements(set_a), std::back_inserter(dest));
+ BOOST_CHECK( cev == dest );
+}
+
+
+template <ICL_IntervalSet_TEMPLATE(_T) IntervalSet, class T>
+void interval_set_move_4_discrete_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ //JODO static_cast fails for gcc compilers
+ //IntervalSetT set_A(boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_D(0,4)))));
+ IntervalSetT set_A(boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_D(0,4)).add(I_D(0,0)) )));
+ IntervalSetT set_B(boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_D(0,2)).add(I_D(2,4)).add(I_D(0,4)))));
+
+ BOOST_CHECK( icl::is_element_equal(set_A, set_B) );
+ BOOST_CHECK_EQUAL( set_A, join(set_B) );
+
+ //JODO static_cast fails for gcc compilers
+ //set_A = boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_I(1,4))));
+ set_A = boost::move(static_cast<IntervalSetT&>(IntervalSetT(I_I(1,4)).add(I_D(0,0))));
+ set_B = boost::move(static_cast<IntervalSetT&>(IntervalSetT(C_I(0,2)).insert(I_D(3,5)).add(C_D(0,5))));
+
+ BOOST_CHECK( icl::is_element_equal(set_A, set_B) );
+ BOOST_CHECK_EQUAL( set_A, join(set_B) );
+}
+
+
+
+#endif // LIBS_ICL_TEST_TEST_INTERVAL_SET_SHARED_HPP_JOFA_080920
diff --git a/src/boost/libs/icl/test/test_laws.hpp b/src/boost/libs/icl/test/test_laws.hpp
new file mode 100644
index 000000000..df7e0c591
--- /dev/null
+++ b/src/boost/libs/icl/test/test_laws.hpp
@@ -0,0 +1,795 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_LIBS_ICL_TEST_ICL_LAWS_HPP_JOFA_090119
+#define BOOST_LIBS_ICL_TEST_ICL_LAWS_HPP_JOFA_090119
+
+#include <boost/icl/type_traits/identity_element.hpp>
+#include <boost/icl/associative_interval_container.hpp>
+
+namespace boost{namespace icl
+{
+
+template<class Type>
+struct equality
+{
+ typedef Type first_argument_type;
+ typedef Type second_argument_type;
+ typedef bool result_type;
+ typedef bool (type)(const Type&, const Type&);
+};
+
+//------------------------------------------------------------------------------
+// Associativity
+//------------------------------------------------------------------------------
+
+// The definition of a boost test via a macro, that allows to be instantiated for
+// different operator signs 'op_sign'. For every 'op_sign' a separate function
+// template is generated by appending the suffic 'op_tag' to the function
+// name.
+// So this is the function template via macro that checks the law
+// associativity for an operator 'op_sign'
+#define DEFINE_ASSOCIATIVITY_CHECK_WRT(op_tag, op_sign) \
+template<class Type, class TypeB, class TypeC> \
+void check_associativity_wrt_##op_tag(const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ Type left = (a op_sign b) op_sign c; \
+ Type right = a op_sign (b op_sign c); \
+ BOOST_CHECK(left==right); \
+}
+
+#define DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(op_tag, op_sign) \
+template<class Type, class TypeB, class TypeC> \
+void check_associativity_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ Type left = (a op_sign b) op_sign c; \
+ Type right = a op_sign (b op_sign c); \
+ BOOST_CHECK((*equal)(left,right)); \
+}
+
+// Here we define the call of the test function thats definition
+// template has been generated by the macro above.
+#define CHECK_ASSOCIATIVITY_WRT(op_tag) check_associativity_wrt_##op_tag
+#define CHECK_ASSOCIATIVITY_WRT_EQUAL(op_tag) check_associativity_wrt_equal_##op_tag
+
+// Here we actually generate function templates by calling the defining
+// macros.
+DEFINE_ASSOCIATIVITY_CHECK_WRT (plus, + )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(plus, + )
+DEFINE_ASSOCIATIVITY_CHECK_WRT (pipe, | )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(pipe, | )
+DEFINE_ASSOCIATIVITY_CHECK_WRT (et, & )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(et, & )
+DEFINE_ASSOCIATIVITY_CHECK_WRT (caret, ^ )
+DEFINE_ASSOCIATIVITY_CHECK_WRT_EQUAL(caret, ^ )
+
+
+//------------------------------------------------------------------------------
+// Neutrality
+//------------------------------------------------------------------------------
+
+#define DEFINE_RIGHT_NEUTRALITY_CHECK_WRT_EQUAL(op_tag, op_sign) \
+template<class Type> \
+void check_right_neutrality_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, const Type& a, const Type& identity_element) \
+{ \
+ Type left = a op_sign identity_element; \
+ Type right = identity_element; \
+ BOOST_CHECK((*equal)(left,right)); \
+}
+
+#define DEFINE_RIGHT_NEUTRALITY_CHECK_WRT(op_tag, op_sign) \
+template<class Type> \
+void check_right_neutrality_wrt_##op_tag \
+(typename equality<Type>::type* equal, const Type& a, const Type& identity_element) \
+{ \
+ Type left = a op_sign identity_element; \
+ Type right = identity_element; \
+ BOOST_CHECK(left==right); \
+}
+
+#define DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(op_tag, op_sign) \
+template<class Type> \
+void check_neutrality_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, const Type& a, const Type& identity_element) \
+{ \
+ Type left = a op_sign identity_element; \
+ Type right = identity_element op_sign a; \
+ BOOST_CHECK((*equal)(left,right)); \
+}
+
+#define DEFINE_NEUTRALITY_CHECK_WRT(op_tag, op_sign) \
+template<class Type> \
+void check_neutrality_wrt_##op_tag \
+(const Type& a, const Type& identity_element) \
+{ \
+ Type left = a op_sign identity_element; \
+ Type right = identity_element op_sign a; \
+ BOOST_CHECK(left==right); \
+}
+
+#define CHECK_NEUTRALITY_WRT(op_tag) check_neutrality_wrt_##op_tag
+#define CHECK_NEUTRALITY_WRT_EQUAL(op_tag) check_neutrality_wrt_equal_##op_tag
+
+DEFINE_NEUTRALITY_CHECK_WRT (plus, + )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(plus, + )
+DEFINE_NEUTRALITY_CHECK_WRT (pipe, | )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(pipe, | )
+DEFINE_NEUTRALITY_CHECK_WRT (minus, - )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(minus, - )
+DEFINE_NEUTRALITY_CHECK_WRT (et, & )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(et, & )
+DEFINE_NEUTRALITY_CHECK_WRT (caret, ^ )
+DEFINE_NEUTRALITY_CHECK_WRT_EQUAL(caret, ^ )
+
+//------------------------------------------------------------------------------
+// Commutativity
+//------------------------------------------------------------------------------
+
+#define DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(op_tag, op_sign) \
+template<class Type, class TypeB> \
+void check_commutativity_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, const Type& a, const TypeB& b) \
+{ \
+ Type left = a op_sign b; \
+ Type right = b op_sign a; \
+ BOOST_CHECK((*equal)(left,right)); \
+}
+
+#define DEFINE_COMMUTATIVITY_CHECK_WRT(op_tag, op_sign) \
+template<class Type, class TypeB> \
+ void check_commutativity_wrt_##op_tag(const Type& a, const TypeB& b) \
+{ \
+ Type left = a op_sign b; \
+ Type right = b op_sign a; \
+ BOOST_CHECK(left==right); \
+}
+
+#define CHECK_COMMUTATIVITY_WRT_EQUAL(op_tag) check_commutativity_wrt_equal_##op_tag
+#define CHECK_COMMUTATIVITY_WRT(op_tag) check_commutativity_wrt_##op_tag
+
+DEFINE_COMMUTATIVITY_CHECK_WRT (plus, + )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(plus, + )
+DEFINE_COMMUTATIVITY_CHECK_WRT (pipe, | )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(pipe, | )
+DEFINE_COMMUTATIVITY_CHECK_WRT (et, & )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(et, & )
+DEFINE_COMMUTATIVITY_CHECK_WRT (caret, ^ )
+DEFINE_COMMUTATIVITY_CHECK_WRT_EQUAL(caret, ^ )
+
+//------------------------------------------------------------------------------
+// Natural inversion
+//------------------------------------------------------------------------------
+
+#define DEFINE_PARTIAL_INVERSION_CHECK_WRT_EQUAL(plus_tag, plus_sign) \
+template<class Type> \
+ void check_partial_inversion_wrt_equal_##plus_tag \
+(typename equality<Type>::type* equal, const Type& identity_element, const Type& var_a) \
+{ \
+ Type positive_difference = var_a - var_a; \
+ BOOST_CHECK((*equal)(positive_difference, identity_element)); \
+}
+
+#define DEFINE_PARTIAL_INVERSION_CHECK_WRT(plus_tag, plus_sign) \
+template<class Type> \
+ void check_partial_inversion_wrt_##plus_tag \
+(const Type& identity_element, const Type& var_a) \
+{ \
+ Type positive_difference = var_a - var_a; \
+ BOOST_CHECK(positive_difference==identity_element); \
+}
+
+#define CHECK_PARTIAL_INVERSION_WRT_EQUAL(plus_tag) check_partial_inversion_wrt_equal_##plus_tag
+#define CHECK_PARTIAL_INVERSION_WRT(plus_tag) check_partial_inversion_wrt_##plus_tag
+
+DEFINE_PARTIAL_INVERSION_CHECK_WRT (plus, + )
+DEFINE_PARTIAL_INVERSION_CHECK_WRT_EQUAL(plus, + )
+DEFINE_PARTIAL_INVERSION_CHECK_WRT (pipe, | )
+DEFINE_PARTIAL_INVERSION_CHECK_WRT_EQUAL(pipe, | )
+
+//------------------------------------------------------------------------------
+// Inverse
+//------------------------------------------------------------------------------
+
+#define DEFINE_INVERSE_CHECK_WRT_EQUAL(plus_tag, plus_sign) \
+template<class Type> \
+ void check_inverse_wrt_equal_##plus_tag \
+(typename equality<Type>::type* equal, const Type& identity_element, const Type& var_a) \
+{ \
+ Type positive_difference = var_a - var_a; \
+ BOOST_CHECK((*equal)(positive_difference, identity_element)); \
+ Type negative_difference = (identity_element - var_a) plus_sign var_a; \
+ BOOST_CHECK((*equal)(negative_difference, identity_element)); \
+}
+
+#define DEFINE_INVERSE_CHECK_WRT(plus_tag, plus_sign) \
+template<class Type> \
+ void check_inverse_wrt_##plus_tag \
+(const Type& identity_element, const Type& var_a) \
+{ \
+ Type positive_difference = var_a - var_a; \
+ BOOST_CHECK(positive_difference==identity_element); \
+ Type negative_difference = (identity_element - var_a) plus_sign var_a; \
+ BOOST_CHECK(negative_difference==identity_element); \
+}
+
+#define CHECK_INVERSE_WRT_EQUAL(plus_tag) check_inverse_wrt_equal_##plus_tag
+#define CHECK_INVERSE_WRT(plus_tag) check_inverse_wrt_##plus_tag
+
+DEFINE_INVERSE_CHECK_WRT (plus, + )
+DEFINE_INVERSE_CHECK_WRT_EQUAL(plus, + )
+DEFINE_INVERSE_CHECK_WRT (pipe, | )
+DEFINE_INVERSE_CHECK_WRT_EQUAL(pipe, | )
+
+//------------------------------------------------------------------------------
+// Containedness laws (Valid for sets, NOT for maps)
+//------------------------------------------------------------------------------
+template<class Type, class TypeB>
+void check_intersection_containedness(const Type& a, const TypeB& b)
+{
+ BOOST_CHECK_EQUAL(contains(a, a & b), true);
+ BOOST_CHECK_EQUAL(contains(a, b & a), true);
+ BOOST_CHECK_EQUAL(within(a & b, a), true);
+ BOOST_CHECK_EQUAL(within(b & a, a), true);
+}
+
+template<class Type, class TypeB>
+void check_union_containedness(const Type& a, const TypeB& b)
+{
+ BOOST_CHECK_EQUAL(within(a, a + b), true);
+ BOOST_CHECK_EQUAL(within(a, b + a), true);
+ BOOST_CHECK_EQUAL(contains(a + b, a), true);
+ BOOST_CHECK_EQUAL(contains(b + a, a), true);
+}
+
+template<class MapT>
+void check_domain_containedness(const MapT& a)
+{
+ typedef typename MapT::set_type set_type;
+ set_type dom;
+ domain(dom, a);
+ BOOST_CHECK_EQUAL(within(dom, a), true);
+ BOOST_CHECK_EQUAL(contains(a, dom), true);
+
+ if(!dom.empty())
+ {
+ typename MapT::domain_type a1 = *dom.begin();
+ BOOST_CHECK_EQUAL(within(a1, a), true);
+ BOOST_CHECK_EQUAL(contains(a, a1), true);
+ }
+}
+
+//------------------------------------------------------------------------------
+// Laws on inner complement, between and distance
+//------------------------------------------------------------------------------
+template<class Type, class SetT>
+bool check_length_as_distance( const Type& object
+ , SetT& in_between
+ , typename Type::difference_type& between_len
+ , typename Type::difference_type& obj_dist )
+{
+ //LAW LengthAsDistance: distance(x) == length(between(x))
+ icl::between(in_between, object);
+ between_len = icl::length(in_between);
+ obj_dist = icl::distance(object);
+ BOOST_CHECK_EQUAL(obj_dist, between_len);
+ return obj_dist == between_len;
+}
+
+template<class Type, class SetT>
+bool has_length_as_distance(const Type& object)
+{
+ typedef typename Type::difference_type DiffT;
+ SetT in_between; DiffT between_len, obj_dist;
+ return check_length_as_distance(object, in_between, between_len, obj_dist);
+}
+
+template<class Type>
+bool check_length_complementarity( const Type& object
+ , typename Type::difference_type& obj_len
+ , typename Type::difference_type& obj_dist
+ , typename Type::difference_type& hull_len )
+{
+ //LAW Length Complementarity: length(x) + distance(x) == length(hull(x))
+ obj_len = icl::length(object);
+ obj_dist = icl::distance(object);
+ hull_len = icl::length(hull(object));
+ BOOST_CHECK_EQUAL(obj_len + obj_dist, hull_len);
+ return obj_len + obj_dist == hull_len;
+}
+
+template<class Type>
+bool has_length_complementarity(const Type& object)
+{
+ typedef typename Type::difference_type DiffT;
+ DiffT obj_len, obj_dist, hull_len;
+ return check_length_complementarity(object, obj_len, obj_dist, hull_len);
+}
+
+template<class Type, class SetT>
+bool check_inner_complementarity(const Type& object, SetT& in_between, SetT& lhs, SetT& rhs)
+{
+ //LAW Inner Complementarity1: domain(x) + between(x) =e= hull(x)
+ //LAW Inner Complementarity2: join(domain(x) + between(x)) == hull(x)
+ SetT dom;
+ icl::domain(dom, object);
+ lhs = dom + between(in_between, object);
+ join(lhs);
+ rhs = SetT(hull(object));
+ BOOST_CHECK_EQUAL(lhs, rhs);
+ return lhs == rhs;
+}
+
+
+template<class Type, class SetT>
+bool has_inner_complementarity(const Type& object)
+{
+ SetT in_between, lhs, rhs;
+ return check_inner_complementarity(object, in_between, lhs, rhs);
+}
+
+
+
+//==============================================================================
+// Law tests are now combined to test algebraic concepts.
+//------------------------------------------------------------------------------
+// Monodid EAN
+//------------------------------------------------------------------------------
+
+#define DEFINE_MONOID_CHECK_WRT_EQUAL(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+void check_monoid_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ASSOCIATIVITY_WRT_EQUAL(op_tag)(equal,a,b,c); \
+ CHECK_NEUTRALITY_WRT_EQUAL(op_tag)(equal,a,identity_element); \
+}
+
+#define DEFINE_MONOID_CHECK_WRT(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+void check_monoid_wrt_##op_tag \
+(const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ASSOCIATIVITY_WRT(op_tag)(a,b,c); \
+ CHECK_NEUTRALITY_WRT(op_tag)(a,identity_element); \
+}
+
+DEFINE_MONOID_CHECK_WRT (plus)
+DEFINE_MONOID_CHECK_WRT_EQUAL(plus)
+DEFINE_MONOID_CHECK_WRT (pipe)
+DEFINE_MONOID_CHECK_WRT_EQUAL(pipe)
+DEFINE_MONOID_CHECK_WRT (et)
+DEFINE_MONOID_CHECK_WRT_EQUAL(et)
+DEFINE_MONOID_CHECK_WRT (caret)
+DEFINE_MONOID_CHECK_WRT_EQUAL(caret)
+
+#define CHECK_MONOID_WRT(op_tag) check_monoid_wrt_##op_tag
+#define CHECK_MONOID_WRT_EQUAL(op_tag) check_monoid_wrt_equal_##op_tag
+
+//------------------------------------------------------------------------------
+// Commutative or Abelian monodid EANC
+//------------------------------------------------------------------------------
+#define DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+void check_abelian_monoid_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ASSOCIATIVITY_WRT_EQUAL(op_tag)(equal,a,b,c); \
+ CHECK_NEUTRALITY_WRT_EQUAL(op_tag)(equal,a,identity_element); \
+ CHECK_COMMUTATIVITY_WRT_EQUAL(op_tag)(equal,a,b); \
+ CHECK_COMMUTATIVITY_WRT_EQUAL(op_tag)(equal,a,c); \
+}
+
+#define DEFINE_ABELIAN_MONOID_CHECK_WRT(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+void check_abelian_monoid_wrt_##op_tag \
+(const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ASSOCIATIVITY_WRT(op_tag)(a,b,c); \
+ CHECK_NEUTRALITY_WRT(op_tag)(a,identity_element); \
+ CHECK_COMMUTATIVITY_WRT(op_tag)(a,b); \
+ CHECK_COMMUTATIVITY_WRT(op_tag)(a,c); \
+}
+
+DEFINE_ABELIAN_MONOID_CHECK_WRT (plus)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(plus)
+DEFINE_ABELIAN_MONOID_CHECK_WRT (pipe)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(pipe)
+DEFINE_ABELIAN_MONOID_CHECK_WRT (et)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(et)
+DEFINE_ABELIAN_MONOID_CHECK_WRT (caret)
+DEFINE_ABELIAN_MONOID_CHECK_WRT_EQUAL(caret)
+
+#define CHECK_ABELIAN_MONOID_WRT(op_tag) check_abelian_monoid_wrt_##op_tag
+#define CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag) check_abelian_monoid_wrt_equal_##op_tag
+
+//------------------------------------------------------------------------------
+// Abelian monodid EANC with partial inversion
+//------------------------------------------------------------------------------
+#define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+void check_partial_invertive_monoid_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal,identity_element,a,b,c); \
+ CHECK_PARTIAL_INVERSION_WRT_EQUAL(op_tag)(equal,identity_element,a); \
+}
+
+#define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+void check_partial_invertive_monoid_wrt_##op_tag \
+(const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(identity_element,a,b,c); \
+ CHECK_PARTIAL_INVERSION_WRT(op_tag)(identity_element,a); \
+}
+
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT (caret)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_WRT_EQUAL(caret)
+
+#define CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag) check_partial_invertive_monoid_wrt_##op_tag
+#define CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag) check_partial_invertive_monoid_wrt_equal_##op_tag
+
+//------------------------------------------------------------------------------
+// Abelian group EANIC
+//------------------------------------------------------------------------------
+
+#define DEFINE_ABELIAN_GROUP_CHECK_WRT_EQUAL(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+ void check_abelian_group_wrt_equal_##op_tag \
+(typename equality<Type>::type* equal, const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal,identity_element,a,b,c); \
+ CHECK_INVERSE_WRT_EQUAL(op_tag)(equal,identity_element,a); \
+}
+
+#define DEFINE_ABELIAN_GROUP_CHECK_WRT(op_tag) \
+template<class Type, class TypeB, class TypeC> \
+ void check_abelian_group_wrt_##op_tag \
+(const Type& identity_element, \
+const Type& a, const TypeB& b, const TypeC& c) \
+{ \
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(identity_element,a,b,c); \
+ CHECK_INVERSE_WRT(op_tag)(identity_element,a); \
+}
+
+
+DEFINE_ABELIAN_GROUP_CHECK_WRT (plus)
+DEFINE_ABELIAN_GROUP_CHECK_WRT_EQUAL(plus)
+DEFINE_ABELIAN_GROUP_CHECK_WRT (pipe)
+DEFINE_ABELIAN_GROUP_CHECK_WRT_EQUAL(pipe)
+
+#define CHECK_ABELIAN_GROUP_WRT(op_tag) check_abelian_group_wrt_##op_tag
+#define CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag) check_abelian_group_wrt_equal_##op_tag
+
+//------------------------------------------------------------------------------
+// Modoid permuted
+//------------------------------------------------------------------------------
+
+#define DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+void check_monoid_permuted_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+#define DEFINE_MONOID_CHECK_PERMUTED_WRT(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+void check_monoid_permuted_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_MONOID_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_MONOID_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_MONOID_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_MONOID_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+
+DEFINE_MONOID_CHECK_PERMUTED_WRT (plus)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_MONOID_CHECK_PERMUTED_WRT (pipe)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe)
+DEFINE_MONOID_CHECK_PERMUTED_WRT (et)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(et)
+DEFINE_MONOID_CHECK_PERMUTED_WRT (caret)
+DEFINE_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret)
+
+#define CHECK_MONOID_PERMUTED_WRT(op_tag) check_monoid_permuted_wrt_##op_tag
+#define CHECK_MONOID_PERMUTED_WRT_EQUAL(op_tag) check_monoid_permuted_wrt_equal_##op_tag
+
+
+//------------------------------------------------------------------------------
+// Abelian modoid permuted
+//------------------------------------------------------------------------------
+
+#define DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+void check_abelian_monoid_permuted_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+#define DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+void check_abelian_monoid_permuted_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_MONOID_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (plus)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (pipe)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (et)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(et)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT (caret)
+DEFINE_ABELIAN_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret)
+
+#define CHECK_ABELIAN_MONOID_PERMUTED_WRT(op_tag) check_abelian_monoid_permuted_wrt_##op_tag
+#define CHECK_ABELIAN_MONOID_PERMUTED_WRT_EQUAL(op_tag) check_abelian_monoid_permuted_wrt_equal_##op_tag
+
+
+//------------------------------------------------------------------------------
+// Abelian modoid with partial inversion permuted
+//------------------------------------------------------------------------------
+
+#define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+void check_partial_invertive_monoid_permuted_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+#define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+void check_partial_invertive_monoid_permuted_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT (caret)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_PERMUTED_WRT_EQUAL(caret)
+
+#define CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT(op_tag) check_partial_invertive_monoid_permuted_wrt_##op_tag
+#define CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT_EQUAL(op_tag) check_partial_invertive_monoid_permuted_wrt_equal_##op_tag
+
+
+//------------------------------------------------------------------------------
+// Abelian group permuted
+//------------------------------------------------------------------------------
+
+#define DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+ void check_abelian_group_permuted_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_GROUP_WRT_EQUAL(op_tag)(equal, icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+#define DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT(op_tag) \
+template<class TypeA, class TypeB, class Assoc> \
+ void check_abelian_group_permuted_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const Assoc& assoc) \
+{ \
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, var_b, assoc);\
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(icl::identity_element<TypeA>::value(), var_a, assoc, var_b);\
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, var_a, assoc);\
+ CHECK_ABELIAN_GROUP_WRT(op_tag)(icl::identity_element<TypeB>::value(), var_b, assoc, var_a);\
+}
+
+
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT (plus)
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT_EQUAL(plus)
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT (pipe)
+DEFINE_ABELIAN_GROUP_CHECK_PERMUTED_WRT_EQUAL(pipe)
+
+#define CHECK_ABELIAN_GROUP_PERMUTED_WRT(op_tag) check_abelian_group_permuted_wrt_##op_tag
+#define CHECK_ABELIAN_GROUP_PERMUTED_WRT_EQUAL(op_tag) check_abelian_group_permuted_wrt_equal_##op_tag
+
+
+//------------------------------------------------------------------------------
+// Modoid instance
+//------------------------------------------------------------------------------
+
+#define DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+void check_monoid_instance_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, var_c);\
+ CHECK_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_a);\
+ CHECK_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_b);\
+}
+
+#define DEFINE_MONOID_CHECK_INSTANCE_WRT(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+void check_monoid_instance_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, var_c);\
+ CHECK_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_a);\
+ CHECK_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
+}
+
+DEFINE_MONOID_CHECK_INSTANCE_WRT (plus)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_MONOID_CHECK_INSTANCE_WRT (pipe)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe)
+DEFINE_MONOID_CHECK_INSTANCE_WRT (et)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(et)
+DEFINE_MONOID_CHECK_INSTANCE_WRT (caret)
+DEFINE_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret)
+
+#define CHECK_MONOID_INSTANCE_WRT(op_tag) check_monoid_instance_wrt_##op_tag
+#define CHECK_MONOID_INSTANCE_WRT_EQUAL(op_tag) check_monoid_instance_wrt_equal_##op_tag
+
+
+
+//------------------------------------------------------------------------------
+// Abelian modoid instance
+//------------------------------------------------------------------------------
+
+#define DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+void check_abelian_monoid_instance_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_ABELIAN_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, var_c);\
+ CHECK_ABELIAN_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_a);\
+ CHECK_ABELIAN_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_b);\
+}
+
+#define DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+void check_abelian_monoid_instance_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_ABELIAN_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, var_c);\
+ CHECK_ABELIAN_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_a);\
+ CHECK_ABELIAN_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
+}
+
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (plus)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (pipe)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (et)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(et)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT (caret)
+DEFINE_ABELIAN_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret)
+
+#define CHECK_ABELIAN_MONOID_INSTANCE_WRT(op_tag) check_abelian_monoid_instance_wrt_##op_tag
+#define CHECK_ABELIAN_MONOID_INSTANCE_WRT_EQUAL(op_tag) check_abelian_monoid_instance_wrt_equal_##op_tag
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive modoid instance
+//------------------------------------------------------------------------------
+
+#define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+void check_partial_invertive_monoid_instance_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, var_c);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_a);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_b);\
+}
+
+#define DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+void check_partial_invertive_monoid_instance_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, var_c);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_a);\
+ CHECK_PARTIAL_INVERTIVE_MONOID_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
+}
+
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(pipe)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(et)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT (caret)
+DEFINE_PARTIAL_INVERTIVE_MONOID_CHECK_INSTANCE_WRT_EQUAL(caret)
+
+#define CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(op_tag) check_partial_invertive_monoid_instance_wrt_##op_tag
+#define CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(op_tag) check_partial_invertive_monoid_instance_wrt_equal_##op_tag
+
+
+//------------------------------------------------------------------------------
+// Abelian group instance
+//------------------------------------------------------------------------------
+
+#define DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT_EQUAL(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+ void check_abelian_group_instance_wrt_equal_##op_tag \
+(typename equality<TypeA>::type* equal, const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_ABELIAN_GROUP_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, var_c);\
+ CHECK_ABELIAN_GROUP_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_a);\
+ CHECK_ABELIAN_GROUP_PERMUTED_WRT_EQUAL(op_tag)(equal, var_a, var_b, ass_b);\
+}
+
+#define DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT(op_tag) \
+template<class TypeA, class TypeB, class TypeC, class AssocA, class AssocB> \
+ void check_abelian_group_instance_wrt_##op_tag \
+(const TypeA& var_a, const TypeB& var_b, const TypeC& var_c, \
+ const AssocA& ass_a, const AssocB& ass_b) \
+{ \
+ CHECK_ABELIAN_GROUP_PERMUTED_WRT(op_tag)(var_a, var_b, var_c);\
+ CHECK_ABELIAN_GROUP_PERMUTED_WRT(op_tag)(var_a, var_b, ass_a);\
+ CHECK_ABELIAN_GROUP_PERMUTED_WRT(op_tag)(var_a, var_b, ass_b);\
+}
+
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT (plus)
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT_EQUAL(plus)
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT (pipe)
+DEFINE_ABELIAN_GROUP_CHECK_INSTANCE_WRT_EQUAL(pipe)
+
+#define CHECK_ABELIAN_GROUP_INSTANCE_WRT(op_tag) check_abelian_group_instance_wrt_##op_tag
+#define CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(op_tag) check_abelian_group_instance_wrt_equal_##op_tag
+
+}} // namespace icl boost
+
+#endif // BOOST_LIBS_ICL_TEST_ICL_LAWS_HPP_JOFA_090119
+
diff --git a/src/boost/libs/icl/test/test_misc_/test_misc.cpp b/src/boost/libs/icl/test/test_misc_/test_misc.cpp
new file mode 100644
index 000000000..8d3961a7a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_misc_/test_misc.cpp
@@ -0,0 +1,266 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::misc unit test
+
+#define BOOST_ICL_TEST_CHRONO
+
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <vector>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/type_traits/is_same.hpp>
+#include <boost/icl/rational.hpp>
+
+#include <boost/icl/detail/interval_morphism.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+
+BOOST_AUTO_TEST_CASE(test_law_complementarity)
+{
+ //LAW Inner complementarity: x + between(x) == hull(x)
+ //LAW: length(x) + length(between(x)) = length(hull(x))
+ typedef interval_set<rational<int> > RatioSetT;
+ typedef RatioSetT::interval_type IntervalT;
+ typedef RatioSetT::element_type RatT;
+ typedef RatioSetT::difference_type DiffT;
+
+ RatioSetT set_a;
+ (((set_a += IntervalT(RatT(0), RatT(1) ) )
+ -= IntervalT(RatT(1,9), RatT(2,9)) )
+ -= IntervalT(RatT(3,9), RatT(4,9)) )
+ -= IntervalT(RatT(5,9), RatT(6,9));
+
+ RatioSetT between_a = RatioSetT(hull(set_a)) - set_a;
+ RatioSetT between_a2;
+ between(between_a2, set_a);
+ BOOST_CHECK_EQUAL( between_a, between_a2 );
+
+ DiffT len_set_a = length(set_a);
+ DiffT len_between_a = length(between_a);
+
+ //cout << set_a << " length= " << len_set_a << endl;
+ //cout << between_a << " length= " << len_between_a << endl;
+
+ RatioSetT span_a = set_a + between_a;
+ RatioSetT hull_a = RatioSetT(hull(set_a));
+ //cout << span_a << endl;
+
+ BOOST_CHECK_EQUAL( span_a, hull_a );
+ BOOST_CHECK_EQUAL( len_set_a + len_between_a, length(hull_a) );
+
+ BOOST_CHECK((has_inner_complementarity<RatioSetT,RatioSetT>(set_a)));
+ BOOST_CHECK((has_length_complementarity(set_a)));
+ BOOST_CHECK((has_length_as_distance<RatioSetT,RatioSetT>(set_a)));
+}
+
+
+BOOST_AUTO_TEST_CASE(test_between)
+{
+ //LAW: between(a,b) == between(b,a);
+ typedef int T;
+ typedef interval<T>::type IntervalT;
+
+ IntervalT itv_a = I_D(1,3);
+ IntervalT itv_b = I_D(5,7);
+
+ IntervalT beween_a_b = between(itv_a, itv_b);
+ IntervalT beween_b_a = between(itv_b, itv_a);
+
+ //cout << beween_a_b << endl;
+ //cout << beween_b_a << endl;
+ BOOST_CHECK_EQUAL( beween_a_b, beween_b_a );
+}
+
+
+BOOST_AUTO_TEST_CASE(element_iteration)
+{
+ interval_map<int,int> map_a;
+ map_a += make_pair(interval<int>::right_open(0,3),1);
+ //cout << map_a << endl;
+
+ //for(interval_map<int,int>::element_iterator elem = elements_begin(map_a);
+ // elem != elements_end(map_a); elem++)
+ // cout << "(" << elem->first << "," << elem->second << ")";
+ //cout << "\n-------------------------------------\n";
+
+ std::pair<const int, int> search_pair(2,1);
+
+ //interval_map<int,int>::element_const_iterator found
+ interval_map<int,int>::element_iterator found
+ = std::find(elements_begin(map_a), elements_end(map_a), search_pair);
+ // cout << "(" << found->first << "," << found->second << ")\n";
+ BOOST_CHECK_EQUAL( found->first, 2 );
+ BOOST_CHECK_EQUAL( found->second, 1 );
+
+ // Assignment of an associated value via element_iterator
+ const_cast<int&>(found->second) = 2;
+ // cout << map_a << endl;
+ BOOST_CHECK_EQUAL( map_a.begin()->second, 2 );
+}
+
+
+BOOST_AUTO_TEST_CASE(test_interval_bounds_1)
+{
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::closed()), "[");
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::right_open()), "[");
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::left_open()), "(");
+ BOOST_CHECK_EQUAL(left_bracket(interval_bounds::open()), "(");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::closed()), "]");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::right_open()), ")");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::left_open()), "]");
+ BOOST_CHECK_EQUAL(right_bracket(interval_bounds::open()), ")");
+
+ continuous_interval<double> a_1 = continuous_interval<double>(-5.0, -2.3, interval_bounds::closed());
+ continuous_interval<double> b_1 = continuous_interval<double>(-2.6, 4.0, interval_bounds::closed());
+
+ split_interval_set<double> a, b, a_o_b, b_o_a;
+ a_o_b += a_1;
+ a_o_b += b_1;
+
+ b_o_a += b_1;
+ b_o_a += a_1;
+
+ BOOST_CHECK_EQUAL(a_o_b, b_o_a);
+
+ continuous_interval<double> c_1 = continuous_interval<double>(1.0, 3.0, interval_bounds::closed());
+ continuous_interval<double> b_2 = right_subtract(b_1, c_1);
+
+ BOOST_CHECK_EQUAL(b_2.bounds(), interval_bounds::right_open());
+ BOOST_CHECK_EQUAL(icl::bounds(b_2), interval_bounds::right_open());
+
+ continuous_interval<double> L0T = continuous_interval<double>(0.0, 0.0, interval_bounds::closed());
+ continuous_interval<double> C0T = continuous_interval<double>(0.0, 0.0, interval_bounds::left_open());
+ continuous_interval<double> L0D = continuous_interval<double>(0.0, 0.0, interval_bounds::right_open());
+ continuous_interval<double> C0D = continuous_interval<double>(0.0, 0.0, interval_bounds::open());
+
+ BOOST_CHECK_EQUAL(icl::is_empty(L0T), false);
+ BOOST_CHECK_EQUAL(icl::is_empty(C0T), true);
+ BOOST_CHECK_EQUAL(icl::is_empty(L0D), true);
+ BOOST_CHECK_EQUAL(icl::is_empty(C0D), true);
+
+
+ continuous_interval<double> L0_1T = continuous_interval<double>(0.0, 1.0, interval_bounds::closed());
+ continuous_interval<double> L1_2T = continuous_interval<double>(1.0, 2.0, interval_bounds::closed());
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1T, L1_2T), false);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1T, L1_2T) == interval_bounds::open(), true);
+
+ continuous_interval<double> L0_1D = continuous_interval<double>(0.0, 1.0, interval_bounds::right_open());
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1D, L1_2T), true);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1D, L1_2T) == interval_bounds::right_open(), true);
+
+ continuous_interval<double> C1_2T = continuous_interval<double>(1.0, 2.0, interval_bounds::left_open());
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1T, C1_2T), true);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1T, C1_2T) == interval_bounds::left_open(), true);
+
+ BOOST_CHECK_EQUAL(icl::exclusive_less(L0_1D, C1_2T), true);
+ BOOST_CHECK_EQUAL(icl::inner_bounds(L0_1D, C1_2T) == interval_bounds::closed(), true);
+
+ BOOST_CHECK_EQUAL(static_cast<int>(icl::right(L0_1T.bounds()).bits()), 1);
+ BOOST_CHECK_EQUAL(static_cast<int>(icl::right(L0_1D.bounds()).bits()), 0);
+
+ BOOST_CHECK_EQUAL(icl::right_bounds(L0_1D, L0_1T), interval_bounds::left_open());
+}
+
+
+BOOST_AUTO_TEST_CASE(test_infinities)
+{
+ BOOST_CHECK(( has_std_infinity<double>::value));
+ BOOST_CHECK((!has_std_infinity<int>::value));
+
+ BOOST_CHECK(( has_max_infinity<int>::value ));
+ BOOST_CHECK((!has_max_infinity<double>::value ));
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( numeric_infinity<double>::value(), (std::numeric_limits<double>::infinity)() );
+ BOOST_CHECK_EQUAL( numeric_infinity<int>::value(), (std::numeric_limits<int>::max)() );
+ BOOST_CHECK_EQUAL( numeric_infinity<std::string>::value(), std::string() );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( icl::infinity<double>::value(), (std::numeric_limits<double>::infinity)() );
+ BOOST_CHECK_EQUAL( icl::infinity<int>::value(), (std::numeric_limits<int>::max)() );
+ BOOST_CHECK_EQUAL( icl::infinity<std::string>::value(), icl::identity_element<std::string>::value() );
+
+ //--------------------------------------------------------------------------
+ BOOST_CHECK_EQUAL( icl::infinity<boost::chrono::duration<double> >::value()
+ , boost::chrono::duration<double>((std::numeric_limits<double>::infinity)()) );
+ BOOST_CHECK_EQUAL( icl::infinity<boost::chrono::duration<int> >::value()
+ , boost::chrono::duration<int>((std::numeric_limits<int>::max)()) );
+}
+
+
+BOOST_AUTO_TEST_CASE(test_difference_types)
+{
+ BOOST_CHECK(( boost::is_same< int, difference_type_of<int>::type >::value ));
+ BOOST_CHECK(( boost::is_same< double, difference_type_of<double>::type >::value ));
+ BOOST_CHECK(( boost::is_same< std::ptrdiff_t, difference_type_of<int*>::type >::value ));
+
+ BOOST_CHECK(( has_difference_type<std::string>::value ));
+ BOOST_CHECK(( boost::is_same< std::string::difference_type, difference_type_of<std::string>::type >::value ));
+ BOOST_CHECK(( boost::is_same< std::ptrdiff_t, difference_type_of<std::string>::type >::value ));
+
+ BOOST_CHECK(( boost::is_same< boost::chrono::duration<int>
+ , difference_type_of<boost::chrono::duration<int> >::type >::value ));
+ BOOST_CHECK(( boost::is_same< boost::chrono::duration<double>
+ , difference_type_of<boost::chrono::duration<double> >::type >::value ));
+
+ BOOST_CHECK(( boost::is_same< Now::time_point::duration
+ , difference_type_of<Now::time_point>::type >::value ));
+
+ typedef boost::chrono::time_point<Now, boost::chrono::duration<double> > contin_timeT;
+ BOOST_CHECK(( boost::is_same< contin_timeT::duration
+ , difference_type_of<contin_timeT>::type >::value ));
+
+ typedef boost::chrono::time_point<Now, boost::chrono::duration<int> > discr_timeT;
+ BOOST_CHECK(( boost::is_same< boost::chrono::duration<int>
+ , difference_type_of<discr_timeT>::type >::value ));
+}
+
+BOOST_AUTO_TEST_CASE(test_size_types)
+{
+ BOOST_CHECK(( boost::is_same< std::size_t, size_type_of<int>::type >::value ));
+ BOOST_CHECK(( boost::is_same< std::size_t, size_type_of<double>::type >::value ));
+ BOOST_CHECK(( boost::is_same< std::size_t, size_type_of<int*>::type >::value ));
+ BOOST_CHECK(( boost::is_same< std::size_t, size_type_of<std::string>::type >::value ));
+ BOOST_CHECK(( boost::is_same< boost::chrono::duration<int>
+ , size_type_of<boost::chrono::duration<int> >::type >::value ));
+ BOOST_CHECK(( boost::is_same< boost::chrono::duration<double>
+ , size_type_of<boost::chrono::duration<double> >::type >::value ));
+
+ typedef boost::chrono::time_point<Now, boost::chrono::duration<int> > discr_timeT;
+ BOOST_CHECK(( boost::is_same< boost::chrono::duration<int>
+ , size_type_of<discr_timeT>::type >::value ));
+
+ typedef boost::chrono::time_point<Now, boost::chrono::duration<double> > contin_timeT;
+ BOOST_CHECK(( boost::is_same< contin_timeT::duration
+ , size_type_of<contin_timeT>::type >::value ));
+}
+
+BOOST_AUTO_TEST_CASE(test_chrono_identity_elements)
+{
+ //boost::chrono::duration<int> idel_i = icl::identity_element<boost::chrono::duration<int> >::value();
+ //cout << "dur<int>0 = " << idel_i << endl;
+ //boost::chrono::duration<double> idel_d = icl::identity_element<boost::chrono::duration<int> >::value();
+ //cout << "dur<dbl>0 = " << idel_d << endl;
+
+ BOOST_CHECK(( boost::is_same< boost::chrono::duration<int>
+ , size_type_of<boost::chrono::duration<int> >::type >::value ));
+}
diff --git a/src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj b/src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj
new file mode 100644
index 000000000..48096bb4b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D4A9FA0}</ProjectGuid>
+ <RootNamespace>Test_misc</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_misc.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj.filters b/src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj.filters
new file mode 100644
index 000000000..634bda597
--- /dev/null
+++ b/src/boost/libs/icl/test/test_misc_/vc10_test_misc.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_misc.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_misc_/vc9_test_misc.vcproj b/src/boost/libs/icl/test/test_misc_/vc9_test_misc.vcproj
new file mode 100644
index 000000000..a03ece0c2
--- /dev/null
+++ b/src/boost/libs/icl/test/test_misc_/vc9_test_misc.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_misc"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}"
+ RootNamespace="Test_misc"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_misc.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_partial_icl_quantifier_/test_partial_icl_quantifier.cpp b/src/boost/libs/icl/test/test_partial_icl_quantifier_/test_partial_icl_quantifier.cpp
new file mode 100644
index 000000000..68d022b88
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_icl_quantifier_/test_partial_icl_quantifier.cpp
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::partial_icl_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_icl_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_partial_icl_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj b/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj
new file mode 100644
index 000000000..8b36cb36b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5A-FD5B7D5A9F9F}</ProjectGuid>
+ <RootNamespace>Test_partial_icl_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_partial_icl_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj.filters b/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj.filters
new file mode 100644
index 000000000..f4dcaf46b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc10_test_partial_icl_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_partial_icl_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc9_test_partial_icl_quantifier.vcproj b/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc9_test_partial_icl_quantifier.vcproj
new file mode 100644
index 000000000..e2e60383e
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_icl_quantifier_/vc9_test_partial_icl_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_partial_icl_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4A-FD5B7D5A9F9F}"
+ RootNamespace="Test_partial_icl_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_partial_icl_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_partial_icl_quantifier_cases.hpp b/src/boost/libs/icl/test/test_partial_icl_quantifier_cases.hpp
new file mode 100644
index 000000000..6cded3bc6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_icl_quantifier_cases.hpp
@@ -0,0 +1,76 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+#define BOOST_ICL_TEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
+//------------------------------------------------------------------------------
+// partial_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_icl_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_icl_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_monoid_et_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_icl_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_icl_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_abelian_monoid_et_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+// x - x = 0 | partial absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_icl_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// partial_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_icl_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_icl_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_monoid_et_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_icl_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_icl_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_abelian_monoid_et_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+// x - x =d= 0 | partial enricher
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_icl_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types, T, bicremental_types)
+{ icl_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+//------------------------------------------------------------------------------
+// Containedness
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE
+(test_itl_partial_icl_quantifier_check_containedness_4_bicremental_types)
+{ icl_quantifier_check_containedness_4_bicremental_types<bicremental_type_1, mono, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE
+(test_itl_partial_enricher_icl_quantifier_check_containedness_4_bicremental_types)
+{ icl_quantifier_check_containedness_4_bicremental_types<bicremental_type_1, mono, partial_enricher, INTERVAL_MAP>();}
+
+
+#endif // BOOST_ICL_TEST_PARTIAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
diff --git a/src/boost/libs/icl/test/test_partial_interval_quantifier_/test_partial_interval_quantifier.cpp b/src/boost/libs/icl/test/test_partial_interval_quantifier_/test_partial_interval_quantifier.cpp
new file mode 100644
index 000000000..728886432
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_interval_quantifier_/test_partial_interval_quantifier.cpp
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::partial_interval_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_partial_interval_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj b/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj
new file mode 100644
index 000000000..fdda11902
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5A-FD5B7D2A9F9F}</ProjectGuid>
+ <RootNamespace>Test_partial_interval_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_partial_interval_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj.filters b/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj.filters
new file mode 100644
index 000000000..4b531495d
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc10_test_partial_interval_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_partial_interval_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj b/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj
new file mode 100644
index 000000000..f5a8eab5f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_interval_quantifier_/vc9_test_partial_interval_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_partial_interval_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}"
+ RootNamespace="Test_partial_interval_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_partial_interval_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_partial_interval_quantifier_cases.hpp b/src/boost/libs/icl/test/test_partial_interval_quantifier_cases.hpp
new file mode 100644
index 000000000..958294ecf
--- /dev/null
+++ b/src/boost/libs/icl/test/test_partial_interval_quantifier_cases.hpp
@@ -0,0 +1,86 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_PARTIAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_PARTIAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
+
+//------------------------------------------------------------------------------
+// partial_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_itv_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_itv_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, partial_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_itv_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+// x - x = 0 | partial absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types<T, int, partial_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// partial_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_itv_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_itv_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, partial_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_itv_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+// x - x =d= 0 | partial enricher
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_partial_enricher_itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types<T, int, partial_enricher, INTERVAL_MAP>();}
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, partial_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, partial_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, partial_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_partial_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, partial_absorber, interval_map>();}
+
+
+
+#endif // BOOST_ICL_TEST_PARTIAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
+
diff --git a/src/boost/libs/icl/test/test_quantifier_icl_map.hpp b/src/boost/libs/icl/test/test_quantifier_icl_map.hpp
new file mode 100644
index 000000000..4c33bfe6e
--- /dev/null
+++ b/src/boost/libs/icl/test/test_quantifier_icl_map.hpp
@@ -0,0 +1,238 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_QUANTIFIER_ICL_MAP_HPP_JOFA_090119
+#define LIBS_ICL_TEST_TEST_QUANTIFIER_ICL_MAP_HPP_JOFA_090119
+
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
+}
+
+
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair1, map_pair2);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
+}
+
+
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, map_pair1, map_pair2);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
+}
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid with distinct equality for inversion
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(map_a, map_b, map_c, map_pair1, map_pair2);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(plus)(is_distinct_equal, map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(pipe)(is_distinct_equal, map_a, map_b, map_c, map_pair1, map_pair2);
+#endif
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian group EANIC
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_group_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
+}
+
+//------------------------------------------------------------------------------
+// (0 - x) + x =d= 0 |
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+ typedef icl::map<T,U,Trt> MapT;
+
+ IntervalMapT itv_map_a, itv_map_b, itv_map_c;
+ itv_map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ itv_map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ itv_map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ MapT map_a, map_b, map_c;
+ segmental::atomize(map_a, itv_map_a);
+ segmental::atomize(map_b, itv_map_b);
+ segmental::atomize(map_c, itv_map_c);
+
+ typename MapT::value_type map_pair1 = sK_v(5,1);
+ typename MapT::value_type map_pair2 = sK_v(9,3);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, map_pair1, map_pair2);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(plus) (is_distinct_equal, map_a, map_b, map_c, map_pair1, map_pair2);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(pipe) (is_distinct_equal, map_a, map_b, map_c, map_pair1, map_pair2);
+#endif
+}
+
+#endif // LIBS_ICL_TEST_TEST_QUANTIFIER_ICL_MAP_HPP_JOFA_090119
+
diff --git a/src/boost/libs/icl/test/test_quantifier_map_shared.hpp b/src/boost/libs/icl/test/test_quantifier_map_shared.hpp
new file mode 100644
index 000000000..4abe45505
--- /dev/null
+++ b/src/boost/libs/icl/test/test_quantifier_map_shared.hpp
@@ -0,0 +1,190 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_QUANTIFIER_MAP_SHARED_HPP_JOFA_090119
+#define LIBS_ICL_TEST_TEST_QUANTIFIER_MAP_SHARED_HPP_JOFA_090119
+
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(map_a, map_b, map_c, val_pair, map_pair);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid with distinct equality for inversion
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_partial_invertive_monoid_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus)(map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe)(map_a, map_b, map_c, val_pair, map_pair);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(plus)(is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT_EQUAL(pipe)(is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+#endif
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian group EANIC
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_group_plus_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+}
+
+//------------------------------------------------------------------------------
+// (0 - x) + x =d= 0 |
+//------------------------------------------------------------------------------
+template <class T, class U, class Trt,
+ ICL_IntervalMap_TEMPLATE(_T,_U,Traits,Trt) IntervalMap>
+void itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types()
+{
+ typedef IntervalMap<T,U,Trt> IntervalMapT;
+
+ IntervalMapT map_a, map_b, map_c;
+ map_a.add(IDv(3,6,1)).add(IIv(5,7,1));
+ map_b.add(CDv(1,3,1)).add(IDv(8,9,1));
+ map_c.add(IDv(0,9,2)).add(IIv(3,6,1)).add(IDv(5,7,1));
+
+ typename IntervalMapT::interval_mapping_type val_pair = IDv(6,9,1);
+ mapping_pair<T,U> map_pair = K_v(5,1);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (map_a, map_b, map_c, val_pair, map_pair);
+
+#if !defined(_MSC_VER) || (_MSC_VER >= 1400) // 1310==MSVC-7.1 1400 ==MSVC-8.0
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(plus) (is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+ CHECK_ABELIAN_GROUP_INSTANCE_WRT_EQUAL(pipe) (is_distinct_equal, map_a, map_b, map_c, val_pair, map_pair);
+#endif
+}
+
+#endif // LIBS_ICL_TEST_TEST_QUANTIFIER_MAP_SHARED_HPP_JOFA_090119
+
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_/test_separate_interval_set.cpp b/src/boost/libs/icl/test/test_separate_interval_set_/test_separate_interval_set.cpp
new file mode 100644
index 000000000..0d868d169
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_/test_separate_interval_set.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::separate_interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET separate_interval_set
+#include "../test_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj b/src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj
new file mode 100644
index 000000000..bc7da6c4c
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9C}</ProjectGuid>
+ <RootNamespace>Test_separate_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_separate_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp" />
+ <ClInclude Include="..\test_interval_set_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ClassDiagram1.cd" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj.filters b/src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj.filters
new file mode 100644
index 000000000..986351d9a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_/vc10_test_separate_interval_set.vcxproj.filters
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_separate_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\separate_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_interval_set_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="ClassDiagram1.cd" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_/vc9_test_separate_interval_set.vcproj b/src/boost/libs/icl/test/test_separate_interval_set_/vc9_test_separate_interval_set.vcproj
new file mode 100644
index 000000000..6b0e812a4
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_/vc9_test_separate_interval_set.vcproj
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_separate_interval_set"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}"
+ RootNamespace="Test_separate_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_separate_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\separate_interval_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_interval_set_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ClassDiagram1.cd"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_infix_/test_separate_interval_set_infix.cpp b/src/boost/libs/icl/test/test_separate_interval_set_infix_/test_separate_interval_set_infix.cpp
new file mode 100644
index 000000000..445b57502
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_infix_/test_separate_interval_set_infix.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::separate_interval_set_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET separate_interval_set
+#include "../test_interval_set_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj b/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj
new file mode 100644
index 000000000..8d1ae1953
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-35D2623E950E}</ProjectGuid>
+ <RootNamespace>test_separate_interval_set_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_separate_interval_set_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj.filters b/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj.filters
new file mode 100644
index 000000000..f11681f73
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc10_test_separate_interval_set_infix.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_separate_interval_set_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj b/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj
new file mode 100644
index 000000000..0b42280b6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_separate_interval_set_infix_/vc9_test_separate_interval_set_infix.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_separate_interval_set_infix"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-35D2623E950E}"
+ RootNamespace="test_separate_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_separate_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_set_icl_set.hpp b/src/boost/libs/icl/test/test_set_icl_set.hpp
new file mode 100644
index 000000000..92e666df8
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set.hpp
@@ -0,0 +1,139 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_SET_ICL_SET_HPP_JOFA_090119
+#define LIBS_ICL_TEST_TEST_SET_ICL_SET_HPP_JOFA_090119
+
+#include "portability.hpp"
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void itl_set_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef std::set<T> SetT;
+
+ IntervalSetT itv_set_a, itv_set_b, itv_set_c;
+ itv_set_a.add(I_D(3,6)).add(I_I(5,7));
+ itv_set_b.add(C_D(1,3)).add(I_D(8,9));
+ itv_set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ SetT set_a, set_b, set_c;
+ segmental::atomize(set_a, itv_set_a);
+ segmental::atomize(set_b, itv_set_b);
+ segmental::atomize(set_c, itv_set_c);
+
+ T val1 = MK_v(7);
+ T val2 = MK_v(5);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, val1, val2);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, val1, val2);
+}
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void itl_set_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef std::set<T> SetT;
+
+ IntervalSetT itv_set_a, itv_set_b, itv_set_c;
+ itv_set_a.add(I_D(3,6)).add(I_I(5,7));
+ itv_set_b.add(C_D(1,3)).add(I_D(8,9));
+ itv_set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ SetT set_a, set_b, set_c;
+ segmental::atomize(set_a, itv_set_a);
+ segmental::atomize(set_b, itv_set_b);
+ segmental::atomize(set_c, itv_set_c);
+
+ T val1 = MK_v(7);
+ T val2 = MK_v(5);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (set_a, set_b, set_c, val1, val2);
+ CHECK_MONOID_INSTANCE_WRT(caret)(set_a, set_b, set_c, val1, val2);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void itl_set_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef std::set<T> SetT;
+
+ IntervalSetT itv_set_a, itv_set_b, itv_set_c;
+ itv_set_a.add(I_D(3,6)).add(I_I(5,7));
+ itv_set_b.add(C_D(1,3)).add(I_D(8,9));
+ itv_set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ SetT set_a, set_b, set_c;
+ segmental::atomize(set_a, itv_set_a);
+ segmental::atomize(set_b, itv_set_b);
+ segmental::atomize(set_c, itv_set_c);
+
+ T val1 = MK_v(7);
+ T val2 = MK_v(5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, val1, val2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, val1, val2);
+}
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void itl_set_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef std::set<T> SetT;
+
+ IntervalSetT itv_set_a, itv_set_b, itv_set_c;
+ itv_set_a.add(I_D(3,6)).add(I_I(5,7));
+ itv_set_b.add(C_D(1,3)).add(I_D(8,9));
+ itv_set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ SetT set_a, set_b, set_c;
+ segmental::atomize(set_a, itv_set_a);
+ segmental::atomize(set_b, itv_set_b);
+ segmental::atomize(set_c, itv_set_c);
+
+ T val1 = MK_v(7);
+ T val2 = MK_v(5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (set_a, set_b, set_c, val1, val2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(set_a, set_b, set_c, val1, val2);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void itl_set_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef std::set<T> SetT;
+
+ IntervalSetT itv_set_a, itv_set_b, itv_set_c;
+ itv_set_a.add(I_D(3,6)).add(I_I(5,7));
+ itv_set_b.add(C_D(1,3)).add(I_D(8,9));
+ itv_set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ SetT set_a, set_b, set_c;
+ segmental::atomize(set_a, itv_set_a);
+ segmental::atomize(set_b, itv_set_b);
+ segmental::atomize(set_c, itv_set_c);
+
+ T val1 = MK_v(7);
+ T val2 = MK_v(5);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, val1, val2);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, val1, val2);
+}
+
+#endif // LIBS_ICL_TEST_TEST_SET_ICL_SET_HPP_JOFA_090119
diff --git a/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set.cpp b/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set.cpp
new file mode 100644
index 000000000..661028606
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set.cpp
@@ -0,0 +1,41 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::set_itl_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <set>
+#include <boost/interprocess/containers/set.hpp>
+#include <boost/icl/associative_element_container.hpp>
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_set_icl_set.hpp"
+
+#include "test_set_icl_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_cases.hpp b/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_cases.hpp
new file mode 100644
index 000000000..13f21cbab
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_cases.hpp
@@ -0,0 +1,35 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_SET_ICL_SET_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_SET_ICL_SET_CASES_HPP_JOFA_090701
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
+ //MEMO: interval_set
+// is used here pragmatically to be able to recycle test code for initializing
+// sets. These interval_set are then converted to icl::set by atomize.
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_et_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+#endif // BOOST_ICL_TEST_SET_ICL_SET_CASES_HPP_JOFA_090701
+
+
diff --git a/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_shared.cpp b/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_shared.cpp
new file mode 100644
index 000000000..9432d4df2
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set_/test_set_icl_set_shared.cpp
@@ -0,0 +1,28 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_et_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
+
diff --git a/src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj b/src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj
new file mode 100644
index 000000000..2ee7889f6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-C6CEBFCE352A}</ProjectGuid>
+ <RootNamespace>Test_set_itl_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_set_icl_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj.filters b/src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj.filters
new file mode 100644
index 000000000..b2cd77879
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set_/vc10_test_set_icl_set.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_set_icl_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_set_icl_set_/vc9_test_set_icl_set.vcproj b/src/boost/libs/icl/test/test_set_icl_set_/vc9_test_set_icl_set.vcproj
new file mode 100644
index 000000000..468ca9b9d
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set_/vc9_test_set_icl_set.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_set_icl_set"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}"
+ RootNamespace="Test_set_itl_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_set_icl_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_set_icl_set_cases.hpp b/src/boost/libs/icl/test/test_set_icl_set_cases.hpp
new file mode 100644
index 000000000..2100b7e60
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_icl_set_cases.hpp
@@ -0,0 +1,29 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_SET_ICL_SET_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_SET_ICL_SET_CASES_HPP_JOFA_090701
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_monoid_plus_4_bicremental_types<T, INTERVAL_SET>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_plus_4_bicremental_types<T, INTERVAL_SET>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_abelian_monoid_et_4_bicremental_types, T, discrete_types)
+{ itl_set_check_abelian_monoid_et_4_bicremental_types<T, INTERVAL_SET>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_itl_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, discrete_types)
+{ itl_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, INTERVAL_SET>();}
+
+#endif // BOOST_ICL_TEST_SET_ICL_SET_CASES_HPP_JOFA_090701
+
+
diff --git a/src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set.cpp b/src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set.cpp
new file mode 100644
index 000000000..abb05ef54
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::set_interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_set.hpp>
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/detail/interval_morphism.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_set_interval_set_shared.hpp"
+
+#include "test_set_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set_cases.hpp b/src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set_cases.hpp
new file mode 100644
index 000000000..7f0b64f5b
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_interval_set_/test_set_interval_set_cases.hpp
@@ -0,0 +1,118 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090701
+
+//------------------------------------------------------------------------------
+// interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// separate_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_separate_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, separate_interval_set>();}
+
+
+//------------------------------------------------------------------------------
+// split_interval_set
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_monoid_plus_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_plus_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_abelian_monoid_et_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_split_interval_set_check_partial_invertive_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_partial_invertive_monoid_plus_4_bicremental_types<T, split_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Containedness
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_set_check_containedness_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_split_interval_set_check_containedness_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<T, split_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_separate_interval_set_check_containedness_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_containedness_4_bicremental_types<T, separate_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Inner Complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_set_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_separate_interval_set_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_split_interval_set_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_inner_complementarity_4_bicremental_types<T, split_interval_set>();}
+
+//------------------------------------------------------------------------------
+// Inner Complement and Distance
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_icl_interval_set_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<T, interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_separate_interval_set_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<T, separate_interval_set>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(fastest_itl_split_interval_set_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ interval_set_check_length_complementarity_4_bicremental_types<T, split_interval_set>();}
+
+
+
+#endif // BOOST_ICL_TEST_SET_INTERVAL_SET_CASES_HPP_JOFA_090701
+
diff --git a/src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj b/src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj
new file mode 100644
index 000000000..b285fe562
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-C6CEBFCE3529}</ProjectGuid>
+ <RootNamespace>Test_set_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_set_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj.filters b/src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj.filters
new file mode 100644
index 000000000..fb69c35d3
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_interval_set_/vc10_test_set_interval_set.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_set_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_set_interval_set_/vc9_test_set_interval_set.vcproj b/src/boost/libs/icl/test/test_set_interval_set_/vc9_test_set_interval_set.vcproj
new file mode 100644
index 000000000..7542eb285
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_interval_set_/vc9_test_set_interval_set.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_set_interval_set"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}"
+ RootNamespace="Test_set_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_set_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_set_interval_set_shared.hpp b/src/boost/libs/icl/test/test_set_interval_set_shared.hpp
new file mode 100644
index 000000000..e4ac13ea6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_set_interval_set_shared.hpp
@@ -0,0 +1,195 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2010: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef LIBS_ICL_TEST_TEST_SET_INTERVAL_SET_SHARED_HPP_JOFA_090119
+#define LIBS_ICL_TEST_TEST_SET_INTERVAL_SET_SHARED_HPP_JOFA_090119
+
+#include "portability.hpp"
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void make_3_interval_sets_and_derivatives_1
+ (ICL_PORT_msvc_7_1_IntervalSet(T)& set_a,
+ ICL_PORT_msvc_7_1_IntervalSet(T)& set_b,
+ ICL_PORT_msvc_7_1_IntervalSet(T)& set_c,
+ typename ICL_PORT_msvc_7_1_IntervalSet(T)::segment_type& segm_d,
+ typename ICL_PORT_msvc_7_1_IntervalSet(T)::element_type& elem_e)
+{
+ segm_d = I_D(6,9);
+ elem_e = MK_v(5);
+
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+}
+
+
+
+//------------------------------------------------------------------------------
+// Monoid EAN
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type inter_val1 = I_D(6,9);
+ typename IntervalSetT::segment_type inter_val2 = I_I(5,5);
+
+ CHECK_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, inter_val1, inter_val2);
+ CHECK_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, inter_val1, inter_val2);
+}
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_monoid_et_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ //CJ typedef typename IntervalSetT::interval_type IntervalT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type inter_val1 = I_D(6,9);
+ typename IntervalSetT::segment_type inter_val2 = I_I(5,5);
+
+ CHECK_MONOID_INSTANCE_WRT(et) (set_a, set_b, set_c, inter_val1, inter_val2);
+ CHECK_MONOID_INSTANCE_WRT(caret)(set_a, set_b, set_c, inter_val1, inter_val2);
+}
+
+//------------------------------------------------------------------------------
+// Abelian monoid EANC
+//------------------------------------------------------------------------------
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_abelian_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type inter_val1 = I_D(6,9);
+ typename IntervalSetT::segment_type inter_val2 = I_I(5,5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, inter_val1, inter_val2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, inter_val1, inter_val2);
+}
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_abelian_monoid_et_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type inter_val1 = I_D(6,9);
+ typename IntervalSetT::segment_type inter_val2 = I_I(5,5);
+
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(et) (set_a, set_b, set_c, inter_val1, inter_val2);
+ CHECK_ABELIAN_MONOID_INSTANCE_WRT(caret)(set_a, set_b, set_c, inter_val1, inter_val2);
+}
+
+
+//------------------------------------------------------------------------------
+// Abelian partial invertive monoid
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_partial_invertive_monoid_plus_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+
+ IntervalSetT set_a, set_b, set_c;
+ set_a.add(I_D(3,6)).add(I_I(5,7));
+ set_b.add(C_D(1,3)).add(I_D(8,9));
+ set_c.add(I_D(0,9)).add(I_I(3,6)).add(I_D(5,7));
+
+ typename IntervalSetT::segment_type inter_val1 = I_D(6,9);
+ typename IntervalSetT::segment_type inter_val2 = I_I(5,5);
+
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(plus) (set_a, set_b, set_c, inter_val1, inter_val2);
+ CHECK_PARTIAL_INVERTIVE_MONOID_INSTANCE_WRT(pipe) (set_a, set_b, set_c, inter_val1, inter_val2);
+}
+
+
+//------------------------------------------------------------------------------
+// Containedness
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_containedness_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::segment_type segment_type;
+ typedef typename IntervalSetT::element_type element_type;
+
+ IntervalSetT set_a, set_b, set_c;
+ segment_type segm_d;
+ element_type elem_e;
+ make_3_interval_sets_and_derivatives_1(set_a, set_b, set_c, segm_d, elem_e);
+
+ check_intersection_containedness(set_a, set_c);
+ check_intersection_containedness(set_b, segm_d);
+ check_intersection_containedness(set_c, elem_e);
+
+ check_union_containedness(set_c, set_c);
+ check_union_containedness(set_b, segm_d);
+ check_union_containedness(set_a, elem_e);
+}
+
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_inner_complementarity_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::segment_type segment_type;
+ typedef typename IntervalSetT::element_type element_type;
+
+ IntervalSetT set_a, set_b, set_c;
+ segment_type segm_d;
+ element_type elem_e;
+ make_3_interval_sets_and_derivatives_1(set_a, set_b, set_c, segm_d, elem_e);
+
+ has_inner_complementarity<IntervalSetT,IntervalSetT>(set_a);
+ has_inner_complementarity<IntervalSetT,IntervalSetT>(set_b);
+ has_inner_complementarity<IntervalSetT,IntervalSetT>(set_c);
+}
+
+template <class T, ICL_IntervalSet_TEMPLATE(_T) IntervalSet>
+void interval_set_check_length_complementarity_4_bicremental_types()
+{
+ typedef IntervalSet<T> IntervalSetT;
+ typedef typename IntervalSetT::segment_type segment_type;
+ typedef typename IntervalSetT::element_type element_type;
+
+ IntervalSetT set_a, set_b, set_c;
+ segment_type segm_d;
+ element_type elem_e;
+ make_3_interval_sets_and_derivatives_1(set_a, set_b, set_c, segm_d, elem_e);
+
+ has_length_complementarity(set_a);
+ has_length_complementarity(set_b);
+ has_length_complementarity(set_c);
+
+ has_length_as_distance<IntervalSetT,IntervalSetT>(set_a);
+ has_length_as_distance<IntervalSetT,IntervalSetT>(set_b);
+ has_length_as_distance<IntervalSetT,IntervalSetT>(set_c);
+}
+
+#endif // LIBS_ICL_TEST_TEST_SET_INTERVAL_SET_SHARED_HPP_JOFA_090119
diff --git a/src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map.cpp b/src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map.cpp
new file mode 100644
index 000000000..74b49d144
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_map unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+#include "../test_functions.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP split_interval_map
+#include "../test_interval_map_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map_shared.cpp b/src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map_shared.cpp
new file mode 100644
index 000000000..c98bdc8b9
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_/test_split_interval_map_shared.cpp
@@ -0,0 +1,72 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_map_fundamentals_4_ordered_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_map_ctor_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_map_add_sub_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_map_distinct_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_distinct_4_bicremental_continuous_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_map_isolate_4_bicremental_continuous_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_contains_4_bicremental_types, T, bicremental_types)
+{ interval_map_contains_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_operators_4_bicremental_types, T, bicremental_types)
+{ interval_map_operators_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_intersect_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_erase_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_erase_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_base_is_disjoint_4_bicremental_types, T, bicremental_types)
+{ interval_map_base_is_disjoint_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_plus_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_pipe_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_pipe_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_et_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_et_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_infix_caret_overload_4_bicremental_types, T, bicremental_types)
+{ interval_map_infix_caret_overload_4_bicremental_types<split_interval_map, T, int>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_map_find_4_bicremental_types, T, bicremental_types)
+{ interval_map_find_4_bicremental_types<split_interval_map, T, int>();}
+
diff --git a/src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj b/src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj
new file mode 100644
index 000000000..f75414f8c
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9E}</ProjectGuid>
+ <RootNamespace>Test_split_interval_map</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_map.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj.filters b/src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj.filters
new file mode 100644
index 000000000..b88413b17
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_/vc10_test_split_interval_map.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_map_/vc9_test_split_interval_map.vcproj b/src/boost/libs/icl/test/test_split_interval_map_/vc9_test_split_interval_map.vcproj
new file mode 100644
index 000000000..f15caa617
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_/vc9_test_split_interval_map.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_split_interval_map"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}"
+ RootNamespace="Test_split_interval_map"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_split_interval_map.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_split_interval_map_infix_/test_split_interval_map_infix.cpp b/src/boost/libs/icl/test/test_split_interval_map_infix_/test_split_interval_map_infix.cpp
new file mode 100644
index 000000000..13ac486eb
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_infix_/test_split_interval_map_infix.cpp
@@ -0,0 +1,37 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_map_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/separate_interval_set.hpp>
+#include <boost/icl/split_interval_set.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_map_shared are tests that should give identical results for all
+// interval_maps: interval_map and split_interval_map.
+#include "../test_interval_map_shared.hpp"
+
+#define INTERVAL_MAP split_interval_map
+#include "../test_interval_map_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj b/src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj
new file mode 100644
index 000000000..422c6a62a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9D}</ProjectGuid>
+ <RootNamespace>Test_split_interval_map_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_map_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj.filters b/src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj.filters
new file mode 100644
index 000000000..16523dd88
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_infix_/vc10_test_split_interval_map_infix.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_map_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_map_infix_/vc9_test_split_interval_map_infix.vcproj b/src/boost/libs/icl/test/test_split_interval_map_infix_/vc9_test_split_interval_map_infix.vcproj
new file mode 100644
index 000000000..5f892c5ea
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_map_infix_/vc9_test_split_interval_map_infix.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_split_interval_map_infix"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}"
+ RootNamespace="Test_split_interval_map_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_split_interval_map_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set.cpp b/src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set.cpp
new file mode 100644
index 000000000..d1e20cebe
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_set unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET split_interval_set
+#include "../test_interval_set_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set_shared.cpp b/src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set_shared.cpp
new file mode 100644
index 000000000..c53b5f779
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_/test_split_interval_set_shared.cpp
@@ -0,0 +1,60 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_fundamentals_4_ordered_types, T, ordered_types)
+{ interval_set_fundamentals_4_ordered_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_ctor_4_bicremental_types, T, bicremental_types)
+{ interval_set_ctor_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_add_sub_4_bicremental_types, T, bicremental_types)
+{ interval_set_add_sub_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_distinct_4_bicremental_types, T, bicremental_types)
+{ interval_set_distinct_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_distinct_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_distinct_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_isolate_4_bicremental_continuous_types, T, bicremental_continuous_types)
+{ interval_set_isolate_4_bicremental_continuous_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_element_compare_4_bicremental_types, T, bicremental_types)
+{ interval_set_element_compare_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_contains_4_bicremental_types, T, bicremental_types)
+{ interval_set_contains_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_operators_4_bicremental_types, T, bicremental_types)
+{ interval_set_operators_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_base_intersect_4_bicremental_types, T, bicremental_types)
+{ interval_set_base_intersect_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_infix_plus_overload_4_bicremental_types, T, bicremental_types)
+{ interval_set_infix_plus_overload_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_find_4_bicremental_types, T, bicremental_types)
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, T>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_icl_interval_set_find_4_bicremental_types, T, bicremental_types)
+{ interval_set_find_4_bicremental_types<INTERVAL_SET, T>();}
+
+
diff --git a/src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj b/src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj
new file mode 100644
index 000000000..d5351a515
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9C}</ProjectGuid>
+ <RootNamespace>Test_split_interval_set</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_set.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp" />
+ <ClInclude Include="..\test_interval_set_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj.filters b/src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj.filters
new file mode 100644
index 000000000..13ebbf46a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_/vc10_test_split_interval_set.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_set.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\boost\itl\split_interval_set.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_interval_set_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_set_/vc9_test_split_interval_set.vcproj b/src/boost/libs/icl/test/test_split_interval_set_/vc9_test_split_interval_set.vcproj
new file mode 100644
index 000000000..344580e7f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_/vc9_test_split_interval_set.vcproj
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_split_interval_set"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}"
+ RootNamespace="Test_split_interval_set"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_split_interval_set.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\..\boost\itl\split_interval_set.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_interval_set_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_split_interval_set_infix_/test_split_interval_set_infix.cpp b/src/boost/libs/icl/test/test_split_interval_set_infix_/test_split_interval_set_infix.cpp
new file mode 100644
index 000000000..fe73987ec
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_infix_/test_split_interval_set_infix.cpp
@@ -0,0 +1,34 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::split_interval_set_infix unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/split_interval_set.hpp>
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_set_shared.hpp"
+
+#define INTERVAL_SET split_interval_set
+#include "../test_interval_set_infix_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj b/src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj
new file mode 100644
index 000000000..3cf68c6e1
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{DD9C9854-3882-42B9-BFA2-35D3623E950E}</ProjectGuid>
+ <RootNamespace>test_split_interval_set_infix</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_set_infix.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj.filters b/src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj.filters
new file mode 100644
index 000000000..09b09ed19
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_infix_/vc10_test_split_interval_set_infix.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_split_interval_set_infix.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj b/src/boost/libs/icl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj
new file mode 100644
index 000000000..437140eef
--- /dev/null
+++ b/src/boost/libs/icl/test/test_split_interval_set_infix_/vc9_test_split_interval_set_infix.vcproj
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_split_interval_set_infix"
+ ProjectGUID="{DD9C9854-3882-42B9-BFA1-35D3623E950E}"
+ RootNamespace="test_split_interval_set_infix"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_split_interval_set_infix.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_total_icl_quantifier_/test_total_icl_quantifier.cpp b/src/boost/libs/icl/test/test_total_icl_quantifier_/test_total_icl_quantifier.cpp
new file mode 100644
index 000000000..95d2758ac
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_icl_quantifier_/test_total_icl_quantifier.cpp
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::total_icl_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_total_interval_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj b/src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj
new file mode 100644
index 000000000..13fa49f87
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5B-FD5B7D5A9F9F}</ProjectGuid>
+ <RootNamespace>Test_total_icl_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_total_icl_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj.filters b/src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj.filters
new file mode 100644
index 000000000..fa52ea9a6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_icl_quantifier_/vc10_test_total_icl_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_total_icl_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_total_icl_quantifier_/vc9_test_total_icl_quantifier.vcproj b/src/boost/libs/icl/test/test_total_icl_quantifier_/vc9_test_total_icl_quantifier.vcproj
new file mode 100644
index 000000000..8aa81f16d
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_icl_quantifier_/vc9_test_total_icl_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_total_icl_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}"
+ RootNamespace="Test_total_icl_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_total_icl_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_total_icl_quantifier_cases.hpp b/src/boost/libs/icl/test/test_total_icl_quantifier_cases.hpp
new file mode 100644
index 000000000..5d5c5e20f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_icl_quantifier_cases.hpp
@@ -0,0 +1,81 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_TOTAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+#define BOOST_ICL_TEST_TOTAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
+//------------------------------------------------------------------------------
+// total_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<T, double, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+
+// (0-x) + x = 0 | total absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_discrete_codomain, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_1, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<T, float, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_2, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<T, boost::rational<int>, total_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// total_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<T, float, total_enricher, INTERVAL_MAP>();}
+
+// (0-x) + x =d= 0 | total absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_discrete_codomain, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_continuous_codomain_1, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<T, double, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_continuous_codomain_2, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<T, boost::rational<int>, total_enricher, INTERVAL_MAP>();}
+
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+#endif // BOOST_ICL_TEST_TOTAL_ICL_QUANTIFIER_CASES_HPP_JOFA_100819
+
diff --git a/src/boost/libs/icl/test/test_total_interval_quantifier_/test_total_interval_quantifier.cpp b/src/boost/libs/icl/test/test_total_interval_quantifier_/test_total_interval_quantifier.cpp
new file mode 100644
index 000000000..3312785d1
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_interval_quantifier_/test_total_interval_quantifier.cpp
@@ -0,0 +1,36 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::total_interval_quantifier unit test
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <string>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/split_interval_map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+// -----------------------------------------------------------------------------
+// test_interval_set_shared are tests that should give identical results for all
+// interval_sets: interval_set, separate_interval_set and split_interval_set.
+#include "../test_interval_quantifier_shared.hpp"
+
+#define INTERVAL_MAP interval_map
+#include "../test_total_interval_quantifier_cases.hpp"
+
+
diff --git a/src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj b/src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj
new file mode 100644
index 000000000..5dc5a0e3f
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B5B-FD5B7D2A9F9F}</ProjectGuid>
+ <RootNamespace>Test_total_interval_quantifier</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_total_interval_quantifier.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj.filters b/src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj.filters
new file mode 100644
index 000000000..164577b71
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_interval_quantifier_/vc10_test_total_interval_quantifier.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_total_interval_quantifier.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj b/src/boost/libs/icl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj
new file mode 100644
index 000000000..aef47a0d6
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_interval_quantifier_/vc9_test_total_interval_quantifier.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_total_interval_quantifier"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}"
+ RootNamespace="Test_total_interval_quantifier"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalOptions="/bigobj"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_total_interval_quantifier.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_total_interval_quantifier_cases.hpp b/src/boost/libs/icl/test/test_total_interval_quantifier_cases.hpp
new file mode 100644
index 000000000..3b8f9fd12
--- /dev/null
+++ b/src/boost/libs/icl/test/test_total_interval_quantifier_cases.hpp
@@ -0,0 +1,100 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
+#define BOOST_ICL_TEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
+
+//------------------------------------------------------------------------------
+// total_absorber
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<T, double, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+
+// (0-x) + x = 0 | total absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_discrete_codomain, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<T, int, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_1, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<T, float, total_absorber, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_itv_quantifier_check_abelian_group_plus_4_bicremental_domain_and_continuous_codomain_2, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_4_bicremental_types<T, boost::rational<int>, total_absorber, INTERVAL_MAP>();}
+
+//------------------------------------------------------------------------------
+// total_enricher
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_plus_4_bicremental_types<T, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_monoid_et_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_monoid_plus_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_plus_4_bicremental_types<T, std::string, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_monoid_et_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_abelian_monoid_et_4_bicremental_types<T, float, total_enricher, INTERVAL_MAP>();}
+
+// (0-x) + x =d= 0 | total absorber
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_discrete_codomain, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<T, int, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_continuous_codomain_1, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<T, double, total_enricher, INTERVAL_MAP>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_domain_and_continuous_codomain_2, T, bicremental_types)
+{ itv_quantifier_check_abelian_group_plus_prot_inv_4_bicremental_types<T, boost::rational<int>, total_enricher, INTERVAL_MAP>();}
+
+
+// absorber enricher
+// partial x - x == 0 x - x =d= 0 partiality of subtraction
+// total (-x)+ x == 0 (-x)+ x =d= 0 totality of subtraction
+
+//------------------------------------------------------------------------------
+// Inner complement
+//------------------------------------------------------------------------------
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, total_enricher, interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_enricher_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, total_enricher, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_absorber_itv_quantifier_check_inner_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_inner_complementarity_4_bicremental_types<T, int, total_absorber, split_interval_map>();}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE
+(test_itl_total_absorber_itv_quantifier_check_length_complementarity_4_bicremental_types, T, bicremental_types)
+{ itv_quantifier_check_length_complementarity_4_bicremental_types<T, double, total_absorber, interval_map>();}
+
+#endif // BOOST_ICL_TEST_TOTAL_INTERVAL_QUANTIFIER_CASES_HPP_JOFA_090701
+
diff --git a/src/boost/libs/icl/test/test_type_lists.hpp b/src/boost/libs/icl/test/test_type_lists.hpp
new file mode 100644
index 000000000..78e6df3c3
--- /dev/null
+++ b/src/boost/libs/icl/test/test_type_lists.hpp
@@ -0,0 +1,316 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_TYPE_LISTS_HPP_JOFA_080916
+#define BOOST_ICL_TEST_TYPE_LISTS_HPP_JOFA_080916
+
+//#define BOOST_ICL_TEST_XINT
+//#define BOOST_ICL_TEST_CHRONO
+
+#include <boost/mpl/list.hpp>
+
+// interval instance types
+#include <boost/icl/gregorian.hpp>
+#include <boost/icl/ptime.hpp>
+
+#ifdef BOOST_ICL_TEST_XINT
+# include <boost/icl/xint.hpp>
+#endif
+
+#ifdef BOOST_ICL_TEST_CHRONO
+# define BOOST_CHRONO_EXTENSIONS
+# include <libs/icl/test/chrono/utility.hpp>
+
+ namespace boch = boost::chrono;
+#endif
+
+#include <boost/icl/rational.hpp>
+
+
+#if(_MSC_VER < 1500 && defined(_DEBUG) ) // 1500 = MSVC-9.0
+ typedef int boost_posix_time_ptime;
+ typedef int boost_posix_time_duration;
+ typedef int boost_gregorian_date;
+ typedef int boost_gregorian_date_duration;
+#else
+ typedef boost::posix_time::ptime boost_posix_time_ptime;
+ typedef boost::posix_time::time_duration boost_posix_time_duration;
+ typedef boost::gregorian::date boost_gregorian_date;
+ typedef boost::gregorian::date_duration boost_gregorian_date_duration;
+#endif
+
+typedef ::boost::mpl::list<
+ unsigned short, unsigned int, unsigned long
+ ,short, int, long, long long
+ ,float, double, long double
+ ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+ ,boost::rational<boost::xint::integer>
+#endif
+#ifdef BOOST_ICL_TEST_CHRONO
+ ,boch::duration<int>
+ ,boch::duration<double>
+ ,Now::time_point
+ ,boch::time_point<Now, boch::duration<double> >
+#endif
+ ,boost_posix_time_ptime
+ ,boost_posix_time_duration
+ ,boost_gregorian_date
+ ,boost_gregorian_date_duration
+ ,int*
+> bicremental_types;
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef boch::duration<long long, boost::ratio<1,113> > duration_long2_113s;
+ typedef boch::duration<int, boost::ratio<11,113> > duration_int_11_113s;
+ typedef boch::duration<boost::rational<int>, boost::ratio<101,997> > duration_rational_101_997s;
+ typedef boch::time_point<Now, duration_int_11_113s > Now_time_int_11_113s;
+ typedef boch::time_point<Now, boch::duration<double> > Now_time_double;
+ typedef boch::time_point<Now, boch::duration<boost::rational<int> > > Now_time_rational;
+ typedef boch::time_point<Now, duration_rational_101_997s > Now_time_rational_101_997s;
+
+ typedef boch::duration<int> bicremental_type_1;
+ typedef boch::duration<double> bicremental_type_2;
+ typedef Now::time_point bicremental_type_3;
+ typedef Now_time_double bicremental_type_4;
+ typedef Now_time_rational bicremental_type_5;
+ typedef duration_long2_113s bicremental_type_6;
+ typedef duration_rational_101_997s bicremental_type_7;
+ typedef Now_time_rational_101_997s bicremental_type_8;
+#else
+ typedef unsigned int bicremental_type_1;
+ typedef int bicremental_type_2;
+ typedef double bicremental_type_3;
+ typedef boost::rational<int> bicremental_type_4;
+ typedef boost_posix_time_ptime bicremental_type_5;
+ typedef short bicremental_type_6;
+ typedef float bicremental_type_7;
+ typedef int* bicremental_type_8;
+#endif //BOOST_ICL_TEST_CHRONO
+
+typedef ::boost::mpl::list<
+ short, int, long, long long
+ ,float, double, long double
+ ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+ ,boost::rational<boost::xint::integer>
+#endif
+#ifdef BOOST_ICL_TEST_CHRONO
+ ,boch::duration<int>
+ ,boch::duration<float>
+ ,Now::time_point
+#endif
+> signed_bicremental_types;
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef boch::duration<int> signed_bicremental_type_1;
+ typedef boch::duration<double> signed_bicremental_type_2;
+ typedef Now::time_point signed_bicremental_type_3;
+ typedef Now_time_double signed_bicremental_type_4;
+ typedef Now_time_rational signed_bicremental_type_5;
+#else
+ typedef int signed_bicremental_type_1;
+ typedef double signed_bicremental_type_2;
+ typedef boost::rational<int> signed_bicremental_type_3;
+ typedef short signed_bicremental_type_4;
+ typedef float signed_bicremental_type_5;
+#endif //BOOST_ICL_TEST_CHRONO
+
+//DBG short list for debugging
+typedef ::boost::mpl::list<
+ int
+> debug_types;
+
+typedef ::boost::mpl::list<
+ float, double, long double
+ ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::rational<boost::xint::integer>
+#endif
+#ifdef BOOST_ICL_TEST_CHRONO
+ ,boch::duration<double>
+ ,boch::time_point<Now, boch::duration<double> >
+#endif
+> bicremental_continuous_types;
+
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef boch::duration<double> bicremental_continuous_type_1;
+ typedef Now_time_double bicremental_continuous_type_2;
+ typedef Now_time_rational bicremental_continuous_type_3;
+#else
+ typedef float bicremental_continuous_type_1;
+ typedef double bicremental_continuous_type_2;
+ typedef boost::rational<int> bicremental_continuous_type_3;
+#endif // BOOST_ICL_TEST_CHRONO
+
+
+typedef ::boost::mpl::list<
+ unsigned short, unsigned int
+ ,unsigned long, unsigned long long
+ ,short, int, long, long long
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+#endif
+> integral_types;
+
+typedef int integral_type_1;
+typedef unsigned int integral_type_2;
+typedef short integral_type_3;
+typedef unsigned int integral_type_4;
+
+typedef ::boost::mpl::list<
+ unsigned short, unsigned int
+ ,unsigned long, unsigned long long
+ ,short, int, long
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+#endif
+#ifdef BOOST_ICL_TEST_CHRONO
+ ,boch::duration<unsigned short>
+ ,Now::time_point
+#endif
+ ,boost_posix_time_ptime
+ ,boost_posix_time_duration
+ ,boost_gregorian_date
+ ,boost_gregorian_date_duration
+ ,int*
+> discrete_types;
+
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef boch::duration<int> discrete_type_1;
+ typedef duration_int_11_113s discrete_type_2;
+ typedef Now::time_point discrete_type_3;
+ typedef duration_long2_113s discrete_type_4;
+ typedef Now_time_int_11_113s discrete_type_5;
+ typedef short discrete_type_6;
+ typedef int* discrete_type_7;
+ typedef boost_posix_time_duration discrete_type_8;
+#else
+ typedef int discrete_type_1;
+ typedef boost_posix_time_ptime discrete_type_2;
+ typedef unsigned int discrete_type_3;
+ typedef short discrete_type_4;
+ typedef int* discrete_type_5;
+ typedef boost_posix_time_duration discrete_type_6;
+ typedef boost_gregorian_date discrete_type_7;
+ typedef boost_gregorian_date_duration discrete_type_8;
+#endif //BOOST_ICL_TEST_CHRONO
+
+typedef ::boost::mpl::list<
+ short, int, long
+> signed_discrete_types;
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef Now::time_point signed_discrete_type_1;
+ typedef duration_long2_113s signed_discrete_type_2;
+ typedef Now_time_int_11_113s signed_discrete_type_3;
+#else
+ typedef int signed_discrete_type_1;
+ typedef short signed_discrete_type_2;
+ typedef long signed_discrete_type_3;
+#endif //BOOST_ICL_TEST_CHRONO
+
+typedef ::boost::mpl::list<
+ float, double, long double
+ ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::rational<boost::xint::integer>
+#endif
+//JODO
+//test_interval_map_shared.hpp(1190) : error C2440: 'initializing' : cannot convert from 'long double' to 'boost::chrono::duration<Rep>'
+//#ifdef BOOST_ICL_TEST_CHRONO
+// ,boost::chrono::duration<long double>
+//#endif
+> numeric_continuous_types;
+
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef boch::duration<double> numeric_continuous_type_1;
+ typedef Now_time_double numeric_continuous_type_2;
+ typedef Now_time_rational numeric_continuous_type_3;
+ typedef duration_rational_101_997s numeric_continuous_type_4;
+#else
+ typedef double numeric_continuous_type_1;
+ typedef float numeric_continuous_type_2;
+ typedef boost::rational<int> numeric_continuous_type_3;
+ typedef long double numeric_continuous_type_4;
+#endif //BOOST_ICL_TEST_CHRONO
+
+
+typedef ::boost::mpl::list<
+ float, double, long double
+ ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::rational<boost::xint::integer>
+#endif
+#ifdef BOOST_ICL_TEST_CHRONO
+ ,boch::duration<double>
+ ,boch::time_point<Now, boch::duration<double> >
+#endif
+ ,std::string
+> continuous_types;
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef boch::duration<double> continuous_type_1;
+ typedef Now_time_double continuous_type_2;
+ typedef Now_time_rational continuous_type_3;
+ typedef std::string continuous_type_4;
+#else
+ typedef double continuous_type_1;
+ typedef float continuous_type_2;
+ typedef boost::rational<int> continuous_type_3;
+ typedef std::string continuous_type_4;
+#endif //BOOST_ICL_TEST_CHRONO
+
+typedef ::boost::mpl::list<
+ unsigned short
+ ,unsigned long
+ ,unsigned long long
+ ,short
+ ,int
+ ,long
+ ,long long
+ ,float
+ ,double
+ ,long double
+ ,boost::rational<int>
+#ifdef BOOST_ICL_TEST_XINT
+ ,boost::xint::integer
+#endif
+#ifdef BOOST_ICL_TEST_CHRONO
+ ,boch::duration<short>
+ ,boch::duration<long double>
+ ,Now::time_point
+#endif
+ ,boost_posix_time_ptime
+ ,boost_posix_time_duration
+ ,boost_gregorian_date
+ ,boost_gregorian_date_duration
+ ,int*
+ ,std::string
+> ordered_types;
+
+#ifdef BOOST_ICL_TEST_CHRONO
+ typedef boch::duration<int> ordered_type_1;
+ typedef boch::duration<double> ordered_type_2;
+ typedef Now::time_point ordered_type_3;
+ typedef Now_time_double ordered_type_4;
+ typedef Now_time_rational ordered_type_5;
+#else
+ typedef int ordered_type_1;
+ typedef std::string ordered_type_2;
+ typedef boost_posix_time_ptime ordered_type_3;
+ typedef boost::rational<int> ordered_type_4;
+ typedef double ordered_type_5;
+#endif //BOOST_ICL_TEST_CHRONO
+
+#endif
+
diff --git a/src/boost/libs/icl/test/test_type_traits_/test_type_traits.cpp b/src/boost/libs/icl/test/test_type_traits_/test_type_traits.cpp
new file mode 100644
index 000000000..b24c6d22e
--- /dev/null
+++ b/src/boost/libs/icl/test/test_type_traits_/test_type_traits.cpp
@@ -0,0 +1,133 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#define BOOST_TEST_MODULE icl::test_type_traits unit test
+
+#include <libs/icl/test/disable_test_warnings.hpp>
+#include <limits>
+#include <complex>
+#include <string>
+#include <vector>
+#include <set>
+#include <boost/mpl/list.hpp>
+#include "../unit_test_unwarned.hpp"
+
+
+// interval instance types
+#include "../test_type_lists.hpp"
+#include "../test_value_maker.hpp"
+
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/icl/rational.hpp>
+#include <boost/icl/interval_map.hpp>
+#include <boost/icl/map.hpp>
+#include "../test_laws.hpp"
+
+using namespace std;
+using namespace boost;
+using namespace unit_test;
+using namespace boost::icl;
+
+void digits_of_numeric_types()
+{
+ cout << "--- limits ---\n";
+ cout << "max<char> = " << (std::numeric_limits<char>::max)() << endl;
+ cout << "max<char> = " << static_cast<int>((std::numeric_limits<char>::max)()) << endl;
+ cout << "-----------------------------------\n";
+ cout << "digits<char> = " << std::numeric_limits<char>::digits << endl;
+ cout << "digits<short> = " << std::numeric_limits<short>::digits << endl;
+ cout << "digits<float> = " << std::numeric_limits<float>::digits << endl;
+ cout << "digits<double> = " << std::numeric_limits<double>::digits << endl;
+ cout << "digits<complex<double>> = " << std::numeric_limits<std::complex<double> >::digits << endl;
+ cout << "digits<string> = " << std::numeric_limits<std::string>::digits << endl;
+}
+
+BOOST_AUTO_TEST_CASE(test_icl_infinity)
+{
+ BOOST_CHECK_EQUAL(icl::infinity<int>::value(), (std::numeric_limits<int>::max)());
+ BOOST_CHECK(0 != icl::infinity<int>::value());
+}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_is_continuous_type_T, T, continuous_types)
+{
+ BOOST_CHECK(is_continuous<T>::value);
+ BOOST_CHECK(!is_discrete<T>::value);
+}
+
+BOOST_AUTO_TEST_CASE(test_is_continuous_type)
+{
+ BOOST_CHECK(is_continuous<std::vector<int> >::value);
+ BOOST_CHECK(!is_discrete<std::vector<int> >::value);
+}
+
+BOOST_AUTO_TEST_CASE_TEMPLATE(test_is_discrete_type_T, T, discrete_types)
+{
+ BOOST_CHECK(is_discrete<T>::value);
+ BOOST_CHECK(!is_continuous<T>::value);
+}
+
+BOOST_AUTO_TEST_CASE(test_is_discrete_type)
+{
+ BOOST_CHECK(is_discrete<boost::gregorian::date>::value);
+ BOOST_CHECK(!is_continuous<boost::gregorian::date>::value);
+}
+
+BOOST_AUTO_TEST_CASE(test_is_key_container_of)
+{
+ BOOST_CHECK((!is_key_container_of<int, icl::map<int,int> >::value));
+ BOOST_CHECK((!is_key_container_of<std::pair<int,int> , icl::map<int,int> >::value));
+ BOOST_CHECK(( is_key_container_of<std::set<int>, std::set<int> >::value));
+ BOOST_CHECK(( is_key_container_of<ICL_IMPL_SPACE::set<int>, icl::map<int,int> >::value));
+ BOOST_CHECK(( is_key_container_of<icl::map<int,int>, icl::map<int,int> >::value));
+}
+
+BOOST_AUTO_TEST_CASE(test_is_set_4_std_set)
+{
+ BOOST_CHECK( (is_set<std::set<int> >::value) );
+ BOOST_CHECK( (is_element_set<std::set<int> >::value) );
+ BOOST_CHECK( (!is_map<std::set<int> >::value) );
+
+ BOOST_CHECK( (is_set<ICL_IMPL_SPACE::set<int> >::value) );
+ BOOST_CHECK( (is_element_set<ICL_IMPL_SPACE::set<int> >::value) );
+ BOOST_CHECK( (!is_map<ICL_IMPL_SPACE::set<int> >::value) );
+}
+
+BOOST_AUTO_TEST_CASE(test_miscellaneous_type_traits)
+{
+ typedef interval_set<int> IntervalSetT;
+ typedef icl::map<int,int> MapII;
+
+ BOOST_CHECK(has_codomain_type<MapII>::value);
+ BOOST_CHECK((boost::is_same<MapII::codomain_type, int>::value));
+
+ BOOST_CHECK((is_map<MapII>::value));
+ BOOST_CHECK((is_icl_container<MapII>::value));
+
+ BOOST_CHECK((is_fragment_of<IntervalSetT::element_type, IntervalSetT>::value));
+ BOOST_CHECK((is_fragment_of<IntervalSetT::segment_type, IntervalSetT>::value));
+ BOOST_CHECK((!is_fragment_of<double, IntervalSetT>::value));
+
+ BOOST_CHECK((boost::detail::is_incrementable<int>::value));
+ BOOST_CHECK((boost::detail::is_incrementable<double>::value));
+ BOOST_CHECK((!boost::detail::is_incrementable<std::string>::value));
+
+ BOOST_CHECK((boost::is_floating_point<long double>::value));
+ BOOST_CHECK((boost::is_floating_point<double>::value));
+ BOOST_CHECK((boost::is_floating_point<float>::value));
+
+ BOOST_CHECK( (boost::is_same<key_type_of<std::set<int> >::type, int>::value) );
+ BOOST_CHECK( (boost::is_same<value_type_of<std::set<int> >::type, int>::value) );
+
+ BOOST_CHECK( is_std_set<std::set<int> >::value);
+ BOOST_CHECK( !is_std_set<interval_set<int> >::value);
+ BOOST_CHECK((!is_std_set<std::map<int,int> >::value));
+ BOOST_CHECK( is_element_set<std::set<int> >::value);
+ BOOST_CHECK( !is_interval_set<std::set<int> >::value);
+ BOOST_CHECK( !is_interval_set<std::set<int> >::value);
+}
+
diff --git a/src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj b/src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj
new file mode 100644
index 000000000..e81ac686a
--- /dev/null
+++ b/src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{EE61B7EF-EC45-4165-8B59-FD5B8D6A9FA0}</ProjectGuid>
+ <RootNamespace>Test_type_traits</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/debug/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../../bin/obj/$(ProjectName)/debug/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/release/\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../../bin/obj/$(ProjectName)/release/\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/debug/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>../../../../bin/release/$(ProjectName).exe</OutputFile>
+ <AdditionalLibraryDirectories>../../../../lib; ../../../../stage/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="test_type_traits.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp" />
+ <ClInclude Include="..\test_type_lists.hpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj.filters b/src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj.filters
new file mode 100644
index 000000000..40aa52f01
--- /dev/null
+++ b/src/boost/libs/icl/test/test_type_traits_/vc10_test_type_traits.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="test_type_traits.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\test_interval_map_shared.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\test_type_lists.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/libs/icl/test/test_type_traits_/vc9_test_type_traits.vcproj b/src/boost/libs/icl/test/test_type_traits_/vc9_test_type_traits.vcproj
new file mode 100644
index 000000000..8783d8c36
--- /dev/null
+++ b/src/boost/libs/icl/test/test_type_traits_/vc9_test_type_traits.vcproj
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="vc9_test_type_traits"
+ ProjectGUID="{EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}"
+ RootNamespace="Test_type_traits"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="../../../../bin/debug/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/debug/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/debug/$(ProjectName).exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="../../../../bin/release/"
+ IntermediateDirectory="../../../../bin/obj/$(ProjectName)/release/"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../../"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="../../../../bin/release/$(ProjectName).exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../../lib; ../../../../stage/lib"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\test_type_traits.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\test_interval_map_shared.hpp"
+ >
+ </File>
+ <File
+ RelativePath="..\test_type_lists.hpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/libs/icl/test/test_value_maker.hpp b/src/boost/libs/icl/test/test_value_maker.hpp
new file mode 100644
index 000000000..368b7ecec
--- /dev/null
+++ b/src/boost/libs/icl/test/test_value_maker.hpp
@@ -0,0 +1,199 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_VALUE_MAKER_HPP_JOFA_080916
+#define BOOST_ICL_TEST_VALUE_MAKER_HPP_JOFA_080916
+
+#include <boost/icl/type_traits/identity_element.hpp>
+#include <boost/icl/interval_bounds.hpp>
+
+namespace boost{ namespace icl
+{
+
+struct mono
+{
+ mono(){};
+ mono& operator ++ (){ return *this; }
+ mono& operator -- (){ return *this; }
+ mono& operator += (const mono&){ return *this; }
+};
+
+bool operator == (const mono&, const mono&){ return true; }
+bool operator < (const mono&, const mono&){ return false; }
+
+template<class CharType, class CharTraits>
+std::basic_ostream<CharType, CharTraits>&
+operator << (std::basic_ostream<CharType, CharTraits>& stream, const mono& object)
+{
+ return stream << "*";
+}
+
+
+
+template <class BicrementableT>
+BicrementableT make(int n)
+{
+ BicrementableT value = identity_element<BicrementableT>::value();
+ if(n>=0)
+ for(int i=0; i<n; i++)
+ ++value;
+ else
+ for(int i=0; i>n; i--)
+ --value;
+
+ return value;
+}
+
+
+template <class Type>
+struct test_value;
+
+template<>
+struct test_value<std::string>
+{
+ static std::string make(int n)
+ {
+ std::string value = identity_element<std::string>::value();
+ int abs_n = n<0 ? -n : n;
+ for(int i=1; i<abs_n; i++)
+ value += (i%2==1 ? "hello " : "world ");
+
+ return value;
+ }
+};
+
+
+template <class Type>
+struct test_value<Type*>
+{
+
+ static bool map_integers(Type values[], int size)
+ {
+ static const int offset = size/2;
+ for(int idx = 0; idx < size; idx++)
+ values[idx] = test_value<Type>::make(idx - offset);
+
+ return true;
+ }
+
+ static Type* make(int n)
+ {
+ static bool initialized;
+ static const int size = 100;
+ static const int offset = size/2;
+ static Type values[size];
+
+ if(!initialized)
+ initialized = map_integers(values, size);
+
+ Type* value = values + offset;
+ if(n>=0)
+ for(int i=0; i<n; i++)
+ ++value;
+ else
+ for(int i=0; i>n; i--)
+ --value;
+
+ return value;
+ }
+};
+
+
+
+template <class Type>
+struct test_value
+{
+ static Type make(int n)
+ {
+ Type value = identity_element<Type>::value();
+ if(n>=0)
+ for(int i=0; i<n; i++)
+ ++value;
+ else
+ for(int i=0; i>n; i--)
+ --value;
+
+ return value;
+ }
+};
+
+
+template <class ItvMapT>
+struct map_val
+{
+ typedef typename ItvMapT::domain_type domain_type;
+ typedef typename ItvMapT::codomain_type codomain_type;
+ typedef typename ItvMapT::interval_type interval_type;
+ typedef typename ItvMapT::value_type value_type;
+ typedef typename ItvMapT::segment_type segment_type;
+ typedef typename ItvMapT::domain_mapping_type domain_mapping_type;
+ typedef std::pair<domain_type, codomain_type> std_pair_type;
+
+ static segment_type mk_segment(const interval_type& inter_val, int val)
+ {
+ return segment_type(inter_val, test_value<codomain_type>::make(val));
+ }
+
+ /*CL?
+ static interval_type interval_(int lower, int upper, int bounds = 2)
+ {
+ return segment_type(inter_val, test_value<codomain_type>::make(val));
+ }
+
+ static segment_type val_pair(int lower, int upper, int val, int bounds = 2)
+ {
+ return segment_type( interval_(lower, upper, static_cast<bound_type>(bounds)),
+ test_value<codomain_type>::make(val) );
+ }
+ */
+
+ static domain_mapping_type map_pair(int key, int val)
+ {
+ return domain_mapping_type(test_value< domain_type>::make(key),
+ test_value<codomain_type>::make(val));
+ }
+
+ static std_pair_type std_pair(int key, int val)
+ {
+ return std_pair_type(test_value< domain_type>::make(key),
+ test_value<codomain_type>::make(val));
+ }
+};
+
+
+// Very short value denotation for intervals
+// Assumption typename T and IntervalT exists in scope
+//I_I : [a,b]
+#define I_I(low,up) icl::interval<T>::closed (test_value<T>::make(low), test_value<T>::make(up))
+//I_D : [a,b)
+#define I_D(low,up) icl::interval<T>::right_open(test_value<T>::make(low), test_value<T>::make(up))
+//C_I : (a,b]
+#define C_I(low,up) icl::interval<T>::left_open (test_value<T>::make(low), test_value<T>::make(up))
+//C_D : (a,b)
+#define C_D(low,up) icl::interval<T>::open (test_value<T>::make(low), test_value<T>::make(up))
+
+#define MK_I(ItvT,low,up) ItvT(test_value<T>::make(low), test_value<T>::make(up))
+
+#define MK_v(key) test_value<T>::make(key)
+#define MK_u(key) test_value<U>::make(key)
+
+// Very short value denotation for interval value pairs
+// Assumption typename IntervalMapT existes in scope
+#define IIv(low,up,val) map_val<IntervalMapT>::mk_segment(I_I(low,up), val)
+#define IDv(low,up,val) map_val<IntervalMapT>::mk_segment(I_D(low,up), val)
+#define CIv(low,up,val) map_val<IntervalMapT>::mk_segment(C_I(low,up), val)
+#define CDv(low,up,val) map_val<IntervalMapT>::mk_segment(C_D(low,up), val)
+#define K_v(key,val) map_val<IntervalMapT>::map_pair(key,val)
+#define sK_v(key,val) map_val<IntervalMapT>::std_pair(key,val)
+
+#define MK_seg(itv,val) map_val<IntervalMapT>::mk_segment(itv, val)
+
+
+}} // namespace boost icl
+
+#endif
+
diff --git a/src/boost/libs/icl/test/unit_test_unwarned.hpp b/src/boost/libs/icl/test/unit_test_unwarned.hpp
new file mode 100644
index 000000000..335d800f0
--- /dev/null
+++ b/src/boost/libs/icl/test/unit_test_unwarned.hpp
@@ -0,0 +1,28 @@
+/*-----------------------------------------------------------------------------+
+Copyright (c) 2008-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#ifndef BOOST_ICL_TEST_UNIT_TEST_UNWARNED_HPP_JOFA_091204
+#define BOOST_ICL_TEST_UNIT_TEST_UNWARNED_HPP_JOFA_091204
+
+#include <boost/icl/detail/boost_config.hpp>
+#include <boost/detail/workaround.hpp>
+
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable:4389) // boost/test/test_tools.hpp(509) : warning C4389: '==' : signed/unsigned mismatch
+#pragma warning(disable:4996) // 'std::_Traits_helper::copy_s': Function call with parameters that may be unsafe
+#endif
+
+#include <boost/test/unit_test.hpp>
+
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+
+#endif // BOOST_ICL_TEST_UNIT_TEST_UNWARNED_HPP_JOFA_091204
+
diff --git a/src/boost/libs/icl/test/vc10_icl_fast_tests.sln b/src/boost/libs/icl/test/vc10_icl_fast_tests.sln
new file mode 100644
index 000000000..6e1cd932f
--- /dev/null
+++ b/src/boost/libs/icl/test/vc10_icl_fast_tests.sln
@@ -0,0 +1,218 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_doc_code", "test_doc_code_\vc10_test_doc_code.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D5A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_map", "fastest_interval_map_\vc10_fastest_interval_map.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A900D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_icl_map", "fastest_icl_map_\vc10_fastest_icl_map.vcxproj", "{DD9C9854-3882-42B9-BFA2-C6CEBFCE309B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_cmp_clang_ttp_passing2", "cmp_clang_ttp_passing2_\vc10_cmp_clang_ttp_passing2.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_cmp_clang_ttp_passing", "cmp_clang_ttp_passing_\vc10_cmp_clang_ttp_passing.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fast_stat_interval_map", "fast_stat_interval_map_\vc10_fast_stat_interval_map.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D3A900D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_icl_interval", "fastest_icl_interval_\vc10_fastest_icl_interval.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A908C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_map_infix", "fastest_interval_map_infix_\vc10_fastest_interval_map_infix.vcxproj", "{DD9C9854-3882-42B9-BFA2-F47E9765C011}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_map_infix_mixed", "fastest_interval_map_infix_mixed_\vc10_fastest_interval_map_infix_mixed.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D5A902F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_map_mixed2", "fastest_interval_map_mixed2_\vc10_fastest_interval_map_mixed2.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3B903F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_map_mixed", "fastest_interval_map_mixed_\vc10_fastest_interval_map_mixed.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3A904F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_set", "fastest_interval_set_\vc10_fastest_interval_set.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A905C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_set_infix", "fastest_interval_set_infix_\vc10_fastest_interval_set_infix.vcxproj", "{DD9C9854-3882-42B9-BFA2-35D1623E906E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_interval_set_mixed", "fastest_interval_set_mixed_\vc10_fastest_interval_set_mixed.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3A907E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_partial_icl_quantifier", "fastest_partial_icl_quantifier_\vc10_fastest_partial_icl_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5A-FD5B7D3A909F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_partial_interval_quantifier", "fastest_partial_interval_quantifier_\vc10_fastest_partial_interval_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5A-FD5B7D2A909F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_separate_interval_set", "fastest_separate_interval_set_\vc10_fastest_separate_interval_set.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D3A910C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_separate_interval_set_infix", "fastest_separate_interval_set_infix_\vc10_fastest_separate_interval_set_infix.vcxproj", "{DD9C9854-3882-42B9-BFA2-35D2623E911E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_set_icl_set", "fastest_set_icl_set_\vc10_fastest_set_icl_set.vcxproj", "{DD9C9854-3882-42B9-BFA2-A8885151D13F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_set_interval_set", "fastest_set_interval_set_\vc10_fastest_set_interval_set.vcxproj", "{DD9C9854-3882-42B9-BFA2-C6CEBFCE3129}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_split_interval_map", "fastest_split_interval_map_\vc10_fastest_split_interval_map.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A913E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_split_interval_map_infix", "fastest_split_interval_map_infix_\vc10_fastest_split_interval_map_infix.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D4A914D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_split_interval_set", "fastest_split_interval_set_\vc10_fastest_split_interval_set.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D4A915C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_split_interval_set_infix", "fastest_split_interval_set_infix_\vc10_fastest_split_interval_set_infix.vcxproj", "{DD9C9854-3882-42B9-BFA2-35D3623E916E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_total_icl_quantifier", "fastest_total_icl_quantifier_\vc10_fastest_total_icl_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5B-FD5B7D4A917F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fastest_total_interval_quantifier", "fastest_total_interval_quantifier_\vc10_fastest_total_interval_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5B-FD5B7D2A917F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fix_tickets", "fix_tickets_\vc10_fix_tickets.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_fix_icl_after_thread", "fix_icl_after_thread_\vc10_fix_icl_after_thread.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_changing_interval_defaults", "test_changing_interval_defaults_\vc10_test_changing_interval_defalts.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D8A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_combinable", "test_combinable_\vc10_test_combinable.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_misc", "test_misc_\vc10_test_misc.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D4A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_type_traits", "test_type_traits_\vc10_test_type_traits.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D6A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_casual", "test_casual_\vc10_test_casual.vcxproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_ex_boost_party", "ex_boost_party_\vc10_ex_boost_party.vcxproj", "{EE61B7EF-EC45-4165-EC01-FD5B8D5A9FA0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A900D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A900D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A900D}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE309B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE309B}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE309B}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE309B}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA3}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA3}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA3}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA2}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA2}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D7A9FA2}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A900D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A900D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A900D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A908C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A908C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A908C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A908C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-F47E9765C011}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-F47E9765C011}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-F47E9765C011}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-F47E9765C011}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A902F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A902F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A902F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A902F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B903F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B903F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B903F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B903F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A904F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A904F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A904F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A904F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A905C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A905C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A905C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A905C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E906E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E906E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E906E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E906E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A907E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A907E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A907E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A907E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D3A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D3A909F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D3A909F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D3A909F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A909F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A909F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A909F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A910C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A910C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A910C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A910C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E911E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E911E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E911E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E911E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-A8885151D13F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-A8885151D13F}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-A8885151D13F}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-A8885151D13F}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3129}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3129}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3129}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3129}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A913E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A913E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A913E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A913E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A914D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A914D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A914D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A914D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A915C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A915C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A915C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A915C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E916E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E916E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E916E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E916E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D4A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D4A917F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D4A917F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D4A917F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A917F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A917F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A917F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA1}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D9A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D8A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D8A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D8A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D8A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D4A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D4A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D4A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D4A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D6A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D6A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D6A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D6A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-EC01-FD5B8D5A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-EC01-FD5B8D5A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-EC01-FD5B8D5A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-EC01-FD5B8D5A9FA0}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/libs/icl/test/vc10_icl_slow_tests.sln b/src/boost/libs/icl/test/vc10_icl_slow_tests.sln
new file mode 100644
index 000000000..833b50316
--- /dev/null
+++ b/src/boost/libs/icl/test/vc10_icl_slow_tests.sln
@@ -0,0 +1,158 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_casual", "test_casual_\vc10_test_casual.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_combinable", "test_combinable_\vc10_test_combinable.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_icl_interval", "test_icl_interval_\vc10_test_icl_interval.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F8C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_icl_map", "test_icl_map_\vc10_test_icl_map.vcxproj", "{DD9C9854-3882-42B9-BFA2-C6CEBFCE352B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_map", "test_interval_map_\vc10_test_interval_map.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_map_infix", "test_interval_map_infix_\vc10_test_interval_map_infix.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_map_infix_mixed", "test_interval_map_infix_mixed_\vc10_test_interval_map_infix_mixed.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D5A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_map_mixed", "test_interval_map_mixed_\vc10_test_interval_map_mixed.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_map_mixed2", "test_interval_map_mixed2_\vc10_test_interval_map_mixed2.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3B9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_set", "test_interval_set_\vc10_test_interval_set.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_set_infix", "test_interval_set_infix_\vc10_test_interval_set_infix.vcxproj", "{DD9C9854-3882-42B9-BFA2-35D1623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_interval_set_mixed", "test_interval_set_mixed_\vc10_test_interval_set_mixed.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_partial_icl_quantifier", "test_partial_icl_quantifier_\vc10_test_partial_icl_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5A-FD5B7D5A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_partial_interval_quantifier", "test_partial_interval_quantifier_\vc10_test_partial_interval_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5A-FD5B7D2A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_separate_interval_set", "test_separate_interval_set_\vc10_test_separate_interval_set.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_separate_interval_set_infix", "test_separate_interval_set_infix_\vc10_test_separate_interval_set_infix.vcxproj", "{DD9C9854-3882-42B9-BFA2-35D2623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_set_icl_set", "test_set_icl_set_\vc10_test_set_icl_set.vcxproj", "{DD9C9854-3882-42B9-BFA2-C6CEBFCE352A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_set_interval_set", "test_set_interval_set_\vc10_test_set_interval_set.vcxproj", "{DD9C9854-3882-42B9-BFA2-C6CEBFCE3529}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_split_interval_map", "test_split_interval_map_\vc10_test_split_interval_map.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_split_interval_map_infix", "test_split_interval_map_infix_\vc10_test_split_interval_map_infix.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_split_interval_set", "test_split_interval_set_\vc10_test_split_interval_set.vcxproj", "{EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_split_interval_set_infix", "test_split_interval_set_infix_\vc10_test_split_interval_set_infix.vcxproj", "{DD9C9854-3882-42B9-BFA2-35D3623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_total_icl_quantifier", "test_total_icl_quantifier_\vc10_test_total_icl_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5B-FD5B7D5A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc10_test_total_interval_quantifier", "test_total_interval_quantifier_\vc10_test_total_interval_quantifier.vcxproj", "{EE61B7EF-EC45-4165-8B5B-FD5B7D2A9F9F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F8C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F8C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F8C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F8C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352B}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352B}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352B}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D5A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3B9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D1623E950E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B8D3A9F9E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D5A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D5A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5A-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D3A9F9C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D2623E950E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352A}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352A}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE352A}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3529}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3529}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3529}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-C6CEBFCE3529}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D2A9F9E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B59-FD5B7D4A9F9C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA2-35D3623E950E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D5A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D5A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B5B-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/libs/icl/test/vc9_icl_fast_tests.sln b/src/boost/libs/icl/test/vc9_icl_fast_tests.sln
new file mode 100644
index 000000000..6f958bb20
--- /dev/null
+++ b/src/boost/libs/icl/test/vc9_icl_fast_tests.sln
@@ -0,0 +1,200 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map", "fastest_interval_map_\vc9_fastest_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_infix", "fastest_interval_map_infix_\vc9_fastest_interval_map_infix.vcproj", "{DD9C9854-3882-42B9-BFA1-F47E9765C011}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_infix_mixed", "fastest_interval_map_infix_mixed_\vc9_fastest_interval_map_infix_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_mixed2", "fastest_interval_map_mixed2_\vc9_fastest_interval_map_mixed2.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set", "fastest_interval_set_\vc9_fastest_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_total_interval_quantifier", "fastest_total_interval_quantifier_\vc9_fastest_total_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_icl_interval", "fastest_icl_interval_\vc9_fastest_icl_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set_infix", "fastest_interval_set_infix_\vc9_fastest_interval_set_infix.vcproj", "{DD9C9854-3882-42B9-BFA1-35D1623E906E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_set_mixed", "fastest_interval_set_mixed_\vc9_fastest_interval_set_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_icl_map", "fastest_icl_map_\vc9_fastest_icl_map.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_partial_interval_quantifier", "fastest_partial_interval_quantifier_\vc9_fastest_partial_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_separate_interval_set", "fastest_separate_interval_set_\vc9_fastest_separate_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_casual", "test_casual_\vc9_test_casual.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_separate_interval_set_infix", "fastest_separate_interval_set_infix_\vc9_fastest_separate_interval_set_infix.vcproj", "{DD9C9854-3882-42B9-BFA1-35D2623E911E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_set_interval_set", "fastest_set_interval_set_\vc9_fastest_set_interval_set.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_set_icl_set", "fastest_set_icl_set_\vc9_fastest_set_icl_set.vcproj", "{DD9C9854-3882-42B9-BFA1-A8885151D13F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_split_interval_map", "fastest_split_interval_map_\vc9_fastest_split_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_split_interval_set", "fastest_split_interval_set_\vc9_fastest_split_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_partial_icl_quantifier", "fastest_partial_icl_quantifier_\vc9_fastest_partial_icl_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_total_icl_quantifier", "fastest_total_icl_quantifier_\vc9_fastest_total_icl_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fastest_interval_map_mixed", "fastest_interval_map_mixed_\vc9_fastest_interval_map_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_combinable", "test_combinable_\vc9_test_combinable.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_misc", "test_misc_\vc9_test_misc.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_doc_code", "test_doc_code_\vc9_test_doc_code.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_type_traits", "test_type_traits_\vc9_test_type_traits.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_changing_interval_defaults", "test_changing_interval_defaults_\vc9_test_changing_interval_defalts.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fix_icl_after_thread", "fix_icl_after_thread_\vc9_fix_icl_after_thread.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_cmp_clang_ttp_passing", "cmp_clang_ttp_passing_\vc9_cmp_clang_ttp_passing.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_cmp_clang_ttp_passing2", "cmp_clang_ttp_passing2_\vc9_cmp_clang_ttp_passing2.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fast_stat_interval_map", "fast_stat_interval_map_\vc9_fast_stat_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_fix_tickets", "fix_tickets_\vc9_fix_tickets.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A900D}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-F47E9765C011}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-F47E9765C011}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-F47E9765C011}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-F47E9765C011}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A902F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B903F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A905C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A917F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A908C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E906E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E906E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E906E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E906E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A907E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE309B}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A909F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A910C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E911E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E911E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E911E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E911E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3129}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-A8885151D13F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-A8885151D13F}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-A8885151D13F}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-A8885151D13F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A913E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A915C}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D3A909F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D4A917F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A904F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D4A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D6A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D8A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA0}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA2}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D7A9FA3}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A900D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D9A9FA1}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/libs/icl/test/vc9_icl_slow_tests.sln b/src/boost/libs/icl/test/vc9_icl_slow_tests.sln
new file mode 100644
index 000000000..3feadedf4
--- /dev/null
+++ b/src/boost/libs/icl/test/vc9_icl_slow_tests.sln
@@ -0,0 +1,158 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_combinable", "test_combinable_\vc9_test_combinable.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map", "test_interval_map_\vc9_test_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_infix", "test_interval_map_infix_\vc9_test_interval_map_infix.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_infix_mixed", "test_interval_map_infix_mixed_\vc9_test_interval_map_infix_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_mixed2", "test_interval_map_mixed2_\vc9_test_interval_map_mixed2.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_map_mixed", "test_interval_map_mixed_\vc9_test_interval_map_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_set", "test_interval_set_\vc9_test_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_set_infix", "test_interval_set_infix_\vc9_test_interval_set_infix.vcproj", "{DD9C9854-3882-42B9-BFA1-35D1623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_interval_set_mixed", "test_interval_set_mixed_\vc9_test_interval_set_mixed.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_icl_interval", "test_icl_interval_\vc9_test_icl_interval.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_icl_map", "test_icl_map_\vc9_test_icl_map.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_partial_interval_quantifier", "test_partial_interval_quantifier_\vc9_test_partial_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_separate_interval_set", "test_separate_interval_set_\vc9_test_separate_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_separate_interval_set_infix", "test_separate_interval_set_infix_\vc9_test_separate_interval_set_infix.vcproj", "{DD9C9854-3882-42B9-BFA1-35D2623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_set_interval_set", "test_set_interval_set_\vc9_test_set_interval_set.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_set_icl_set", "test_set_icl_set_\vc9_test_set_icl_set.vcproj", "{DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_map", "test_split_interval_map_\vc9_test_split_interval_map.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_map_infix", "test_split_interval_map_infix_\vc9_test_split_interval_map_infix.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_set", "test_split_interval_set_\vc9_test_split_interval_set.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_split_interval_set_infix", "test_split_interval_set_infix_\vc9_test_split_interval_set_infix.vcproj", "{DD9C9854-3882-42B9-BFA1-35D3623E950E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_total_interval_quantifier", "test_total_interval_quantifier_\vc9_test_total_interval_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_partial_icl_quantifier", "test_partial_icl_quantifier_\vc9_test_partial_icl_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4A-FD5B7D5A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_total_icl_quantifier", "test_total_icl_quantifier_\vc9_test_total_icl_quantifier.vcproj", "{EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vc9_test_casual", "test_casual_\vc9_test_casual.vcproj", "{EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA1}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D5A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3B9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D1623E950E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9F9E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F8C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352B}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D3A9F9C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D2623E950E}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE3529}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-C6CEBFCE352A}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D2A9F9E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9D}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B7D4A9F9C}.Release|Win32.Build.0 = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D3623E950E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D3623E950E}.Debug|Win32.Build.0 = Debug|Win32
+ {DD9C9854-3882-42B9-BFA1-35D3623E950E}.Release|Win32.ActiveCfg = Release|Win32
+ {DD9C9854-3882-42B9-BFA1-35D3623E950E}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D2A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D5A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4A-FD5B7D5A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B4B-FD5B7D5A9F9F}.Release|Win32.Build.0 = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Debug|Win32.Build.0 = Debug|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.ActiveCfg = Release|Win32
+ {EE61B7EF-EC45-4165-8B49-FD5B8D3A9FA0}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal