From 101e489edfe8ef5b0e19f877804e95a54665ff4d Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Thu, 12 Jan 2017 10:34:42 -0800 Subject: [PATCH] Add documentation for Hana missing from Boost 1.63.0 --- boost_1_63_0/libs/hana/doc/html/Boost.png | Bin 0 -> 6308 bytes .../libs/hana/doc/html/accessors_8hpp.html | 161 ++ .../libs/hana/doc/html/adapt__adt_8hpp.html | 150 ++ .../hana/doc/html/adapt__struct_8hpp.html | 150 ++ .../libs/hana/doc/html/adjust_8hpp.html | 161 ++ .../libs/hana/doc/html/adjust__if_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/adl_8hpp.html | 168 ++ .../libs/hana/doc/html/algorithm_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/all_8hpp.html | 161 ++ .../libs/hana/doc/html/all__of_8hpp.html | 161 ++ .../libs/hana/doc/html/always_8hpp.html | 168 ++ .../libs/hana/doc/html/always_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/and_8hpp.html | 161 ++ .../libs/hana/doc/html/annotated.html | 222 +++ boost_1_63_0/libs/hana/doc/html/any_8hpp.html | 161 ++ .../libs/hana/doc/html/any__of_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/ap_8hpp.html | 161 ++ .../libs/hana/doc/html/append_8hpp.html | 161 ++ .../libs/hana/doc/html/apply_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/apply_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/arg_8hpp.html | 169 ++ boost_1_63_0/libs/hana/doc/html/arg_8hpp.js | 4 + .../libs/hana/doc/html/arithmetic_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/arrowdown.png | Bin 0 -> 245 bytes .../libs/hana/doc/html/arrowright.png | Bin 0 -> 228 bytes .../libs/hana/doc/html/assert_8hpp.html | 213 +++ .../libs/hana/doc/html/assert_8hpp.js | 19 + boost_1_63_0/libs/hana/doc/html/at_8hpp.html | 161 ++ .../libs/hana/doc/html/at__key_8hpp.html | 167 ++ .../libs/hana/doc/html/back_8hpp.html | 161 ++ .../libs/hana/doc/html/basic__tuple_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/bc_s.png | Bin 0 -> 668 bytes boost_1_63_0/libs/hana/doc/html/bdwn.png | Bin 0 -> 147 bytes .../debug/clang-3.6.2/benchmark.at.bloat.json | 36 + .../clang-3.6.2/benchmark.at.compile.json | 37 + .../clang-3.6.2/benchmark.at.execute.json | 29 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.6.2/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.6.2/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.6.2/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.6.2/benchmark.make.compile.json | 43 + .../clang-3.6.2/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.6.2/benchmark.reverse.move.json | 20 + .../clang-3.6.2/benchmark.reverse.nomove.json | 20 + .../clang-3.6.2/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.6.2/benchmark.union.compile.json | 13 + .../clang-3.6.2/benchmark.unpack.compile.json | 29 + .../debug/clang-3.7.1/benchmark.at.bloat.json | 36 + .../clang-3.7.1/benchmark.at.compile.json | 37 + .../clang-3.7.1/benchmark.at.execute.json | 29 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.7.1/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.7.1/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.7.1/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.7.1/benchmark.make.compile.json | 43 + .../clang-3.7.1/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.7.1/benchmark.reverse.move.json | 20 + .../clang-3.7.1/benchmark.reverse.nomove.json | 20 + .../clang-3.7.1/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.7.1/benchmark.union.compile.json | 13 + .../clang-3.7.1/benchmark.unpack.compile.json | 29 + .../debug/clang-3.8.0/benchmark.at.bloat.json | 36 + .../clang-3.8.0/benchmark.at.compile.json | 37 + .../clang-3.8.0/benchmark.at.execute.json | 29 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.8.0/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.8.0/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.8.0/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.8.0/benchmark.make.compile.json | 43 + .../clang-3.8.0/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.8.0/benchmark.reverse.move.json | 20 + .../clang-3.8.0/benchmark.reverse.nomove.json | 20 + .../clang-3.8.0/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.8.0/benchmark.union.compile.json | 13 + .../clang-3.8.0/benchmark.unpack.compile.json | 29 + .../debug/clang-3.8.1/benchmark.at.bloat.json | 36 + .../clang-3.8.1/benchmark.at.compile.json | 37 + .../clang-3.8.1/benchmark.at.execute.json | 29 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.8.1/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.8.1/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.8.1/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.8.1/benchmark.make.compile.json | 43 + .../clang-3.8.1/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.8.1/benchmark.reverse.move.json | 20 + .../clang-3.8.1/benchmark.reverse.nomove.json | 20 + .../clang-3.8.1/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.8.1/benchmark.union.compile.json | 13 + .../clang-3.8.1/benchmark.unpack.compile.json | 29 + .../clang-3.5.0/benchmark.at.bloat.json | 31 + .../clang-3.5.0/benchmark.at.compile.json | 32 + .../clang-3.5.0/benchmark.at.execute.json | 24 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.5.0/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.5.0/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.5.0/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.5.0/benchmark.make.compile.json | 38 + .../clang-3.5.0/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.5.0/benchmark.reverse.move.json | 20 + .../clang-3.5.0/benchmark.reverse.nomove.json | 20 + .../clang-3.5.0/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.5.0/benchmark.union.compile.json | 13 + .../clang-3.5.0/benchmark.unpack.compile.json | 29 + .../clang-3.6.2/benchmark.at.bloat.json | 36 + .../clang-3.6.2/benchmark.at.compile.json | 37 + .../clang-3.6.2/benchmark.at.execute.json | 29 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.6.2/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.6.2/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.6.2/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.6.2/benchmark.make.compile.json | 43 + .../clang-3.6.2/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.6.2/benchmark.reverse.move.json | 20 + .../clang-3.6.2/benchmark.reverse.nomove.json | 20 + .../clang-3.6.2/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.6.2/benchmark.union.compile.json | 13 + .../clang-3.6.2/benchmark.unpack.compile.json | 29 + .../clang-3.7.1/benchmark.at.bloat.json | 36 + .../clang-3.7.1/benchmark.at.compile.json | 37 + .../clang-3.7.1/benchmark.at.execute.json | 29 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.7.1/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.7.1/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.7.1/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.7.1/benchmark.make.compile.json | 43 + .../clang-3.7.1/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.7.1/benchmark.reverse.move.json | 20 + .../clang-3.7.1/benchmark.reverse.nomove.json | 20 + .../clang-3.7.1/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.7.1/benchmark.union.compile.json | 13 + .../clang-3.7.1/benchmark.unpack.compile.json | 29 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.including.compile.json | 52 + .../clang-3.8.0/benchmark.make.compile.json | 43 + .../clang-3.8.0/benchmark.reverse.move.json | 20 + .../clang-3.8.0/benchmark.reverse.nomove.json | 20 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.8.1/benchmark.at.bloat.json | 36 + .../clang-3.8.1/benchmark.at.compile.json | 37 + .../clang-3.8.1/benchmark.at.execute.json | 29 + ...enchmark.at_key.index_of_lookup.chart.json | 29 + ...chmark.at_key.number_of_lookups.chart.json | 29 + .../benchmark.cartesian_product.compile.json | 13 + .../clang-3.8.1/benchmark.count_if.bloat.json | 29 + .../benchmark.count_if.compile.json | 28 + .../benchmark.count_if.execute.json | 19 + .../benchmark.difference.compile.json | 13 + .../clang-3.8.1/benchmark.filter.compile.json | 30 + .../benchmark.find_if.compile.json | 35 + .../benchmark.fold_left.bloat.json | 35 + .../benchmark.fold_left.compile.json | 36 + .../benchmark.fold_left.execute.json | 29 + .../benchmark.fold_right.bloat.json | 29 + .../benchmark.fold_right.compile.json | 30 + .../benchmark.fold_right.execute.json | 19 + .../benchmark.including.compile.json | 52 + .../clang-3.8.1/benchmark.insert.compile.json | 16 + .../benchmark.intersection.compile.json | 13 + .../benchmark.is_disjoint.compile.json | 19 + .../benchmark.is_subset.compile.json | 19 + ...hmark.lexicographical_compare.compile.json | 13 + .../clang-3.8.1/benchmark.make.compile.json | 43 + .../clang-3.8.1/benchmark.map.make.chart.json | 26 + .../benchmark.partition.compile.json | 22 + .../benchmark.product.compile.json | 19 + .../benchmark.product.execute.json | 12 + .../clang-3.8.1/benchmark.reverse.move.json | 20 + .../clang-3.8.1/benchmark.reverse.nomove.json | 20 + .../clang-3.8.1/benchmark.sort.compile.json | 20 + ...enchmark.symmetric_difference.compile.json | 13 + .../benchmark.transform.bloat.json | 39 + .../benchmark.transform.compile.json | 33 + .../benchmark.transform.execute.json | 33 + .../clang-3.8.1/benchmark.union.compile.json | 13 + .../clang-3.8.1/benchmark.unpack.compile.json | 29 + .../libs/hana/doc/html/bool_8hpp.html | 172 ++ boost_1_63_0/libs/hana/doc/html/bool_8hpp.js | 4 + .../doc/html/boost_2fusion_2vector_8hpp.html | 168 ++ .../doc/html/boost_2mpl_2vector_8hpp.html | 168 ++ .../libs/hana/doc/html/boost_8hpp.html | 150 ++ boost_1_63_0/libs/hana/doc/html/bug.html | 147 ++ .../doc/html/canonical__constant_8hpp.html | 168 ++ .../libs/hana/doc/html/capture_8hpp.html | 168 ++ .../libs/hana/doc/html/capture_8hpp.js | 4 + .../doc/html/cartesian__product_8hpp.html | 161 ++ .../libs/hana/doc/html/chain_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/chart.js | 78 + boost_1_63_0/libs/hana/doc/html/classes.html | 271 +++ .../libs/hana/doc/html/classstd_1_1ratio.html | 158 ++ boost_1_63_0/libs/hana/doc/html/closed.png | Bin 0 -> 133 bytes .../libs/hana/doc/html/comparing_8hpp.html | 161 ++ .../libs/hana/doc/html/compose_8hpp.html | 168 ++ .../libs/hana/doc/html/compose_8hpp.js | 4 + .../libs/hana/doc/html/concat_8hpp.html | 161 ++ .../doc/html/concept_2applicative_8hpp.html | 161 ++ .../hana/doc/html/concept_2comonad_8hpp.html | 161 ++ .../doc/html/concept_2comparable_8hpp.html | 161 ++ .../hana/doc/html/concept_2constant_8hpp.html | 161 ++ .../html/concept_2euclidean__ring_8hpp.html | 161 ++ .../hana/doc/html/concept_2foldable_8hpp.html | 161 ++ .../hana/doc/html/concept_2functor_8hpp.html | 161 ++ .../hana/doc/html/concept_2group_8hpp.html | 161 ++ .../hana/doc/html/concept_2hashable_8hpp.html | 163 ++ .../concept_2integral__constant_8hpp.html | 161 ++ .../hana/doc/html/concept_2iterable_8hpp.html | 161 ++ .../hana/doc/html/concept_2logical_8hpp.html | 161 ++ .../doc/html/concept_2metafunction_8hpp.html | 161 ++ .../hana/doc/html/concept_2monad_8hpp.html | 161 ++ .../doc/html/concept_2monad__plus_8hpp.html | 161 ++ .../hana/doc/html/concept_2monoid_8hpp.html | 161 ++ .../doc/html/concept_2orderable_8hpp.html | 161 ++ .../hana/doc/html/concept_2product_8hpp.html | 161 ++ .../hana/doc/html/concept_2ring_8hpp.html | 161 ++ .../doc/html/concept_2searchable_8hpp.html | 161 ++ .../hana/doc/html/concept_2sequence_8hpp.html | 161 ++ .../hana/doc/html/concept_2struct_8hpp.html | 161 ++ .../libs/hana/doc/html/concept_8hpp.html | 150 ++ .../libs/hana/doc/html/concepts_8hpp.html | 161 ++ .../libs/hana/doc/html/config_8hpp.html | 168 ++ .../libs/hana/doc/html/config_8hpp.js | 7 + .../libs/hana/doc/html/contains_8hpp.html | 161 ++ .../libs/hana/doc/html/core_2common_8hpp.html | 170 ++ .../hana/doc/html/core_2default_8hpp.html | 168 ++ .../libs/hana/doc/html/core_2is__a_8hpp.html | 161 ++ .../libs/hana/doc/html/core_2make_8hpp.html | 161 ++ .../hana/doc/html/core_2tag__of_8hpp.html | 161 ++ .../libs/hana/doc/html/core_2to_8hpp.html | 171 ++ .../libs/hana/doc/html/core_2when_8hpp.html | 150 ++ .../libs/hana/doc/html/core_8hpp.html | 150 ++ .../libs/hana/doc/html/count_8hpp.html | 161 ++ .../libs/hana/doc/html/count__if_8hpp.html | 161 ++ .../libs/hana/doc/html/create_8hpp.html | 168 ++ .../libs/hana/doc/html/curry_8hpp.html | 169 ++ boost_1_63_0/libs/hana/doc/html/curry_8hpp.js | 4 + .../libs/hana/doc/html/cycle_8hpp.html | 161 ++ .../libs/hana/doc/html/decay_8hpp.html | 168 ++ .../hana/doc/html/define__struct_8hpp.html | 150 ++ .../libs/hana/doc/html/demux_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/demux_8hpp.js | 4 + .../hana/doc/html/dependent__on_8hpp.html | 161 ++ .../libs/hana/doc/html/deprecated.html | 147 ++ .../libs/hana/doc/html/deque_8hpp.html | 168 ++ .../hana/doc/html/detail_2any__of_8hpp.html | 168 ++ .../hana/doc/html/detail_2array_8hpp.html | 168 ++ .../html/detail_2integral__constant_8hpp.html | 171 ++ .../detail_2operators_2comparable_8hpp.html | 161 ++ .../detail_2operators_2iterable_8hpp.html | 161 ++ .../html/detail_2operators_2logical_8hpp.html | 161 ++ .../html/detail_2operators_2monad_8hpp.html | 161 ++ .../detail_2operators_2orderable_8hpp.html | 161 ++ .../detail_2operators_2searchable_8hpp.html | 161 ++ .../doc/html/detail_2variadic_2at_8hpp.html | 161 ++ .../libs/hana/doc/html/difference_8hpp.html | 161 ++ .../dir_0a4844ac9cb2026bd07faf42b116b549.html | 247 +++ .../dir_0a4844ac9cb2026bd07faf42b116b549.js | 41 + .../dir_0cd2b357ffff5ecfb0310070703d859b.html | 172 ++ .../dir_0cd2b357ffff5ecfb0310070703d859b.js | 11 + .../dir_1878a3f4746a95c6aad317458cc7ef80.html | 154 ++ .../dir_1878a3f4746a95c6aad317458cc7ef80.js | 5 + .../dir_323f3a97cf58df541572718162fe1793.html | 151 ++ .../dir_323f3a97cf58df541572718162fe1793.js | 4 + .../dir_3a2d86f21a1d869e2ec4e510547bf681.html | 172 ++ .../dir_3a2d86f21a1d869e2ec4e510547bf681.js | 11 + .../dir_579efcf19f0a51e7b529b5b94ff4dd6f.html | 172 ++ .../dir_579efcf19f0a51e7b529b5b94ff4dd6f.js | 13 + .../dir_666cbe1241d83a4f7d9cad90f7b86490.html | 163 ++ .../dir_666cbe1241d83a4f7d9cad90f7b86490.js | 8 + .../dir_7042a2e59d7efa2568e3581036b964b0.html | 151 ++ .../dir_7042a2e59d7efa2568e3581036b964b0.js | 4 + .../dir_8414a6d7fc3b38da6a6da863ae030f2c.html | 160 ++ .../dir_8414a6d7fc3b38da6a6da863ae030f2c.js | 8 + .../dir_97491a7940b2b44461a547afe712abd2.html | 157 ++ .../dir_97491a7940b2b44461a547afe712abd2.js | 7 + .../dir_9c824c28346f35ae3c8d4f56bd6b4593.html | 214 +++ .../dir_9c824c28346f35ae3c8d4f56bd6b4593.js | 25 + .../dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.html | 214 +++ .../dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.js | 25 + .../dir_aa8bf510119a03cbd5af87806db73281.html | 157 ++ .../dir_aa8bf510119a03cbd5af87806db73281.js | 6 + .../dir_b00751b7bd933c58cff85542f43b8f16.html | 169 ++ .../dir_b00751b7bd933c58cff85542f43b8f16.js | 10 + .../dir_cc4d96287a8e6ea2980c75f79e8c5cd4.html | 586 +++++++ .../dir_cc4d96287a8e6ea2980c75f79e8c5cd4.js | 166 ++ .../dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.html | 154 ++ .../dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.js | 5 + .../dir_cf196044773ad9db3b539387dd944c9e.html | 205 +++ .../dir_cf196044773ad9db3b539387dd944c9e.js | 22 + .../dir_daf74c896eae580804ddb7810f485dad.html | 604 +++++++ .../dir_daf74c896eae580804ddb7810f485dad.js | 163 ++ .../dir_e68e8157741866f444e17edd764ebbae.html | 148 ++ .../dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.html | 169 ++ .../dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.js | 10 + .../libs/hana/doc/html/dispatch_8hpp.html | 150 ++ .../libs/hana/doc/html/dispatch__if_8hpp.html | 168 ++ .../libs/hana/doc/html/dispatch__if_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/div_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/doc.png | Bin 0 -> 752 bytes boost_1_63_0/libs/hana/doc/html/doxygen.css | 1474 +++++++++++++++++ boost_1_63_0/libs/hana/doc/html/doxygen.png | Bin 0 -> 3875 bytes .../libs/hana/doc/html/drop__back_8hpp.html | 161 ++ .../libs/hana/doc/html/drop__front_8hpp.html | 161 ++ .../doc/html/drop__front__exactly_8hpp.html | 161 ++ .../libs/hana/doc/html/drop__into_8hpp.html | 161 ++ .../libs/hana/doc/html/drop__while_8hpp.html | 161 ++ .../libs/hana/doc/html/duplicate_8hpp.html | 161 ++ .../libs/hana/doc/html/dynsections.js | 96 ++ .../libs/hana/doc/html/empty_8hpp.html | 161 ++ .../libs/hana/doc/html/equal_8hpp.html | 161 ++ .../libs/hana/doc/html/erase__key_8hpp.html | 161 ++ .../libs/hana/doc/html/eval_8hpp.html | 161 ++ .../libs/hana/doc/html/eval__if_8hpp.html | 161 ++ ...t_2boost_2fusion_2detail_2common_8hpp.html | 161 ++ .../html/ext_2boost_2fusion_2tuple_8hpp.html | 169 ++ .../hana/doc/html/ext_2boost_2tuple_8hpp.html | 168 ++ .../hana/doc/html/ext_2std_2array_8hpp.html | 168 ++ .../ext_2std_2integral__constant_8hpp.html | 168 ++ .../hana/doc/html/ext_2std_2pair_8hpp.html | 168 ++ .../hana/doc/html/ext_2std_2tuple_8hpp.html | 168 ++ .../libs/hana/doc/html/extend_8hpp.html | 161 ++ .../libs/hana/doc/html/extract_8hpp.html | 161 ++ .../libs/hana/doc/html/fast__and_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/files.html | 611 +++++++ boost_1_63_0/libs/hana/doc/html/files.js | 4 + .../libs/hana/doc/html/fill_8hpp.html | 161 ++ .../libs/hana/doc/html/filter_8hpp.html | 161 ++ .../libs/hana/doc/html/find_8hpp.html | 161 ++ .../libs/hana/doc/html/find__if_8hpp.html | 161 ++ .../libs/hana/doc/html/first_8hpp.html | 161 ++ .../html/first__unsatisfied__index_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/fix_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/fix_8hpp.js | 4 + .../libs/hana/doc/html/flat_8hpp.html | 161 ++ .../libs/hana/doc/html/flatten_8hpp.html | 161 ++ .../libs/hana/doc/html/flip_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/flip_8hpp.js | 4 + .../libs/hana/doc/html/fold_8hpp.html | 150 ++ .../libs/hana/doc/html/fold__left_8hpp.html | 161 ++ .../libs/hana/doc/html/fold__right_8hpp.html | 161 ++ .../libs/hana/doc/html/folderclosed.png | Bin 0 -> 636 bytes .../libs/hana/doc/html/folderopen.png | Bin 0 -> 640 bytes .../libs/hana/doc/html/foldl1_8hpp.html | 161 ++ .../libs/hana/doc/html/foldr1_8hpp.html | 161 ++ .../libs/hana/doc/html/for__each_8hpp.html | 161 ++ .../libs/hana/doc/html/front_8hpp.html | 161 ++ .../libs/hana/doc/html/functional_8hpp.html | 150 ++ .../libs/hana/doc/html/functions.html | 575 +++++++ .../libs/hana/doc/html/functions_func.html | 221 +++ .../libs/hana/doc/html/functions_rela.html | 230 +++ .../libs/hana/doc/html/functions_type.html | 180 ++ .../libs/hana/doc/html/functions_vars.html | 395 +++++ .../libs/hana/doc/html/fuse_8hpp.html | 161 ++ .../libs/hana/doc/html/fusion_2list_8hpp.html | 168 ++ .../libs/hana/doc/html/fusion_8hpp.html | 150 ++ .../hana/doc/html/fwd_2accessors_8hpp.html | 169 ++ .../libs/hana/doc/html/fwd_2accessors_8hpp.js | 4 + .../hana/doc/html/fwd_2adapt__adt_8hpp.html | 168 ++ .../hana/doc/html/fwd_2adapt__adt_8hpp.js | 4 + .../doc/html/fwd_2adapt__struct_8hpp.html | 168 ++ .../hana/doc/html/fwd_2adapt__struct_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2adjust_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2adjust_8hpp.js | 4 + .../hana/doc/html/fwd_2adjust__if_8hpp.html | 168 ++ .../hana/doc/html/fwd_2adjust__if_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2all_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2all_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2all__of_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2all__of_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2and_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2and_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2any_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2any_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2any__of_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2any__of_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2ap_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2ap_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2append_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2append_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2at_8hpp.html | 172 ++ .../libs/hana/doc/html/fwd_2at_8hpp.js | 5 + .../libs/hana/doc/html/fwd_2at__key_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2at__key_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2back_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2back_8hpp.js | 4 + .../hana/doc/html/fwd_2basic__tuple_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2bool_8hpp.html | 150 ++ .../html/fwd_2cartesian__product_8hpp.html | 168 ++ .../doc/html/fwd_2cartesian__product_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2chain_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2chain_8hpp.js | 4 + .../hana/doc/html/fwd_2comparing_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2comparing_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2concat_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2concat_8hpp.js | 4 + .../html/fwd_2concept_2applicative_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2comonad_8hpp.html | 161 ++ .../html/fwd_2concept_2comparable_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2constant_8hpp.html | 161 ++ .../fwd_2concept_2euclidean__ring_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2foldable_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2functor_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2group_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2hashable_8hpp.html | 163 ++ ...fwd_2concept_2integral__constant_8hpp.html | 168 ++ .../doc/html/fwd_2concept_2iterable_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2logical_8hpp.html | 161 ++ .../html/fwd_2concept_2metafunction_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2monad_8hpp.html | 161 ++ .../html/fwd_2concept_2monad__plus_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2monoid_8hpp.html | 161 ++ .../html/fwd_2concept_2orderable_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2product_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2ring_8hpp.html | 161 ++ .../html/fwd_2concept_2searchable_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2sequence_8hpp.html | 161 ++ .../doc/html/fwd_2concept_2struct_8hpp.html | 161 ++ .../hana/doc/html/fwd_2contains_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2contains_8hpp.js | 5 + .../hana/doc/html/fwd_2core_2common_8hpp.html | 179 ++ .../hana/doc/html/fwd_2core_2common_8hpp.js | 4 + .../doc/html/fwd_2core_2default_8hpp.html | 171 ++ .../hana/doc/html/fwd_2core_2is__a_8hpp.html | 174 ++ .../hana/doc/html/fwd_2core_2is__a_8hpp.js | 5 + .../hana/doc/html/fwd_2core_2make_8hpp.html | 169 ++ .../hana/doc/html/fwd_2core_2make_8hpp.js | 4 + .../doc/html/fwd_2core_2tag__of_8hpp.html | 176 ++ .../hana/doc/html/fwd_2core_2tag__of_8hpp.js | 4 + .../hana/doc/html/fwd_2core_2to_8hpp.html | 182 ++ .../libs/hana/doc/html/fwd_2core_2to_8hpp.js | 4 + .../hana/doc/html/fwd_2core_2when_8hpp.html | 176 ++ .../hana/doc/html/fwd_2core_2when_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2core_8hpp.html | 150 ++ .../libs/hana/doc/html/fwd_2count_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2count_8hpp.js | 4 + .../hana/doc/html/fwd_2count__if_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2count__if_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2cycle_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2cycle_8hpp.js | 4 + .../doc/html/fwd_2define__struct_8hpp.html | 168 ++ .../hana/doc/html/fwd_2define__struct_8hpp.js | 4 + .../hana/doc/html/fwd_2difference_8hpp.html | 161 ++ .../libs/hana/doc/html/fwd_2div_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2div_8hpp.js | 4 + .../hana/doc/html/fwd_2drop__back_8hpp.html | 168 ++ .../hana/doc/html/fwd_2drop__back_8hpp.js | 4 + .../hana/doc/html/fwd_2drop__front_8hpp.html | 168 ++ .../hana/doc/html/fwd_2drop__front_8hpp.js | 4 + .../html/fwd_2drop__front__exactly_8hpp.html | 168 ++ .../html/fwd_2drop__front__exactly_8hpp.js | 4 + .../hana/doc/html/fwd_2drop__while_8hpp.html | 168 ++ .../hana/doc/html/fwd_2drop__while_8hpp.js | 4 + .../hana/doc/html/fwd_2duplicate_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2duplicate_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2empty_8hpp.html | 170 ++ .../libs/hana/doc/html/fwd_2empty_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2equal_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2equal_8hpp.js | 4 + .../hana/doc/html/fwd_2erase__key_8hpp.html | 161 ++ .../libs/hana/doc/html/fwd_2eval_8hpp.html | 161 ++ .../hana/doc/html/fwd_2eval__if_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2eval__if_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2extend_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2extend_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2extract_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2extract_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2fill_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2fill_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2filter_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2filter_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2find_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2find_8hpp.js | 4 + .../hana/doc/html/fwd_2find__if_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2find__if_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2first_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2first_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2flatten_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2flatten_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2fold_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2fold_8hpp.js | 4 + .../hana/doc/html/fwd_2fold__left_8hpp.html | 168 ++ .../hana/doc/html/fwd_2fold__left_8hpp.js | 4 + .../hana/doc/html/fwd_2fold__right_8hpp.html | 168 ++ .../hana/doc/html/fwd_2fold__right_8hpp.js | 4 + .../hana/doc/html/fwd_2for__each_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2for__each_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2front_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2front_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2fuse_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2fuse_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2greater_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2greater_8hpp.js | 4 + .../doc/html/fwd_2greater__equal_8hpp.html | 168 ++ .../hana/doc/html/fwd_2greater__equal_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2group_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2group_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2hash_8hpp.html | 170 ++ .../libs/hana/doc/html/fwd_2hash_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2if_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2if_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2insert_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2insert_8hpp.js | 4 + .../doc/html/fwd_2insert__range_8hpp.html | 168 ++ .../hana/doc/html/fwd_2insert__range_8hpp.js | 4 + .../html/fwd_2integral__constant_8hpp.html | 172 ++ .../doc/html/fwd_2integral__constant_8hpp.js | 4 + .../hana/doc/html/fwd_2intersection_8hpp.html | 161 ++ .../hana/doc/html/fwd_2intersperse_8hpp.html | 168 ++ .../hana/doc/html/fwd_2intersperse_8hpp.js | 4 + .../hana/doc/html/fwd_2is__disjoint_8hpp.html | 168 ++ .../hana/doc/html/fwd_2is__disjoint_8hpp.js | 4 + .../hana/doc/html/fwd_2is__empty_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2is__empty_8hpp.js | 4 + .../hana/doc/html/fwd_2is__subset_8hpp.html | 168 ++ .../hana/doc/html/fwd_2is__subset_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2keys_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2keys_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2lazy_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2length_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2length_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2less_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2less_8hpp.js | 4 + .../hana/doc/html/fwd_2less__equal_8hpp.html | 168 ++ .../hana/doc/html/fwd_2less__equal_8hpp.js | 4 + .../fwd_2lexicographical__compare_8hpp.html | 168 ++ .../fwd_2lexicographical__compare_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2lift_8hpp.html | 169 ++ .../libs/hana/doc/html/fwd_2lift_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2map_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2max_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2max_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2maximum_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2maximum_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2members_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2members_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2min_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2min_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2minimum_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2minimum_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2minus_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2minus_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2mod_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2mod_8hpp.js | 4 + .../doc/html/fwd_2monadic__compose_8hpp.html | 168 ++ .../doc/html/fwd_2monadic__compose_8hpp.js | 4 + .../html/fwd_2monadic__fold__left_8hpp.html | 169 ++ .../doc/html/fwd_2monadic__fold__left_8hpp.js | 4 + .../html/fwd_2monadic__fold__right_8hpp.html | 169 ++ .../html/fwd_2monadic__fold__right_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2mult_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2mult_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2negate_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2negate_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2none_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2none_8hpp.js | 4 + .../hana/doc/html/fwd_2none__of_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2none__of_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2not_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2not_8hpp.js | 4 + .../hana/doc/html/fwd_2not__equal_8hpp.html | 168 ++ .../hana/doc/html/fwd_2not__equal_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2one_8hpp.html | 169 ++ .../libs/hana/doc/html/fwd_2one_8hpp.js | 4 + .../hana/doc/html/fwd_2optional_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2or_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2or_8hpp.js | 4 + .../hana/doc/html/fwd_2ordering_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2ordering_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2pair_8hpp.html | 171 ++ .../hana/doc/html/fwd_2partition_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2partition_8hpp.js | 4 + .../hana/doc/html/fwd_2permutations_8hpp.html | 168 ++ .../hana/doc/html/fwd_2permutations_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2plus_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2plus_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2power_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2power_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2prefix_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2prefix_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2prepend_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2prepend_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2product_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2product_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2range_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2remove_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2remove_8hpp.js | 4 + .../hana/doc/html/fwd_2remove__at_8hpp.html | 172 ++ .../hana/doc/html/fwd_2remove__at_8hpp.js | 5 + .../hana/doc/html/fwd_2remove__if_8hpp.html | 168 ++ .../hana/doc/html/fwd_2remove__if_8hpp.js | 4 + .../doc/html/fwd_2remove__range_8hpp.html | 172 ++ .../hana/doc/html/fwd_2remove__range_8hpp.js | 5 + .../libs/hana/doc/html/fwd_2repeat_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2repeat_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2replace_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2replace_8hpp.js | 4 + .../hana/doc/html/fwd_2replace__if_8hpp.html | 168 ++ .../hana/doc/html/fwd_2replace__if_8hpp.js | 4 + .../hana/doc/html/fwd_2replicate_8hpp.html | 169 ++ .../libs/hana/doc/html/fwd_2replicate_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2reverse_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2reverse_8hpp.js | 4 + .../doc/html/fwd_2reverse__fold_8hpp.html | 168 ++ .../hana/doc/html/fwd_2reverse__fold_8hpp.js | 4 + .../hana/doc/html/fwd_2scan__left_8hpp.html | 168 ++ .../hana/doc/html/fwd_2scan__left_8hpp.js | 4 + .../hana/doc/html/fwd_2scan__right_8hpp.html | 168 ++ .../hana/doc/html/fwd_2scan__right_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2second_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2second_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2set_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2size_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2size_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2slice_8hpp.html | 172 ++ .../libs/hana/doc/html/fwd_2slice_8hpp.js | 5 + .../libs/hana/doc/html/fwd_2sort_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2sort_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2span_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2span_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2string_8hpp.html | 182 ++ .../libs/hana/doc/html/fwd_2string_8hpp.js | 5 + .../libs/hana/doc/html/fwd_2suffix_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2suffix_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2sum_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2sum_8hpp.js | 4 + .../html/fwd_2symmetric__difference_8hpp.html | 161 ++ .../hana/doc/html/fwd_2take__back_8hpp.html | 168 ++ .../hana/doc/html/fwd_2take__back_8hpp.js | 4 + .../hana/doc/html/fwd_2take__front_8hpp.html | 172 ++ .../hana/doc/html/fwd_2take__front_8hpp.js | 5 + .../hana/doc/html/fwd_2take__while_8hpp.html | 168 ++ .../hana/doc/html/fwd_2take__while_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2tap_8hpp.html | 169 ++ .../libs/hana/doc/html/fwd_2tap_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2then_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2then_8hpp.js | 4 + .../hana/doc/html/fwd_2transform_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2transform_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2tuple_8hpp.html | 171 ++ .../libs/hana/doc/html/fwd_2type_8hpp.html | 197 +++ .../libs/hana/doc/html/fwd_2type_8hpp.js | 10 + .../hana/doc/html/fwd_2unfold__left_8hpp.html | 169 ++ .../hana/doc/html/fwd_2unfold__left_8hpp.js | 4 + .../doc/html/fwd_2unfold__right_8hpp.html | 169 ++ .../hana/doc/html/fwd_2unfold__right_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2union_8hpp.html | 161 ++ .../libs/hana/doc/html/fwd_2unique_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2unique_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2unpack_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2unpack_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2value_8hpp.html | 172 ++ .../libs/hana/doc/html/fwd_2value_8hpp.js | 5 + .../libs/hana/doc/html/fwd_2while_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2while_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2zero_8hpp.html | 169 ++ .../libs/hana/doc/html/fwd_2zero_8hpp.js | 4 + .../libs/hana/doc/html/fwd_2zip_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2zip_8hpp.js | 4 + .../doc/html/fwd_2zip__shortest_8hpp.html | 168 ++ .../hana/doc/html/fwd_2zip__shortest_8hpp.js | 4 + .../html/fwd_2zip__shortest__with_8hpp.html | 168 ++ .../doc/html/fwd_2zip__shortest__with_8hpp.js | 4 + .../hana/doc/html/fwd_2zip__with_8hpp.html | 168 ++ .../libs/hana/doc/html/fwd_2zip__with_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/globals.html | 242 +++ .../libs/hana/doc/html/globals_defs.html | 242 +++ .../libs/hana/doc/html/greater_8hpp.html | 161 ++ .../hana/doc/html/greater__equal_8hpp.html | 161 ++ .../libs/hana/doc/html/group_8hpp.html | 161 ++ .../doc/html/group__group-Applicative.html | 243 +++ .../hana/doc/html/group__group-Applicative.js | 5 + .../hana/doc/html/group__group-Comonad.html | 259 +++ .../hana/doc/html/group__group-Comonad.js | 6 + .../doc/html/group__group-Comparable.html | 269 +++ .../hana/doc/html/group__group-Comparable.js | 6 + .../hana/doc/html/group__group-Constant.html | 222 +++ .../hana/doc/html/group__group-Constant.js | 5 + .../doc/html/group__group-EuclideanRing.html | 217 +++ .../doc/html/group__group-EuclideanRing.js | 5 + .../hana/doc/html/group__group-Foldable.html | 706 ++++++++ .../hana/doc/html/group__group-Foldable.js | 20 + .../hana/doc/html/group__group-Functor.html | 350 ++++ .../hana/doc/html/group__group-Functor.js | 9 + .../hana/doc/html/group__group-Group.html | 215 +++ .../libs/hana/doc/html/group__group-Group.js | 5 + .../hana/doc/html/group__group-Hashable.html | 190 +++ .../hana/doc/html/group__group-Hashable.js | 4 + .../hana/doc/html/group__group-Iterable.html | 411 +++++ .../hana/doc/html/group__group-Iterable.js | 12 + .../hana/doc/html/group__group-Logical.html | 334 ++++ .../hana/doc/html/group__group-Logical.js | 9 + .../doc/html/group__group-Metafunction.html | 280 ++++ .../doc/html/group__group-Metafunction.js | 8 + .../hana/doc/html/group__group-Monad.html | 330 ++++ .../libs/hana/doc/html/group__group-Monad.js | 8 + .../hana/doc/html/group__group-MonadPlus.html | 508 ++++++ .../hana/doc/html/group__group-MonadPlus.js | 14 + .../hana/doc/html/group__group-Monoid.html | 232 +++ .../libs/hana/doc/html/group__group-Monoid.js | 5 + .../hana/doc/html/group__group-Orderable.html | 354 ++++ .../hana/doc/html/group__group-Orderable.js | 10 + .../hana/doc/html/group__group-Product.html | 214 +++ .../hana/doc/html/group__group-Product.js | 5 + .../libs/hana/doc/html/group__group-Ring.html | 253 +++ .../libs/hana/doc/html/group__group-Ring.js | 6 + .../doc/html/group__group-Searchable.html | 498 ++++++ .../hana/doc/html/group__group-Searchable.js | 16 + .../hana/doc/html/group__group-Sequence.html | 1057 ++++++++++++ .../hana/doc/html/group__group-Sequence.js | 33 + .../hana/doc/html/group__group-Struct.html | 326 ++++ .../libs/hana/doc/html/group__group-Struct.js | 9 + .../doc/html/group__group-assertions.html | 390 +++++ .../hana/doc/html/group__group-assertions.js | 19 + .../hana/doc/html/group__group-concepts.html | 221 +++ .../hana/doc/html/group__group-concepts.js | 25 + .../hana/doc/html/group__group-config.html | 270 +++ .../libs/hana/doc/html/group__group-config.js | 11 + .../libs/hana/doc/html/group__group-core.html | 360 ++++ .../libs/hana/doc/html/group__group-core.js | 19 + .../hana/doc/html/group__group-datatypes.html | 184 ++ .../hana/doc/html/group__group-datatypes.js | 193 +++ .../hana/doc/html/group__group-details.html | 403 +++++ .../hana/doc/html/group__group-details.js | 27 + .../doc/html/group__group-experimental.html | 211 +++ .../doc/html/group__group-experimental.js | 6 + .../hana/doc/html/group__group-ext-boost.html | 154 ++ .../hana/doc/html/group__group-ext-boost.js | 4 + .../doc/html/group__group-ext-fusion.html | 163 ++ .../hana/doc/html/group__group-ext-fusion.js | 7 + .../hana/doc/html/group__group-ext-mpl.html | 160 ++ .../hana/doc/html/group__group-ext-mpl.js | 6 + .../hana/doc/html/group__group-ext-std.html | 169 ++ .../hana/doc/html/group__group-ext-std.js | 9 + .../libs/hana/doc/html/group__group-ext.html | 163 ++ .../libs/hana/doc/html/group__group-ext.js | 7 + .../doc/html/group__group-functional.html | 681 ++++++++ .../hana/doc/html/group__group-functional.js | 22 + boost_1_63_0/libs/hana/doc/html/hana.js | 24 + .../libs/hana/doc/html/hana_8hpp.html | 164 ++ .../doc/html/has__common__embedding_8hpp.html | 173 ++ .../doc/html/has__common__embedding_8hpp.js | 5 + .../hana/doc/html/has__duplicates_8hpp.html | 168 ++ .../libs/hana/doc/html/hash_8hpp.html | 161 ++ .../libs/hana/doc/html/hash__table_8hpp.html | 163 ++ .../libs/hana/doc/html/hierarchy.html | 250 +++ .../libs/hana/doc/html/highcharts-data.js | 26 + .../hana/doc/html/highcharts-exporting.js | 24 + boost_1_63_0/libs/hana/doc/html/highcharts.js | 337 ++++ boost_1_63_0/libs/hana/doc/html/id_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/id_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/if_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/index.html | 1033 ++++++++++++ .../libs/hana/doc/html/index__if_8hpp.html | 168 ++ .../libs/hana/doc/html/infix_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/infix_8hpp.js | 4 + .../libs/hana/doc/html/insert_8hpp.html | 161 ++ .../hana/doc/html/insert__range_8hpp.html | 161 ++ .../hana/doc/html/integer__sequence_8hpp.html | 168 ++ .../libs/hana/doc/html/integral__c_8hpp.html | 168 ++ .../doc/html/integral__constant_8hpp.html | 150 ++ .../libs/hana/doc/html/intersection_8hpp.html | 161 ++ .../libs/hana/doc/html/intersperse_8hpp.html | 161 ++ .../libs/hana/doc/html/intrinsics_8hpp.html | 150 ++ .../libs/hana/doc/html/is__disjoint_8hpp.html | 161 ++ .../libs/hana/doc/html/is__empty_8hpp.html | 161 ++ .../libs/hana/doc/html/is__subset_8hpp.html | 161 ++ .../libs/hana/doc/html/iterate_8hpp.html | 169 ++ .../libs/hana/doc/html/iterate_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/jquery.js | 68 + .../libs/hana/doc/html/keys_8hpp.html | 161 ++ .../libs/hana/doc/html/lazy_8hpp.html | 161 ++ .../libs/hana/doc/html/length_8hpp.html | 161 ++ .../libs/hana/doc/html/less_8hpp.html | 161 ++ .../libs/hana/doc/html/less__equal_8hpp.html | 161 ++ .../html/lexicographical__compare_8hpp.html | 161 ++ .../libs/hana/doc/html/lift_8hpp.html | 161 ++ .../libs/hana/doc/html/lockstep_8hpp.html | 168 ++ .../libs/hana/doc/html/lockstep_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/map_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/max_8hpp.html | 161 ++ .../libs/hana/doc/html/maximum_8hpp.html | 161 ++ .../libs/hana/doc/html/members_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/min_8hpp.html | 161 ++ .../libs/hana/doc/html/minimum_8hpp.html | 161 ++ .../libs/hana/doc/html/minus_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/mod_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/modules.html | 181 ++ boost_1_63_0/libs/hana/doc/html/modules.js | 12 + .../hana/doc/html/monadic__compose_8hpp.html | 161 ++ .../doc/html/monadic__fold__left_8hpp.html | 161 ++ .../doc/html/monadic__fold__right_8hpp.html | 161 ++ .../libs/hana/doc/html/mpl_2list_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/mpl_8hpp.html | 150 ++ .../libs/hana/doc/html/mult_8hpp.html | 161 ++ .../libs/hana/doc/html/namespaceboost.html | 162 ++ .../hana/doc/html/namespaceboost_1_1hana.html | 821 +++++++++ .../namespaceboost_1_1hana_1_1literals.html | 213 +++ .../libs/hana/doc/html/namespacemembers.html | 729 ++++++++ .../hana/doc/html/namespacemembers_func.html | 156 ++ .../hana/doc/html/namespacemembers_type.html | 150 ++ .../hana/doc/html/namespacemembers_vars.html | 705 ++++++++ .../libs/hana/doc/html/namespaces.html | 150 ++ boost_1_63_0/libs/hana/doc/html/nav_f.png | Bin 0 -> 156 bytes boost_1_63_0/libs/hana/doc/html/nav_g.png | Bin 0 -> 95 bytes boost_1_63_0/libs/hana/doc/html/nav_h.png | Bin 0 -> 99 bytes boost_1_63_0/libs/hana/doc/html/navtree.css | 142 ++ boost_1_63_0/libs/hana/doc/html/navtree.js | 522 ++++++ .../libs/hana/doc/html/navtreedata.js | 113 ++ .../libs/hana/doc/html/navtreeindex0.js | 253 +++ .../libs/hana/doc/html/navtreeindex1.js | 253 +++ .../libs/hana/doc/html/navtreeindex2.js | 253 +++ .../libs/hana/doc/html/navtreeindex3.js | 253 +++ .../libs/hana/doc/html/navtreeindex4.js | 202 +++ .../libs/hana/doc/html/negate_8hpp.html | 161 ++ .../libs/hana/doc/html/nested__by_8hpp.html | 161 ++ .../hana/doc/html/nested__by__fwd_8hpp.html | 168 ++ .../libs/hana/doc/html/nested__than_8hpp.html | 161 ++ .../hana/doc/html/nested__than__fwd_8hpp.html | 168 ++ .../libs/hana/doc/html/nested__to_8hpp.html | 161 ++ .../hana/doc/html/nested__to__fwd_8hpp.html | 168 ++ .../libs/hana/doc/html/none_8hpp.html | 161 ++ .../libs/hana/doc/html/none__of_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/not_8hpp.html | 161 ++ .../libs/hana/doc/html/not__equal_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/on_8hpp.html | 168 ++ boost_1_63_0/libs/hana/doc/html/on_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/one_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/open.png | Bin 0 -> 123 bytes .../libs/hana/doc/html/optional_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/or_8hpp.html | 161 ++ .../libs/hana/doc/html/ordering_8hpp.html | 161 ++ .../libs/hana/doc/html/overload_8hpp.html | 168 ++ .../libs/hana/doc/html/overload_8hpp.js | 4 + .../doc/html/overload__linearly_8hpp.html | 168 ++ .../hana/doc/html/overload__linearly_8hpp.js | 4 + boost_1_63_0/libs/hana/doc/html/pages.html | 150 ++ .../libs/hana/doc/html/pair_8hpp.html | 161 ++ .../libs/hana/doc/html/partial_8hpp.html | 168 ++ .../libs/hana/doc/html/partial_8hpp.js | 4 + .../libs/hana/doc/html/partition_8hpp.html | 161 ++ .../libs/hana/doc/html/permutations_8hpp.html | 161 ++ .../libs/hana/doc/html/placeholder_8hpp.html | 168 ++ .../libs/hana/doc/html/placeholder_8hpp.js | 4 + .../libs/hana/doc/html/plus_8hpp.html | 161 ++ .../libs/hana/doc/html/power_8hpp.html | 161 ++ .../libs/hana/doc/html/prefix_8hpp.html | 161 ++ .../libs/hana/doc/html/prepend_8hpp.html | 161 ++ .../libs/hana/doc/html/preprocessor_8hpp.html | 180 ++ .../libs/hana/doc/html/preprocessor_8hpp.js | 10 + .../libs/hana/doc/html/product_8hpp.html | 161 ++ .../libs/hana/doc/html/range_8hpp.html | 161 ++ .../libs/hana/doc/html/ratio_8hpp.html | 168 ++ .../libs/hana/doc/html/remove_8hpp.html | 161 ++ .../libs/hana/doc/html/remove__at_8hpp.html | 161 ++ .../libs/hana/doc/html/remove__if_8hpp.html | 161 ++ .../hana/doc/html/remove__range_8hpp.html | 161 ++ .../libs/hana/doc/html/repeat_8hpp.html | 161 ++ .../libs/hana/doc/html/replace_8hpp.html | 161 ++ .../libs/hana/doc/html/replace__if_8hpp.html | 161 ++ .../libs/hana/doc/html/replicate_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/resize.js | 95 ++ .../libs/hana/doc/html/reverse_8hpp.html | 161 ++ .../hana/doc/html/reverse__apply_8hpp.html | 161 ++ .../hana/doc/html/reverse__fold_8hpp.html | 161 ++ .../hana/doc/html/reverse__partial_8hpp.html | 168 ++ .../hana/doc/html/reverse__partial_8hpp.js | 4 + .../libs/hana/doc/html/scan__left_8hpp.html | 161 ++ .../libs/hana/doc/html/scan__right_8hpp.html | 161 ++ .../libs/hana/doc/html/search/all_0.html | 26 + .../libs/hana/doc/html/search/all_0.js | 4 + .../libs/hana/doc/html/search/all_1.html | 26 + .../libs/hana/doc/html/search/all_1.js | 72 + .../libs/hana/doc/html/search/all_10.html | 26 + .../libs/hana/doc/html/search/all_10.js | 39 + .../libs/hana/doc/html/search/all_11.html | 26 + .../libs/hana/doc/html/search/all_11.js | 48 + .../libs/hana/doc/html/search/all_12.html | 26 + .../libs/hana/doc/html/search/all_12.js | 67 + .../libs/hana/doc/html/search/all_13.html | 26 + .../libs/hana/doc/html/search/all_13.js | 67 + .../libs/hana/doc/html/search/all_14.html | 26 + .../libs/hana/doc/html/search/all_14.js | 29 + .../libs/hana/doc/html/search/all_15.html | 26 + .../libs/hana/doc/html/search/all_15.js | 16 + .../libs/hana/doc/html/search/all_16.html | 26 + .../libs/hana/doc/html/search/all_16.js | 13 + .../libs/hana/doc/html/search/all_17.html | 26 + .../libs/hana/doc/html/search/all_17.js | 18 + .../libs/hana/doc/html/search/all_2.html | 26 + .../libs/hana/doc/html/search/all_2.js | 62 + .../libs/hana/doc/html/search/all_3.html | 26 + .../libs/hana/doc/html/search/all_3.js | 63 + .../libs/hana/doc/html/search/all_4.html | 26 + .../libs/hana/doc/html/search/all_4.js | 43 + .../libs/hana/doc/html/search/all_5.html | 26 + .../libs/hana/doc/html/search/all_5.js | 34 + .../libs/hana/doc/html/search/all_6.html | 26 + .../libs/hana/doc/html/search/all_6.js | 60 + .../libs/hana/doc/html/search/all_7.html | 26 + .../libs/hana/doc/html/search/all_7.js | 15 + .../libs/hana/doc/html/search/all_8.html | 26 + .../libs/hana/doc/html/search/all_8.js | 17 + .../libs/hana/doc/html/search/all_9.html | 26 + .../libs/hana/doc/html/search/all_9.js | 94 ++ .../libs/hana/doc/html/search/all_a.html | 26 + .../libs/hana/doc/html/search/all_a.js | 4 + .../libs/hana/doc/html/search/all_b.html | 26 + .../libs/hana/doc/html/search/all_b.js | 6 + .../libs/hana/doc/html/search/all_c.html | 26 + .../libs/hana/doc/html/search/all_c.js | 36 + .../libs/hana/doc/html/search/all_d.html | 26 + .../libs/hana/doc/html/search/all_d.js | 81 + .../libs/hana/doc/html/search/all_e.html | 26 + .../libs/hana/doc/html/search/all_e.js | 28 + .../libs/hana/doc/html/search/all_f.html | 26 + .../libs/hana/doc/html/search/all_f.js | 48 + .../libs/hana/doc/html/search/classes_0.html | 26 + .../libs/hana/doc/html/search/classes_0.js | 12 + .../libs/hana/doc/html/search/classes_1.html | 26 + .../libs/hana/doc/html/search/classes_1.js | 9 + .../libs/hana/doc/html/search/classes_10.html | 26 + .../libs/hana/doc/html/search/classes_10.js | 5 + .../libs/hana/doc/html/search/classes_11.html | 26 + .../libs/hana/doc/html/search/classes_11.js | 6 + .../libs/hana/doc/html/search/classes_2.html | 26 + .../libs/hana/doc/html/search/classes_2.js | 6 + .../libs/hana/doc/html/search/classes_3.html | 26 + .../libs/hana/doc/html/search/classes_3.js | 6 + .../libs/hana/doc/html/search/classes_4.html | 26 + .../libs/hana/doc/html/search/classes_4.js | 8 + .../libs/hana/doc/html/search/classes_5.html | 26 + .../libs/hana/doc/html/search/classes_5.js | 4 + .../libs/hana/doc/html/search/classes_6.html | 26 + .../libs/hana/doc/html/search/classes_6.js | 5 + .../libs/hana/doc/html/search/classes_7.html | 26 + .../libs/hana/doc/html/search/classes_7.js | 38 + .../libs/hana/doc/html/search/classes_8.html | 26 + .../libs/hana/doc/html/search/classes_8.js | 7 + .../libs/hana/doc/html/search/classes_9.html | 26 + .../libs/hana/doc/html/search/classes_9.js | 5 + .../libs/hana/doc/html/search/classes_a.html | 26 + .../libs/hana/doc/html/search/classes_a.js | 6 + .../libs/hana/doc/html/search/classes_b.html | 26 + .../libs/hana/doc/html/search/classes_b.js | 5 + .../libs/hana/doc/html/search/classes_c.html | 26 + .../libs/hana/doc/html/search/classes_c.js | 6 + .../libs/hana/doc/html/search/classes_d.html | 26 + .../libs/hana/doc/html/search/classes_d.js | 6 + .../libs/hana/doc/html/search/classes_e.html | 26 + .../libs/hana/doc/html/search/classes_e.js | 9 + .../libs/hana/doc/html/search/classes_f.html | 26 + .../libs/hana/doc/html/search/classes_f.js | 14 + .../libs/hana/doc/html/search/close.png | Bin 0 -> 273 bytes .../libs/hana/doc/html/search/defines_0.html | 26 + .../libs/hana/doc/html/search/defines_0.js | 4 + .../libs/hana/doc/html/search/files_0.html | 26 + .../libs/hana/doc/html/search/files_0.js | 44 + .../libs/hana/doc/html/search/files_1.html | 26 + .../libs/hana/doc/html/search/files_1.js | 10 + .../libs/hana/doc/html/search/files_10.html | 26 + .../libs/hana/doc/html/search/files_10.js | 38 + .../libs/hana/doc/html/search/files_11.html | 26 + .../libs/hana/doc/html/search/files_11.js | 32 + .../libs/hana/doc/html/search/files_12.html | 26 + .../libs/hana/doc/html/search/files_12.js | 15 + .../libs/hana/doc/html/search/files_13.html | 26 + .../libs/hana/doc/html/search/files_13.js | 10 + .../libs/hana/doc/html/search/files_14.html | 26 + .../libs/hana/doc/html/search/files_14.js | 8 + .../libs/hana/doc/html/search/files_15.html | 26 + .../libs/hana/doc/html/search/files_15.js | 13 + .../libs/hana/doc/html/search/files_2.html | 26 + .../libs/hana/doc/html/search/files_2.js | 39 + .../libs/hana/doc/html/search/files_3.html | 26 + .../libs/hana/doc/html/search/files_3.js | 28 + .../libs/hana/doc/html/search/files_4.html | 26 + .../libs/hana/doc/html/search/files_4.js | 19 + .../libs/hana/doc/html/search/files_5.html | 26 + .../libs/hana/doc/html/search/files_5.js | 40 + .../libs/hana/doc/html/search/files_6.html | 26 + .../libs/hana/doc/html/search/files_6.js | 11 + .../libs/hana/doc/html/search/files_7.html | 26 + .../libs/hana/doc/html/search/files_7.js | 11 + .../libs/hana/doc/html/search/files_8.html | 26 + .../libs/hana/doc/html/search/files_8.js | 37 + .../libs/hana/doc/html/search/files_9.html | 26 + .../libs/hana/doc/html/search/files_9.js | 5 + .../libs/hana/doc/html/search/files_a.html | 26 + .../libs/hana/doc/html/search/files_a.js | 21 + .../libs/hana/doc/html/search/files_b.html | 26 + .../libs/hana/doc/html/search/files_b.js | 39 + .../libs/hana/doc/html/search/files_c.html | 26 + .../libs/hana/doc/html/search/files_c.js | 19 + .../libs/hana/doc/html/search/files_d.html | 26 + .../libs/hana/doc/html/search/files_d.js | 17 + .../libs/hana/doc/html/search/files_e.html | 26 + .../libs/hana/doc/html/search/files_e.js | 25 + .../libs/hana/doc/html/search/files_f.html | 26 + .../libs/hana/doc/html/search/files_f.js | 30 + .../hana/doc/html/search/functions_0.html | 26 + .../libs/hana/doc/html/search/functions_0.js | 6 + .../hana/doc/html/search/functions_1.html | 26 + .../libs/hana/doc/html/search/functions_1.js | 4 + .../hana/doc/html/search/functions_2.html | 26 + .../libs/hana/doc/html/search/functions_2.js | 4 + .../hana/doc/html/search/functions_3.html | 26 + .../libs/hana/doc/html/search/functions_3.js | 11 + .../hana/doc/html/search/functions_4.html | 26 + .../libs/hana/doc/html/search/functions_4.js | 4 + .../hana/doc/html/search/functions_5.html | 26 + .../libs/hana/doc/html/search/functions_5.js | 4 + .../hana/doc/html/search/functions_6.html | 26 + .../libs/hana/doc/html/search/functions_6.js | 6 + .../hana/doc/html/search/functions_7.html | 26 + .../libs/hana/doc/html/search/functions_7.js | 5 + .../libs/hana/doc/html/search/groups_0.html | 26 + .../libs/hana/doc/html/search/groups_0.js | 5 + .../libs/hana/doc/html/search/groups_1.html | 26 + .../libs/hana/doc/html/search/groups_1.js | 5 + .../libs/hana/doc/html/search/groups_2.html | 26 + .../libs/hana/doc/html/search/groups_2.js | 9 + .../libs/hana/doc/html/search/groups_3.html | 26 + .../libs/hana/doc/html/search/groups_3.js | 5 + .../libs/hana/doc/html/search/groups_4.html | 26 + .../libs/hana/doc/html/search/groups_4.js | 6 + .../libs/hana/doc/html/search/groups_5.html | 26 + .../libs/hana/doc/html/search/groups_5.js | 6 + .../libs/hana/doc/html/search/groups_6.html | 26 + .../libs/hana/doc/html/search/groups_6.js | 4 + .../libs/hana/doc/html/search/groups_7.html | 26 + .../libs/hana/doc/html/search/groups_7.js | 4 + .../libs/hana/doc/html/search/groups_8.html | 26 + .../libs/hana/doc/html/search/groups_8.js | 4 + .../libs/hana/doc/html/search/groups_9.html | 26 + .../libs/hana/doc/html/search/groups_9.js | 4 + .../libs/hana/doc/html/search/groups_a.html | 26 + .../libs/hana/doc/html/search/groups_a.js | 7 + .../libs/hana/doc/html/search/groups_b.html | 26 + .../libs/hana/doc/html/search/groups_b.js | 5 + .../libs/hana/doc/html/search/groups_c.html | 26 + .../libs/hana/doc/html/search/groups_c.js | 4 + .../libs/hana/doc/html/search/groups_d.html | 26 + .../libs/hana/doc/html/search/groups_d.js | 4 + .../libs/hana/doc/html/search/groups_e.html | 26 + .../libs/hana/doc/html/search/groups_e.js | 7 + .../libs/hana/doc/html/search/mag_sel.png | Bin 0 -> 563 bytes .../hana/doc/html/search/namespaces_0.html | 26 + .../libs/hana/doc/html/search/namespaces_0.js | 6 + .../libs/hana/doc/html/search/nomatches.html | 12 + .../libs/hana/doc/html/search/pages_0.html | 26 + .../libs/hana/doc/html/search/pages_0.js | 4 + .../libs/hana/doc/html/search/pages_1.html | 26 + .../libs/hana/doc/html/search/pages_1.js | 4 + .../libs/hana/doc/html/search/pages_2.html | 26 + .../libs/hana/doc/html/search/pages_2.js | 4 + .../libs/hana/doc/html/search/pages_3.html | 26 + .../libs/hana/doc/html/search/pages_3.js | 4 + .../libs/hana/doc/html/search/related_0.html | 26 + .../libs/hana/doc/html/search/related_0.js | 4 + .../libs/hana/doc/html/search/related_1.html | 26 + .../libs/hana/doc/html/search/related_1.js | 18 + .../libs/hana/doc/html/search/search.css | 270 +++ .../libs/hana/doc/html/search/search.js | 790 +++++++++ .../libs/hana/doc/html/search/search_l.png | Bin 0 -> 604 bytes .../libs/hana/doc/html/search/search_m.png | Bin 0 -> 158 bytes .../libs/hana/doc/html/search/search_r.png | Bin 0 -> 612 bytes .../libs/hana/doc/html/search/searchdata.js | 44 + .../libs/hana/doc/html/search/typedefs_0.html | 26 + .../libs/hana/doc/html/search/typedefs_0.js | 4 + .../libs/hana/doc/html/search/typedefs_1.html | 26 + .../libs/hana/doc/html/search/typedefs_1.js | 5 + .../libs/hana/doc/html/search/typedefs_2.html | 26 + .../libs/hana/doc/html/search/typedefs_2.js | 4 + .../libs/hana/doc/html/search/typedefs_3.html | 26 + .../libs/hana/doc/html/search/typedefs_3.js | 5 + .../libs/hana/doc/html/search/typedefs_4.html | 26 + .../libs/hana/doc/html/search/typedefs_4.js | 4 + .../libs/hana/doc/html/search/typedefs_5.html | 26 + .../libs/hana/doc/html/search/typedefs_5.js | 5 + .../libs/hana/doc/html/search/typedefs_6.html | 26 + .../libs/hana/doc/html/search/typedefs_6.js | 5 + .../libs/hana/doc/html/search/typedefs_7.html | 26 + .../libs/hana/doc/html/search/typedefs_7.js | 5 + .../libs/hana/doc/html/search/typedefs_8.html | 26 + .../libs/hana/doc/html/search/typedefs_8.js | 7 + .../libs/hana/doc/html/search/typedefs_9.html | 26 + .../libs/hana/doc/html/search/typedefs_9.js | 4 + .../hana/doc/html/search/variables_0.html | 26 + .../libs/hana/doc/html/search/variables_0.js | 4 + .../hana/doc/html/search/variables_1.html | 26 + .../libs/hana/doc/html/search/variables_1.js | 20 + .../hana/doc/html/search/variables_10.html | 26 + .../libs/hana/doc/html/search/variables_10.js | 12 + .../hana/doc/html/search/variables_11.html | 26 + .../libs/hana/doc/html/search/variables_11.js | 17 + .../hana/doc/html/search/variables_12.html | 26 + .../libs/hana/doc/html/search/variables_12.js | 19 + .../hana/doc/html/search/variables_13.html | 26 + .../libs/hana/doc/html/search/variables_13.js | 21 + .../hana/doc/html/search/variables_14.html | 26 + .../libs/hana/doc/html/search/variables_14.js | 12 + .../hana/doc/html/search/variables_15.html | 26 + .../libs/hana/doc/html/search/variables_15.js | 6 + .../hana/doc/html/search/variables_16.html | 26 + .../libs/hana/doc/html/search/variables_16.js | 4 + .../hana/doc/html/search/variables_17.html | 26 + .../libs/hana/doc/html/search/variables_17.js | 8 + .../hana/doc/html/search/variables_2.html | 26 + .../libs/hana/doc/html/search/variables_2.js | 5 + .../hana/doc/html/search/variables_3.html | 26 + .../libs/hana/doc/html/search/variables_3.js | 15 + .../hana/doc/html/search/variables_4.html | 26 + .../libs/hana/doc/html/search/variables_4.js | 12 + .../hana/doc/html/search/variables_5.html | 26 + .../libs/hana/doc/html/search/variables_5.js | 10 + .../hana/doc/html/search/variables_6.html | 26 + .../libs/hana/doc/html/search/variables_6.js | 18 + .../hana/doc/html/search/variables_7.html | 26 + .../libs/hana/doc/html/search/variables_7.js | 6 + .../hana/doc/html/search/variables_8.html | 26 + .../libs/hana/doc/html/search/variables_8.js | 4 + .../hana/doc/html/search/variables_9.html | 26 + .../libs/hana/doc/html/search/variables_9.js | 23 + .../hana/doc/html/search/variables_a.html | 26 + .../libs/hana/doc/html/search/variables_a.js | 4 + .../hana/doc/html/search/variables_b.html | 26 + .../libs/hana/doc/html/search/variables_b.js | 4 + .../hana/doc/html/search/variables_c.html | 26 + .../libs/hana/doc/html/search/variables_c.js | 11 + .../hana/doc/html/search/variables_d.html | 26 + .../libs/hana/doc/html/search/variables_d.js | 38 + .../hana/doc/html/search/variables_e.html | 26 + .../libs/hana/doc/html/search/variables_e.js | 9 + .../hana/doc/html/search/variables_f.html | 26 + .../libs/hana/doc/html/search/variables_f.js | 9 + .../libs/hana/doc/html/second_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/set_8hpp.html | 161 ++ .../libs/hana/doc/html/size_8hpp.html | 150 ++ .../libs/hana/doc/html/slice_8hpp.html | 161 ++ .../libs/hana/doc/html/sort_8hpp.html | 161 ++ .../libs/hana/doc/html/span_8hpp.html | 161 ++ .../libs/hana/doc/html/split__at_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/splitbar.png | Bin 0 -> 311 bytes .../libs/hana/doc/html/std_2vector_8hpp.html | 163 ++ boost_1_63_0/libs/hana/doc/html/std_8hpp.html | 150 ++ .../hana/doc/html/std__common__type_8hpp.html | 168 ++ .../libs/hana/doc/html/string_8hpp.html | 172 ++ .../libs/hana/doc/html/string_8hpp.js | 4 + .../hana/doc/html/struct__macros_8hpp.html | 161 ++ .../html/structboost_1_1fusion_1_1deque.html | 151 ++ .../html/structboost_1_1fusion_1_1list.html | 151 ++ .../html/structboost_1_1fusion_1_1tuple.html | 151 ++ .../html/structboost_1_1fusion_1_1vector.html | 151 ++ ...ructboost_1_1hana_1_1IntegralConstant.html | 160 ++ ..._1_1at__key__detail_1_1advance__until.html | 149 ++ ...boost_1_1hana_1_1basic__tuple-members.html | 148 ++ .../structboost_1_1hana_1_1basic__tuple.html | 220 +++ ...uctboost_1_1hana_1_1basic__tuple__tag.html | 146 ++ .../structboost_1_1hana_1_1basic__type.html | 152 ++ .../html/structboost_1_1hana_1_1common.html | 160 ++ ..._1_1constant__detail_1_1which-members.html | 146 ++ ..._1_1hana_1_1constant__detail_1_1which.html | 151 ++ .../structboost_1_1hana_1_1default__.html | 150 ++ ..._1detail_1_1CanonicalConstant-members.html | 146 ++ ..._1hana_1_1detail_1_1CanonicalConstant.html | 152 ++ ...uctboost_1_1hana_1_1detail_1_1any__of.html | 153 ++ ...st_1_1hana_1_1detail_1_1array-members.html | 146 ++ ...tructboost_1_1hana_1_1detail_1_1array.html | 152 ++ ...t_1_1hana_1_1detail_1_1create-members.html | 146 ++ ...ructboost_1_1hana_1_1detail_1_1create.html | 151 ++ ...st_1_1hana_1_1detail_1_1decay-members.html | 146 ++ ...tructboost_1_1hana_1_1detail_1_1decay.html | 153 ++ ..._1_1first__unsatisfied__index-members.html | 146 ++ ..._1detail_1_1first__unsatisfied__index.html | 151 ++ ..._1_1detail_1_1has__duplicates-members.html | 146 ++ ..._1_1hana_1_1detail_1_1has__duplicates.html | 154 ++ ...tboost_1_1hana_1_1detail_1_1index__if.html | 150 ++ ...1hana_1_1detail_1_1nested__by-members.html | 146 ++ ...boost_1_1hana_1_1detail_1_1nested__by.html | 153 ++ ...ana_1_1detail_1_1nested__than-members.html | 146 ++ ...ost_1_1hana_1_1detail_1_1nested__than.html | 153 ++ ...1hana_1_1detail_1_1nested__to-members.html | 146 ++ ...boost_1_1hana_1_1detail_1_1nested__to.html | 153 ++ ...1_1hana_1_1detail_1_1operators_1_1adl.html | 151 ++ ..._1hana_1_1detail_1_1std__common__type.html | 149 ++ ...1_1hana_1_1detail_1_1type__at-members.html | 146 ++ ...ctboost_1_1hana_1_1detail_1_1type__at.html | 151 ++ ...tructboost_1_1hana_1_1detail_1_1wrong.html | 153 ++ .../structboost_1_1hana_1_1embedding.html | 155 ++ ...oost_1_1hana_1_1experimental_1_1types.html | 150 ++ .../structboost_1_1hana_1_1has__common.html | 153 ++ ...1_1hana_1_1integral__constant-members.html | 190 +++ ...ctboost_1_1hana_1_1integral__constant.html | 1069 ++++++++++++ ...na_1_1integral__constant__tag-members.html | 146 ++ ...st_1_1hana_1_1integral__constant__tag.html | 151 ++ ...tructboost_1_1hana_1_1is__convertible.html | 153 ++ .../structboost_1_1hana_1_1is__default.html | 154 ++ .../structboost_1_1hana_1_1is__embedded.html | 153 ++ .../structboost_1_1hana_1_1lazy-members.html | 150 ++ .../doc/html/structboost_1_1hana_1_1lazy.html | 271 +++ .../structboost_1_1hana_1_1lazy__tag.html | 146 ++ .../structboost_1_1hana_1_1map-members.html | 160 ++ .../doc/html/structboost_1_1hana_1_1map.html | 431 +++++ .../html/structboost_1_1hana_1_1map__tag.html | 146 ++ ...ructboost_1_1hana_1_1optional-members.html | 172 ++ .../html/structboost_1_1hana_1_1optional.html | 600 +++++++ .../structboost_1_1hana_1_1optional__tag.html | 146 ++ .../structboost_1_1hana_1_1pair-members.html | 161 ++ .../doc/html/structboost_1_1hana_1_1pair.html | 299 ++++ .../structboost_1_1hana_1_1pair__tag.html | 146 ++ .../structboost_1_1hana_1_1range-members.html | 152 ++ .../html/structboost_1_1hana_1_1range.html | 292 ++++ .../structboost_1_1hana_1_1range__tag.html | 146 ++ .../structboost_1_1hana_1_1set-members.html | 160 ++ .../doc/html/structboost_1_1hana_1_1set.html | 497 ++++++ .../html/structboost_1_1hana_1_1set__tag.html | 146 ++ ...structboost_1_1hana_1_1string-members.html | 160 ++ .../html/structboost_1_1hana_1_1string.html | 397 +++++ .../structboost_1_1hana_1_1string__tag.html | 146 ++ .../html/structboost_1_1hana_1_1tag__of.html | 160 ++ .../structboost_1_1hana_1_1tuple-members.html | 166 ++ .../html/structboost_1_1hana_1_1tuple.html | 448 +++++ .../doc/html/structboost_1_1hana_1_1tuple.png | Bin 0 -> 930 bytes .../structboost_1_1hana_1_1tuple__tag.html | 146 ++ .../structboost_1_1hana_1_1type-members.html | 157 ++ .../doc/html/structboost_1_1hana_1_1type.html | 428 +++++ .../structboost_1_1hana_1_1type__tag.html | 146 ++ .../doc/html/structboost_1_1hana_1_1when.html | 155 ++ .../structboost_1_1mpl_1_1integral__c.html | 154 ++ .../doc/html/structboost_1_1mpl_1_1list.html | 163 ++ .../html/structboost_1_1mpl_1_1vector.html | 163 ++ .../hana/doc/html/structboost_1_1tuple.html | 151 ++ .../hana/doc/html/structstd_1_1array.html | 160 ++ .../html/structstd_1_1integer__sequence.html | 160 ++ .../html/structstd_1_1integral__constant.html | 154 ++ .../libs/hana/doc/html/structstd_1_1pair.html | 151 ++ .../hana/doc/html/structstd_1_1tuple.html | 151 ++ .../libs/hana/doc/html/suffix_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/sum_8hpp.html | 161 ++ .../doc/html/symmetric__difference_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/sync_off.png | Bin 0 -> 848 bytes boost_1_63_0/libs/hana/doc/html/sync_on.png | Bin 0 -> 838 bytes boost_1_63_0/libs/hana/doc/html/tab_a.png | Bin 0 -> 146 bytes boost_1_63_0/libs/hana/doc/html/tab_b.png | Bin 0 -> 169 bytes boost_1_63_0/libs/hana/doc/html/tab_h.png | Bin 0 -> 177 bytes boost_1_63_0/libs/hana/doc/html/tab_s.png | Bin 0 -> 187 bytes boost_1_63_0/libs/hana/doc/html/tabs.css | 60 + .../libs/hana/doc/html/take_8hpp.html | 161 ++ .../libs/hana/doc/html/take__back_8hpp.html | 161 ++ .../libs/hana/doc/html/take__front_8hpp.html | 161 ++ .../libs/hana/doc/html/take__while_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/tap_8hpp.html | 161 ++ .../libs/hana/doc/html/then_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/todo.html | 163 ++ .../libs/hana/doc/html/traits_8hpp.html | 161 ++ .../libs/hana/doc/html/transform_8hpp.html | 161 ++ .../libs/hana/doc/html/tuple_8hpp.html | 168 ++ .../libs/hana/doc/html/type_8hpp.html | 161 ++ .../libs/hana/doc/html/type__at_8hpp.html | 168 ++ .../libs/hana/doc/html/type__foldl1_8hpp.html | 161 ++ .../libs/hana/doc/html/type__foldr1_8hpp.html | 161 ++ .../libs/hana/doc/html/types_8hpp.html | 171 ++ .../libs/hana/doc/html/unfold__left_8hpp.html | 161 ++ .../hana/doc/html/unfold__right_8hpp.html | 161 ++ .../libs/hana/doc/html/union_8hpp.html | 161 ++ .../libs/hana/doc/html/unique_8hpp.html | 161 ++ .../libs/hana/doc/html/unpack_8hpp.html | 161 ++ .../hana/doc/html/unpack__flatten_8hpp.html | 161 ++ .../libs/hana/doc/html/unrolled_8hpp.html | 161 ++ .../libs/hana/doc/html/value_8hpp.html | 161 ++ .../libs/hana/doc/html/version_8hpp.html | 208 +++ .../libs/hana/doc/html/version_8hpp.js | 8 + .../libs/hana/doc/html/void__t_8hpp.html | 161 ++ .../libs/hana/doc/html/while_8hpp.html | 161 ++ .../libs/hana/doc/html/wrong_8hpp.html | 168 ++ .../libs/hana/doc/html/zero_8hpp.html | 161 ++ boost_1_63_0/libs/hana/doc/html/zip_8hpp.html | 161 ++ .../hana/doc/html/zip__shortest_8hpp.html | 161 ++ .../doc/html/zip__shortest__with_8hpp.html | 161 ++ .../libs/hana/doc/html/zip__with_8hpp.html | 161 ++ 1451 files changed, 134436 insertions(+) create mode 100644 boost_1_63_0/libs/hana/doc/html/Boost.png create mode 100644 boost_1_63_0/libs/hana/doc/html/accessors_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/adapt__adt_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/adapt__struct_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/adjust_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/adjust__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/adl_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/algorithm_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/all_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/all__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/always_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/always_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/and_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/annotated.html create mode 100644 boost_1_63_0/libs/hana/doc/html/any_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/any__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ap_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/append_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/apply_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/apply_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/arg_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/arg_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/arithmetic_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/arrowdown.png create mode 100644 boost_1_63_0/libs/hana/doc/html/arrowright.png create mode 100644 boost_1_63_0/libs/hana/doc/html/assert_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/assert_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/at_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/at__key_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/back_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/basic__tuple_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/bc_s.png create mode 100644 boost_1_63_0/libs/hana/doc/html/bdwn.png create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.cartesian_product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.filter.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.find_if.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.including.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.insert.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.intersection.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_disjoint.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_subset.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.lexicographical_compare.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.make.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.map.make.chart.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.partition.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.move.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.nomove.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.sort.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.symmetric_difference.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.bloat.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.execute.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.union.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.unpack.compile.json create mode 100644 boost_1_63_0/libs/hana/doc/html/bool_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/bool_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/boost_2fusion_2vector_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/boost_2mpl_2vector_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/boost_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/bug.html create mode 100644 boost_1_63_0/libs/hana/doc/html/canonical__constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/capture_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/capture_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/cartesian__product_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/chain_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/chart.js create mode 100644 boost_1_63_0/libs/hana/doc/html/classes.html create mode 100644 boost_1_63_0/libs/hana/doc/html/classstd_1_1ratio.html create mode 100644 boost_1_63_0/libs/hana/doc/html/closed.png create mode 100644 boost_1_63_0/libs/hana/doc/html/comparing_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/compose_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/compose_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/concat_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2applicative_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2comonad_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2comparable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2euclidean__ring_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2foldable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2functor_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2group_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2hashable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2integral__constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2iterable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2logical_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2metafunction_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2monad_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2monad__plus_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2monoid_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2orderable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2product_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2ring_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2searchable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2sequence_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_2struct_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concept_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/concepts_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/config_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/config_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/contains_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_2common_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_2default_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_2is__a_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_2make_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_2tag__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_2to_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_2when_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/core_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/count_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/count__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/create_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/curry_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/curry_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/cycle_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/decay_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/define__struct_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/demux_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/demux_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dependent__on_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/deprecated.html create mode 100644 boost_1_63_0/libs/hana/doc/html/deque_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2any__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2array_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2integral__constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2operators_2comparable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2operators_2iterable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2operators_2logical_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2operators_2monad_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2operators_2orderable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2operators_2searchable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/detail_2variadic_2at_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/difference_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_e68e8157741866f444e17edd764ebbae.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/dispatch_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/div_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/doc.png create mode 100644 boost_1_63_0/libs/hana/doc/html/doxygen.css create mode 100644 boost_1_63_0/libs/hana/doc/html/doxygen.png create mode 100644 boost_1_63_0/libs/hana/doc/html/drop__back_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/drop__front_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/drop__front__exactly_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/drop__into_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/drop__while_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/duplicate_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/dynsections.js create mode 100644 boost_1_63_0/libs/hana/doc/html/empty_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/erase__key_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/eval_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/eval__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2detail_2common_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2tuple_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ext_2boost_2tuple_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ext_2std_2array_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ext_2std_2integral__constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ext_2std_2pair_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ext_2std_2tuple_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/extend_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/extract_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fast__and_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/files.html create mode 100644 boost_1_63_0/libs/hana/doc/html/files.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fill_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/filter_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/find_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/find__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/first_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/first__unsatisfied__index_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fix_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fix_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/flat_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/flatten_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/flip_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/flip_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fold_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fold__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fold__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/folderclosed.png create mode 100644 boost_1_63_0/libs/hana/doc/html/folderopen.png create mode 100644 boost_1_63_0/libs/hana/doc/html/foldl1_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/foldr1_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/for__each_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/front_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/functional_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/functions.html create mode 100644 boost_1_63_0/libs/hana/doc/html/functions_func.html create mode 100644 boost_1_63_0/libs/hana/doc/html/functions_rela.html create mode 100644 boost_1_63_0/libs/hana/doc/html/functions_type.html create mode 100644 boost_1_63_0/libs/hana/doc/html/functions_vars.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fuse_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fusion_2list_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fusion_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2basic__tuple_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2bool_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2applicative_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comonad_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comparable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2euclidean__ring_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2foldable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2functor_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2group_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2hashable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2integral__constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2iterable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2logical_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2metafunction_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad__plus_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monoid_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2orderable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2product_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2ring_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2searchable_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2sequence_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2concept_2struct_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2default_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2core_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2difference_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2erase__key_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2eval_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2intersection_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2lazy_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2map_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2optional_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2pair_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2range_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2set_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2symmetric__difference_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2tuple_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2union_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/globals.html create mode 100644 boost_1_63_0/libs/hana/doc/html/globals_defs.html create mode 100644 boost_1_63_0/libs/hana/doc/html/greater_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/greater__equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Applicative.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Applicative.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Comonad.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Comonad.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Comparable.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Comparable.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Constant.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Constant.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Foldable.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Foldable.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Functor.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Functor.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Group.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Group.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Hashable.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Hashable.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Iterable.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Iterable.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Logical.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Logical.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Monad.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Monad.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Monoid.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Monoid.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Orderable.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Orderable.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Product.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Product.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Ring.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Ring.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Searchable.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Searchable.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Sequence.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Sequence.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Struct.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-Struct.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-assertions.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-assertions.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-concepts.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-concepts.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-config.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-config.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-core.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-core.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-datatypes.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-datatypes.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-details.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-details.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-experimental.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-experimental.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-std.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext-std.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-ext.js create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-functional.html create mode 100644 boost_1_63_0/libs/hana/doc/html/group__group-functional.js create mode 100644 boost_1_63_0/libs/hana/doc/html/hana.js create mode 100644 boost_1_63_0/libs/hana/doc/html/hana_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/has__duplicates_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/hash_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/hash__table_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/hierarchy.html create mode 100644 boost_1_63_0/libs/hana/doc/html/highcharts-data.js create mode 100644 boost_1_63_0/libs/hana/doc/html/highcharts-exporting.js create mode 100644 boost_1_63_0/libs/hana/doc/html/highcharts.js create mode 100644 boost_1_63_0/libs/hana/doc/html/id_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/id_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/index.html create mode 100644 boost_1_63_0/libs/hana/doc/html/index__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/infix_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/infix_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/insert_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/insert__range_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/integer__sequence_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/integral__c_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/integral__constant_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/intersection_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/intersperse_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/intrinsics_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/is__disjoint_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/is__empty_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/is__subset_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/iterate_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/iterate_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/jquery.js create mode 100644 boost_1_63_0/libs/hana/doc/html/keys_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/lazy_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/length_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/less_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/less__equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/lexicographical__compare_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/lift_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/map_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/max_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/maximum_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/members_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/min_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/minimum_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/minus_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/mod_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/modules.html create mode 100644 boost_1_63_0/libs/hana/doc/html/modules.js create mode 100644 boost_1_63_0/libs/hana/doc/html/monadic__compose_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/monadic__fold__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/monadic__fold__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/mpl_2list_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/mpl_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/mult_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespaceboost.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana_1_1literals.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespacemembers.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespacemembers_func.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespacemembers_type.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespacemembers_vars.html create mode 100644 boost_1_63_0/libs/hana/doc/html/namespaces.html create mode 100644 boost_1_63_0/libs/hana/doc/html/nav_f.png create mode 100644 boost_1_63_0/libs/hana/doc/html/nav_g.png create mode 100644 boost_1_63_0/libs/hana/doc/html/nav_h.png create mode 100644 boost_1_63_0/libs/hana/doc/html/navtree.css create mode 100644 boost_1_63_0/libs/hana/doc/html/navtree.js create mode 100644 boost_1_63_0/libs/hana/doc/html/navtreedata.js create mode 100644 boost_1_63_0/libs/hana/doc/html/navtreeindex0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/navtreeindex1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/navtreeindex2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/navtreeindex3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/navtreeindex4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/negate_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/nested__by_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/nested__by__fwd_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/nested__than_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/nested__than__fwd_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/nested__to_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/nested__to__fwd_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/none_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/none__of_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/not_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/not__equal_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/on_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/on_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/one_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/open.png create mode 100644 boost_1_63_0/libs/hana/doc/html/optional_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/or_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ordering_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/overload_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/overload_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/pages.html create mode 100644 boost_1_63_0/libs/hana/doc/html/pair_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/partial_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/partial_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/partition_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/permutations_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/plus_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/power_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/prefix_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/prepend_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/product_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/range_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/ratio_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/remove_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/remove__at_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/remove__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/remove__range_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/repeat_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/replace_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/replace__if_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/replicate_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/resize.js create mode 100644 boost_1_63_0/libs/hana/doc/html/reverse_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/reverse__apply_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/reverse__fold_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/scan__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/scan__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_10.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_10.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_11.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_11.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_12.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_12.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_13.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_13.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_14.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_14.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_15.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_15.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_16.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_16.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_17.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_17.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_5.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_5.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_8.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_8.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_9.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_9.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_a.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_a.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_b.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_b.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_c.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_c.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_d.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_d.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_e.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_e.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_f.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/all_f.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_10.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_10.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_11.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_11.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_5.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_5.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_8.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_8.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_9.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_9.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_a.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_a.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_b.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_b.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_c.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_c.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_d.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_d.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_e.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_e.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_f.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/classes_f.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/close.png create mode 100644 boost_1_63_0/libs/hana/doc/html/search/defines_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/defines_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_10.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_10.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_11.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_11.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_12.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_12.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_13.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_13.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_14.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_14.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_15.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_15.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_5.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_5.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_8.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_8.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_9.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_9.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_a.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_a.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_b.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_b.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_c.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_c.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_d.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_d.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_e.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_e.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_f.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/files_f.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_5.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_5.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/functions_7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_5.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_5.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_8.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_8.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_9.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_9.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_a.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_a.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_b.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_b.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_c.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_c.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_d.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_d.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_e.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/groups_e.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/mag_sel.png create mode 100644 boost_1_63_0/libs/hana/doc/html/search/namespaces_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/namespaces_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/nomatches.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/pages_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/related_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/related_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/related_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/related_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/search.css create mode 100644 boost_1_63_0/libs/hana/doc/html/search/search.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/search_l.png create mode 100644 boost_1_63_0/libs/hana/doc/html/search/search_m.png create mode 100644 boost_1_63_0/libs/hana/doc/html/search/search_r.png create mode 100644 boost_1_63_0/libs/hana/doc/html/search/searchdata.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_5.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_5.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_8.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_8.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_9.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/typedefs_9.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_0.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_0.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_1.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_1.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_10.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_10.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_11.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_11.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_12.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_12.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_13.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_13.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_14.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_14.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_15.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_15.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_16.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_16.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_17.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_17.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_2.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_2.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_3.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_3.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_4.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_4.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_5.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_5.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_6.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_6.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_7.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_7.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_8.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_8.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_9.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_9.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_a.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_a.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_b.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_b.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_c.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_c.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_d.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_d.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_e.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_e.js create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_f.html create mode 100644 boost_1_63_0/libs/hana/doc/html/search/variables_f.js create mode 100644 boost_1_63_0/libs/hana/doc/html/second_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/set_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/size_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/slice_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/sort_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/span_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/split__at_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/splitbar.png create mode 100644 boost_1_63_0/libs/hana/doc/html/std_2vector_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/std_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/std__common__type_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/string_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/string_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/struct__macros_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1deque.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1list.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1tuple.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1vector.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1IntegralConstant.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1at__key__detail_1_1advance__until.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__type.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1common.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1default__.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1any__of.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1index__if.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1operators_1_1adl.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1std__common__type.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1wrong.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1embedding.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1experimental_1_1types.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1has__common.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__convertible.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__default.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__embedded.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tag__of.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple.png create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type-members.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type__tag.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1when.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1integral__c.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1list.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1vector.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structboost_1_1tuple.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structstd_1_1array.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structstd_1_1integer__sequence.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structstd_1_1integral__constant.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structstd_1_1pair.html create mode 100644 boost_1_63_0/libs/hana/doc/html/structstd_1_1tuple.html create mode 100644 boost_1_63_0/libs/hana/doc/html/suffix_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/sum_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/symmetric__difference_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/sync_off.png create mode 100644 boost_1_63_0/libs/hana/doc/html/sync_on.png create mode 100644 boost_1_63_0/libs/hana/doc/html/tab_a.png create mode 100644 boost_1_63_0/libs/hana/doc/html/tab_b.png create mode 100644 boost_1_63_0/libs/hana/doc/html/tab_h.png create mode 100644 boost_1_63_0/libs/hana/doc/html/tab_s.png create mode 100644 boost_1_63_0/libs/hana/doc/html/tabs.css create mode 100644 boost_1_63_0/libs/hana/doc/html/take_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/take__back_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/take__front_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/take__while_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/tap_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/then_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/todo.html create mode 100644 boost_1_63_0/libs/hana/doc/html/traits_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/transform_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/tuple_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/type_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/type__at_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/type__foldl1_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/type__foldr1_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/types_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/unfold__left_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/unfold__right_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/union_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/unique_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/unpack_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/unpack__flatten_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/unrolled_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/value_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/version_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/version_8hpp.js create mode 100644 boost_1_63_0/libs/hana/doc/html/void__t_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/while_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/wrong_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/zero_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/zip_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/zip__shortest_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/zip__shortest__with_8hpp.html create mode 100644 boost_1_63_0/libs/hana/doc/html/zip__with_8hpp.html diff --git a/boost_1_63_0/libs/hana/doc/html/Boost.png b/boost_1_63_0/libs/hana/doc/html/Boost.png new file mode 100644 index 0000000000000000000000000000000000000000..b4d51fcd5c9149fd77f5ca6ed2b6b1b70e8fe24f GIT binary patch literal 6308 zcmeAS@N?(olHy`uVBq!ia0y~yU=(FwU~)iH)5g zbF}vT%$qmo{2pS9asE?~yS4 zV~}*@!()Y0Y8HLTe-Cy%RA)$&m?L5Mr-f6RO~ozV_0NRY3o~1Lgxi$dvW4w;NZndD zlR*^3VYi=hVqyLvMt=V-1{{V_+&@0IB#0`@6669QfIo7R{( z3ohQ;EYDP7Gx74VKmF=OCnj|XE)MOKH}{k2T<}9tMWRb$ZQh>=2c7MBTjaeg3`Gp1 zOn)q7?Ek%8_>X~zVbts&3mN$xw|)-2UDdxRz3$(!-R|jkeqPU&t9|EQf4U-d>xFFg z{x{Ws1M+_v3h7m71U^}DEu~!BQ6S*mp|rVu(zeF6FR#qBJpbplS--)u7*~_>#FgoP zC0;&Blc}(I*wXQNtz+fgBa>K#&Pz3gS=T4tG_Ef>tdM*v)Mf9R;~oktCWxAuS7f+M zkY)H5Kj*{7I$4cZ0Rpn~XC94B`jlQOxK3N&`sd?@$!_ceJ*?v{!!S?h|1u2N0KqFL{jZD3|yYm@!7 zD{$ko5T!kC`67XKbkL|AAk>9FP1vNkmjDiX|^R^y;cp z^UAV29q)=Z9@9`fO2<&WREDl_D6c zquluTRZ|NyzoZApW6$HZ`(0auB>B#Jzf759_*7~`{jMwhHPzc6w)9V3{3&onmEH2% zy1=bZw@F0$zb(W{9 z3y<+%SSy^|qZ!UEsHV8u))-3_d=8X|6u5RU;FQR;B`srKi(_hUww{zF=hR3r! zXLBzsJ+<)d^@Z9(9_Fnfdv|Wq@t&1)^nJt=i_#|%nJxW)9rf71f7X9z|KnWAZGFS3 z6Aswit-5^U?sor@cTX63S$-tEJ0!F~YKzzL2CkY3US8MpYB<;)MEE6iKJ-umChec13b_tyxeQ=+0@?B&Bs0~0tT{en%M z!%db795*#F_ZI8rm3nY-i<6%G8IdAE^ zDcP6n-YUQkEQw;TGU7HvCEhOlZXez|o}Ik#ZL?n#f0 zm&@0usQ+!aHM{IEtN)He?(1_cF30}4pyQB{na7p?Yt8cWT4DhvyZ3Gk>NcJ@p<`k8 zb?L*N3y*YaGWf?i-b}h|dV}Y$;ZwfjTPJK+?Nynme|0gZZy~q5i)`feg`e7*FI?+1 z3@AFW_=oZTk8Tl*&Of=by#9l1Jjd5fcb~`G2q;xtI3*F#bbUFm$+xKbV)a$C6pB^^ z1lmV4oNhM{)j56VprliIp4*~^l%?ygdcFK&!0`C8>zBZ7qSF(;8{W9w$+1hRPbq0j z+)56cPdt$hA_o`mkbLbYy3?Fb@PqKL13660Kc?a<=bYSg062edXWB zWk)QFCOK^l>QzbpWBd40zP}UyN9`o5y*vwbUtjd_Dwm#8d^#yhph!H`qy`^UIetc?g_a^_;BpJd%79iM`k@&x+!*DZpNpYH*(v#^RIqB%W%DElQ`FVt9xtp`qG%b zC$}Fd&--&DH83jV)Kse%$@gWZo1E>i$#8qWhU1%|-rcg^X`PE_ty+0>&6INuT-yR% zxPP|Y*w}t-ZO3=V6RVy*aV_z@=v=p|=8kdC)JwZxtCz&GZ9Y^LW^|u{U;} zH9gjEzv*t-9Vo|D|*8v{A{fASF z4@9J_E8;M}@S;Pv?~(;Wf{ALi+8wFP_qSPdPi;PPZT2qF^A}I27XSOPuxC%n@p-B( zt8}g_)E>XC@_5s$Ihsaw+xtIH>NwT4DojsxvZltzn@X#$*eqz$;ZVGtzxlvVrCkAL zC0jgvN+r{B`J+0jc8c<>U@`AYK5={|i<-zw(b;?XCpx|^@%g&??zdAd8Z`mar`!L! zZNKl7bW!WK4_O=6t-C$pQNDb)q{7qLpXc>9NX>H&=WWnz^4h7YXsF`0BZgJh_OeNJ z%)&xn`-aN`M%?~q7tWm>=<~qKRC8tM8$a%L{ey2kI8txkxx3xJ;j7Q%D{3XiFZ{lA z@!CjtaC^NE+kflmOwWbxatr6_&(6MF|6t{woyqeTuLzr<&3y94wX=cek{6aeUJ?*A zA|7V$;*0%XQzrZUg(%toS)1l9e_o_KgKhsEl z%>TgoO~d@AO(F$~s`B5L-VF&l#Q9|Tyjsb)_4*kL6%Aq?l9x1=_fJ3j^FjMRW|bX# zU6Q`WES&Q2hiJpbyKS#ltvcns@e11nSMJJ^B1hxqr*{?>ay(Q_Ii`J_HS?Id?{T} zdujR8{u=dDvyGLc7uJ{ttvLQ5V9SoEsjpLa>P>%Dv{6m`!HQ{LoEx3>RuuJJe^uzo z{$VBSd{ZZrwhL!mZPoQYZBh&R_c2j-wsMC1wHuXxj_54pxvBSE<#2{|uAf=& zLd15vt&n7VlFY&B#>m^cA54%ctolSO;BmGUrUyj5Bh|5j?+)pHw?WDm47pW+O9 zapkFU{jK18t4ejHF7IXSZmrrDuz$w-=P9P)*ZONBbwjSyJihQL^)G|A>LjU0Uffq_ zP3tT!?=ek$DPW;3yhBoPfpqV_$y2N5tS-y=v!LPh+Jb#i)vEJb_8ysf>GQqyWr3G< z<*w!ME8g1r{q(aHPxvJ*`JS!~nLbHq{`A-XO}A#ukbjnCIr)d1)J)4iQ)ixFu9xvX zdbIm!h~4~ndy9g%0`-4k^9VYS(!B`f@odS%TN&ghk&qa}1AIa%-D z$8C%`#j>qQJDtBXs~)#t@!o%HYf)UqGs6jT?Ds6M{Z!I6SYh*cVS(xQgvW+jf6sp3 z%so|0|7hvz$A68DHtp`@W!duRzSKsWSBHw;cBd95xB2s=OnIuGqAJRyPqPNOGM$x>QK{U%tz_lxWgo+MmmXe~{? z<6L};Q#fzI>}!WZYtIYx=emVuWtaUr=Jt1c(B+_*qx+(6Z#*WwGihVyleYH@II39l zJ}fpd_~g2ix4PlMk40;i#J?3PS$kamrfc7Gj+R&Nj#^!K)PC&K&X9*flk{r%&Oecw z$vY#nZ;SG@=TDqu>)3-l<3c~F*7BZTJDcS);{$`1J7N=4Ib!F!Nk6J$F<%w-=ETb* zKNiM^ef`t@yRiBGJlV-tye__U(Eq=+*}b5bt!U-f)v-ozIo<^wx8%2qmlKz;H<``9 z?#>>rkBeCDRDDZI&GXC@{m^vb)UT`G?N;lEg*ZCYBr$8H9;}L#f4(j5@a&6A^WvF4 z-KzNbjJK*TGEmh|QQ>&<&6sJY_`RR0-w|QI;&7gQM?mVFbDfhbtTLL{JbD+t`=L;x z5R-ZP?ckrzeJ5hpeVBAYT>IlE<(%Q0v@s{d_?sS#t{kL+XXYA?fR9UiJUAOA%gODBCxwpUXuhfe;p`E03 zF7@-)mBOc2Y&2ObS(`l1>~XeE`mL@HGKXcqe`|lb|JUUuB2T9)&#W?3Pc@RhUfArJ zyRzeiw0>PSkE+X(D_c~;pY7>but)IN+MnFs2lQCxw%<`b;5pB_y`hp}j@J%xmRmJt zmG7Nz-@T=L*3GgZ!k>Fd{M&8Hm0x%d)HS~rKNOX~^lAQ&kK7BmOU|pG{P}BH;grd* zcRf8^%)U(Af3CLa^D-&!^*_@@mYZ@vnIU*d|Kpy@>rZ$;&R*YjC2Q6s>wclboSK^^ zTwkTNsdABYb!6d+t*s}nGXKhVU8lm@`n>WETQ|pN&8znRch4_*+-mo?`Tc`uZ%$~< zk7Zzswd4Ks@yU0&EdQ%Kdt+lSYqQCHJ;^Mb@O!7c?W;~k2ie3u#h10u|4r_Q$g2Ol zZBb|8JnQWtmS0mZ&U$ub)Q*n)+)&UqVQtiM#gL#cmh&@0ItsTs z1)iH;(qFcZ!+k4*`^u;(Ul%WsH?`<`8nrS;xc92vJR^3&@_Ugd;<&aq`)=*cadVcG zSbO-b{ey(~&x@zOElW;N>i25gBfd~SUEyK7O?S}hSL-%QulI9dUHCM#Sh*$1EyLhw z{+Sn(0yL*P3VVNAs&Z=i4knq*eG|mGGUM#oS}yJC*yE>>s#K&Fbgo0xGeG*)g6aR- zgzYqX*7nQnWy+HF)o+s!N?Rwr^p51>^tWyM_FO3sG1@zKN`2Iehf5g0m>=JD?rY(e zn3bwY6X%xa{CGOCa<^SujI{g2TF&o1udT{g#<26AEBF54z`5tM!koOeyv31oA0<2$ zpI6DlGih7-8g@RmKF(K0?|gUX9x)NPGo!lvzPqxak4N*}r>hsY?VHXq_5Xo~9vk-U z-5e9-s>%1~=l%WG_22f~;S$O%+SuCUmfRM+@S%;t5;hezvt#dN`<<1i2E{$fo+lr+ z;5g^gMbL zx2)>qe`Ql(vEz}_s*s)w=XIIGRvhf&y)RI7!tiwcglRu~o0XPidAYVPa1^Usv&Gu+ z$22i!{>62V*pCz4}_#;jX@bd|JO za2+kbcnxgq{F*xk#37XT8qPBx!(S?FYm8#N8M!PH;<~B z_}HVu&bV24@xKSh7w*}aSu1ohwf6kQ{JTae@i`7N1aFy5bJ%r$*DMj!_%lD0j_Ybk zR!Dq3SlURq6Xm1$<7<^CO0zSow1OaD-NHDJb{Ibplgsxl00r+8kT@_*YnA?-hW?T&hC41^5*9p{QuwU%Wj!(x1(12-A4wS zzC(|b!za#vICVRp^XnEX+xd!u{r@h1|NcOMrS;_7f3GgQzd!F+bLp<~@3j^ldp7<5 zaAo7^$Y~?mc2%Zv>*mS3f^JXSvsldxyo}N%gGWcP}gc$%I_v zI|}R%7S_)W_+iME$M%82zO+w%vZkhY-)~NN;aG*Zd4FDdrv#=Mu8aKf#B1k6xnR5b z=b7HmGhL#3)|lb%YwrDjYVrg(yt0&-*~(de@xNa!!-J2mYkodwsCe-4-_Q5oOF|<% zE+`x~KEBS;^xK=>4;wpP#ZuI{a?4J5hV)2Qt0!ho(xkd_=2*otMnY2&#==q+9 z`$N{{NXhOher>VsLy_Ev1hI2cR_Fgtu6GIe*3kcce{lMv?fo?l6&}Zp87dwa7U&<> z@%eF^U-}bELvEt9`pO0Mju#GUS3NrZ-&51?@R9z<+I!~Be^9Ee9g-YDqJ}hT+{K3mK7V(2mOeeZM zFiYMbpC@MVvi+Frg}{do7urZD9>}%$!ytS(p6f(Qw9a1c?-Bve*4;k#@NMIXrgFR5 zM<$H+X{{~$IpSD*m_GQO=~M0r&MW8WP=4{^-pl+v!6%%G@h1d7-QCn7uw87Cx6~Ky z7prR5|37B)_u*oGA-1#^OHLjvyl=Jeu!H{lJ?#zIjpdHgCb{uV>++@KTEraXjaM7( zeBStb+eFuyk)jS9$GCTJ-duKB-ez9ec zlkl@RE6K&I!>P~SranO>?6_bYpT`MvUh^JSn+tn)KTLY6@qMM!j|&zq-pMZN@iWjrucTLs03Gq8jX0xSk+4b=;_re8-+I5;FDkRnx{&`T~q*+sATf}42 zb4{e~gaB8UjEvj~KQlHtx78B%771J0Wu!z5KNv&>|5)e}DE&*?nQ!rWt~!CQ<&w81 z+kK%?tyDs7T(@uhz*ICMX35d@9K_ej)97$*Hl iJhEc{m;X#W3{O<*lBMphi)3J6VDNPHb6Mw<&;$TZQ2{;x literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/accessors_8hpp.html b/boost_1_63_0/libs/hana/doc/html/accessors_8hpp.html new file mode 100644 index 0000000..b03ea9b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/accessors_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/accessors.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
accessors.hpp File Reference
+
+
+ +

Defines boost::hana::accessors. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::accessors.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/adapt__adt_8hpp.html b/boost_1_63_0/libs/hana/doc/html/adapt__adt_8hpp.html new file mode 100644 index 0000000..58cc6b2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/adapt__adt_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/adapt_adt.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
adapt_adt.hpp File Reference
+
+
+ +

Defines the BOOST_HANA_ADAPT_ADT macro. +More...

+

Detailed Description

+

Defines the BOOST_HANA_ADAPT_ADT macro.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/adapt__struct_8hpp.html b/boost_1_63_0/libs/hana/doc/html/adapt__struct_8hpp.html new file mode 100644 index 0000000..e0426b6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/adapt__struct_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/adapt_struct.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
adapt_struct.hpp File Reference
+
+
+ +

Defines the BOOST_HANA_ADAPT_STRUCT macro. +More...

+

Detailed Description

+

Defines the BOOST_HANA_ADAPT_STRUCT macro.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/adjust_8hpp.html b/boost_1_63_0/libs/hana/doc/html/adjust_8hpp.html new file mode 100644 index 0000000..8c767c9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/adjust_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/adjust.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adjust.hpp File Reference
+
+
+ +

Defines boost::hana::adjust. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::adjust.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/adjust__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/adjust__if_8hpp.html new file mode 100644 index 0000000..b6189d3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/adjust__if_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/adjust_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adjust_if.hpp File Reference
+
+
+ +

Defines boost::hana::adjust_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::adjust_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/adl_8hpp.html b/boost_1_63_0/libs/hana/doc/html/adl_8hpp.html new file mode 100644 index 0000000..8dec84c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/adl_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/adl.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adl.hpp File Reference
+
+
+ +

Defines boost::hana::detail::operators::adl. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::operators::adl<... >
 Enables ADL in the hana::detail::operators namespace. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::operators::adl.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/algorithm_8hpp.html b/boost_1_63_0/libs/hana/doc/html/algorithm_8hpp.html new file mode 100644 index 0000000..af4d824 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/algorithm_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/algorithm.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
algorithm.hpp File Reference
+
+
+ +

Defines several constexpr algorithms. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines several constexpr algorithms.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/all_8hpp.html b/boost_1_63_0/libs/hana/doc/html/all_8hpp.html new file mode 100644 index 0000000..f3303f1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/all_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/all.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
all.hpp File Reference
+
+
+ +

Defines boost::hana::all. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::all.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/all__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/all__of_8hpp.html new file mode 100644 index 0000000..eaebb71 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/all__of_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/all_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
all_of.hpp File Reference
+
+
+ +

Defines boost::hana::all_of. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::all_of.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/always_8hpp.html b/boost_1_63_0/libs/hana/doc/html/always_8hpp.html new file mode 100644 index 0000000..1714b45 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/always_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/always.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
always.hpp File Reference
+
+
+ +

Defines boost::hana::always. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::always
 Return a constant function returning x regardless of the argument(s) it is invoked with. More...
 
+

Detailed Description

+

Defines boost::hana::always.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/always_8hpp.js b/boost_1_63_0/libs/hana/doc/html/always_8hpp.js new file mode 100644 index 0000000..ecbebb1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/always_8hpp.js @@ -0,0 +1,4 @@ +var always_8hpp = +[ + [ "always", "always_8hpp.html#ga835970cb25a0c8dc200f1e5f8943538b", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/and_8hpp.html b/boost_1_63_0/libs/hana/doc/html/and_8hpp.html new file mode 100644 index 0000000..ab4b7a5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/and_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/and.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
and.hpp File Reference
+
+
+ +

Defines boost::hana::and_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::and_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/annotated.html b/boost_1_63_0/libs/hana/doc/html/annotated.html new file mode 100644 index 0000000..31aec7a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/annotated.html @@ -0,0 +1,222 @@ + + + + + + + + + +Boost.Hana: Class List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nboost
 Nfusion
 CdequeAdapter for Boost.Fusion deques
 ClistAdapter for Boost.Fusion lists
 CtupleAdapter for Boost.Fusion tuples
 CvectorAdapter for Boost.Fusion vectors
 NhanaNamespace containing everything in the library
 Nat_key_detail
 Cadvance_until
 Nconstant_detail
 Cwhich
 Ndetail
 Noperators
 CadlEnables ADL in the hana::detail::operators namespace
 Cany_ofReturns whether the Predicate is satisfied by any of the T...
 CarrayA minimal std::array with better constexpr support
 CCanonicalConstantTag representing a canonical Constant
 CcreateImplementation of the generic std::make_xxx pattern for arbitrary xxxs
 CdecayEquivalent to std::decay, except faster
 Cfirst_unsatisfied_indexReturns the index of the first element which does not satisfy Pred, or sizeof...(Xs) if no such element exists
 Chas_duplicatesReturns whether any of the Ts are duplicate w.r.t. hana::equal
 Cindex_ifReturns the index of the first element of the pack<> that satisfies the predicate, or the size of the pack if there is no such element
 Cnested_byProvides a .by static constexpr function object
 Cnested_thanProvides a .than static constexpr function object
 Cnested_toProvides a .to static constexpr function object
 Cstd_common_typeEquivalent to std::common_type, except it is SFINAE-friendly and does not support custom specializations
 Ctype_atClassic MPL-style metafunction returning the nth element of a type parameter pack
 CwrongEquivalent to a type-dependent std::false_type
 Nexperimental
 CtypesContainer optimized for holding types
 Cbasic_tupleStripped down version of hana::tuple
 Cbasic_tuple_tagTag representing hana::basic_tuple
 Cbasic_typeBase class of hana::type; used for pattern-matching
 CcommonMetafunction returning the common data type between two data types
 Cdefault_Mark a tag-dispatched method implementation as a default implementation
 CembeddingMarks a conversion between data types as being an embedding
 Chas_commonMetafunction returning whether two data types share a common data type
 Cintegral_constantCompile-time value of an integral type
 Cintegral_constant_tagTag representing hana::integral_constant
 CIntegralConstantThe IntegralConstant concept represents compile-time integral values
 Cis_convertibleReturns whether there is a Hana-conversion from a data type to another
 Cis_defaultReturns whether a tag-dispatched method implementation is a default implementation
 Cis_embeddedReturns whether a data type can be embedded into another data type
 Clazyhana::lazy implements superficial laziness via a monadic interface
 Clazy_tagTag representing hana::lazy
 CmapBasic associative container requiring unique, Comparable and Hashable keys
 Cmap_tagTag representing hana::maps
 CoptionalOptional value whose optional-ness is known at compile-time
 Coptional_tagTag representing a hana::optional
 CpairGeneric container for two elements
 Cpair_tagTag representing hana::pair
 CrangeCompile-time half-open interval of hana::integral_constants
 Crange_tagTag representing a hana::range
 CsetBasic unordered container requiring unique, Comparable and Hashable keys
 Cset_tagTag representing the hana::set container
 CstringCompile-time string
 Cstring_tagTag representing a compile-time string
 Ctag_ofMetafunction returning the tag associated to T
 CtupleGeneral purpose index-based heterogeneous sequence with a fixed length
 Ctuple_tagTag representing hana::tuples
 CtypeC++ type in value-level representation
 Ctype_tagTag representing hana::type
 CwhenEnable a partial specialization only if a boolean condition is true
 Nmpl
 Cintegral_cAdapter for IntegralConstants from the Boost.MPL
 ClistAdapter for Boost.MPL lists
 CvectorAdapter for Boost.MPL vectors
 CtupleAdapter for boost::tuples
 Nstd
 CarrayAdaptation of std::array for Hana
 Cinteger_sequenceAdaptation of std::integer_sequence for Hana
 Cintegral_constantAdapter for std::integral_constants
 CpairAdaptation of std::pair for Hana
 CratioAdaptation of std::ratio for Hana
 CtupleAdapter for std::tuples
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/any_8hpp.html b/boost_1_63_0/libs/hana/doc/html/any_8hpp.html new file mode 100644 index 0000000..f99021a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/any_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/any.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
any.hpp File Reference
+
+
+ +

Defines boost::hana::any. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::any.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/any__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/any__of_8hpp.html new file mode 100644 index 0000000..bd15448 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/any__of_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/any_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
any_of.hpp File Reference
+
+
+ +

Defines boost::hana::any_of. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::any_of.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ap_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ap_8hpp.html new file mode 100644 index 0000000..db37d9e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ap_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/ap.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ap.hpp File Reference
+
+
+ +

Defines boost::hana::ap. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::ap.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/append_8hpp.html b/boost_1_63_0/libs/hana/doc/html/append_8hpp.html new file mode 100644 index 0000000..18749c1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/append_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/append.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
append.hpp File Reference
+
+
+ +

Defines boost::hana::append. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::append.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/apply_8hpp.html b/boost_1_63_0/libs/hana/doc/html/apply_8hpp.html new file mode 100644 index 0000000..ecbd56a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/apply_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/apply.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
apply.hpp File Reference
+
+
+ +

Defines boost::hana::apply. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::apply
 Invokes a Callable with the given arguments. More...
 
+

Detailed Description

+

Defines boost::hana::apply.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/apply_8hpp.js b/boost_1_63_0/libs/hana/doc/html/apply_8hpp.js new file mode 100644 index 0000000..31103c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/apply_8hpp.js @@ -0,0 +1,4 @@ +var apply_8hpp = +[ + [ "apply", "apply_8hpp.html#ga30027c383676084be151ef3c6cf2829f", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/arg_8hpp.html b/boost_1_63_0/libs/hana/doc/html/arg_8hpp.html new file mode 100644 index 0000000..8311f4f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/arg_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/arg.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
arg.hpp File Reference
+
+
+ +

Defines boost::hana::arg. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<std::size_t n>
constexpr auto boost::hana::arg
 Return the nth passed argument. More...
 
+

Detailed Description

+

Defines boost::hana::arg.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/arg_8hpp.js b/boost_1_63_0/libs/hana/doc/html/arg_8hpp.js new file mode 100644 index 0000000..8354d65 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/arg_8hpp.js @@ -0,0 +1,4 @@ +var arg_8hpp = +[ + [ "arg", "arg_8hpp.html#ga6acc765a35c4dc85f0deab4785831a3d", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/arithmetic_8hpp.html b/boost_1_63_0/libs/hana/doc/html/arithmetic_8hpp.html new file mode 100644 index 0000000..051a9a5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/arithmetic_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/arithmetic.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
arithmetic.hpp File Reference
+
+
+ +

Defines arithmetic operators. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines arithmetic operators.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/arrowdown.png b/boost_1_63_0/libs/hana/doc/html/arrowdown.png new file mode 100644 index 0000000000000000000000000000000000000000..adc1f6bbc4cc1308f5d3d7eda84b221b9f8dab5d GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq`L@Vh8-1A# zC60cS*Kjsq;!a_G)iaTUON#4~Yu6M`2}M>@-litT2F3*omio&+t?&?e{^T5Mz>o*zd?3%n_V&@k%8!!PjdJ(SwOwDnRXE0}m6J=9(Q|*V ztrPp{GxiGuuFJ->nBIzN)xMFYuCRO0@n;#?vp&B6-Pm+aFXf}ow~xX5mhEfQ%gVLk zpKZ`)SH-;Pb#0DFeWTqfeoguNj=hJ^Z{cT*H>p%)cW*YF&A`CG;OXk;vd$@?2>|`O BU@ZUu literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/arrowright.png b/boost_1_63_0/libs/hana/doc/html/arrowright.png new file mode 100644 index 0000000000000000000000000000000000000000..eb2a0a4220cb34865c0c2c80916a6f368f8457a5 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=ZVAV_;x7xk{#nfq`MQr;B4q1>@VfYxxct zNVuLC6N+P2;VdhfmcWtUp#G3m;Dzc3qX~@%n+`v^ne8*R`?b_AF@YJiFFk`l&b{;R z=Mf3!52l(2^h=mt-0c3mwjv|Schgr+1vc}84l=5@x)mKd+?ZBBOVT>&mRZJNSJM>! z^=R0n)@Msy!WpK|aF*%rb}?p{E^#pSiB|yAjxD(h#SR*OP_^g?T=6ru>DA@(3j!+) jU%lIXpCjV&|0Z==3w72UhBwX(3=9mOu6{1-oD!M + + + + + + + + +Boost.Hana: boost/hana/assert.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
assert.hpp File Reference
+
+
+ +

Defines macros to perform different kinds of assertions. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define BOOST_HANA_RUNTIME_ASSERT(condition)   unspecified
 Expands to a runtime assertion. More...
 
#define BOOST_HANA_RUNTIME_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_RUNTIME_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_CONSTANT_ASSERT(condition)   unspecified
 Compile-time assertion for Constants. More...
 
#define BOOST_HANA_CONSTANT_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_CONSTANT_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_ASSERT(condition)   unspecified
 Expands to the strongest form of assertion possible for the given condition. More...
 
#define BOOST_HANA_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_CONSTEXPR_ASSERT(condition)   unspecified
 Expands to a static assertion or a runtime assertion, depending on whether constexpr lambdas are supported. More...
 
+#define BOOST_HANA_CONSTEXPR_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT, but allows providing a custom failure message.
 
+#define BOOST_HANA_RUNTIME_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_RUNTIME_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_RUNTIME_CHECK(...)
 Equivalent to BOOST_HANA_RUNTIME_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTANT_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_CONSTANT_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTANT_CHECK(...)
 Equivalent to BOOST_HANA_CONSTANT_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CHECK(...)
 Equivalent to BOOST_HANA__ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTEXPR_CHECK_MSG(condition, message)    BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTEXPR_CHECK(...)
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+

Detailed Description

+

Defines macros to perform different kinds of assertions.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/assert_8hpp.js b/boost_1_63_0/libs/hana/doc/html/assert_8hpp.js new file mode 100644 index 0000000..e2a65a0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/assert_8hpp.js @@ -0,0 +1,19 @@ +var assert_8hpp = +[ + [ "BOOST_HANA_RUNTIME_ASSERT", "group__group-assertions.html#gae4eb14a3b31e44f433b080d9bc2d14fd", null ], + [ "BOOST_HANA_RUNTIME_ASSERT_MSG", "group__group-assertions.html#ga2e25bbdeefb0e5fbf45ffa9227ddb8d2", null ], + [ "BOOST_HANA_CONSTANT_ASSERT", "group__group-assertions.html#ga2626fa0c92b308cee62ac423ae2dba41", null ], + [ "BOOST_HANA_CONSTANT_ASSERT_MSG", "group__group-assertions.html#ga9961218055c571b279bb6e07befbba4d", null ], + [ "BOOST_HANA_ASSERT", "group__group-assertions.html#ga90c1df2cb8eb67e8e0c822eac180b7bc", null ], + [ "BOOST_HANA_ASSERT_MSG", "group__group-assertions.html#gaa7690973ea7b2ba5b6a72a6293fce873", null ], + [ "BOOST_HANA_CONSTEXPR_ASSERT", "group__group-assertions.html#ga046d7ee458de8da63812fe2f059c0a4d", null ], + [ "BOOST_HANA_CONSTEXPR_ASSERT_MSG", "group__group-assertions.html#ga0a1327b758604bf330efeba450dd4a95", null ], + [ "BOOST_HANA_RUNTIME_CHECK_MSG", "group__group-assertions.html#ga1cd7a2be93e2bf4e9a18c7043276373e", null ], + [ "BOOST_HANA_RUNTIME_CHECK", "group__group-assertions.html#ga29b2b21ffa5513e5b706c50ffee980af", null ], + [ "BOOST_HANA_CONSTANT_CHECK_MSG", "group__group-assertions.html#ga41a7490fd94005e6b6a3b6a900207063", null ], + [ "BOOST_HANA_CONSTANT_CHECK", "group__group-assertions.html#ga4bf9e0c46c44e21fbe5c5fbb3ace8356", null ], + [ "BOOST_HANA_CHECK_MSG", "group__group-assertions.html#ga7af67ae500a237fe350f1bfceb4a5afa", null ], + [ "BOOST_HANA_CHECK", "group__group-assertions.html#ga512de1fcd31e8a34931ffb2c891afd36", null ], + [ "BOOST_HANA_CONSTEXPR_CHECK_MSG", "group__group-assertions.html#gaa76ba567944adfec0dce60cc20be35bc", null ], + [ "BOOST_HANA_CONSTEXPR_CHECK", "group__group-assertions.html#ga5150cd7df438a22056a39529d21562d2", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/at_8hpp.html b/boost_1_63_0/libs/hana/doc/html/at_8hpp.html new file mode 100644 index 0000000..f868b5f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/at_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/at.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
at.hpp File Reference
+
+
+ +

Defines boost::hana::at and boost::hana::at_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::at and boost::hana::at_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/at__key_8hpp.html b/boost_1_63_0/libs/hana/doc/html/at__key_8hpp.html new file mode 100644 index 0000000..5205584 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/at__key_8hpp.html @@ -0,0 +1,167 @@ + + + + + + + + + +Boost.Hana: boost/hana/at_key.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
at_key.hpp File Reference
+
+
+ +

Defines boost::hana::at_key. +More...

+ + + + +

+Classes

struct  boost::hana::at_key_detail::advance_until< Xs, Pred, i, N, Done >
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::at_key.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/back_8hpp.html b/boost_1_63_0/libs/hana/doc/html/back_8hpp.html new file mode 100644 index 0000000..f3763af --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/back_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/back.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
back.hpp File Reference
+
+
+ +

Defines boost::hana::back. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::back.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/basic__tuple_8hpp.html b/boost_1_63_0/libs/hana/doc/html/basic__tuple_8hpp.html new file mode 100644 index 0000000..dec72ea --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/basic__tuple_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/basic_tuple.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
basic_tuple.hpp File Reference
+
+
+ +

Defines boost::hana::basic_tuple. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::basic_tuple.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/bc_s.png b/boost_1_63_0/libs/hana/doc/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..1f51c9d89864a6c3bf1eb1defb1c1fd63fc97262 GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0y~yVBlb2V36ZrV_;wqY>4M&U|>r2ba4!+V0;^U+h5pU z#BQ_k?zhvH?!G(CTX|6eXV6#Q+91ywG3j2DkCOzZWPE5c+}|PPTl4Xxxv+4)p_-DD zlgYHUj&ebrUrU%6bL#cu4s4rJWXNUM_%$baw(OU9i=S%G&&w-6^qk?yp%@_cK*D*#A5AeP_z%Wm9C1&QPB4;q~Ta(;Ft7kE`WXby*?j&&v}n zxAW$giuDTvwJKHAs?+P$mFP|b zF@OH+ldSu{Gc&X|GM!z%fRFd%mlMTBzXRu*?(|IRGrPO9NN)c*jgtoq{`ZEe*d|JF zmv4TabMb`lj6SAZ;h8-uo3W=Seo(VBy)|ie`|Q|*IW}GW#;Nya z&-is?`s@{NtN$#!-!(Zz`}P$}pCV?byq5A=`$A9auROvRH7WR_x6H$;3in2bmjAY^ z&fl4?x_ohFU%^`A0->qgRyn@})Lt_-Fz=LF)w%Pk(Qb!`f+VYJ{0uS@URM4N9_p7b f?w_>mFWbZ1-Trn{eRCKX7#KWV{an^LB{Ts5D-ST= literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/bdwn.png b/boost_1_63_0/libs/hana/doc/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..e7edc002eb8f1b61beee54393bd48ca5140e7b61 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0y~yU|?rpVBp|jV_;w~WqAssqC8z3Ln;{G&OOcBpdjEf zKVX{SMyB`k-X7vE+Ne;qK`)i(MVm|Xjg$Lsp1;DdXKLTqE%z8}Ue?cCY}ODq>$UL~ z_M`0f`p)VawQKCOx#oF)mRVl6KUpv%LA;6kfUk5Pmr?Ff1_lNOPgg&ebxsLQ04OFi AP5=M^ literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.bloat.json new file mode 100644 index 0000000..f5f2c2a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.bloat.json @@ -0,0 +1,36 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 79.94], [11, 103.752], [21, 131.152], [31, 161.928], [41, 200.192]] + } + + + , { + "name": "std::tuple", + "data": [[1, 78.907], [11, 116.387], [21, 192.667], [31, 335.835], [41, 557.707]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 93.591], [11, 199.791], [21, 348.329], [31, 534.555], [41, 754.373]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.compile.json new file mode 100644 index 0000000..1954e62 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.compile.json @@ -0,0 +1,37 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.107570974], [6, 0.110367106], [11, 0.112677801], [16, 0.123010076], [21, 0.12015582], [26, 0.123328452], [31, 0.125092214], [36, 0.129220079], [41, 0.132229471], [46, 0.135504207], [50, 0.139659975], [75, 0.153694963], [100, 0.171307982], [125, 0.190570785], [150, 0.213008843], [175, 0.228990479], [200, 0.245348237], [225, 0.268154675], [250, 0.291945083], [275, 0.307168837], [300, 0.325313705], [325, 0.346859109], [350, 0.368103297], [375, 0.387949748], [400, 0.416339622]] + } + + + , { + "name": "std::tuple", + "data": [[1, 0.084097176], [6, 0.1038562], [11, 0.122504833], [16, 0.146455031], [21, 0.179310429], [26, 0.205273058], [31, 0.243535522], [36, 0.286604371], [41, 0.336483849], [46, 0.385001777], [50, 0.441561477], [75, 0.850029211], [100, 1.536513199]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 0.481873781], [6, 0.486455689], [11, 0.504178916], [16, 0.512158136], [21, 0.521128146], [26, 0.53289215], [31, 0.54735415], [36, 0.552107196], [41, 0.561889821], [46, 0.574174102]] + }, { + "name": "fusion::list", + "data": [[1, 0.478328887], [6, 0.500288034], [11, 0.518522764], [16, 0.545559612], [21, 0.578320865], [26, 0.606614482], [31, 0.65108117], [36, 0.680232327], [41, 0.713119509], [46, 0.753251244]] + }, { + "name": "mpl::vector", + "data": [[1, 0.108138409], [6, 0.10830638], [11, 0.109949699], [16, 0.111766419], [21, 0.114343818], [26, 0.118043045], [31, 0.120733373], [36, 0.12378391], [41, 0.127764226], [46, 0.130799363], [50, 0.13324147], [75, 0.15201785], [100, 0.170241618], [125, 0.192592299], [150, 0.217840559], [175, 0.243399109], [200, 0.268782768], [225, 0.295533333], [250, 0.330381175], [275, 0.36250149], [300, 0.400896237], [325, 0.436691969], [350, 0.479378884], [375, 0.52658987], [400, 0.590464035]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.execute.json new file mode 100644 index 0000000..d099b82 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at.execute.json @@ -0,0 +1,29 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 2.4e-05], [6, 0.000109], [11, 0.000274], [16, 0.000437], [21, 0.000601], [26, 0.000753], [31, 0.00091], [36, 0.001068], [41, 0.001247], [46, 0.00139]] + } + + + , { + "name": "std::tuple", + "data": [[1, 1.5e-05], [6, 0.000112], [11, 0.000227], [16, 0.000348], [21, 0.000442], [26, 0.000582], [31, 0.000694], [36, 0.000821], [41, 0.001003], [46, 0.001075]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 5.2e-05], [6, 0.000169], [11, 0.000337], [16, 0.000534], [21, 0.00073], [26, 0.000923], [31, 0.001416], [36, 0.001249], [41, 0.001463], [46, 0.001641]] + }, { + "name": "fusion::list", + "data": [[1, 2.7e-05], [6, 0.000244], [11, 0.000695], [16, 0.001371], [21, 0.002302], [26, 0.004116], [31, 0.007185], [36, 0.011009], [41, 0.01529], [46, 0.020909]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..ecd3b83 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.118383401], [5, 0.118169281], [10, 0.118405925], [15, 0.120026862], [20, 0.120202083], [25, 0.119134515], [30, 0.119684923], [35, 0.119541591], [40, 0.119603015], [45, 0.119926701], [50, 0.119914933], [55, 0.119767024], [60, 0.118158433], [65, 0.120055838], [70, 0.119141704], [75, 0.119260302], [80, 0.117523952], [85, 0.117271409], [90, 0.117740174], [95, 0.11922107], [100, 0.120283872], [105, 0.119626935], [110, 0.128901005], [115, 0.118459355], [120, 0.118300891], [125, 0.120185816], [130, 0.1173991], [135, 0.118957688], [140, 0.11983418], [145, 0.11991872]] + }, { + "name": "hana::tuple", + "data": [[0, 0.43704129], [5, 0.446758661], [10, 0.462424147], [15, 0.473925612], [20, 0.484390652], [25, 0.500088455], [30, 0.510607344], [35, 0.530780306], [40, 0.536711567], [45, 0.55593178], [50, 0.573155725], [55, 0.579777465], [60, 0.602673794], [65, 0.6091359], [70, 0.630955584], [75, 0.636946993], [80, 0.651486874], [85, 0.661245952], [90, 0.684498419], [95, 0.697641183], [100, 0.715838325], [105, 0.730434081], [110, 0.731226536], [115, 0.759890264], [120, 0.771825093], [125, 0.772131642], [130, 0.791393225], [135, 0.804633578], [140, 0.828582701], [145, 0.843630347]] + }, { + "name": "hana::map", + "data": [[0, 0.643574378], [5, 0.647579143], [10, 0.641203882], [15, 0.645084817], [20, 0.64295597], [25, 0.641358814], [30, 0.642424173], [35, 0.640677478], [40, 0.635795807], [45, 0.643231248], [50, 0.634929879], [55, 0.641052817], [60, 0.634819569], [65, 0.64680134], [70, 0.645116214], [75, 0.648894555], [80, 0.643379485], [85, 0.64247006], [90, 0.656559494], [95, 0.651613697], [100, 0.639893395], [105, 0.645676256], [110, 0.643073702], [115, 0.643897906], [120, 0.640465645], [125, 0.643114597], [130, 0.645547222], [135, 0.637557954], [140, 0.641044284], [145, 0.640628232]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.538220325], [5, 3.570730607], [10, 3.558143411], [15, 3.623236637], [20, 3.67985253], [25, 3.705507049], [30, 3.725241544], [35, 3.709383975], [40, 3.765749278], [45, 3.788894206], [50, 3.790687011], [55, 3.84936548], [60, 3.863657243], [65, 3.901448594], [70, 3.920633814], [75, 3.907331377], [80, 3.996853011], [85, 3.987048305], [90, 4.012636012], [95, 3.995119606], [100, 4.48464082], [105, 4.045148718], [110, 4.094439858], [115, 4.139344792], [120, 4.262015106], [125, 5.436780146], [130, 5.535035149], [135, 4.407100046], [140, 5.54551329], [145, 4.590087149]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..710a461 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.198160607], [5, 0.200407233], [10, 0.197176319], [15, 0.24376901], [20, 0.227051693], [25, 0.342067836], [30, 0.263826764], [35, 0.284520438], [40, 0.273266358], [45, 0.318999665], [50, 0.269562737], [55, 0.273563289], [60, 0.293705538], [65, 0.302489957], [70, 0.301475904], [75, 0.31053404], [80, 0.478246352], [85, 0.336746157], [90, 0.507139334], [95, 0.54680059], [100, 0.551659812], [105, 0.4972138], [110, 0.579165425], [115, 0.421358068], [120, 0.573181401], [125, 0.39023448], [130, 0.420976319], [135, 0.412568707], [140, 0.417445673], [145, 0.429017377]] + }, { + "name": "hana::tuple", + "data": [[0, 0.418580978], [5, 0.489636936], [10, 0.549881376], [15, 0.638062222], [20, 0.735832206], [25, 0.850011161], [30, 0.960124745], [35, 1.099504139], [40, 1.241339671], [45, 1.417909026], [50, 1.585248202], [55, 1.763475219], [60, 1.959520639], [65, 2.166796201], [70, 2.390152823], [75, 2.629576202], [80, 2.876781259], [85, 3.131998137], [90, 3.396465366], [95, 3.701467075], [100, 4.034182782], [105, 4.310835298], [110, 4.61835703], [115, 4.960642825], [120, 5.325166765], [125, 5.714681005], [130, 6.06982801], [135, 6.462886963], [140, 6.832103011], [145, 7.250200767]] + }, { + "name": "hana::map", + "data": [[0, 0.599718246], [5, 0.706865889], [10, 0.791704611], [15, 0.880485774], [20, 0.969180698], [25, 1.061011295], [30, 1.156200236], [35, 1.231036291], [40, 1.32873233], [45, 1.40786353], [50, 1.508207341], [55, 1.598168087], [60, 1.679049628], [65, 1.77244408], [70, 1.868771056], [75, 1.950247087], [80, 2.039438731], [85, 2.13460861], [90, 2.206854899], [95, 2.311682108], [100, 2.384949025], [105, 2.489062534], [110, 2.573412606], [115, 2.671961293], [120, 2.773222466], [125, 2.833581619], [130, 2.956136137], [135, 3.036017718], [140, 3.132658088], [145, 3.220321194]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.41818748], [5, 3.572644179], [10, 3.683351782], [15, 3.833811126], [20, 3.980388121], [25, 4.251368788], [30, 4.440294359], [35, 4.641094759], [40, 4.942405175], [45, 5.15985934], [50, 5.453392502], [55, 5.754345236], [60, 6.003452367], [65, 6.352019782], [70, 6.74502405], [75, 7.120762781], [80, 7.564642929], [85, 7.993216476], [90, 8.461203191], [95, 8.882248448], [100, 9.329646653], [105, 9.87735905], [110, 10.311301491], [115, 10.791359862], [120, 11.325699697], [125, 12.007253689], [130, 12.59598261], [135, 13.034074932], [140, 13.776878042], [145, 14.349282701]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..68985d6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.13294771], [1, 0.156910823], [2, 0.171986003], [3, 0.206037953], [4, 0.247590269], [5, 0.30682864], [6, 0.376780093], [7, 0.449193384], [8, 0.537824779], [9, 0.651348986], [10, 0.773259425], [11, 0.919412632], [12, 1.041848456], [13, 1.199330527], [14, 1.3587892], [15, 1.553989667], [16, 1.752156937], [17, 1.948341616], [18, 2.18620292], [19, 2.428779212], [20, 2.930483178], [21, 2.978485923], [22, 3.292398807], [23, 3.685563903], [24, 3.811569965], [25, 4.17450973], [26, 4.539911643], [27, 4.895951068], [28, 5.406644295], [29, 5.749965446], [30, 6.010275979]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.bloat.json new file mode 100644 index 0000000..b98d23b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 90.878], [11, 107.884], [21, 129.142], [31, 150.376], [41, 171.634]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 97.461], [11, 216.204], [21, 368.011], [31, 553.96], [41, 769.031]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.compile.json new file mode 100644 index 0000000..c90b0cc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.166686903], [5, 0.207030661], [10, 0.214130235], [15, 0.229812474], [20, 0.247232004], [25, 0.282242854], [30, 0.274684562], [35, 0.295111129], [40, 0.309052633], [45, 0.324645408], [50, 0.343029945], [75, 0.461020933], [100, 0.51373945], [125, 0.601702025], [150, 0.696960209], [175, 0.784350095], [200, 0.88514141], [225, 0.980418669], [250, 1.070419344], [275, 1.173940247], [300, 1.269406324], [325, 1.375662181], [350, 1.498913782], [375, 1.598221265], [400, 1.716383847]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.555612568], [5, 0.62503442], [10, 0.692210342], [15, 0.765930899], [20, 0.838272587], [25, 0.90301968], [30, 0.977416366], [35, 1.058609116], [40, 1.143219917], [45, 1.221902858], [50, 1.308136394]] + }, { + "name": "fusion::list", + "data": [[0, 0.553009378], [5, 0.624766931], [10, 0.69857981], [15, 0.769362823], [20, 0.841624882], [25, 0.926413269], [30, 1.008982238], [35, 1.10262353], [40, 1.195094272], [45, 1.295618398], [50, 1.397923558]] + }, { + "name": "mpl::vector", + "data": [[0, 0.126058807], [5, 0.131152734], [10, 0.136263709], [15, 0.142886582], [20, 0.147989721], [25, 0.154671914], [30, 0.188996383], [35, 0.172130915], [40, 0.180297893], [45, 0.190764253], [50, 0.198634148], [75, 0.24718918], [100, 0.30037466], [125, 0.363503881], [150, 0.431357908], [175, 0.519254931], [200, 0.592335505], [225, 0.674273335], [250, 0.793464545], [275, 0.880615926], [300, 0.998281949], [325, 1.111316784], [350, 1.248823857], [375, 1.380646442], [400, 1.503331969]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.execute.json new file mode 100644 index 0000000..9da1858 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 1.5e-05], [2, 9.1e-05], [4, 0.000152], [6, 0.000214], [8, 0.000307], [10, 0.000406], [12, 0.000554], [14, 0.000583], [16, 0.000687], [18, 0.00078], [20, 0.00088], [22, 0.000961], [24, 0.001069], [26, 0.001127], [28, 0.001239], [30, 0.001327], [32, 0.001417], [34, 0.001493], [36, 0.001603], [38, 0.001674], [40, 0.001784], [42, 0.002519], [44, 0.001944], [46, 0.002718], [48, 0.002113], [50, 0.002229]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 1.4e-05], [2, 0.000109], [4, 0.000215], [6, 0.000318], [8, 0.000421], [10, 0.000564], [12, 0.000721], [14, 0.000832], [16, 0.000969], [18, 0.001075], [20, 0.001205], [22, 0.001335], [24, 0.001459], [26, 0.001592], [28, 0.001766], [30, 0.001839], [32, 0.001967], [34, 0.002103], [36, 0.002202], [38, 0.002343], [40, 0.002487], [42, 0.003228], [44, 0.002836], [46, 0.002978], [48, 0.004312], [50, 0.003485]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.difference.compile.json new file mode 100644 index 0000000..2b9806d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.182507505], [5, 0.25543853], [10, 0.369607124], [15, 0.51441531], [20, 0.746557207], [25, 1.229945521], [30, 1.373630414], [35, 1.725691184], [40, 2.519637751], [45, 2.725377907]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.filter.compile.json new file mode 100644 index 0000000..4e5770f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.176364563], [5, 0.208906945], [10, 0.229323128], [15, 0.248219073], [20, 0.266905386], [25, 0.289674474], [30, 0.308584543], [35, 0.332121338], [40, 0.350595771], [45, 0.370816274], [50, 0.40047376], [75, 0.515164079], [100, 0.631867371], [125, 0.751638133], [150, 0.889074978], [175, 1.039225965], [200, 1.188764304], [225, 1.34803354], [250, 1.48469397], [275, 1.65478064], [300, 2.251140489], [325, 2.039694833], [350, 2.224570425], [375, 2.444834936], [400, 2.647129471]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.491004196], [5, 0.543038099], [10, 0.630777202], [15, 0.719326874], [20, 0.841655498], [25, 1.338829179], [30, 1.279132621], [35, 1.262381125], [40, 1.479514828], [45, 1.675609046], [50, 1.956766391]] + }, { + "name": "fusion::list", + "data": [[0, 0.491073501], [5, 0.555905179], [10, 0.650362985], [15, 0.742850407], [20, 0.848209414], [25, 0.959415673], [30, 1.085376444], [35, 1.218333031], [40, 1.354382489], [45, 1.49944014], [50, 1.656730306]] + }, { + "name": "mpl::vector", + "data": [[0, 0.140807568], [5, 0.146972354], [10, 0.152167151], [15, 0.156636622], [20, 0.164498853], [25, 0.170335064], [30, 0.177225076], [35, 0.185250419], [40, 0.197294388], [45, 0.202513184], [50, 0.216132335], [75, 0.264360177], [100, 0.335636241], [125, 0.385222672], [150, 0.463620853], [175, 0.54212487], [200, 0.624490723], [225, 0.745055827], [250, 0.879526397], [275, 0.968826238], [300, 1.099271796], [325, 1.248470341], [350, 1.491162482], [375, 1.624048014], [400, 1.781108659]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.find_if.compile.json new file mode 100644 index 0000000..dab2371 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.14079799], [5, 0.171941371], [10, 0.155901641], [15, 0.16839065], [20, 0.172164965], [25, 0.181461522], [30, 0.188267136], [35, 0.197239294], [40, 0.205702467], [45, 0.214420953], [50, 0.229361555], [75, 0.283220421], [100, 0.307334136], [125, 0.352940843], [150, 0.402803628], [175, 0.451117206], [200, 0.508911377]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.137163928], [5, 0.148257838], [10, 0.151683449], [15, 0.154184055], [20, 0.158854937], [25, 0.1588339], [30, 0.161336046], [35, 0.162919604], [40, 0.170768318], [45, 0.169034657], [50, 0.172839097], [75, 0.182896757], [100, 0.199152932], [125, 0.216238589], [150, 0.229941022], [175, 0.246781268], [200, 0.26490277]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.490048024], [5, 0.517789428], [10, 0.548704434], [15, 0.568720163], [20, 0.602140157], [25, 0.64111882], [30, 0.666672569], [35, 0.696618293], [40, 0.737705018], [45, 0.777823353]] + }, { + "name": "fusion::list", + "data": [[0, 0.486465328], [5, 0.533723805], [10, 0.58096598], [15, 0.646187266], [20, 0.712007666], [25, 0.776032388], [30, 0.8526901], [35, 0.939277267], [40, 1.003526735], [45, 1.094541863]] + }, { + "name": "mpl::vector", + "data": [[0, 0.141263622], [5, 0.146227425], [10, 0.157152898], [15, 0.158271014], [20, 0.166448242], [25, 0.174476777], [30, 0.183739475], [35, 0.191102029], [40, 0.200192509], [45, 0.210730512], [50, 0.220826708], [75, 0.270892562], [100, 0.329836024], [125, 0.399154233], [150, 0.479875661], [175, 0.556453899], [200, 0.63623667]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..e17aa4d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 84.089], [10, 110.641], [20, 133.818], [30, 154.829], [40, 178.251], [50, 202.298], [60, 221.241], [70, 244.771], [80, 273.942], [90, 295.179], [100, 318.365]] + }, { + "name": "std::vector", + "data": [[0, 96.52], [10, 111.631], [20, 111.703], [30, 111.759], [40, 111.823], [50, 111.879], [60, 111.943], [70, 111.999], [80, 112.063], [90, 112.119], [100, 112.183]] + }, { + "name": "std::array", + "data": [[0, 77.387], [10, 77.537], [20, 77.609], [30, 77.665], [40, 77.729], [50, 77.785], [60, 77.849], [70, 77.921], [80, 77.985], [90, 78.041], [100, 78.129]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 86.484], [10, 226.21], [20, 394.688], [30, 592.542], [40, 819.804], [50, 1084.65]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.compile.json new file mode 100644 index 0000000..f1c8065 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.103185794], [5, 0.111427306], [10, 0.114316756], [15, 0.120809875], [20, 0.12310058], [25, 0.129798821], [30, 0.133723654], [35, 0.143214136], [40, 0.145977812], [45, 0.151847796], [50, 0.154581771], [75, 0.17939504], [100, 0.206459574], [125, 0.232334189], [150, 0.260483408], [175, 0.288541811], [200, 0.317067135], [225, 0.353998627], [250, 0.381437128], [275, 0.409596879], [300, 0.445557748], [325, 0.484026386], [350, 0.523417615], [375, 0.564449136], [400, 0.596814262]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.093889844], [5, 0.096728739], [10, 0.099606127], [15, 0.106080504], [20, 0.108487388], [25, 0.110513345], [30, 0.111960719], [35, 0.117961828], [40, 0.121229195], [45, 0.124618703], [50, 0.13114791], [75, 0.15108686], [100, 0.169270067], [125, 0.191048938], [150, 0.21313464], [175, 0.236134349], [200, 0.262379789], [225, 0.286907252], [250, 0.314398711], [275, 0.340018432], [300, 0.359846202], [325, 0.38931734], [350, 0.416692239], [375, 0.450683285], [400, 0.485609388]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.465081403], [5, 0.498475175], [10, 0.523997461], [15, 0.549156948], [20, 0.582886277], [25, 0.611323337], [30, 0.638020042], [35, 0.677777165], [40, 0.703373741], [45, 0.742225641], [50, 0.770352513]] + },{ + "name": "fusion::list", + "data": [[0, 0.452062499], [5, 0.485563975], [10, 0.528662582], [15, 0.566236285], [20, 0.608834472], [25, 0.645790381], [30, 0.692034395], [35, 0.742888366], [40, 0.789376979], [45, 0.838130282], [50, 0.895959824]] + }, { + "name": "mpl::vector", + "data": [[0, 0.120099214], [5, 0.126084254], [10, 0.127376073], [15, 0.131308389], [20, 0.135869484], [25, 0.141105302], [30, 0.147420029], [35, 0.154056682], [40, 0.16032061], [45, 0.169450804], [50, 0.174039682], [75, 0.214629645], [100, 0.260407357], [125, 0.315935634], [150, 0.372082126], [175, 0.441442], [200, 0.509544643], [225, 0.60286145], [250, 0.68942037], [275, 0.77963495], [300, 0.888707713], [325, 0.994874577], [350, 1.119510676], [375, 1.260669218], [400, 1.364200457]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.execute.json new file mode 100644 index 0000000..0b658aa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 2.3e-05], [10, 0.000262], [20, 0.000699], [30, 0.000985], [40, 0.001368], [50, 0.001732], [60, 0.002111], [70, 0.002811], [80, 0.003462], [90, 0.004076], [100, 0.004637]] + }, { + "name": "std::vector", + "data": [[0, 2.5e-05], [10, 0.000511], [20, 0.000992], [30, 0.001372], [40, 0.001845], [50, 0.002288], [60, 0.002723], [70, 0.003141], [80, 0.003578], [90, 0.004035], [100, 0.004377]] + }, { + "name": "std::array", + "data": [[0, 7.0e-06], [10, 0.000138], [20, 0.000317], [30, 0.000478], [40, 0.000741], [50, 0.000866], [60, 0.001066], [70, 0.00124], [80, 0.001485], [90, 0.001635], [100, 0.001803]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.8e-05], [10, 0.000415], [20, 0.000997], [30, 0.001546], [40, 0.002098], [50, 0.002827]] + }, { + "name": "fusion::list", + "data": [[0, 1.8e-05], [10, 0.000554], [20, 0.001938], [30, 0.004285], [40, 0.009034], [50, 0.015193]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..543dbab --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 93.126], [11, 112.034], [21, 135.262], [31, 156.262], [41, 179.717]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 108.544], [11, 246.668], [21, 419.674], [31, 622.056], [41, 857.942]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.compile.json new file mode 100644 index 0000000..890f6a2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.108678544], [5, 0.113607962], [10, 0.11951376], [15, 0.124890569], [20, 0.129096154], [25, 0.132239361], [30, 0.13903896], [35, 0.14343895], [40, 0.148815425], [45, 0.155057959], [50, 0.159360221], [75, 0.183815911], [100, 0.208981412], [125, 0.233171796], [150, 0.264549722], [175, 0.293265428], [200, 0.325483379], [225, 0.356712433], [250, 0.38921793], [275, 0.425979071], [300, 0.459161039], [325, 0.498563301], [350, 0.532302062], [375, 0.56935183], [400, 0.607015785]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.098317931], [5, 0.101602005], [10, 0.10635828], [15, 0.108739147], [20, 0.112228061], [25, 0.144890842], [30, 0.11974754], [35, 0.124478665], [40, 0.145347244], [45, 0.18203652], [50, 0.134246361], [75, 0.154258368], [100, 0.199666568], [125, 0.197319069], [150, 0.218945516], [175, 0.264191752], [200, 0.266112789], [225, 0.290779391], [250, 0.37374682], [275, 0.372485577], [300, 0.542074102], [325, 0.602179617], [350, 0.525740672], [375, 0.465455405], [400, 0.498839551]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.470825894], [5, 0.50332308], [10, 0.534125086], [15, 0.570477545], [20, 0.594283465], [25, 0.627811404], [30, 0.651577129], [35, 0.708370049], [40, 0.751308992], [45, 0.78310671]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.127425289], [5, 0.126734811], [10, 0.136751885], [15, 0.140379029], [20, 0.1410621], [25, 0.146294128], [30, 0.155453954], [35, 0.160994714], [40, 0.169516781], [45, 0.178919597], [50, 0.185804134], [75, 0.23153036], [100, 0.28027678], [125, 0.347776019], [150, 0.402197043], [175, 0.469873138], [200, 0.546072681], [225, 0.634438972], [250, 0.78267455], [275, 0.951372285], [300, 0.979318637], [325, 1.042374966], [350, 1.180892349], [375, 1.402544992], [400, 1.44163068]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.execute.json new file mode 100644 index 0000000..8801d9d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 5.1e-05], [3, 0.000146], [5, 0.000218], [7, 0.000295], [9, 0.00037], [11, 0.000493], [13, 0.000595], [15, 0.000704], [17, 0.000813], [19, 0.000946], [21, 0.001077], [23, 0.001164], [25, 0.001279], [27, 0.001357], [29, 0.001451], [31, 0.001577], [33, 0.001725], [35, 0.001808], [37, 0.002], [39, 0.002145], [41, 0.00224], [43, 0.002389], [45, 0.002619], [47, 0.002777], [49, 0.002939]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 0.0001], [3, 0.000211], [5, 0.00032], [7, 0.000469], [9, 0.000564], [11, 0.000727], [13, 0.00086], [15, 0.001074], [17, 0.001242], [19, 0.001402], [21, 0.001602], [23, 0.001171], [25, 0.001889], [27, 0.001769], [29, 0.001861], [31, 0.002426], [33, 0.002726], [35, 0.00298], [37, 0.003109], [39, 0.003329], [41, 0.003768], [43, 0.003853], [45, 0.004174], [47, 0.004582], [49, 0.004705]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.including.compile.json new file mode 100644 index 0000000..68d0e10 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.016460474800000003 + }, { + "name": "Boost.Hana", + "y": 0.53053308 + } + + + , { + "name": "Boost.MPL", + "y": 2.0642110706 + }, { + "name": "Boost.Fusion", + "y": 1.4604488623999998 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.insert.compile.json new file mode 100644 index 0000000..8c15110 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.191979653], [5, 0.217393354], [10, 0.235768096], [15, 0.253065849], [20, 0.274350435], [25, 0.297074576], [30, 0.309172011], [35, 0.326983763], [40, 0.347014778], [45, 0.369474919], [50, 0.392869934], [75, 0.506068368], [100, 0.636191875], [125, 0.781849674], [150, 0.925590739], [175, 1.092375098], [200, 1.286496401], [225, 2.345233744], [250, 1.709103768], [275, 1.919004303], [300, 3.684444954], [325, 2.408356992], [350, 2.661270781], [375, 2.971194024], [400, 3.312033794]] + }, { + "name": "hana::map", + "data": [[0, 0.208960628], [5, 0.246581978], [10, 0.283363745], [15, 0.414675129], [20, 0.356728503], [25, 0.393946651], [30, 0.429105346], [35, 0.464109843], [40, 0.504637042], [45, 0.54250677], [50, 0.582380648], [75, 0.789578351], [100, 0.996087041], [125, 1.217357093], [150, 1.461456077], [175, 1.683432461], [200, 1.960742411], [225, 2.235438912], [250, 2.50572903], [275, 2.775143409], [300, 3.088938005], [325, 3.369076933], [350, 3.672667509], [375, 4.008132154], [400, 4.42185809]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.intersection.compile.json new file mode 100644 index 0000000..2f1bdc7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.194293896], [5, 0.23240066], [10, 0.268942894], [15, 0.316544522], [20, 0.366732741], [25, 0.430477371], [30, 0.506478978], [35, 0.590246629], [40, 0.695623042], [45, 0.807035974]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..7faf8de --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.15760686], [5, 0.305292228], [10, 0.582813389], [15, 1.006812565], [20, 1.600856601], [25, 2.377221067], [30, 3.763594836], [35, 4.41275664], [40, 5.931755345], [45, 7.214183202]] + }, { + "name": "hana::set", + "data": [[0, 0.201737335], [5, 0.332887316], [10, 0.552124354], [15, 0.89672324], [20, 1.356361615], [25, 1.918899294], [30, 2.658366918], [35, 3.502059588], [40, 4.443681728], [45, 5.504807204]] + }, { + "name": "hana::map", + "data": [[0, 0.210801957], [5, 0.445244933], [10, 0.823117645], [15, 1.354720556], [20, 2.069662741], [25, 2.947529205], [30, 4.010108249], [35, 5.239931138], [40, 6.713566597], [45, 8.661408427]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_subset.compile.json new file mode 100644 index 0000000..3db0cd1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.169414198], [5, 0.358530595], [10, 0.698320732], [15, 1.203618344], [20, 1.895973405], [25, 2.786212475], [30, 3.877875138], [35, 5.209629492], [40, 6.680759677], [45, 8.556729153]] + }, { + "name": "hana::set", + "data": [[0, 0.187577245], [5, 0.286766307], [10, 0.454473123], [15, 0.711755255], [20, 1.68911426], [25, 2.069259798], [30, 2.032300277], [35, 2.662664334], [40, 4.762189527], [45, 5.147988109]] + }, { + "name": "hana::map", + "data": [[0, 0.196321792], [5, 0.355434476], [10, 0.554012738], [15, 0.798375879], [20, 1.090306502], [25, 1.440377956], [30, 1.825564581], [35, 2.304203626], [40, 2.831840741], [45, 3.3897757]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..de0a3c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.158810484], [6, 0.203308349], [11, 0.268130669], [16, 0.36170298], [21, 0.466983125], [26, 0.595883972], [31, 0.76399209], [36, 0.953811567], [41, 1.155418907], [46, 1.402049929], [50, 1.604497961], [75, 3.32338396], [100, 5.790182322], [125, 9.045597298]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.make.compile.json new file mode 100644 index 0000000..54afc5e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.101157401], [5, 0.107117407], [10, 0.110481453], [15, 0.112305167], [20, 0.115514667], [25, 0.119124094], [30, 0.120748419], [35, 0.125791275], [40, 0.129120488], [45, 0.130977805], [50, 0.132705927], [75, 0.150737705], [100, 0.168286731], [125, 0.184570793], [150, 0.2024669], [175, 0.218173776], [200, 0.241012651], [225, 0.255119401], [250, 0.274221356], [275, 0.294628567], [300, 0.315181491], [325, 0.33087513], [350, 0.350059559], [375, 0.381427262], [400, 0.403488874]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.059997921], [5, 0.099001061], [10, 0.06427779], [15, 0.065297278], [20, 0.066768658], [25, 0.069802842], [30, 0.070817676], [35, 0.073868424], [40, 0.075660665], [45, 0.07743195], [50, 0.07946336], [75, 0.089413153], [100, 0.100253444], [125, 0.112171312], [150, 0.121599248], [175, 0.134220404], [200, 0.148319986], [225, 0.16040653], [250, 0.172805923], [275, 0.186249323], [300, 0.203498479], [325, 0.212172719], [350, 0.22591932], [375, 0.241527079], [400, 0.258102026]] + }, { + "name": "std::array", + "data": [[0, 0.204997928], [5, 0.208221116], [10, 0.206417634], [15, 0.203937062], [20, 0.203263706], [25, 0.205074376], [30, 0.206015658], [35, 0.208540896], [40, 0.205103365], [45, 0.206828845], [50, 0.207199172], [75, 0.205839922], [100, 0.205857045], [125, 0.206386633], [150, 0.204355256], [175, 0.204841196], [200, 0.206346166], [225, 0.205765566], [250, 0.323840772], [275, 0.205662849], [300, 0.209438077], [325, 0.207120748], [350, 0.206839196], [375, 0.207635189], [400, 0.205510312]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.074255382], [5, 0.09505266], [10, 0.116426386], [15, 0.138767377], [20, 0.168640488], [25, 0.196261969], [30, 0.230788999], [35, 0.270806124], [40, 0.318064352], [45, 0.368475731], [50, 0.429794975], [75, 0.829431184], [100, 1.48771012]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.46145527], [5, 0.471239562], [10, 0.48298315], [15, 0.873945463], [20, 0.563046979], [25, 0.61312428], [30, 0.679849613], [35, 0.757029332], [40, 0.838586106], [45, 0.928357989], [50, 1.020918978], [75, 1.65687256], [100, 2.504320008]] + }, { + "name": "fusion::list", + "data": [[0, 0.452352245], [5, 0.474054493], [10, 0.485840027], [15, 0.524827866], [20, 0.573470969], [25, 0.633129927], [30, 0.695998257], [35, 0.778813619], [40, 0.85361226], [45, 0.936057592], [50, 1.035281255], [75, 1.667236647], [100, 2.507376929]] + }, { + "name": "mpl::vector", + "data": [[0, 0.087835758], [5, 0.087810457], [10, 0.088047645], [15, 0.088003949], [20, 0.088666594], [25, 0.09631713], [30, 0.102324405], [35, 0.102907559], [40, 0.105688448], [45, 0.108651103], [50, 0.113538669], [75, 0.130414279], [100, 0.150390571], [125, 0.172046586], [150, 0.192610778], [175, 0.218842838], [200, 0.244778819], [225, 0.291239584], [250, 0.301379129], [275, 0.342303387], [300, 0.368175981], [325, 0.406728542], [350, 0.455429227], [375, 0.489159761], [400, 0.541411747]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.map.make.chart.json new file mode 100644 index 0000000..5813c2b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.02050631], [5, 0.021056623], [10, 0.021688954], [15, 0.022397888], [20, 0.023065351], [25, 0.023488646], [30, 0.024478141], [35, 0.025210766], [40, 0.025542084], [45, 0.026042541], [50, 0.027054453], [55, 0.02764092], [60, 0.027897021], [65, 0.029147501], [70, 0.029639251], [75, 0.030894709], [80, 0.030205801], [85, 0.031262017], [90, 0.032252248], [95, 0.033066918], [100, 0.033574578], [105, 0.034578387], [110, 0.034952055], [115, 0.035969407], [120, 0.036668355], [125, 0.03700074], [130, 0.038601726], [135, 0.040093973], [140, 0.039818902], [145, 0.040591948]] + }, { + "name": "hana::map", + "data": [[0, 0.195070837], [5, 0.203947529], [10, 0.213424841], [15, 0.222627646], [20, 0.230704739], [25, 0.249942439], [30, 0.25227793], [35, 0.25766774], [40, 0.265270485], [45, 0.276212676], [50, 0.28904437], [55, 0.297976756], [60, 0.309994883], [65, 0.315953923], [70, 0.329683613], [75, 0.344322268], [80, 0.356932351], [85, 0.36496708], [90, 0.379783379], [95, 0.389257662], [100, 0.405920386], [105, 0.414671775], [110, 0.426913055], [115, 0.43865048], [120, 0.4485949], [125, 0.458083663], [130, 0.475907822], [135, 0.490687952], [140, 0.501488682], [145, 0.512211105]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.465088189], [5, 0.488929613], [10, 0.514476297], [15, 0.544146437], [20, 0.571644172], [25, 0.608138127], [30, 0.653269463], [35, 0.690658911], [40, 0.732116071], [45, 0.795173725], [50, 0.857304456], [55, 0.924113349], [60, 0.989822649], [65, 1.063224085], [70, 1.151347435], [75, 1.237808718], [80, 1.31966033], [85, 1.429590394], [90, 1.531315914], [95, 1.65881592], [100, 1.746938641], [105, 1.856324832], [110, 1.985329388], [115, 2.141061782], [120, 2.295735037], [125, 2.449675505], [130, 2.607635234], [135, 2.803978887], [140, 4.303099942], [145, 3.14222939]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.partition.compile.json new file mode 100644 index 0000000..bcbe732 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.175494159], [5, 0.215487546], [10, 0.240385141], [15, 0.267484181], [20, 0.289568003], [25, 0.316131611], [30, 0.336064343], [35, 0.369057204], [40, 0.39956532], [45, 0.428122146], [50, 0.453683119], [75, 0.60509184], [100, 0.763192252], [125, 0.949495528], [150, 1.132556844], [175, 1.681979987], [200, 1.549690354], [225, 1.74587136], [250, 2.005541429], [275, 2.262568536], [300, 2.515691638], [325, 2.797719667], [350, 3.065893708], [375, 3.325362953], [400, 3.658014423]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.146541488], [5, 0.152764229], [10, 0.160638273], [15, 0.170100217], [20, 0.175125242], [25, 0.184520341], [30, 0.193576283], [35, 0.201410913], [40, 0.211586442], [45, 0.225768608], [50, 0.231875571], [75, 0.288654962], [100, 0.356748512], [125, 0.431943402], [150, 0.504839547], [175, 0.594521931], [200, 0.681756575], [225, 0.78025631], [250, 0.901801917], [275, 1.066456005], [300, 1.153619896], [325, 1.296340474], [350, 1.494800112], [375, 2.499924642], [400, 1.796474619]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.compile.json new file mode 100644 index 0000000..ca077d1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.118088157], [2, 0.117829672], [3, 0.116499055], [4, 0.119206451], [5, 0.11767407], [6, 0.117506679], [7, 0.11892212], [8, 0.117601902], [9, 0.115965664], [10, 0.117519034], [11, 0.119544676], [12, 0.118280644], [13, 0.117425316], [14, 0.117132618], [15, 0.12009454], [16, 0.118338384], [17, 0.120008257], [18, 0.117827128], [19, 0.114763526], [20, 0.117574646], [21, 0.118716846]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.113315407], [5, 0.129496684], [10, 0.143543363], [15, 0.156418987], [20, 0.171215672], [25, 0.184898687], [30, 0.197537514], [35, 0.21053809], [40, 0.224542747], [45, 0.240719409], [50, 0.259954187], [75, 0.329031551], [100, 0.400785007], [125, 0.45951046], [150, 0.525618193], [175, 0.601929335], [200, 0.677751358], [225, 0.741144117], [250, 0.828011622], [275, 0.905519735], [300, 0.999905193], [325, 1.088280816], [350, 1.184339194], [375, 1.266654166], [400, 1.362193719], [425, 1.420614363], [450, 1.546568497], [475, 1.641433782], [500, 1.755434033]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.108316341], [5, 0.115265957], [10, 0.118394293], [15, 0.121401161], [20, 0.124517395], [25, 0.127918721], [30, 0.131830677], [35, 0.137716824], [40, 0.142085569], [45, 0.143379478], [50, 0.14539258], [75, 0.163277704], [100, 0.185831823], [125, 0.199319458], [150, 0.219562772], [175, 0.240491089], [200, 0.260450368], [225, 0.276651619], [250, 0.29864145], [275, 0.320845733], [300, 0.346690947], [325, 0.36765611], [350, 0.38839759], [375, 0.411150246], [400, 0.436389731], [425, 0.467068474], [450, 0.490041917], [475, 0.515468716], [500, 0.541773016]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.execute.json new file mode 100644 index 0000000..24c5153 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 9.2e-05], [3, 0.000143], [5, 0.000171], [7, 0.000229], [9, 0.000307], [11, 0.000374], [13, 0.000406], [15, 0.000517], [17, 0.000604], [19, 0.000687], [21, 0.000807], [23, 0.00086], [25, 0.000921], [27, 0.001005], [29, 0.001073], [31, 0.001126], [33, 0.001224], [35, 0.001285], [37, 0.001368], [39, 0.00146], [41, 0.001558], [43, 0.001603], [45, 0.001689], [47, 0.001728], [49, 0.001847]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.move.json new file mode 100644 index 0000000..fbe36cb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 5.7e-05], [20, 0.00012], [30, 0.000186], [40, 0.000258], [50, 0.000335], [60, 0.000416], [70, 0.000492], [80, 0.000571], [90, 0.000635], [100, 0.000759]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.0e-06], [10, 0.000106], [20, 0.000226], [30, 0.000364], [40, 0.000518], [50, 0.000675]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.nomove.json new file mode 100644 index 0000000..52af838 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 9.1e-05], [20, 0.000192], [30, 0.000293], [40, 0.000388], [50, 0.000495], [60, 0.000604], [70, 0.001486], [80, 0.001872], [90, 0.002333], [100, 0.002614]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.0e-06], [10, 0.000107], [20, 0.000226], [30, 0.000372], [40, 0.000508], [50, 0.000682]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.sort.compile.json new file mode 100644 index 0000000..829e334 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.148406303], [5, 0.173663077], [10, 0.191032627], [15, 0.210811974], [20, 0.231795814], [25, 0.250794971], [30, 0.274955461], [35, 0.292552173], [40, 0.317863068], [45, 0.340552518], [50, 0.36167748], [75, 0.493471047], [100, 0.633249954], [125, 0.798800096], [150, 0.975801031], [175, 1.16416085], [200, 1.366464756]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.170761673], [5, 0.197687178], [10, 0.255415528], [15, 0.341290352], [20, 0.454316175], [25, 0.897708257], [30, 1.309870845], [35, 1.006857466], [40, 1.246788118], [45, 1.590142029], [50, 1.88943868], [75, 4.886586648], [100, 7.761111873], [125, 12.477786657], [150, 18.946957336], [175, 26.144370122], [200, 36.512092146]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..5249d7c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.197931508], [5, 0.290933952], [10, 0.434435675], [15, 0.625744995], [20, 1.322051212], [25, 2.097463947], [30, 1.648067925], [35, 2.393722174], [40, 2.683578789], [45, 3.352606743]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.bloat.json new file mode 100644 index 0000000..713837c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 82.357], [10, 122.458], [20, 152.5], [30, 186.574], [40, 220.688], [50, 254.778], [60, 288.868], [70, 322.966], [80, 357.064], [90, 391.162], [100, 425.26]] + } + + , { + "name": "std::array", + "data": [[0, 79.884], [10, 80.118], [20, 80.19], [30, 80.246], [40, 80.318], [50, 80.382], [60, 80.438], [70, 80.502], [80, 80.558], [90, 80.622], [100, 80.742]] + } + + , { + "name": "std::vector", + "data": [[0, 142.111], [10, 153.022], [20, 153.094], [30, 153.158], [40, 153.214], [50, 153.278], [60, 157.43], [70, 157.486], [80, 157.55], [90, 157.614], [100, 157.67]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 105.427], [10, 385.827], [20, 757.193], [30, 1204.327], [40, 1735.677], [50, 2342.659]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.compile.json new file mode 100644 index 0000000..768cbdc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.1085428], [5, 0.119415849], [10, 0.126950384], [15, 0.133853856], [20, 0.138716846], [25, 0.146960015], [30, 0.151021188], [35, 0.158663647], [40, 0.16435733], [45, 0.178791618], [50, 0.1788563], [75, 0.21700681], [100, 0.246786185], [125, 0.326625443], [150, 0.332941232], [175, 0.361924586], [200, 0.401913696], [225, 0.446405008], [250, 0.486309234], [275, 0.527986647], [300, 0.583185877], [325, 0.615617779], [350, 0.667273553], [375, 0.723285989], [400, 0.762881409]] + }, { + "name": "hana::types", + "data": [[0, 0.106602433], [5, 0.106700911], [10, 0.137961061], [15, 0.107907409], [20, 0.107612488], [25, 0.107895195], [30, 0.109368069], [35, 0.108124629], [40, 0.109290274], [45, 0.109491803], [50, 0.132402765], [75, 0.127059421], [100, 0.153253192], [125, 0.11326487], [150, 0.115771245], [175, 0.116113803], [200, 0.117618088], [225, 0.119585404], [250, 0.120731096], [275, 0.120346434], [300, 0.121636084], [325, 0.125356243], [350, 0.124656119], [375, 0.12697367], [400, 0.128552307]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.187018809], [5, 0.202238738], [10, 0.199613492], [15, 0.208441141], [20, 0.219870261], [25, 0.230306774], [30, 0.244278915], [35, 0.255717392], [40, 0.269611751], [45, 0.280761172], [50, 0.296232736], [75, 0.372746833], [100, 0.448546546], [125, 0.533080348], [150, 0.62823354], [175, 0.737860368], [200, 0.865382418], [225, 0.97934517], [250, 1.115886169], [275, 1.339712868], [300, 1.425182824], [325, 1.572006684], [350, 1.917385471], [375, 1.951697927], [400, 2.161676031]] + }, { + "name": "fusion::vector", + "data": [[0, 0.536444934], [5, 0.611551191], [10, 0.669717772], [15, 0.752211938], [20, 0.825270121], [25, 0.908970298], [30, 1.037890678], [35, 1.091655744], [40, 1.166389798], [45, 1.271005716], [50, 1.378361363]] + }, { + "name": "fusion::list", + "data": [[0, 0.543618207], [5, 0.618097831], [10, 0.69424069], [15, 0.77457961], [20, 0.865442418], [25, 0.971480703], [30, 1.074334483], [35, 1.160781844], [40, 1.273839425], [45, 1.397520452], [50, 1.972230853]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.execute.json new file mode 100644 index 0000000..70a0f90 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 1.9e-05], [10, 0.000364], [20, 0.000809], [30, 0.001247], [40, 0.001684], [50, 0.002355], [60, 0.003244], [70, 0.004003], [80, 0.004914], [90, 0.005481], [100, 0.006129]] + } + + , { + "name": "std::array", + "data": [[0, 1.1e-05], [10, 0.000158], [20, 0.000405], [30, 0.000615], [40, 0.0008], [50, 0.001042], [60, 0.001233], [70, 0.001461], [80, 0.001677], [90, 0.002141], [100, 0.002127]] + } + + , { + "name": "std::vector", + "data": [[0, 6.7e-05], [10, 0.000768], [20, 0.001316], [30, 0.001838], [40, 0.002256], [50, 0.00284], [60, 0.003288], [70, 0.003803], [80, 0.004298], [90, 0.004732], [100, 0.005201]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 4.7e-05], [10, 0.000787], [20, 0.001622], [30, 0.003119], [40, 0.004883], [50, 0.007094]] + }, { + "name": "fusion::list", + "data": [[0, 5.6e-05], [10, 0.001096], [20, 0.003369], [30, 0.008728], [40, 0.016775], [50, 0.027811]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.union.compile.json new file mode 100644 index 0000000..cf64030 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.193604519], [5, 0.227613932], [10, 0.305207537], [15, 0.418455482], [20, 0.93066719], [25, 0.756442118], [30, 0.971024316], [35, 1.274839973], [40, 1.600416993], [45, 1.97136683]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.unpack.compile.json new file mode 100644 index 0000000..ebab91b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.127275246], [2, 0.127246771], [4, 0.113492333], [6, 0.162629068], [8, 0.133755601], [10, 0.119402815], [12, 0.122865779], [14, 0.124441386], [16, 0.127787475], [18, 0.130084714], [20, 0.13243757], [21, 0.131833772], [26, 0.140100648], [31, 0.143223853], [36, 0.14875933], [41, 0.156084424], [46, 0.161912808], [50, 0.166019235], [75, 0.19662235], [100, 0.228809398], [125, 0.259776606], [150, 0.290072565], [175, 0.330732905], [200, 0.371655341], [225, 0.408228654], [250, 0.44772936], [275, 0.487264243], [300, 0.527768715], [325, 0.56943456], [350, 0.609791441], [375, 0.652433722], [400, 0.705948053]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.095677462], [2, 0.097677606], [4, 0.099770834], [6, 0.100962921], [8, 0.103095801], [10, 0.105505504], [12, 0.105577195], [14, 0.108207987], [16, 0.110820811], [18, 0.110720083], [20, 0.112896758], [21, 0.114574973], [26, 0.119276653], [31, 0.123227447], [36, 0.126690851], [41, 0.131357355], [46, 0.136744919], [50, 0.142174204], [75, 0.16480751], [100, 0.1902706], [125, 0.215405907], [150, 0.250782817], [175, 0.27169586], [200, 0.308158083], [225, 0.334591559], [250, 0.365818348], [275, 0.402257394], [300, 0.433244399], [325, 0.466679578], [350, 0.501241615], [375, 0.538313273], [400, 0.577639383]] + }, { + "name": "hana::set", + "data": [[0, 0.186553485], [2, 0.192138656], [4, 0.1944319], [6, 0.19825139], [8, 0.202757015], [10, 0.204502579], [12, 0.207752426], [14, 0.209118699], [16, 0.211008982], [18, 0.212297956], [20, 0.216152654], [21, 0.218252766], [26, 0.224814826], [31, 0.231425587], [36, 0.241325697], [41, 0.244944259], [46, 0.252537878], [50, 0.257776693], [75, 0.294199893], [100, 0.327208903], [125, 0.369312968], [150, 0.409730808], [175, 0.446059515], [200, 0.496783237], [225, 0.532631505], [250, 0.570437161], [275, 0.625147116], [300, 0.664901665], [325, 0.712367283], [350, 0.760596525], [375, 0.819329424], [400, 0.858126665]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.638195453], [2, 0.65452002], [4, 0.673824667], [6, 0.682528199], [8, 0.710248233], [10, 0.749877002], [12, 0.79249412], [14, 0.831321336], [16, 0.877811566]] + }, { + "name": "fusion::list", + "data": [[0, 0.633193255], [2, 0.640630349], [4, 0.671569372], [6, 0.688834589], [8, 0.720343267], [10, 0.79238011], [12, 0.81076482], [14, 0.864601533], [16, 0.911940141]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.bloat.json new file mode 100644 index 0000000..3305e4b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.bloat.json @@ -0,0 +1,36 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 80.337], [11, 104.309], [21, 131.861], [31, 162.799], [41, 197.135]] + } + + + , { + "name": "std::tuple", + "data": [[1, 79.294], [11, 117.054], [21, 193.678], [31, 337.198], [41, 559.414]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 94.044], [11, 200.58], [21, 349.56], [31, 536.226], [41, 756.492]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.compile.json new file mode 100644 index 0000000..e1dcd86 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.compile.json @@ -0,0 +1,37 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.105291188], [6, 0.106976877], [11, 0.110442325], [16, 0.112919632], [21, 0.116300673], [26, 0.119144301], [31, 0.123165892], [36, 0.123941175], [41, 0.127662156], [46, 0.130081374], [50, 0.133194014], [75, 0.148240773], [100, 0.164304444], [125, 0.181596868], [150, 0.196652468], [175, 0.211503945], [200, 0.231897027], [225, 0.247035689], [250, 0.265320494], [275, 0.288431491], [300, 0.301068037], [325, 0.323665213], [350, 0.342700348], [375, 0.361546876], [400, 0.383590061]] + } + + + , { + "name": "std::tuple", + "data": [[1, 0.082020148], [6, 0.099274688], [11, 0.118353033], [16, 0.140470718], [21, 0.170309562], [26, 0.19944602], [31, 0.230986864], [36, 0.272548092], [41, 0.319531947], [46, 0.370590908], [50, 0.419500218], [75, 0.819626573], [100, 1.483576061]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 0.509354531], [6, 0.515986207], [11, 0.532332196], [16, 0.536373727], [21, 0.545750952], [26, 0.5484427], [31, 0.564777165], [36, 0.576626764], [41, 0.585853635], [46, 0.598871176]] + }, { + "name": "fusion::list", + "data": [[1, 0.497683141], [6, 0.520684315], [11, 0.539815369], [16, 0.56260403], [21, 0.589049133], [26, 0.618337377], [31, 0.646508586], [36, 0.672414007], [41, 0.705579051], [46, 0.746902783]] + }, { + "name": "mpl::vector", + "data": [[1, 0.111265717], [6, 0.112174282], [11, 0.114074629], [16, 0.11554508], [21, 0.116818094], [26, 0.119611823], [31, 0.123630634], [36, 0.126451248], [41, 0.131403633], [46, 0.134635304], [50, 0.136882356], [75, 0.155558593], [100, 0.176546107], [125, 0.202740151], [150, 0.230958837], [175, 0.263078329], [200, 0.30537326], [225, 0.348971131], [250, 0.395199266], [275, 0.447179816], [300, 0.51553143], [325, 0.577572754], [350, 0.659455798], [375, 0.742591968], [400, 0.832387476]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.execute.json new file mode 100644 index 0000000..d382356 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at.execute.json @@ -0,0 +1,29 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 2.4e-05], [6, 0.000123], [11, 0.000282], [16, 0.000463], [21, 0.000638], [26, 0.000763], [31, 0.00093], [36, 0.001064], [41, 0.001243], [46, 0.001391]] + } + + + , { + "name": "std::tuple", + "data": [[1, 1.5e-05], [6, 0.000112], [11, 0.000226], [16, 0.000321], [21, 0.000479], [26, 0.000608], [31, 0.000694], [36, 0.000832], [41, 0.000945], [46, 0.001064]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 3.0e-05], [6, 0.000153], [11, 0.000352], [16, 0.000539], [21, 0.000725], [26, 0.000904], [31, 0.001072], [36, 0.001264], [41, 0.001429], [46, 0.001656]] + }, { + "name": "fusion::list", + "data": [[1, 2.7e-05], [6, 0.00025], [11, 0.000687], [16, 0.001335], [21, 0.002238], [26, 0.003721], [31, 0.0063], [36, 0.00962], [41, 0.013647], [46, 0.018874]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..c193939 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.112252592], [5, 0.113767186], [10, 0.112208843], [15, 0.112456012], [20, 0.112275562], [25, 0.111943147], [30, 0.11199795], [35, 0.110948428], [40, 0.111500278], [45, 0.111573134], [50, 0.111658277], [55, 0.111488494], [60, 0.112199716], [65, 0.112297937], [70, 0.111341791], [75, 0.113836444], [80, 0.114029537], [85, 0.113121072], [90, 0.11334406], [95, 0.113292163], [100, 0.112607253], [105, 0.11305502], [110, 0.113479899], [115, 0.112817678], [120, 0.11423835], [125, 0.114028981], [130, 0.113966262], [135, 0.112820553], [140, 0.114934214], [145, 0.113052432]] + }, { + "name": "hana::tuple", + "data": [[0, 0.392468302], [5, 0.405278511], [10, 0.411112676], [15, 0.430273516], [20, 0.440011573], [25, 0.453448948], [30, 0.463529608], [35, 0.479789076], [40, 0.496104362], [45, 0.504062646], [50, 0.521727601], [55, 0.535531062], [60, 0.551366707], [65, 0.562989232], [70, 0.577970857], [75, 0.594654258], [80, 0.611289108], [85, 0.616816044], [90, 0.659446419], [95, 0.648594978], [100, 0.664286121], [105, 0.676597326], [110, 0.700494794], [115, 0.715671636], [120, 0.734710609], [125, 0.740552515], [130, 0.749013824], [135, 0.83541447], [140, 0.77418867], [145, 0.801844659]] + }, { + "name": "hana::map", + "data": [[0, 0.658498507], [5, 0.61434425], [10, 0.621849018], [15, 0.634603611], [20, 0.613747052], [25, 0.613931094], [30, 0.626195415], [35, 0.604908837], [40, 0.632237658], [45, 0.607541504], [50, 0.607637988], [55, 0.619773137], [60, 0.646605078], [65, 0.606631387], [70, 0.609613938], [75, 0.610785431], [80, 0.649903158], [85, 0.610874006], [90, 0.6334379], [95, 0.605610412], [100, 0.609565769], [105, 0.611796991], [110, 0.61059233], [115, 0.618347292], [120, 0.624878015], [125, 0.621191642], [130, 0.973827112], [135, 0.673213189], [140, 0.644863855], [145, 0.629239077]] + } + + + , { + "name": "fusion::map", + "data": [[0, 4.140117754], [5, 4.359020969], [10, 3.857677934], [15, 3.922007942], [20, 4.19737065], [25, 3.916956547], [30, 3.936065166], [35, 3.969142081], [40, 4.038324553], [45, 4.004339496], [50, 3.997473272], [55, 3.999525184], [60, 4.01711495], [65, 4.059445288], [70, 4.08741671], [75, 4.142107215], [80, 4.136379309], [85, 4.173116151], [90, 4.193962307], [95, 4.20920969], [100, 4.219079288], [105, 4.276873751], [110, 4.256932474], [115, 4.315712339], [120, 4.308337055], [125, 4.324531742], [130, 4.337773662], [135, 4.362416632], [140, 4.387909486], [145, 4.441666064]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..098d7c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.154512936], [5, 0.158657017], [10, 0.166735611], [15, 0.174540441], [20, 0.179368662], [25, 0.187752716], [30, 0.191638864], [35, 0.200210552], [40, 0.209483885], [45, 0.21412342], [50, 0.217352252], [55, 0.22328581], [60, 0.230309736], [65, 0.23642019], [70, 0.242602943], [75, 0.249966319], [80, 0.257526209], [85, 0.266738951], [90, 0.270516183], [95, 0.275861127], [100, 0.282858218], [105, 0.291578729], [110, 0.293087756], [115, 0.299920937], [120, 0.307000021], [125, 0.317607921], [130, 0.324357704], [135, 0.327552906], [140, 0.332382051], [145, 0.338241721]] + }, { + "name": "hana::tuple", + "data": [[0, 0.373224559], [5, 0.424000299], [10, 0.480980617], [15, 0.554184953], [20, 0.632937909], [25, 0.729863961], [30, 0.835195863], [35, 0.968302069], [40, 1.091279396], [45, 1.242155866], [50, 1.397283279], [55, 1.556453335], [60, 1.735716454], [65, 1.932819298], [70, 2.158085431], [75, 2.391639827], [80, 2.580043923], [85, 2.843540213], [90, 3.098208054], [95, 3.362104763], [100, 3.647470453], [105, 3.923537779], [110, 4.2336831], [115, 4.607293148], [120, 4.876505909], [125, 5.226873003], [130, 5.623621624], [135, 6.048387238], [140, 6.402225524], [145, 6.822883307]] + }, { + "name": "hana::map", + "data": [[0, 0.579125888], [5, 0.660705253], [10, 0.718331412], [15, 0.778785604], [20, 0.852473088], [25, 0.904180118], [30, 0.979133901], [35, 1.03310189], [40, 1.101500374], [45, 1.163901547], [50, 1.22829656], [55, 1.287905364], [60, 1.350993835], [65, 1.417902438], [70, 1.474232105], [75, 1.539970518], [80, 1.612599871], [85, 1.683851402], [90, 1.74150176], [95, 1.809022136], [100, 1.87723143], [105, 1.915271034], [110, 1.995520204], [115, 2.097996099], [120, 2.155499545], [125, 2.223344409], [130, 2.274214327], [135, 2.326436082], [140, 2.428535673], [145, 2.487634888]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.681530172], [5, 3.801407738], [10, 3.931464502], [15, 4.612171796], [20, 4.416308734], [25, 4.5361375], [30, 4.884482891], [35, 4.849849619], [40, 5.182292649], [45, 7.551709616], [50, 7.486220505], [55, 8.209273849], [60, 6.305384272], [65, 6.512121306], [70, 7.811123585], [75, 9.68229188], [80, 12.280438594], [85, 12.284437115], [90, 13.418225316], [95, 11.553654727], [100, 13.891335204], [105, 14.947691983], [110, 13.535326561], [115, 11.164906199], [120, 11.792522548], [125, 12.362066347], [130, 13.055601067], [135, 13.741248614], [140, 13.59888664], [145, 14.089206562]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..3ccb70e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.134096084], [1, 0.159700699], [2, 0.174119816], [3, 0.205495598], [4, 0.245502034], [5, 0.30210765], [6, 0.369405985], [7, 0.443838282], [8, 0.538578751], [9, 0.637226135], [10, 0.753056082], [11, 0.871851705], [12, 1.028495594], [13, 1.168359817], [14, 1.337236197], [15, 1.535621582], [16, 1.655135034], [17, 1.865251333], [18, 2.109193618], [19, 2.37692345], [20, 2.602729483], [21, 2.798495953], [22, 3.027626525], [23, 3.349083151], [24, 3.600747459], [25, 3.884091623], [26, 4.233768469], [27, 4.590533389], [28, 4.915339564], [29, 5.429835112], [30, 5.763405434]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.bloat.json new file mode 100644 index 0000000..3178f32 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 91.323], [11, 108.481], [21, 129.899], [31, 151.293], [41, 172.713]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 97.97], [11, 217.299], [21, 369.794], [31, 556.431], [41, 772.19]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.compile.json new file mode 100644 index 0000000..9fd51c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.167886943], [5, 0.194229461], [10, 0.20849935], [15, 0.223772023], [20, 0.237996187], [25, 0.25249041], [30, 0.266360451], [35, 0.281802276], [40, 0.294078499], [45, 0.310660825], [50, 0.324507086], [75, 0.402941314], [100, 0.482990601], [125, 0.564598053], [150, 0.645727668], [175, 0.724677469], [200, 0.817669275], [225, 0.907865286], [250, 0.984642075], [275, 1.079354979], [300, 1.170848889], [325, 1.26908428], [350, 1.370304447], [375, 1.475396413], [400, 1.573010974]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.58781698], [5, 0.651512698], [10, 0.703483851], [15, 0.766895002], [20, 0.832172881], [25, 0.885554037], [30, 0.9436503], [35, 1.0107449], [40, 1.084409755], [45, 1.155989683], [50, 1.228581945]] + }, { + "name": "fusion::list", + "data": [[0, 0.581347522], [5, 0.648616858], [10, 0.705204598], [15, 0.774526151], [20, 0.837642061], [25, 0.908726033], [30, 0.98598121], [35, 1.057667225], [40, 1.14211069], [45, 1.227380379], [50, 1.321285869]] + }, { + "name": "mpl::vector", + "data": [[0, 0.134212134], [5, 0.13714991], [10, 0.142957836], [15, 0.150039904], [20, 0.153997426], [25, 0.161688231], [30, 0.168228167], [35, 0.180889853], [40, 0.19404179], [45, 0.197896262], [50, 0.203432071], [75, 0.2499467], [100, 0.305433846], [125, 0.365880585], [150, 0.44053181], [175, 0.512342016], [200, 0.611260359], [225, 0.696726015], [250, 0.807372576], [275, 0.938040642], [300, 1.067172278], [325, 1.204810624], [350, 1.353931795], [375, 1.516020591], [400, 1.692179151]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.execute.json new file mode 100644 index 0000000..ad9058b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 1.4e-05], [2, 8.9e-05], [4, 0.000152], [6, 0.00021], [8, 0.000284], [10, 0.000434], [12, 0.000552], [14, 0.000603], [16, 0.000665], [18, 0.000785], [20, 0.000887], [22, 0.001125], [24, 0.001053], [26, 0.001166], [28, 0.001311], [30, 0.00149], [32, 0.001509], [34, 0.001591], [36, 0.001747], [38, 0.001778], [40, 0.001797], [42, 0.001855], [44, 0.001972], [46, 0.002041], [48, 0.002145], [50, 0.002256]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 1.5e-05], [2, 0.00011], [4, 0.000213], [6, 0.000317], [8, 0.000425], [10, 0.000564], [12, 0.000711], [14, 0.000818], [16, 0.001001], [18, 0.001088], [20, 0.001231], [22, 0.001329], [24, 0.00146], [26, 0.001569], [28, 0.001698], [30, 0.001822], [32, 0.001925], [34, 0.002058], [36, 0.002236], [38, 0.002367], [40, 0.002472], [42, 0.002742], [44, 0.002739], [46, 0.002956], [48, 0.003213], [50, 0.003386]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.difference.compile.json new file mode 100644 index 0000000..06bcdce --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.186804619], [5, 0.25183844], [10, 0.358613903], [15, 0.501423017], [20, 0.72323665], [25, 0.968458383], [30, 1.305475206], [35, 1.635439923], [40, 2.115180254], [45, 2.656872877]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.filter.compile.json new file mode 100644 index 0000000..bf2e8fa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.173414341], [5, 0.205705131], [10, 0.224271706], [15, 0.241398013], [20, 0.260772258], [25, 0.280546718], [30, 0.298485953], [35, 0.315793887], [40, 0.33364345], [45, 0.35476723], [50, 0.377538346], [75, 0.476643845], [100, 0.586796559], [125, 0.698175554], [150, 0.821213327], [175, 0.946447531], [200, 1.092619495], [225, 1.225205346], [250, 1.378377962], [275, 1.531316632], [300, 1.679033692], [325, 1.855572773], [350, 2.039575352], [375, 2.2057741], [400, 2.424087592]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.512843734], [5, 0.56281959], [10, 0.635341349], [15, 0.7054281], [20, 0.809182365], [25, 0.896096781], [30, 1.03557264], [35, 1.147414721], [40, 1.322164636], [45, 1.479005697], [50, 1.707243931]] + }, { + "name": "fusion::list", + "data": [[0, 0.511039224], [5, 0.577919888], [10, 0.654428711], [15, 0.72548951], [20, 0.821081742], [25, 0.909815656], [30, 1.018162116], [35, 1.114269262], [40, 1.221746485], [45, 1.331941121], [50, 1.471857481]] + }, { + "name": "mpl::vector", + "data": [[0, 0.146662465], [5, 0.155026014], [10, 0.159565506], [15, 0.165360064], [20, 0.168979581], [25, 0.177361142], [30, 0.184736349], [35, 0.19340506], [40, 0.201201893], [45, 0.20907032], [50, 0.219850648], [75, 0.265866163], [100, 0.321234639], [125, 0.384869204], [150, 0.458491267], [175, 0.537517942], [200, 0.629964435], [225, 0.74076534], [250, 0.841151894], [275, 0.966788703], [300, 1.106122654], [325, 1.267341812], [350, 1.437209859], [375, 1.603836214], [400, 1.785667235]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.find_if.compile.json new file mode 100644 index 0000000..d604569 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.135789492], [5, 0.146150584], [10, 0.152467824], [15, 0.16053337], [20, 0.163990191], [25, 0.17371633], [30, 0.180938224], [35, 0.18637344], [40, 0.193791585], [45, 0.200467427], [50, 0.209908549], [75, 0.246227011], [100, 0.283261424], [125, 0.324012818], [150, 0.368499106], [175, 0.407283802], [200, 0.45889451]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.132296423], [5, 0.144668421], [10, 0.145426896], [15, 0.147151237], [20, 0.149898504], [25, 0.152592473], [30, 0.15487271], [35, 0.157647988], [40, 0.160830415], [45, 0.162071114], [50, 0.164918864], [75, 0.178517879], [100, 0.19183563], [125, 0.205091334], [150, 0.221361169], [175, 0.237343188], [200, 0.252349156]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.509444714], [5, 0.531644399], [10, 0.557792479], [15, 0.580198501], [20, 0.620798172], [25, 0.637748374], [30, 0.664850871], [35, 0.695563289], [40, 0.726767593], [45, 0.76321617]] + }, { + "name": "fusion::list", + "data": [[0, 0.500483694], [5, 0.541385851], [10, 0.587345095], [15, 0.64124611], [20, 0.690174466], [25, 0.750927924], [30, 0.8163142], [35, 0.882562881], [40, 0.952244224], [45, 1.033130393]] + }, { + "name": "mpl::vector", + "data": [[0, 0.142660426], [5, 0.150681298], [10, 0.155601811], [15, 0.161747759], [20, 0.16920993], [25, 0.178221226], [30, 0.18575852], [35, 0.195465273], [40, 0.204629221], [45, 0.213385673], [50, 0.224905817], [75, 0.275441493], [100, 0.336461704], [125, 0.403567832], [150, 0.480094054], [175, 0.565186613], [200, 0.661843785]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..467e20d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 84.526], [10, 111.294], [20, 134.663], [30, 155.866], [40, 179.474], [50, 203.729], [60, 222.856], [70, 246.57], [80, 275.941], [90, 297.37], [100, 320.748]] + }, { + "name": "std::vector", + "data": [[0, 96.549], [10, 112.285], [20, 112.357], [30, 112.429], [40, 112.501], [50, 112.565], [60, 112.637], [70, 112.709], [80, 112.781], [90, 112.845], [100, 112.917]] + }, { + "name": "std::array", + "data": [[0, 77.706], [10, 77.9], [20, 77.972], [30, 78.036], [40, 78.108], [50, 78.18], [60, 78.252], [70, 78.332], [80, 78.404], [90, 78.476], [100, 78.58]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 86.953], [10, 227.281], [20, 396.479], [30, 590.965], [40, 823.035], [50, 1088.609]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.compile.json new file mode 100644 index 0000000..c107a1b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.101515511], [5, 0.109502526], [10, 0.128435372], [15, 0.118797367], [20, 0.122687453], [25, 0.128392285], [30, 0.131694118], [35, 0.135883841], [40, 0.140582152], [45, 0.146658317], [50, 0.164583011], [75, 0.173017288], [100, 0.204839044], [125, 0.285636127], [150, 0.319049975], [175, 0.276808016], [200, 0.365650107], [225, 0.445564454], [250, 0.371399242], [275, 0.397620981], [300, 0.438738543], [325, 0.468889405], [350, 0.500198538], [375, 0.540688005], [400, 0.573788852]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.092748625], [5, 0.096413172], [10, 0.100050599], [15, 0.103093722], [20, 0.106852037], [25, 0.11035152], [30, 0.112756367], [35, 0.116384972], [40, 0.119550504], [45, 0.124370843], [50, 0.128456927], [75, 0.145085054], [100, 0.162764521], [125, 0.183263889], [150, 0.202864509], [175, 0.224667159], [200, 0.248715644], [225, 0.271791788], [250, 0.296070222], [275, 0.322582655], [300, 0.354165899], [325, 0.3729131], [350, 0.403707327], [375, 0.429430501], [400, 0.468370016]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.507126795], [5, 0.533197779], [10, 0.558562554], [15, 0.592106528], [20, 0.617028225], [25, 0.646782919], [30, 0.676137034], [35, 0.704561488], [40, 0.737921031], [45, 0.76923552], [50, 0.808803827]] + },{ + "name": "fusion::list", + "data": [[0, 0.49181916], [5, 0.529269921], [10, 0.556432901], [15, 0.59755913], [20, 0.634649136], [25, 0.671003344], [30, 0.71677354], [35, 0.764269198], [40, 0.801301442], [45, 0.843126394], [50, 0.897495953]] + }, { + "name": "mpl::vector", + "data": [[0, 0.12711482], [5, 0.130719598], [10, 0.134738403], [15, 0.138510132], [20, 0.144817585], [25, 0.149812755], [30, 0.153995581], [35, 0.160994033], [40, 0.166820719], [45, 0.174435224], [50, 0.181699823], [75, 0.220588537], [100, 0.268611692], [125, 0.321206153], [150, 0.384563552], [175, 0.455456824], [200, 0.537129634], [225, 0.624024639], [250, 0.71697931], [275, 0.832863516], [300, 0.955348562], [325, 1.078489482], [350, 1.228273798], [375, 1.388902059], [400, 1.554700962]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.execute.json new file mode 100644 index 0000000..088ad38 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 2.2e-05], [10, 0.00026], [20, 0.000673], [30, 0.001008], [40, 0.001367], [50, 0.001771], [60, 0.002085], [70, 0.002846], [80, 0.003511], [90, 0.004024], [100, 0.004672]] + }, { + "name": "std::vector", + "data": [[0, 2.5e-05], [10, 0.000467], [20, 0.000827], [30, 0.001153], [40, 0.001518], [50, 0.001847], [60, 0.002195], [70, 0.002569], [80, 0.002877], [90, 0.003224], [100, 0.003602]] + }, { + "name": "std::array", + "data": [[0, 7.0e-06], [10, 0.000155], [20, 0.000299], [30, 0.000484], [40, 0.000835], [50, 0.000913], [60, 0.001076], [70, 0.001234], [80, 0.001481], [90, 0.001624], [100, 0.001792]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.8e-05], [10, 0.000427], [20, 0.000999], [30, 0.001548], [40, 0.002091], [50, 0.002804]] + }, { + "name": "fusion::list", + "data": [[0, 1.8e-05], [10, 0.000549], [20, 0.001902], [30, 0.004248], [40, 0.009055], [50, 0.014983]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..0d05af1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 93.603], [11, 112.719], [21, 136.147], [31, 157.323], [41, 180.988]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 109.085], [11, 247.827], [21, 417.457], [31, 624.655], [41, 857.165]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.compile.json new file mode 100644 index 0000000..b627693 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.107835239], [5, 0.11556712], [10, 0.117867813], [15, 0.122467041], [20, 0.128480956], [25, 0.13159569], [30, 0.136785268], [35, 0.140216265], [40, 0.144960326], [45, 0.153604413], [50, 0.155696303], [75, 0.177384442], [100, 0.202431305], [125, 0.228344496], [150, 0.261850232], [175, 0.279999138], [200, 0.310293805], [225, 0.33782607], [250, 0.373228288], [275, 0.397435141], [300, 0.431758567], [325, 0.45716529], [350, 0.508490582], [375, 0.526625265], [400, 0.571228513]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.09686463], [5, 0.101583772], [10, 0.103317299], [15, 0.107473046], [20, 0.112392025], [25, 0.114331726], [30, 0.116831052], [35, 0.121621572], [40, 0.123751089], [45, 0.127547512], [50, 0.131333374], [75, 0.148743691], [100, 0.168595035], [125, 0.187742771], [150, 0.20817155], [175, 0.23106571], [200, 0.253353919], [225, 0.278150985], [250, 0.301346808], [275, 0.33140878], [300, 0.353122874], [325, 0.380496663], [350, 0.40871648], [375, 0.439171735], [400, 0.471250613]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.505654348], [5, 0.533969734], [10, 0.560970697], [15, 0.591272882], [20, 0.6183534], [25, 0.649667028], [30, 0.684798349], [35, 0.721458475], [40, 0.761869141], [45, 0.775226977]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.130991784], [5, 0.135082901], [10, 0.13707974], [15, 0.141479385], [20, 0.146511294], [25, 0.153709891], [30, 0.159157222], [35, 0.170461473], [40, 0.173754982], [45, 0.182125003], [50, 0.189943322], [75, 0.234321431], [100, 0.282703275], [125, 0.340705779], [150, 0.402906721], [175, 0.487193652], [200, 0.566736016], [225, 0.66389696], [250, 0.759511058], [275, 0.869121889], [300, 1.002225092], [325, 1.125487587], [350, 1.292446539], [375, 1.43517476], [400, 1.631329087]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.execute.json new file mode 100644 index 0000000..3daab18 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 6.8e-05], [3, 9.3e-05], [5, 0.000126], [7, 0.000177], [9, 0.000231], [11, 0.000381], [13, 0.000427], [15, 0.000434], [17, 0.000559], [19, 0.000774], [21, 0.000756], [23, 0.000796], [25, 0.000873], [27, 0.000914], [29, 0.000987], [31, 0.001012], [33, 0.00114], [35, 0.001211], [37, 0.001325], [39, 0.001339], [41, 0.00148], [43, 0.001539], [45, 0.001559], [47, 0.001723], [49, 0.001718]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 6.3e-05], [3, 0.000136], [5, 0.000204], [7, 0.000274], [9, 0.000375], [11, 0.00054], [13, 0.000581], [15, 0.000698], [17, 0.000822], [19, 0.00094], [21, 0.00105], [23, 0.001165], [25, 0.001309], [27, 0.001585], [29, 0.001467], [31, 0.001584], [33, 0.001721], [35, 0.001809], [37, 0.00194], [39, 0.002074], [41, 0.002162], [43, 0.002273], [45, 0.002397], [47, 0.002544], [49, 0.002725]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.including.compile.json new file mode 100644 index 0000000..d6bee1a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.013117483 + }, { + "name": "Boost.Hana", + "y": 0.3335592098 + } + + + , { + "name": "Boost.MPL", + "y": 1.3374166887999999 + }, { + "name": "Boost.Fusion", + "y": 1.4031219268 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.insert.compile.json new file mode 100644 index 0000000..2f64425 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.19605168], [5, 0.216978863], [10, 0.233689886], [15, 0.250408623], [20, 0.268411841], [25, 0.291991233], [30, 0.304007156], [35, 0.325563488], [40, 0.344447083], [45, 0.365168724], [50, 0.385985986], [75, 0.500381445], [100, 0.609185647], [125, 0.745305175], [150, 0.903105932], [175, 1.066254828], [200, 1.239970386], [225, 1.412618204], [250, 1.624242902], [275, 1.832149578], [300, 2.034772594], [325, 2.265770531], [350, 2.508912134], [375, 2.779955701], [400, 3.105172283]] + }, { + "name": "hana::map", + "data": [[0, 0.203857122], [5, 0.23725102], [10, 0.271423243], [15, 0.303002673], [20, 0.336168096], [25, 0.372361033], [30, 0.406029021], [35, 0.441954201], [40, 0.47439423], [45, 0.509584494], [50, 0.547292782], [75, 0.739318626], [100, 0.944008949], [125, 1.137933665], [150, 1.371104055], [175, 1.596463587], [200, 1.820390885], [225, 2.07336541], [250, 2.360486741], [275, 2.600702716], [300, 2.894899191], [325, 3.154746705], [350, 3.442280165], [375, 3.76184541], [400, 4.15996741]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.intersection.compile.json new file mode 100644 index 0000000..38b2ffc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.189855714], [5, 0.22660941], [10, 0.261219949], [15, 0.301301946], [20, 0.353038952], [25, 0.413922763], [30, 0.485053977], [35, 0.568170674], [40, 0.659218467], [45, 0.763678174]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..bc54729 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.153749278], [5, 0.285515262], [10, 0.522346769], [15, 0.882257359], [20, 1.373666189], [25, 2.026012938], [30, 2.827005891], [35, 3.674077317], [40, 4.78327019], [45, 5.983691151]] + }, { + "name": "hana::set", + "data": [[0, 0.196251441], [5, 0.315506619], [10, 0.5116281], [15, 0.798860165], [20, 1.189701528], [25, 1.681568342], [30, 2.284903482], [35, 2.990006131], [40, 3.800270593], [45, 4.7024085]] + }, { + "name": "hana::map", + "data": [[0, 0.207470799], [5, 0.415530387], [10, 0.736990841], [15, 1.192351351], [20, 1.765891872], [25, 2.494458587], [30, 3.399992728], [35, 4.403199145], [40, 5.574966695], [45, 6.904378686]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_subset.compile.json new file mode 100644 index 0000000..e98686e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.160601035], [5, 0.328342036], [10, 0.610991228], [15, 1.023973374], [20, 1.592536263], [25, 2.327091305], [30, 3.187075452], [35, 4.258072422], [40, 5.462384983], [45, 6.808604331]] + }, { + "name": "hana::set", + "data": [[0, 0.188109304], [5, 0.277414279], [10, 0.433546011], [15, 0.679294716], [20, 1.037496861], [25, 1.445735257], [30, 1.935403507], [35, 2.574052984], [40, 3.327684941], [45, 4.096867799]] + }, { + "name": "hana::map", + "data": [[0, 0.195572462], [5, 0.348431367], [10, 0.526779078], [15, 0.758363666], [20, 1.029180703], [25, 1.372128472], [30, 1.7552276], [35, 2.188225948], [40, 2.684082027], [45, 3.229952553]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..197cbb8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.159772239], [6, 0.199407739], [11, 0.259951167], [16, 0.348735064], [21, 0.454398789], [26, 0.588239623], [31, 0.737004852], [36, 0.916293185], [41, 1.11213972], [46, 1.334762281], [50, 1.627682554], [75, 3.8060986], [100, 6.965564383], [125, 10.186130242]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.make.compile.json new file mode 100644 index 0000000..c3aee97 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.100747907], [5, 0.105753523], [10, 0.108800103], [15, 0.122851974], [20, 0.114794982], [25, 0.117863087], [30, 0.132839673], [35, 0.122168187], [40, 0.126436592], [45, 0.12893917], [50, 0.133664428], [75, 0.148396394], [100, 0.163679309], [125, 0.180335815], [150, 0.197723851], [175, 0.213458037], [200, 0.234891317], [225, 0.246820899], [250, 0.264923505], [275, 0.282298128], [300, 0.300748777], [325, 0.325584261], [350, 0.337754478], [375, 0.363345898], [400, 0.392292403]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.058517611], [5, 0.060497107], [10, 0.06203352], [15, 0.064569008], [20, 0.065190226], [25, 0.067653426], [30, 0.069275144], [35, 0.116690611], [40, 0.072573862], [45, 0.075115544], [50, 0.076303785], [75, 0.086249049], [100, 0.095913263], [125, 0.106099699], [150, 0.115828303], [175, 0.126377334], [200, 0.139766377], [225, 0.152594353], [250, 0.16291759], [275, 0.174702177], [300, 0.187293159], [325, 0.200975568], [350, 0.337383348], [375, 0.230365219], [400, 0.243694707]] + }, { + "name": "std::array", + "data": [[0, 0.210707806], [5, 0.211048116], [10, 0.212018428], [15, 0.214421416], [20, 0.209961031], [25, 0.212891431], [30, 0.211317304], [35, 0.212451994], [40, 0.211710152], [45, 0.212583752], [50, 0.213291098], [75, 0.211636367], [100, 0.21372058], [125, 0.215991616], [150, 0.216762253], [175, 0.214502406], [200, 0.213624997], [225, 0.209985978], [250, 0.212253856], [275, 0.215275589], [300, 0.215009298], [325, 0.317471301], [350, 0.212971386], [375, 0.210279267], [400, 0.211514199]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.075165299], [5, 0.095261488], [10, 0.114287661], [15, 0.13517045], [20, 0.161482504], [25, 0.194579592], [30, 0.222887698], [35, 0.261211723], [40, 0.305117241], [45, 0.384542762], [50, 0.417479363], [75, 0.8180789], [100, 1.477201468]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.488754521], [5, 0.506750726], [10, 0.510778], [15, 0.540760195], [20, 0.584917816], [25, 0.633798995], [30, 0.679551803], [35, 0.734089251], [40, 0.800206363], [45, 0.88117781], [50, 0.954248045], [75, 1.436128866], [100, 2.105878905]] + }, { + "name": "fusion::list", + "data": [[0, 0.486121227], [5, 0.505246675], [10, 0.523219092], [15, 0.556554733], [20, 0.60048657], [25, 0.639777245], [30, 0.686326662], [35, 0.746603831], [40, 0.812239937], [45, 0.88195273], [50, 0.959114937], [75, 1.440724098], [100, 2.095479558]] + }, { + "name": "mpl::vector", + "data": [[0, 0.092883816], [5, 0.093011518], [10, 0.093108568], [15, 0.094097395], [20, 0.09351782], [25, 0.101686925], [30, 0.104569395], [35, 0.109083808], [40, 0.111632838], [45, 0.117859217], [50, 0.119362028], [75, 0.137284373], [100, 0.157849225], [125, 0.187263302], [150, 0.212069929], [175, 0.24387593], [200, 0.282510385], [225, 0.323060882], [250, 0.370786331], [275, 0.425473429], [300, 0.486809985], [325, 0.564865389], [350, 0.637529395], [375, 0.73181575], [400, 0.823221996]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.map.make.chart.json new file mode 100644 index 0000000..8278bf0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.017561795], [5, 0.017942973], [10, 0.01873414], [15, 0.019344518], [20, 0.019842243], [25, 0.020024272], [30, 0.020987438], [35, 0.021129969], [40, 0.02160607], [45, 0.022360675], [50, 0.023068475], [55, 0.0236257], [60, 0.024380612], [65, 0.02480532], [70, 0.025225562], [75, 0.025997333], [80, 0.026940946], [85, 0.027061118], [90, 0.027762191], [95, 0.028726948], [100, 0.029078981], [105, 0.029228385], [110, 0.029633193], [115, 0.030268203], [120, 0.030968478], [125, 0.031401044], [130, 0.032182606], [135, 0.032540297], [140, 0.033336064], [145, 0.03426605]] + }, { + "name": "hana::map", + "data": [[0, 0.19017482], [5, 0.20055575], [10, 0.209866945], [15, 0.217932878], [20, 0.229933202], [25, 0.234642975], [30, 0.243112429], [35, 0.252079262], [40, 0.257883159], [45, 0.269835458], [50, 0.277000816], [55, 0.289313297], [60, 0.300776938], [65, 0.311920594], [70, 0.321705223], [75, 0.331374166], [80, 0.34428986], [85, 0.351593264], [90, 0.360345818], [95, 0.377875551], [100, 0.385707366], [105, 0.392828374], [110, 0.415106668], [115, 0.419763409], [120, 0.432988661], [125, 0.447099472], [130, 0.455913353], [135, 0.466740018], [140, 0.476764408], [145, 0.49135744]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.499015693], [5, 0.516814609], [10, 0.537568604], [15, 0.568062041], [20, 0.584345458], [25, 0.615535143], [30, 0.651902496], [35, 0.693597873], [40, 0.734863319], [45, 0.787589282], [50, 0.846898389], [55, 0.905021843], [60, 0.971160318], [65, 1.045693409], [70, 1.125888713], [75, 1.210310659], [80, 1.308685071], [85, 1.433683668], [90, 1.517268228], [95, 1.62043279], [100, 1.745029516], [105, 1.88986986], [110, 2.010655151], [115, 2.187606983], [120, 2.364954791], [125, 2.525796916], [130, 2.671318509], [135, 2.864337945], [140, 3.044957514], [145, 3.343831143]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.partition.compile.json new file mode 100644 index 0000000..52b2176 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.172987846], [5, 0.213612285], [10, 0.235292396], [15, 0.264194375], [20, 0.282151636], [25, 0.306353902], [30, 0.328478605], [35, 0.360039722], [40, 0.380256561], [45, 0.407098618], [50, 0.433067075], [75, 0.567681307], [100, 0.717054819], [125, 0.877021645], [150, 1.051233929], [175, 1.226348708], [200, 1.425384754], [225, 1.621588346], [250, 1.858951576], [275, 2.05900896], [300, 2.308276431], [325, 2.534144711], [350, 2.785312475], [375, 3.082195615], [400, 3.405056948]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.154359581], [5, 0.161802152], [10, 0.168859379], [15, 0.175666331], [20, 0.202287271], [25, 0.191264448], [30, 0.197243431], [35, 0.206854375], [40, 0.216844557], [45, 0.226228704], [50, 0.237851548], [75, 0.291840848], [100, 0.359300823], [125, 0.42542738], [150, 0.765739065], [175, 0.842660889], [200, 0.704396568], [225, 0.811442145], [250, 0.940062944], [275, 1.122518299], [300, 1.233008287], [325, 1.421119037], [350, 1.565340469], [375, 1.818726831], [400, 2.082890588]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.compile.json new file mode 100644 index 0000000..c2b261c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.114707618], [2, 0.123354453], [3, 0.114929772], [4, 0.114046003], [5, 0.12716197], [6, 0.132122567], [7, 0.140966286], [8, 0.117081542], [9, 0.168798025], [10, 0.130200403], [11, 0.154156609], [12, 0.114948707], [13, 0.164036867], [14, 0.120414117], [15, 0.11437461], [16, 0.114925564], [17, 0.114741486], [18, 0.120538362], [19, 0.123662422], [20, 0.113920963], [21, 0.114366943]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.111151021], [5, 0.125687035], [10, 0.141749239], [15, 0.156139374], [20, 0.191724249], [25, 0.258817955], [30, 0.282322027], [35, 0.31230163], [40, 0.314157416], [45, 0.3125993], [50, 0.357601899], [75, 0.310722112], [100, 0.434697512], [125, 0.428439139], [150, 0.489093001], [175, 0.55508913], [200, 0.624698111], [225, 0.702442314], [250, 0.763142883], [275, 0.846589128], [300, 0.906146585], [325, 0.981488127], [350, 1.071869735], [375, 1.139757694], [400, 1.246437628], [425, 1.312644311], [450, 1.406187931], [475, 1.514123076], [500, 1.597769416]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.10499392], [5, 0.111680609], [10, 0.116033611], [15, 0.118563927], [20, 0.121876567], [25, 0.125758138], [30, 0.127530221], [35, 0.13104701], [40, 0.136257282], [45, 0.13800643], [50, 0.141788874], [75, 0.156611206], [100, 0.174116436], [125, 0.191416175], [150, 0.207749114], [175, 0.224895849], [200, 0.245764245], [225, 0.262520043], [250, 0.286826319], [275, 0.300574672], [300, 0.323200196], [325, 0.34254506], [350, 0.362704865], [375, 0.384289876], [400, 0.411246103], [425, 0.433649294], [450, 0.452893978], [475, 0.484159174], [500, 0.504093019]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.execute.json new file mode 100644 index 0000000..6b490aa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 0.00011], [3, 0.000157], [5, 0.000174], [7, 0.000253], [9, 0.000285], [11, 0.000372], [13, 0.000457], [15, 0.000519], [17, 0.000598], [19, 0.000695], [21, 0.000793], [23, 0.000884], [25, 0.000928], [27, 0.001014], [29, 0.001093], [31, 0.001119], [33, 0.001242], [35, 0.001289], [37, 0.001381], [39, 0.001471], [41, 0.001507], [43, 0.001602], [45, 0.001647], [47, 0.001769], [49, 0.001805]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.move.json new file mode 100644 index 0000000..916a46f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 5.9e-05], [20, 0.000123], [30, 0.000194], [40, 0.00027], [50, 0.000341], [60, 0.000429], [70, 0.000502], [80, 0.000583], [90, 0.000663], [100, 0.000765]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 2.0e-06], [10, 0.000109], [20, 0.000231], [30, 0.000374], [40, 0.000518], [50, 0.000702]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.nomove.json new file mode 100644 index 0000000..b075beb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 9.5e-05], [20, 0.000197], [30, 0.000301], [40, 0.000402], [50, 0.000511], [60, 0.000615], [70, 0.001548], [80, 0.001934], [90, 0.002335], [100, 0.002701]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.0e-06], [10, 0.00011], [20, 0.000233], [30, 0.000372], [40, 0.000527], [50, 0.000686]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.sort.compile.json new file mode 100644 index 0000000..cea679a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.14746098], [5, 0.171002848], [10, 0.189869359], [15, 0.206057294], [20, 0.224904956], [25, 0.243996137], [30, 0.263790072], [35, 0.287027719], [40, 0.30517088], [45, 0.325458153], [50, 0.350967557], [75, 0.470893362], [100, 0.605895117], [125, 0.755375638], [150, 0.929214031], [175, 1.106011389], [200, 1.299206699]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.183546779], [5, 0.212420114], [10, 0.262229523], [15, 0.347385033], [20, 0.45689122], [25, 0.603844169], [30, 0.773977735], [35, 0.984559254], [40, 1.233051758], [45, 1.531472533], [50, 1.86496264], [75, 4.117828552], [100, 7.543563465], [125, 12.355103689], [150, 18.513625799], [175, 29.317565065], [200, 36.409184289]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..2aa16f7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.200670233], [5, 0.28872612], [10, 0.43258872], [15, 0.624524731], [20, 0.890680868], [25, 1.208646139], [30, 1.609651107], [35, 2.095909732], [40, 2.653121349], [45, 3.250129846]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.bloat.json new file mode 100644 index 0000000..79c32ca --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 82.77], [10, 123.175], [20, 153.489], [30, 187.837], [40, 222.223], [50, 256.585], [60, 290.939], [70, 325.309], [80, 359.679], [90, 394.049], [100, 428.411]] + } + + , { + "name": "std::array", + "data": [[0, 80.204], [10, 80.43], [20, 80.502], [30, 80.574], [40, 80.654], [50, 80.726], [60, 80.798], [70, 80.862], [80, 80.934], [90, 81.006], [100, 81.142]] + } + + , { + "name": "std::vector", + "data": [[0, 141.635], [10, 153.147], [20, 153.211], [30, 153.283], [40, 153.355], [50, 153.427], [60, 157.587], [70, 157.659], [80, 157.731], [90, 157.803], [100, 157.867]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 105.944], [10, 387.442], [20, 760.112], [30, 1208.534], [40, 1737.076], [50, 2349.444]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.compile.json new file mode 100644 index 0000000..a8c9f76 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.109062306], [5, 0.122176944], [10, 0.126850166], [15, 0.13208369], [20, 0.13928541], [25, 0.145727991], [30, 0.152123661], [35, 0.157710392], [40, 0.16446682], [45, 0.170883585], [50, 0.320951962], [75, 0.212456801], [100, 0.247059372], [125, 0.284530443], [150, 0.31872164], [175, 0.355530849], [200, 0.391897566], [225, 0.431447371], [250, 0.470395816], [275, 0.514871318], [300, 0.563562857], [325, 0.604957373], [350, 0.64837607], [375, 0.683509045], [400, 0.739506776]] + }, { + "name": "hana::types", + "data": [[0, 0.1059987], [5, 0.107229993], [10, 0.108389194], [15, 0.109522538], [20, 0.109312123], [25, 0.109463804], [30, 0.109317722], [35, 0.114149216], [40, 0.108637098], [45, 0.10874128], [50, 0.109107511], [75, 0.112349731], [100, 0.113298556], [125, 0.11510854], [150, 0.116878936], [175, 0.117158711], [200, 0.119232414], [225, 0.118064064], [250, 0.118917876], [275, 0.120334977], [300, 0.18037015], [325, 0.124347906], [350, 0.123949959], [375, 0.126543219], [400, 0.126456692]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.192975476], [5, 0.20457275], [10, 0.216577299], [15, 0.224576406], [20, 0.23336013], [25, 0.247311719], [30, 0.257354757], [35, 0.27134879], [40, 0.282181813], [45, 0.2952716], [50, 0.306557332], [75, 0.383033465], [100, 0.463586953], [125, 0.563219019], [150, 0.668921504], [175, 0.796559778], [200, 0.929688623], [225, 1.072160748], [250, 1.239210106], [275, 1.430852559], [300, 1.638916167], [325, 1.830023602], [350, 2.087674709], [375, 2.355121963], [400, 2.664649666]] + }, { + "name": "fusion::vector", + "data": [[0, 0.583460923], [5, 0.638112387], [10, 0.701026694], [15, 0.773009335], [20, 0.844192968], [25, 0.911982332], [30, 0.992553823], [35, 1.068379841], [40, 1.1696406], [45, 1.268792134], [50, 1.358187262]] + }, { + "name": "fusion::list", + "data": [[0, 0.582748125], [5, 0.650436143], [10, 0.725265654], [15, 0.809708721], [20, 0.878611308], [25, 0.970531481], [30, 1.070857863], [35, 1.15644179], [40, 1.253677265], [45, 1.370187822], [50, 1.470516922]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.execute.json new file mode 100644 index 0000000..424d993 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 1.8e-05], [10, 0.000336], [20, 0.000812], [30, 0.001344], [40, 0.001671], [50, 0.00231], [60, 0.003229], [70, 0.003975], [80, 0.004739], [90, 0.005395], [100, 0.006221]] + } + + , { + "name": "std::array", + "data": [[0, 1.1e-05], [10, 0.000185], [20, 0.000386], [30, 0.000594], [40, 0.000823], [50, 0.001058], [60, 0.001232], [70, 0.001418], [80, 0.001695], [90, 0.001903], [100, 0.002072]] + } + + , { + "name": "std::vector", + "data": [[0, 4.3e-05], [10, 0.000656], [20, 0.001156], [30, 0.001553], [40, 0.001945], [50, 0.002336], [60, 0.002797], [70, 0.003305], [80, 0.003733], [90, 0.004194], [100, 0.004608]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 3.9e-05], [10, 0.000758], [20, 0.001639], [30, 0.003727], [40, 0.004869], [50, 0.007121]] + }, { + "name": "fusion::list", + "data": [[0, 7.6e-05], [10, 0.001231], [20, 0.00344], [30, 0.012597], [40, 0.016781], [50, 0.029758]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.union.compile.json new file mode 100644 index 0000000..7ecdb82 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.19191017], [5, 0.230685999], [10, 0.319307169], [15, 0.413178195], [20, 0.555518185], [25, 0.710874771], [30, 0.968354619], [35, 1.202037475], [40, 1.527546713], [45, 1.830004576]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.unpack.compile.json new file mode 100644 index 0000000..d22c674 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.101807704], [2, 0.109043567], [4, 0.109508121], [6, 0.112235419], [8, 0.116934111], [10, 0.116063412], [12, 0.116861313], [14, 0.119827077], [16, 0.122482847], [18, 0.123295503], [20, 0.126519662], [21, 0.126831157], [26, 0.132803417], [31, 0.139048036], [36, 0.143056004], [41, 0.148543703], [46, 0.154458188], [50, 0.158001924], [75, 0.185609549], [100, 0.213341846], [125, 0.243741581], [150, 0.275339496], [175, 0.303045459], [200, 0.337403176], [225, 0.369772063], [250, 0.404917698], [275, 0.437584206], [300, 0.473689053], [325, 0.517974907], [350, 0.550650389], [375, 0.584749977], [400, 0.634091857]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.09315314], [2, 0.094205214], [4, 0.09571753], [6, 0.098252699], [8, 0.099537597], [10, 0.100968576], [12, 0.102503557], [14, 0.103891679], [16, 0.105338762], [18, 0.108047896], [20, 0.108800887], [21, 0.109618406], [26, 0.114636935], [31, 0.118352968], [36, 0.122650241], [41, 0.126788641], [46, 0.130359227], [50, 0.134638837], [75, 0.155065507], [100, 0.1803517], [125, 0.201986072], [150, 0.228182876], [175, 0.253883951], [200, 0.280800667], [225, 0.306136257], [250, 0.336427339], [275, 0.362489274], [300, 0.396500019], [325, 0.425470889], [350, 0.454423032], [375, 0.485460853], [400, 0.526857557]] + }, { + "name": "hana::set", + "data": [[0, 0.182251643], [2, 0.1869953], [4, 0.191869111], [6, 0.196031851], [8, 0.197097292], [10, 0.198876713], [12, 0.199914346], [14, 0.203809526], [16, 0.207472412], [18, 0.208631824], [20, 0.210443781], [21, 0.211209808], [26, 0.217229917], [31, 0.225809699], [36, 0.230777829], [41, 0.236493285], [46, 0.242707421], [50, 0.246782407], [75, 0.279876722], [100, 0.313019667], [125, 0.347171545], [150, 0.383134199], [175, 0.417595858], [200, 0.455557807], [225, 0.494937514], [250, 0.528602481], [275, 0.570872663], [300, 0.607075417], [325, 0.649753105], [350, 0.694158427], [375, 0.729278655], [400, 0.788352589]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.667401211], [2, 0.686979295], [4, 0.693049848], [6, 0.714662386], [8, 0.73848962], [10, 0.770141397], [12, 0.814103319], [14, 0.856070524], [16, 0.897883413]] + }, { + "name": "fusion::list", + "data": [[0, 0.662269262], [2, 0.690228024], [4, 0.693690541], [6, 0.711947572], [8, 0.742349912], [10, 0.79645238], [12, 0.831657004], [14, 0.887040652], [16, 0.933916734]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.bloat.json new file mode 100644 index 0000000..990bfd2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.bloat.json @@ -0,0 +1,36 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 80.009], [11, 104.149], [21, 131.877], [31, 162.983], [41, 197.487]] + } + + + , { + "name": "std::tuple", + "data": [[1, 78.902], [11, 117.126], [21, 194.206], [31, 338.19], [41, 560.87]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 93.788], [11, 200.892], [21, 350.432], [31, 537.658], [41, 758.484]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.compile.json new file mode 100644 index 0000000..e1a20ed --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.compile.json @@ -0,0 +1,37 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.111321578], [6, 0.113191674], [11, 0.11563601], [16, 0.119468224], [21, 0.121196694], [26, 0.125989784], [31, 0.127232062], [36, 0.131956806], [41, 0.134774894], [46, 0.137332552], [50, 0.141190602], [75, 0.155787657], [100, 0.171888894], [125, 0.188911517], [150, 0.213252923], [175, 0.224408436], [200, 0.238773849], [225, 0.257092689], [250, 0.274118902], [275, 0.292932636], [300, 0.312403539], [325, 0.337300082], [350, 0.3511989], [375, 0.380595038], [400, 0.398186037]] + } + + + , { + "name": "std::tuple", + "data": [[1, 0.087758478], [6, 0.106696369], [11, 0.125976297], [16, 0.148478849], [21, 0.175444654], [26, 0.207043329], [31, 0.24496327], [36, 0.284778034], [41, 0.330195084], [46, 0.472137997], [50, 0.435437118], [75, 0.849862297], [100, 1.511843558]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 0.514898129], [6, 0.524382745], [11, 0.533202909], [16, 0.552267764], [21, 0.5643271], [26, 0.566304398], [31, 0.572373613], [36, 0.593952354], [41, 0.591309859], [46, 0.605165481]] + }, { + "name": "fusion::list", + "data": [[1, 0.504541074], [6, 0.527883313], [11, 0.547956421], [16, 0.578414256], [21, 0.59816599], [26, 0.621788791], [31, 0.655140888], [36, 0.687002292], [41, 0.717359482], [46, 0.75623682]] + }, { + "name": "mpl::vector", + "data": [[1, 0.113508462], [6, 0.117058491], [11, 0.116496773], [16, 0.118948727], [21, 0.119451042], [26, 0.124157547], [31, 0.126513591], [36, 0.130300167], [41, 0.132889258], [46, 0.151532151], [50, 0.140073036], [75, 0.160290224], [100, 0.181943318], [125, 0.213426733], [150, 0.238162435], [175, 0.278632593], [200, 0.312711573], [225, 0.35607997], [250, 0.405432123], [275, 0.46332701], [300, 0.529484061], [325, 0.601958857], [350, 0.684544668], [375, 0.774699681], [400, 0.873281978]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.execute.json new file mode 100644 index 0000000..7d1db3f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at.execute.json @@ -0,0 +1,29 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 2.4e-05], [6, 0.000123], [11, 0.000266], [16, 0.000461], [21, 0.00062], [26, 0.000751], [31, 0.000916], [36, 0.001072], [41, 0.001223], [46, 0.001388]] + } + + + , { + "name": "std::tuple", + "data": [[1, 1.5e-05], [6, 0.000111], [11, 0.000226], [16, 0.00032], [21, 0.000474], [26, 0.000602], [31, 0.000721], [36, 0.000838], [41, 0.000947], [46, 0.001089]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 3.0e-05], [6, 0.000154], [11, 0.000354], [16, 0.000545], [21, 0.000734], [26, 0.000908], [31, 0.001073], [36, 0.001245], [41, 0.001431], [46, 0.001677]] + }, { + "name": "fusion::list", + "data": [[1, 2.7e-05], [6, 0.00025], [11, 0.000687], [16, 0.001338], [21, 0.002257], [26, 0.005912], [31, 0.006347], [36, 0.009615], [41, 0.01355], [46, 0.018913]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..4a9c2c7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.120940017], [5, 0.118958332], [10, 0.118680096], [15, 0.19512964], [20, 0.119346746], [25, 0.119247835], [30, 0.119970738], [35, 0.119059608], [40, 0.11845859], [45, 0.118910296], [50, 0.118024244], [55, 0.119025843], [60, 0.118171451], [65, 0.118726108], [70, 0.118940573], [75, 0.119076122], [80, 0.118730671], [85, 0.118036047], [90, 0.118287666], [95, 0.118719334], [100, 0.118321412], [105, 0.119133976], [110, 0.119244503], [115, 0.171013498], [120, 0.118507373], [125, 0.11985772], [130, 0.118733951], [135, 0.119212137], [140, 0.11878184], [145, 0.11851955]] + }, { + "name": "hana::tuple", + "data": [[0, 0.40027675], [5, 0.411917418], [10, 0.425468075], [15, 0.446268825], [20, 0.450502299], [25, 0.464450861], [30, 0.480178568], [35, 0.493599527], [40, 0.507973486], [45, 0.521134809], [50, 0.534916313], [55, 0.548793632], [60, 0.560513474], [65, 0.573047434], [70, 0.585929275], [75, 0.604613345], [80, 0.616822326], [85, 0.631529415], [90, 0.660898126], [95, 0.675768236], [100, 0.675381154], [105, 0.69351948], [110, 0.711310971], [115, 0.72246012], [120, 0.736689987], [125, 0.752814171], [130, 0.765758488], [135, 0.78034284], [140, 0.798870757], [145, 0.813692944]] + }, { + "name": "hana::map", + "data": [[0, 0.611524551], [5, 0.610705255], [10, 0.610451452], [15, 0.617052465], [20, 0.611153019], [25, 0.607224148], [30, 0.607471721], [35, 0.613218121], [40, 0.610735239], [45, 0.615360968], [50, 0.610099745], [55, 0.611066329], [60, 0.61437835], [65, 0.611845733], [70, 0.606474454], [75, 0.607490561], [80, 0.611968245], [85, 0.615971161], [90, 0.615030801], [95, 0.613105183], [100, 1.043422185], [105, 0.610364089], [110, 0.612564097], [115, 0.613001649], [120, 0.611993333], [125, 0.611899504], [130, 0.618671498], [135, 0.607933268], [140, 0.608152333], [145, 0.616149457]] + } + + + , { + "name": "fusion::map", + "data": [[0, 4.038979172], [5, 4.347716722], [10, 4.42288472], [15, 4.110240925], [20, 4.135144948], [25, 4.191704015], [30, 4.197250083], [35, 4.234366351], [40, 4.244827958], [45, 4.268439379], [50, 4.378458254], [55, 4.381004953], [60, 4.391454619], [65, 4.366212309], [70, 4.43853298], [75, 4.484307924], [80, 4.52596496], [85, 4.521807607], [90, 4.576346795], [95, 4.783125811], [100, 4.530241255], [105, 4.530576138], [110, 4.651760516], [115, 4.628483453], [120, 5.381295906], [125, 4.752303692], [130, 5.041931221], [135, 4.756722991], [140, 4.733926386], [145, 4.743708352]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..6803cf1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.163034971], [5, 0.170518456], [10, 0.17769594], [15, 0.182757608], [20, 0.190427576], [25, 0.1968567], [30, 0.203352534], [35, 0.216602375], [40, 0.216500476], [45, 0.225119464], [50, 0.230580807], [55, 0.237392139], [60, 0.244667926], [65, 0.250568023], [70, 0.256774415], [75, 0.266383836], [80, 0.270029918], [85, 0.280512888], [90, 0.286375785], [95, 0.291298604], [100, 0.299568213], [105, 0.306345245], [110, 0.310720373], [115, 0.321061018], [120, 0.326203306], [125, 0.334031096], [130, 0.337694303], [135, 0.346479231], [140, 0.352039571], [145, 0.359507336]] + }, { + "name": "hana::tuple", + "data": [[0, 0.400310007], [5, 0.448285881], [10, 0.505272417], [15, 0.580047737], [20, 0.666053374], [25, 0.760683482], [30, 1.409661357], [35, 0.987661462], [40, 1.138884304], [45, 1.276346358], [50, 1.438174062], [55, 1.608821277], [60, 1.791490409], [65, 1.988884842], [70, 2.200369693], [75, 2.460796647], [80, 2.684367616], [85, 2.939085977], [90, 3.169055182], [95, 3.561571066], [100, 3.763319504], [105, 4.096253904], [110, 4.438188657], [115, 4.744391134], [120, 5.071668982], [125, 5.434419985], [130, 5.862298237], [135, 6.215868076], [140, 6.530615579], [145, 6.971549297]] + }, { + "name": "hana::map", + "data": [[0, 0.596446616], [5, 0.665675847], [10, 0.738175392], [15, 0.807971842], [20, 0.875598862], [25, 0.929724896], [30, 0.993978679], [35, 1.063275537], [40, 1.125449544], [45, 1.186667469], [50, 1.254107866], [55, 1.321917029], [60, 1.368786632], [65, 1.442167894], [70, 1.523512004], [75, 1.563366991], [80, 1.64103437], [85, 1.725492584], [90, 1.763570003], [95, 1.845728351], [100, 1.918621236], [105, 1.966555287], [110, 2.04671242], [115, 2.127308579], [120, 2.181948432], [125, 2.256428681], [130, 2.332581974], [135, 2.415107467], [140, 2.481059292], [145, 2.555592318]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.969182174], [5, 4.13740578], [10, 4.256849041], [15, 4.399295528], [20, 4.508746874], [25, 4.712362495], [30, 4.932341228], [35, 5.131323757], [40, 5.236413559], [45, 5.524755159], [50, 5.956908742], [55, 6.211371512], [60, 6.372834737], [65, 6.834310482], [70, 7.163472649], [75, 7.564498094], [80, 7.840328652], [85, 8.397968609], [90, 8.676231981], [95, 9.064611842], [100, 9.465099125], [105, 9.97548675], [110, 10.445692412], [115, 10.8899818], [120, 11.437625093], [125, 12.137070091], [130, 12.667996357], [135, 13.288020345], [140, 13.642238469], [145, 14.089302446]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..1b30bee --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.139829149], [1, 0.165065096], [2, 0.178088705], [3, 0.210510165], [4, 0.250710368], [5, 0.303361325], [6, 0.374543209], [7, 0.445053986], [8, 0.531537801], [9, 0.633624348], [10, 0.753584832], [11, 0.85914709], [12, 1.005963414], [13, 1.157852974], [14, 1.319703232], [15, 1.52116077], [16, 1.712578178], [17, 1.927347046], [18, 2.099395817], [19, 2.321524087], [20, 2.573673627], [21, 2.832072942], [22, 3.09512593], [23, 3.360196815], [24, 3.638813628], [25, 3.974464685], [26, 4.334893112], [27, 4.640203412], [28, 5.030962099], [29, 5.361091489], [30, 5.727334406]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.bloat.json new file mode 100644 index 0000000..8c4e764 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 91.011], [11, 108.297], [21, 129.843], [31, 151.365], [41, 172.889]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 97.738], [11, 217.843], [21, 371.114], [31, 558.527], [41, 775.054]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.compile.json new file mode 100644 index 0000000..f445623 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.174443415], [5, 0.201708985], [10, 0.216479459], [15, 0.230708156], [20, 0.246347816], [25, 0.260166592], [30, 0.275392603], [35, 0.290693233], [40, 0.303709493], [45, 0.320831668], [50, 0.332361252], [75, 0.413650219], [100, 0.488854619], [125, 0.574945387], [150, 0.650318898], [175, 0.740955567], [200, 0.825586161], [225, 0.918431833], [250, 1.000440364], [275, 1.102995811], [300, 1.187110244], [325, 1.303005103], [350, 1.405376095], [375, 1.502752719], [400, 1.629629069]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.608991839], [5, 0.661588106], [10, 0.724424112], [15, 0.782715842], [20, 0.840973222], [25, 0.912654059], [30, 0.976706375], [35, 1.027766886], [40, 1.100901143], [45, 1.167286747], [50, 1.246781855]] + }, { + "name": "fusion::list", + "data": [[0, 0.596665447], [5, 0.666927164], [10, 0.729971555], [15, 0.793428451], [20, 0.861006024], [25, 0.926687693], [30, 1.006109411], [35, 1.08641133], [40, 1.168711097], [45, 1.248144748], [50, 1.342945651]] + }, { + "name": "mpl::vector", + "data": [[0, 0.137017909], [5, 0.143216352], [10, 0.148357502], [15, 0.153286367], [20, 0.160098885], [25, 0.167797439], [30, 0.173521682], [35, 0.182372816], [40, 0.192071047], [45, 0.199214715], [50, 0.208875673], [75, 0.256509112], [100, 0.311344391], [125, 0.374862443], [150, 0.444806055], [175, 0.527380706], [200, 0.623742793], [225, 0.723696332], [250, 0.827057871], [275, 0.952352152], [300, 1.089464923], [325, 1.232335469], [350, 1.393740752], [375, 1.560067911], [400, 1.74875083]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.execute.json new file mode 100644 index 0000000..8c47626 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 1.4e-05], [2, 9.0e-05], [4, 0.000156], [6, 0.000212], [8, 0.000286], [10, 0.000378], [12, 0.000508], [14, 0.000598], [16, 0.000665], [18, 0.000781], [20, 0.000881], [22, 0.000977], [24, 0.001054], [26, 0.001157], [28, 0.001288], [30, 0.001357], [32, 0.001431], [34, 0.001533], [36, 0.001633], [38, 0.001678], [40, 0.001794], [42, 0.001925], [44, 0.001999], [46, 0.002067], [48, 0.002169], [50, 0.002252]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 1.5e-05], [2, 0.00011], [4, 0.000213], [6, 0.000333], [8, 0.000544], [10, 0.000563], [12, 0.000709], [14, 0.000815], [16, 0.00097], [18, 0.001237], [20, 0.001345], [22, 0.001411], [24, 0.001469], [26, 0.001589], [28, 0.001708], [30, 0.001881], [32, 0.00207], [34, 0.002557], [36, 0.002581], [38, 0.003082], [40, 0.002568], [42, 0.002644], [44, 0.002963], [46, 0.002945], [48, 0.00322], [50, 0.003361]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.difference.compile.json new file mode 100644 index 0000000..432313f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.1936816], [5, 0.261065872], [10, 0.374221726], [15, 0.515747996], [20, 0.743857394], [25, 0.992518041], [30, 1.347958408], [35, 1.697110269], [40, 2.220322723], [45, 2.685558049]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.filter.compile.json new file mode 100644 index 0000000..183ffbd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.184953847], [5, 0.212739985], [10, 0.232706384], [15, 0.250861193], [20, 0.270191836], [25, 0.288313612], [30, 0.306579446], [35, 0.328360302], [40, 0.345497494], [45, 0.365765784], [50, 0.388806576], [75, 0.491414631], [100, 0.607810983], [125, 0.730754219], [150, 0.858028266], [175, 0.984328913], [200, 1.130841157], [225, 1.27975048], [250, 1.417984747], [275, 1.572638934], [300, 1.738908339], [325, 1.911660529], [350, 2.119953303], [375, 2.272508575], [400, 2.50205107]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.524993277], [5, 0.579738359], [10, 0.650350836], [15, 0.731265667], [20, 0.83092594], [25, 0.924908381], [30, 1.059673118], [35, 1.182459554], [40, 1.380564462], [45, 1.549838783], [50, 1.752838044]] + }, { + "name": "fusion::list", + "data": [[0, 0.524645961], [5, 0.585043962], [10, 0.662938602], [15, 0.746069143], [20, 0.83477333], [25, 0.932887037], [30, 1.029859768], [35, 1.139075064], [40, 1.255308329], [45, 1.374227607], [50, 1.508707195]] + }, { + "name": "mpl::vector", + "data": [[0, 0.150907786], [5, 0.156993095], [10, 0.161809454], [15, 0.167013933], [20, 0.172828938], [25, 0.181774455], [30, 0.187155191], [35, 0.196965683], [40, 0.205101761], [45, 0.21455082], [50, 0.221467196], [75, 0.271115646], [100, 0.327261533], [125, 0.39320639], [150, 0.464811085], [175, 0.555298595], [200, 0.648015705], [225, 0.755024196], [250, 0.871089647], [275, 1.003212681], [300, 1.139707709], [325, 1.304126946], [350, 1.465135063], [375, 1.654629865], [400, 1.851113382]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.find_if.compile.json new file mode 100644 index 0000000..b0dc4ed --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.141530651], [5, 0.151094089], [10, 0.156889273], [15, 0.163155556], [20, 0.170951965], [25, 0.178246445], [30, 0.184929023], [35, 0.19097286], [40, 0.199380874], [45, 0.208796789], [50, 0.215914124], [75, 0.251349906], [100, 0.297524053], [125, 0.332563782], [150, 0.378448417], [175, 0.421899886], [200, 0.474460219]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.139161391], [5, 0.150730279], [10, 0.15418167], [15, 0.154630419], [20, 0.156517704], [25, 0.159270688], [30, 0.162555241], [35, 0.165043234], [40, 0.167236904], [45, 0.169819985], [50, 0.171537871], [75, 0.187176143], [100, 0.199629406], [125, 0.213891018], [150, 0.229282178], [175, 0.245306918], [200, 0.263052401]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.517871712], [5, 0.545458821], [10, 0.571012664], [15, 0.601342313], [20, 0.623368997], [25, 0.654721429], [30, 0.686111663], [35, 0.720390908], [40, 0.753860969], [45, 0.787660506]] + }, { + "name": "fusion::list", + "data": [[0, 0.512398339], [5, 0.557335124], [10, 0.604064387], [15, 0.656173832], [20, 0.721481481], [25, 0.774335445], [30, 0.834650237], [35, 0.90423218], [40, 0.980677507], [45, 1.063343713]] + }, { + "name": "mpl::vector", + "data": [[0, 0.147825189], [5, 0.155714246], [10, 0.161277104], [15, 0.166849845], [20, 0.174033777], [25, 0.183878183], [30, 0.191879002], [35, 0.201220974], [40, 0.209478396], [45, 0.22104769], [50, 0.228641242], [75, 0.283232713], [100, 0.34392316], [125, 0.415286426], [150, 0.491747868], [175, 0.575953186], [200, 0.6780832]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..b28a3bc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 84.174], [10, 111.27], [20, 134.967], [30, 156.498], [40, 180.442], [50, 205.009], [60, 224.472], [70, 248.522], [80, 278.221], [90, 299.97], [100, 323.684]] + }, { + "name": "std::vector", + "data": [[0, 96.357], [10, 112.229], [20, 112.373], [30, 112.525], [40, 112.677], [50, 112.829], [60, 112.973], [70, 113.125], [80, 113.277], [90, 113.429], [100, 113.573]] + }, { + "name": "std::array", + "data": [[0, 77.362], [10, 77.636], [20, 77.78], [30, 77.932], [40, 78.084], [50, 78.236], [60, 78.38], [70, 78.548], [80, 78.7], [90, 78.852], [100, 79.036]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 86.633], [10, 227.649], [20, 397.519], [30, 592.669], [40, 825.411], [50, 1091.657]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.compile.json new file mode 100644 index 0000000..14502e6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.108912214], [5, 0.116655862], [10, 0.12215045], [15, 0.126210727], [20, 0.130634128], [25, 0.135373285], [30, 0.139877354], [35, 0.14400277], [40, 0.148591894], [45, 0.152910356], [50, 0.157874964], [75, 0.185205844], [100, 0.209453272], [125, 0.233401134], [150, 0.261167825], [175, 0.291236226], [200, 0.321135668], [225, 0.35041676], [250, 0.38532569], [275, 0.41420573], [300, 0.445512528], [325, 0.477913905], [350, 0.50921338], [375, 0.543460145], [400, 0.584381196]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.096986919], [5, 0.104213321], [10, 0.10490248], [15, 0.10820872], [20, 0.113664738], [25, 0.116899992], [30, 0.120510127], [35, 0.123145633], [40, 0.126696793], [45, 0.130734256], [50, 0.132859958], [75, 0.151415051], [100, 0.172350383], [125, 0.190881003], [150, 0.21356948], [175, 0.23498497], [200, 0.260793023], [225, 0.28513466], [250, 0.307193937], [275, 0.33546292], [300, 0.374372053], [325, 0.392017743], [350, 0.416576096], [375, 0.44268878], [400, 0.481913516]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.516963473], [5, 0.556487818], [10, 0.633759455], [15, 0.612462466], [20, 0.632682983], [25, 0.887877685], [30, 0.696668298], [35, 0.725604091], [40, 0.769200278], [45, 0.792318965], [50, 0.8326553]] + },{ + "name": "fusion::list", + "data": [[0, 0.502311302], [5, 0.541055631], [10, 0.576729956], [15, 0.624483714], [20, 0.685675399], [25, 0.689548636], [30, 0.963712319], [35, 0.831748559], [40, 0.841031389], [45, 0.879060855], [50, 0.943450772]] + }, { + "name": "mpl::vector", + "data": [[0, 0.139055543], [5, 0.135371048], [10, 0.15410068], [15, 0.142977164], [20, 0.150959492], [25, 0.155617715], [30, 0.183643711], [35, 0.197604805], [40, 0.172628973], [45, 0.183290923], [50, 0.186023088], [75, 0.228022262], [100, 0.275356728], [125, 0.347797659], [150, 0.432792509], [175, 0.529635119], [200, 0.574632226], [225, 0.705635208], [250, 0.771324417], [275, 0.975203938], [300, 1.226415525], [325, 1.258519574], [350, 1.323438751], [375, 1.497656041], [400, 2.381767152]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.execute.json new file mode 100644 index 0000000..35d2f9e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 2.2e-05], [10, 0.000316], [20, 0.000689], [30, 0.001008], [40, 0.001441], [50, 0.001747], [60, 0.002185], [70, 0.003127], [80, 0.003579], [90, 0.004065], [100, 0.005448]] + }, { + "name": "std::vector", + "data": [[0, 2.5e-05], [10, 0.000469], [20, 0.000985], [30, 0.001383], [40, 0.001603], [50, 0.00236], [60, 0.002213], [70, 0.002611], [80, 0.002993], [90, 0.003253], [100, 0.003586]] + }, { + "name": "std::array", + "data": [[0, 7.0e-06], [10, 0.000153], [20, 0.000297], [30, 0.000481], [40, 0.000749], [50, 0.000876], [60, 0.001053], [70, 0.001229], [80, 0.001469], [90, 0.001624], [100, 0.001864]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.8e-05], [10, 0.000425], [20, 0.000998], [30, 0.001564], [40, 0.002083], [50, 0.00281]] + }, { + "name": "fusion::list", + "data": [[0, 1.8e-05], [10, 0.00055], [20, 0.001912], [30, 0.004268], [40, 0.00901], [50, 0.015054]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..3727c11 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 93.275], [11, 112.647], [21, 136.379], [31, 157.859], [41, 181.828]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 108.853], [11, 248.275], [21, 418.569], [31, 626.447], [41, 859.621]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.compile.json new file mode 100644 index 0000000..c6d7468 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.111718304], [5, 0.119244319], [10, 0.124115054], [15, 0.128024891], [20, 0.133730342], [25, 0.138541343], [30, 0.142422075], [35, 0.146315081], [40, 0.151402137], [45, 0.156003529], [50, 0.161320591], [75, 0.185284152], [100, 0.209126987], [125, 0.236688942], [150, 0.261126103], [175, 0.289645231], [200, 0.319323564], [225, 0.34960175], [250, 0.377385099], [275, 0.409226991], [300, 0.442084283], [325, 0.47654984], [350, 0.512783124], [375, 0.546852177], [400, 0.583541582]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.102041766], [5, 0.105389611], [10, 0.109777346], [15, 0.11242829], [20, 0.116460511], [25, 0.119912605], [30, 0.122185004], [35, 0.126001846], [40, 0.129462984], [45, 0.133840912], [50, 0.13688242], [75, 0.154841946], [100, 0.174716576], [125, 0.195179121], [150, 0.214962638], [175, 0.237217703], [200, 0.260874622], [225, 0.284488022], [250, 0.308690528], [275, 0.335458751], [300, 0.359545344], [325, 0.387389849], [350, 0.413372571], [375, 0.440336997], [400, 0.480335931]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.51169482], [5, 0.544954219], [10, 0.575437533], [15, 0.596180318], [20, 0.630337232], [25, 0.663581725], [30, 0.69466011], [35, 0.731064781], [40, 0.753826253], [45, 0.792320699]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.130870605], [5, 0.135897968], [10, 0.140608071], [15, 0.147108434], [20, 0.151504542], [25, 0.157887695], [30, 0.164171192], [35, 0.170656532], [40, 0.17837902], [45, 0.185699904], [50, 0.194268655], [75, 0.236677079], [100, 0.290500421], [125, 0.349057478], [150, 0.417402751], [175, 0.498291463], [200, 0.584466335], [225, 0.680458932], [250, 0.78313032], [275, 0.908023905], [300, 1.033363649], [325, 1.162508448], [350, 1.328019948], [375, 1.500431369], [400, 1.687665931]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.execute.json new file mode 100644 index 0000000..7306bd0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 5.2e-05], [3, 9.3e-05], [5, 0.000131], [7, 0.000178], [9, 0.000228], [11, 0.00033], [13, 0.000392], [15, 0.000439], [17, 0.000555], [19, 0.000645], [21, 0.000765], [23, 0.000792], [25, 0.000862], [27, 0.000912], [29, 0.000986], [31, 0.001007], [33, 0.001137], [35, 0.001191], [37, 0.00129], [39, 0.001337], [41, 0.001421], [43, 0.001493], [45, 0.001552], [47, 0.001803], [49, 0.001758]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 6.3e-05], [3, 0.000129], [5, 0.000198], [7, 0.000272], [9, 0.000377], [11, 0.000461], [13, 0.000582], [15, 0.000691], [17, 0.000817], [19, 0.00091], [21, 0.001037], [23, 0.001171], [25, 0.001245], [27, 0.001385], [29, 0.001451], [31, 0.001575], [33, 0.001725], [35, 0.001831], [37, 0.00196], [39, 0.002057], [41, 0.002158], [43, 0.002296], [45, 0.002379], [47, 0.00252], [49, 0.002697]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.including.compile.json new file mode 100644 index 0000000..eccd19d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.015410892200000002 + }, { + "name": "Boost.Hana", + "y": 0.34118152820000003 + } + + + , { + "name": "Boost.MPL", + "y": 1.3500457678 + }, { + "name": "Boost.Fusion", + "y": 1.4415242514 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.insert.compile.json new file mode 100644 index 0000000..99e2257 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.201328681], [5, 0.229789916], [10, 0.241951857], [15, 0.258755987], [20, 0.275080691], [25, 0.296280292], [30, 0.532739766], [35, 0.557403405], [40, 0.584802888], [45, 0.626964929], [50, 0.612414676], [75, 0.875734644], [100, 0.899418999], [125, 1.312652866], [150, 1.379390124], [175, 1.844443856], [200, 2.048579916], [225, 2.454631573], [250, 2.83260712], [275, 3.172219932], [300, 3.519509957], [325, 3.834856298], [350, 4.254019784], [375, 2.84936289], [400, 3.164388507]] + }, { + "name": "hana::map", + "data": [[0, 0.278259473], [5, 0.382125575], [10, 0.41961215], [15, 0.474913971], [20, 0.355584015], [25, 0.386177593], [30, 0.42184187], [35, 0.455226244], [40, 0.488102373], [45, 0.524564477], [50, 0.563906229], [75, 0.758590263], [100, 0.954876372], [125, 1.173493929], [150, 1.416847012], [175, 1.647392278], [200, 1.879933907], [225, 2.146263791], [250, 2.416215957], [275, 2.690470107], [300, 3.004181898], [325, 3.301759436], [350, 3.614136503], [375, 3.9423899], [400, 4.319582604]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.intersection.compile.json new file mode 100644 index 0000000..759fc95 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.199660162], [5, 0.236740025], [10, 0.27138108], [15, 0.312882558], [20, 0.373942133], [25, 0.437187828], [30, 0.508315203], [35, 0.599634647], [40, 0.697086816], [45, 0.792872088]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..4bca88f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.163276204], [5, 0.292571566], [10, 0.531510895], [15, 0.888338977], [20, 1.371574334], [25, 2.029254114], [30, 2.794756451], [35, 3.706017548], [40, 4.825050584], [45, 5.939601278]] + }, { + "name": "hana::set", + "data": [[0, 0.205521835], [5, 0.32565523], [10, 0.526561319], [15, 0.815513778], [20, 1.213281262], [25, 1.708173281], [30, 2.291023355], [35, 3.026469973], [40, 3.853229883], [45, 4.763414957]] + }, { + "name": "hana::map", + "data": [[0, 0.217889715], [5, 0.428413772], [10, 0.746523637], [15, 1.204609714], [20, 1.781906619], [25, 2.530738467], [30, 3.414103786], [35, 4.362200368], [40, 5.568971081], [45, 6.838728173]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_subset.compile.json new file mode 100644 index 0000000..8b2e1a2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.168597533], [5, 0.336993895], [10, 0.612510913], [15, 1.022511256], [20, 1.567720719], [25, 2.265363809], [30, 3.109251776], [35, 4.139067284], [40, 5.376649269], [45, 6.826965638]] + }, { + "name": "hana::set", + "data": [[0, 0.196731741], [5, 0.290513445], [10, 0.453928121], [15, 0.703433151], [20, 1.046703026], [25, 1.492393763], [30, 2.015348464], [35, 2.664024528], [40, 3.384316226], [45, 4.237481235]] + }, { + "name": "hana::map", + "data": [[0, 0.205019372], [5, 0.360542027], [10, 0.547508763], [15, 0.792884699], [20, 1.066176036], [25, 1.422964584], [30, 1.827531959], [35, 2.278606494], [40, 2.781167423], [45, 3.329577286]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..59bf79b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.165432441], [6, 0.208032612], [11, 0.27017063], [16, 0.357215043], [21, 0.468551474], [26, 0.590746917], [31, 0.749544502], [36, 0.93624868], [41, 1.133759459], [46, 1.366810638], [50, 1.564730939], [75, 3.223624611], [100, 5.658355751], [125, 8.899892941]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.make.compile.json new file mode 100644 index 0000000..b83c6ea --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.106727765], [5, 0.111282444], [10, 0.114810076], [15, 0.11778258], [20, 0.119865613], [25, 0.1233859], [30, 0.126388999], [35, 0.129687251], [40, 0.132026344], [45, 0.13533599], [50, 0.138957849], [75, 0.153959257], [100, 0.168560814], [125, 0.185618529], [150, 0.202602354], [175, 0.216712449], [200, 0.238010157], [225, 0.255040489], [250, 0.272246142], [275, 0.291153494], [300, 0.310421502], [325, 0.330364207], [350, 0.344882971], [375, 0.364867124], [400, 0.391434433]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.063271969], [5, 0.06469367], [10, 0.066503621], [15, 0.068152468], [20, 0.06988808], [25, 0.072662201], [30, 0.073973355], [35, 0.075341382], [40, 0.077812753], [45, 0.079627099], [50, 0.081401087], [75, 0.090297091], [100, 0.101315597], [125, 0.110190552], [150, 0.121872053], [175, 0.13225622], [200, 0.144830816], [225, 0.15674143], [250, 0.169230672], [275, 0.17912295], [300, 0.192232998], [325, 0.203435487], [350, 0.216240535], [375, 0.230760261], [400, 0.251617015]] + }, { + "name": "std::array", + "data": [[0, 0.220131595], [5, 0.22235592], [10, 0.221718915], [15, 0.225612652], [20, 0.224416343], [25, 0.22146855], [30, 0.222069685], [35, 0.221823621], [40, 0.221025267], [45, 0.219494378], [50, 0.222640706], [75, 0.222883223], [100, 0.222318737], [125, 0.221847781], [150, 0.221474845], [175, 0.221260045], [200, 0.222142481], [225, 0.220853085], [250, 0.220036703], [275, 0.220466062], [300, 0.222292085], [325, 0.22066043], [350, 0.222973034], [375, 0.223344864], [400, 0.219965029]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.079643942], [5, 0.100931605], [10, 0.121149268], [15, 0.141790996], [20, 0.168354376], [25, 0.197884921], [30, 0.232139942], [35, 0.273890501], [40, 0.319009656], [45, 0.370851912], [50, 0.43269538], [75, 0.83760814], [100, 1.506249666]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.508250577], [5, 0.517646797], [10, 0.524764271], [15, 0.560629537], [20, 0.602980303], [25, 0.651502076], [30, 0.700205726], [35, 0.765684191], [40, 0.826850685], [45, 0.904593085], [50, 0.992762035], [75, 1.509463252], [100, 2.219664565]] + }, { + "name": "fusion::list", + "data": [[0, 0.497138262], [5, 0.517552344], [10, 0.538705759], [15, 0.567592498], [20, 0.605332068], [25, 0.648696633], [30, 0.703789067], [35, 0.765331609], [40, 0.837012923], [45, 0.913700628], [50, 0.9934968], [75, 1.501279564], [100, 2.219728736]] + }, { + "name": "mpl::vector", + "data": [[0, 0.103251508], [5, 0.097287211], [10, 0.099275594], [15, 0.096740893], [20, 0.096685778], [25, 0.10498114], [30, 0.1079932], [35, 0.11168884], [40, 0.114067255], [45, 0.118462245], [50, 0.121792722], [75, 0.141692861], [100, 0.164811724], [125, 0.244033965], [150, 0.21850227], [175, 0.292045833], [200, 0.290683838], [225, 0.334425356], [250, 0.384467294], [275, 0.44125165], [300, 0.507357988], [325, 0.578234106], [350, 0.659184272], [375, 0.748354316], [400, 0.84916814]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.map.make.chart.json new file mode 100644 index 0000000..59193fa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.01935764], [5, 0.019578126], [10, 0.020645724], [15, 0.020903324], [20, 0.021514711], [25, 0.02210417], [30, 0.031654786], [35, 0.031511217], [40, 0.023946209], [45, 0.024546414], [50, 0.025222707], [55, 0.025706706], [60, 0.026072305], [65, 0.042642191], [70, 0.031333636], [75, 0.028437819], [80, 0.029045732], [85, 0.029271385], [90, 0.030008723], [95, 0.031808052], [100, 0.031230666], [105, 0.032719532], [110, 0.037079497], [115, 0.038676158], [120, 0.039127226], [125, 0.034861272], [130, 0.0355712], [135, 0.036454649], [140, 0.057125181], [145, 0.057942863]] + }, { + "name": "hana::map", + "data": [[0, 0.231193404], [5, 0.338902857], [10, 0.216223674], [15, 0.225469382], [20, 0.236353998], [25, 0.277932654], [30, 0.293258298], [35, 0.313750513], [40, 0.453432093], [45, 0.286551761], [50, 0.289300283], [55, 0.297737829], [60, 0.45466354], [65, 0.354524694], [70, 0.326376831], [75, 0.473983975], [80, 0.479995635], [85, 0.493947455], [90, 0.532911555], [95, 0.520132988], [100, 0.556529832], [105, 0.405726257], [110, 0.416349887], [115, 0.432089641], [120, 0.445319087], [125, 0.456870821], [130, 0.470085654], [135, 0.485517298], [140, 0.494057896], [145, 0.508381971]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.509129738], [5, 0.533915435], [10, 0.54700278], [15, 0.570939492], [20, 0.600222513], [25, 0.634521655], [30, 0.672204707], [35, 0.721847657], [40, 0.766966301], [45, 0.817432259], [50, 0.879425785], [55, 0.956410439], [60, 1.034924615], [65, 1.102172403], [70, 1.195970855], [75, 1.312801177], [80, 1.412720428], [85, 1.523526383], [90, 1.640333359], [95, 1.76139836], [100, 1.910555227], [105, 2.055049178], [110, 2.220562118], [115, 2.383807688], [120, 2.566385674], [125, 2.775509801], [130, 2.950671586], [135, 3.157428721], [140, 3.380555166], [145, 3.643499452]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.partition.compile.json new file mode 100644 index 0000000..ad32d62 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.184210534], [5, 0.225604786], [10, 0.250824291], [15, 0.272239939], [20, 0.299181], [25, 0.322582074], [30, 0.350053386], [35, 0.376518226], [40, 0.395383156], [45, 0.422047341], [50, 0.453855779], [75, 0.596068061], [100, 0.754923574], [125, 0.918479159], [150, 1.09882569], [175, 1.28448806], [200, 1.507777019], [225, 1.688119529], [250, 1.89883773], [275, 2.141552581], [300, 2.383743816], [325, 2.637410296], [350, 2.908692024], [375, 3.173493874], [400, 3.524372028]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.158618639], [5, 0.164861902], [10, 0.172064473], [15, 0.17897507], [20, 0.186447858], [25, 0.195127873], [30, 0.205314906], [35, 0.212988106], [40, 0.222999966], [45, 0.23394956], [50, 0.24441929], [75, 0.301296058], [100, 0.367151394], [125, 0.440092316], [150, 0.526239393], [175, 0.616850923], [200, 0.726532384], [225, 0.838735692], [250, 0.970895333], [275, 1.111221338], [300, 1.280571409], [325, 1.43171415], [350, 1.617311549], [375, 1.826435853], [400, 2.088177451]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.compile.json new file mode 100644 index 0000000..0f989cb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.121254268], [2, 0.121598505], [3, 0.1209354], [4, 0.121322036], [5, 0.120531149], [6, 0.121135792], [7, 0.12092574], [8, 0.120925467], [9, 0.120838302], [10, 0.121053424], [11, 0.121023274], [12, 0.120318246], [13, 0.120491194], [14, 0.120086055], [15, 0.120522886], [16, 0.121390894], [17, 0.120817696], [18, 0.121326883], [19, 0.120715424], [20, 0.120807812], [21, 0.121182594]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.116187958], [5, 0.132118936], [10, 0.14468808], [15, 0.157738798], [20, 0.170265765], [25, 0.183703601], [30, 0.198812776], [35, 0.211412934], [40, 0.225859561], [45, 0.237404661], [50, 0.252886168], [75, 0.316836953], [100, 0.382031201], [125, 0.439997543], [150, 0.50800344], [175, 0.574366965], [200, 0.651232812], [225, 0.720640536], [250, 0.797420139], [275, 0.870911395], [300, 0.945024358], [325, 1.01644105], [350, 1.111826337], [375, 1.167459562], [400, 1.279477287], [425, 1.352254146], [450, 1.454101591], [475, 1.522536761], [500, 1.645604102]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.112411365], [5, 0.118287546], [10, 0.121467052], [15, 0.125462199], [20, 0.128210104], [25, 0.131787001], [30, 0.133743007], [35, 0.137693528], [40, 0.14026606], [45, 0.143413956], [50, 0.147194091], [75, 0.163654089], [100, 0.180457178], [125, 0.197243271], [150, 0.215749384], [175, 0.232658405], [200, 0.253223305], [225, 0.269742156], [250, 0.288804854], [275, 0.310903222], [300, 0.32815959], [325, 0.351017503], [350, 0.378599368], [375, 0.394690967], [400, 0.422193091], [425, 0.441154524], [450, 0.466359635], [475, 0.492817946], [500, 0.51865366]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.execute.json new file mode 100644 index 0000000..451e716 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 9.1e-05], [3, 0.000142], [5, 0.000174], [7, 0.00025], [9, 0.000287], [11, 0.000378], [13, 0.00046], [15, 0.00052], [17, 0.000598], [19, 0.000696], [21, 0.000806], [23, 0.000859], [25, 0.000929], [27, 0.000998], [29, 0.001082], [31, 0.001113], [33, 0.001243], [35, 0.001268], [37, 0.001357], [39, 0.001453], [41, 0.001509], [43, 0.001619], [45, 0.001673], [47, 0.001745], [49, 0.001832]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.move.json new file mode 100644 index 0000000..eb124ad --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 5.9e-05], [20, 0.000129], [30, 0.000196], [40, 0.00027], [50, 0.000425], [60, 0.000428], [70, 0.000508], [80, 0.000613], [90, 0.000668], [100, 0.000765]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.0e-06], [10, 0.00011], [20, 0.000233], [30, 0.00037], [40, 0.000517], [50, 0.000682]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.nomove.json new file mode 100644 index 0000000..61e7b11 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 9.4e-05], [20, 0.000199], [30, 0.000303], [40, 0.000402], [50, 0.000508], [60, 0.00062], [70, 0.001513], [80, 0.00192], [90, 0.002313], [100, 0.002768]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.0e-06], [10, 0.00011], [20, 0.000234], [30, 0.00037], [40, 0.000521], [50, 0.000693]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.sort.compile.json new file mode 100644 index 0000000..9f4166b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.154084179], [5, 0.179403463], [10, 0.198789799], [15, 0.215832758], [20, 0.235100472], [25, 0.255226727], [30, 0.275866101], [35, 0.297569793], [40, 0.319058113], [45, 0.339867091], [50, 0.366776808], [75, 0.489290599], [100, 0.634433377], [125, 0.783521125], [150, 0.952443641], [175, 1.13725267], [200, 1.34548808]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.184559386], [5, 0.216426075], [10, 0.268987422], [15, 0.3538844], [20, 0.466963433], [25, 0.613832015], [30, 0.793488483], [35, 1.01402081], [40, 1.263815646], [45, 1.561335639], [50, 1.875927136], [75, 4.267407032], [100, 7.742731327], [125, 12.588430095], [150, 19.340001324], [175, 27.328388786], [200, 37.718751101]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..9e65d75 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.209600105], [5, 0.298154517], [10, 0.446851645], [15, 0.628145908], [20, 0.907105531], [25, 1.216400242], [30, 1.647070201], [35, 2.101412944], [40, 2.69100104], [45, 3.329950125]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.bloat.json new file mode 100644 index 0000000..6168cd1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 82.41], [10, 123.247], [20, 153.985], [30, 188.749], [40, 223.559], [50, 258.337], [60, 293.115], [70, 327.917], [80, 362.719], [90, 397.529], [100, 432.339]] + } + + , { + "name": "std::array", + "data": [[0, 79.868], [10, 80.174], [20, 80.318], [30, 80.47], [40, 80.638], [50, 80.79], [60, 80.934], [70, 81.086], [80, 81.238], [90, 81.39], [100, 81.606]] + } + + , { + "name": "std::vector", + "data": [[0, 141.739], [10, 153.363], [20, 153.507], [30, 153.659], [40, 153.811], [50, 153.963], [60, 154.107], [70, 158.355], [80, 158.507], [90, 158.659], [100, 158.803]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 105.688], [10, 388.786], [20, 763.056], [30, 1213.078], [40, 1743.18], [50, 2357.188]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.compile.json new file mode 100644 index 0000000..5257d42 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.115154458], [5, 0.125048927], [10, 0.131628692], [15, 0.137968275], [20, 0.14427981], [25, 0.150981596], [30, 0.158012965], [35, 0.164389568], [40, 0.171146474], [45, 0.177884054], [50, 0.184139485], [75, 0.218313687], [100, 0.252691111], [125, 0.288954144], [150, 0.322603274], [175, 0.360357815], [200, 0.400590897], [225, 0.438735656], [250, 0.490209074], [275, 0.52331131], [300, 0.584295122], [325, 0.619935676], [350, 0.663457006], [375, 0.69258927], [400, 0.744762711]] + }, { + "name": "hana::types", + "data": [[0, 0.111966257], [5, 0.11220032], [10, 0.113390547], [15, 0.112747858], [20, 0.113331534], [25, 0.114371381], [30, 0.114974611], [35, 0.114201068], [40, 0.115047682], [45, 0.114264266], [50, 0.114634154], [75, 0.115845368], [100, 0.118328603], [125, 0.118841227], [150, 0.119742988], [175, 0.121393845], [200, 0.121951637], [225, 0.123792109], [250, 0.124089254], [275, 0.126677819], [300, 0.128036817], [325, 0.127887685], [350, 0.130220075], [375, 0.131601051], [400, 0.132310501]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.197510107], [5, 0.204857693], [10, 0.216111113], [15, 0.226229033], [20, 0.235878267], [25, 0.250643743], [30, 0.260011212], [35, 0.273652457], [40, 0.286647567], [45, 0.300094499], [50, 0.315184514], [75, 0.387571509], [100, 0.474870152], [125, 0.568895933], [150, 0.678136141], [175, 0.795662451], [200, 0.943960099], [225, 1.088554918], [250, 1.252877573], [275, 1.446638819], [300, 1.651992057], [325, 1.881244957], [350, 2.148991117], [375, 2.424565506], [400, 2.727105354]] + }, { + "name": "fusion::vector", + "data": [[0, 0.591591201], [5, 0.652563068], [10, 0.712172891], [15, 0.783695949], [20, 0.852809394], [25, 0.928156768], [30, 1.009782505], [35, 1.083446653], [40, 1.178180623], [45, 1.272855264], [50, 1.342981843]] + }, { + "name": "fusion::list", + "data": [[0, 0.600409432], [5, 0.664252292], [10, 0.733234445], [15, 0.804686284], [20, 0.889741509], [25, 0.973395379], [30, 1.075342932], [35, 1.169193454], [40, 1.282382802], [45, 1.379832203], [50, 1.48549513]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.execute.json new file mode 100644 index 0000000..c58b719 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 1.8e-05], [10, 0.000336], [20, 0.000804], [30, 0.001262], [40, 0.001659], [50, 0.002329], [60, 0.00326], [70, 0.003997], [80, 0.004746], [90, 0.00537], [100, 0.006198]] + } + + , { + "name": "std::array", + "data": [[0, 1.1e-05], [10, 0.000179], [20, 0.00039], [30, 0.000603], [40, 0.000895], [50, 0.001055], [60, 0.001253], [70, 0.00142], [80, 0.001657], [90, 0.001915], [100, 0.002146]] + } + + , { + "name": "std::vector", + "data": [[0, 4.3e-05], [10, 0.000701], [20, 0.001668], [30, 0.001668], [40, 0.002464], [50, 0.002498], [60, 0.002923], [70, 0.003239], [80, 0.003788], [90, 0.005679], [100, 0.00474]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 4.3e-05], [10, 0.00115], [20, 0.002638], [30, 0.00495], [40, 0.004716], [50, 0.006691]] + }, { + "name": "fusion::list", + "data": [[0, 5.6e-05], [10, 0.001117], [20, 0.003418], [30, 0.008566], [40, 0.016615], [50, 0.027592]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.union.compile.json new file mode 100644 index 0000000..699fcc1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.20212148], [5, 0.241532237], [10, 0.317531124], [15, 0.434876025], [20, 0.563950957], [25, 0.750968089], [30, 0.968585657], [35, 1.213514864], [40, 1.543755122], [45, 1.88438862]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.unpack.compile.json new file mode 100644 index 0000000..3082e67 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.10778924], [2, 0.112916959], [4, 0.115184987], [6, 0.119005355], [8, 0.119720743], [10, 0.1225113], [12, 0.124438896], [14, 0.125285994], [16, 0.129014132], [18, 0.130910513], [20, 0.132654504], [21, 0.135741518], [26, 0.139070843], [31, 0.144930112], [36, 0.149730779], [41, 0.155332777], [46, 0.160403312], [50, 0.167026817], [75, 0.195369511], [100, 0.224421992], [125, 0.258284825], [150, 0.286468821], [175, 0.315057142], [200, 0.353345363], [225, 0.389777445], [250, 0.425883789], [275, 0.466880632], [300, 0.499296051], [325, 0.536695733], [350, 0.575306043], [375, 0.657490148], [400, 0.669799567]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.09832777], [2, 0.099959305], [4, 0.102585823], [6, 0.104504416], [8, 0.105446083], [10, 0.107178027], [12, 0.109529728], [14, 0.110300552], [16, 0.114387445], [18, 0.114257158], [20, 0.116253247], [21, 0.116768872], [26, 0.120591599], [31, 0.125270051], [36, 0.12889806], [41, 0.13303601], [46, 0.139158729], [50, 0.14232957], [75, 0.163547539], [100, 0.190021658], [125, 0.211442027], [150, 0.235882017], [175, 0.264305593], [200, 0.290921316], [225, 0.31959086], [250, 0.345378117], [275, 0.37685984], [300, 0.411659461], [325, 0.443532672], [350, 0.471730027], [375, 0.5041391], [400, 0.549831278]] + }, { + "name": "hana::set", + "data": [[0, 0.191208224], [2, 0.195810412], [4, 0.199156423], [6, 0.203638789], [8, 0.204001777], [10, 0.207446432], [12, 0.209207458], [14, 0.211649829], [16, 0.216026661], [18, 0.216942569], [20, 0.219986778], [21, 0.220493677], [26, 0.228390489], [31, 0.233380237], [36, 0.239894006], [41, 0.246110426], [46, 0.253998994], [50, 0.258089453], [75, 0.291038541], [100, 0.323863259], [125, 0.362069437], [150, 0.3954928], [175, 0.431877607], [200, 0.472212701], [225, 0.509739705], [250, 0.548884376], [275, 0.587167621], [300, 0.628395489], [325, 0.667945103], [350, 0.713094663], [375, 0.762006878], [400, 0.809195178]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.684654334], [2, 0.702389555], [4, 0.708319462], [6, 0.730804379], [8, 0.752471293], [10, 0.786976806], [12, 0.827640471], [14, 1.1364628], [16, 0.928228505]] + }, { + "name": "fusion::list", + "data": [[0, 0.670691746], [2, 0.693700221], [4, 0.709968258], [6, 0.729258944], [8, 0.770741013], [10, 0.80910392], [12, 0.851574593], [14, 0.906753654], [16, 0.950305387]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.bloat.json new file mode 100644 index 0000000..990bfd2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.bloat.json @@ -0,0 +1,36 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 80.009], [11, 104.149], [21, 131.877], [31, 162.983], [41, 197.487]] + } + + + , { + "name": "std::tuple", + "data": [[1, 78.902], [11, 117.126], [21, 194.206], [31, 338.19], [41, 560.87]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 93.788], [11, 200.892], [21, 350.432], [31, 537.658], [41, 758.484]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.compile.json new file mode 100644 index 0000000..af01f10 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.compile.json @@ -0,0 +1,37 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.203946174], [6, 0.177834887], [11, 0.188054041], [16, 0.21161142], [21, 0.222187984], [26, 0.232120829], [31, 0.256370153], [36, 0.262863666], [41, 0.262996616], [46, 0.255746293], [50, 0.26400525], [75, 0.293812629], [100, 0.33640684], [125, 0.382326049], [150, 0.396939863], [175, 0.424074849], [200, 0.466221346], [225, 0.496387513], [250, 0.521874971], [275, 0.574770043], [300, 0.593022382], [325, 0.639532097], [350, 0.678130644], [375, 0.729408142], [400, 0.753111166]] + } + + + , { + "name": "std::tuple", + "data": [[1, 0.168757556], [6, 0.20364954], [11, 0.236822534], [16, 0.293191601], [21, 0.35122134], [26, 0.417972385], [31, 0.496163616], [36, 0.571407147], [41, 0.641470784], [46, 0.775825741], [50, 0.851132208], [75, 1.72381172], [100, 3.038380841]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 0.963168662], [6, 0.953685717], [11, 0.831327507], [16, 0.962938015], [21, 1.015779792], [26, 1.01083983], [31, 1.048175757], [36, 1.079494052], [41, 1.093435146], [46, 1.091445291]] + }, { + "name": "fusion::list", + "data": [[1, 0.825466665], [6, 0.960303296], [11, 0.969883226], [16, 1.01423432], [21, 1.057253795], [26, 1.114092628], [31, 1.211323286], [36, 1.229078919], [41, 1.218607435], [46, 1.347670278]] + }, { + "name": "mpl::vector", + "data": [[1, 0.221650142], [6, 0.22424485], [11, 0.233116308], [16, 0.230056105], [21, 0.232830865], [26, 0.244468453], [31, 0.249648413], [36, 0.244473626], [41, 0.240170665], [46, 0.255007054], [50, 0.25556159], [75, 0.302147758], [100, 0.341675297], [125, 0.332937761], [150, 0.436772725], [175, 0.491528812], [200, 0.551539557], [225, 0.640815144], [250, 0.667162989], [275, 0.688897462], [300, 0.780699225], [325, 1.042120849], [350, 1.16456875], [375, 1.323744947], [400, 1.480131417]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.execute.json new file mode 100644 index 0000000..8e7f005 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at.execute.json @@ -0,0 +1,29 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 3.9e-05], [6, 0.0002], [11, 0.000393], [16, 0.000645], [21, 0.000875], [26, 0.001085], [31, 0.001241], [36, 0.001538], [41, 0.001744], [46, 0.002031]] + } + + + , { + "name": "std::tuple", + "data": [[1, 2.7e-05], [6, 0.000166], [11, 0.000334], [16, 0.000468], [21, 0.000675], [26, 0.000833], [31, 0.000708], [36, 0.000875], [41, 0.000954], [46, 0.001079]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 3.0e-05], [6, 0.000212], [11, 0.000379], [16, 0.00058], [21, 0.000759], [26, 0.000951], [31, 0.001129], [36, 0.001299], [41, 0.001534], [46, 0.001724]] + }, { + "name": "fusion::list", + "data": [[1, 2.7e-05], [6, 0.000256], [11, 0.00072], [16, 0.001445], [21, 0.002676], [26, 0.003772], [31, 0.009001], [36, 0.013859], [41, 0.01936], [46, 0.026647]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..60daba7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.210305523], [5, 0.2200224], [10, 0.216178398], [15, 0.205507225], [20, 0.141707416], [25, 0.142103348], [30, 0.188490102], [35, 0.198567617], [40, 0.195374173], [45, 0.206368375], [50, 0.206111594], [55, 0.206167189], [60, 0.199179826], [65, 0.211412452], [70, 0.194456694], [75, 0.201064029], [80, 0.185360204], [85, 0.207859332], [90, 0.175548605], [95, 0.205772987], [100, 0.206567351], [105, 0.188829965], [110, 0.195533786], [115, 0.204965188], [120, 0.208007336], [125, 0.210220411], [130, 0.203732356], [135, 0.199368641], [140, 0.208558465], [145, 0.203109359]] + }, { + "name": "hana::tuple", + "data": [[0, 0.689578189], [5, 0.708330747], [10, 0.730958509], [15, 0.729166113], [20, 0.720416697], [25, 0.780801533], [30, 0.792261952], [35, 0.817986618], [40, 0.791692557], [45, 0.845157484], [50, 0.898671849], [55, 0.907449183], [60, 0.94365076], [65, 0.938462264], [70, 0.852375515], [75, 0.878075026], [80, 1.003918519], [85, 1.071978339], [90, 1.009827232], [95, 1.053740119], [100, 0.92164275], [105, 1.08352709], [110, 1.088616501], [115, 0.996784809], [120, 1.023307384], [125, 0.992814508], [130, 1.15072417], [135, 1.140807508], [140, 1.18115955], [145, 1.089856872]] + }, { + "name": "hana::map", + "data": [[0, 0.81242879], [5, 0.836131796], [10, 0.909972633], [15, 0.815134905], [20, 0.807216475], [25, 0.864469835], [30, 0.781423078], [35, 0.830063057], [40, 0.7891516], [45, 0.800805072], [50, 0.903678978], [55, 0.823873537], [60, 0.861263552], [65, 0.838636722], [70, 0.725929884], [75, 0.757788983], [80, 0.735110952], [85, 0.80879109], [90, 0.771189938], [95, 0.775227768], [100, 0.709946397], [105, 0.688850245], [110, 0.679132754], [115, 0.675371006], [120, 0.680498717], [125, 0.672516018], [130, 0.670961596], [135, 0.671270298], [140, 0.670128375], [145, 0.668434563]] + } + + + , { + "name": "fusion::map", + "data": [[0, 4.254640141], [5, 4.424158485], [10, 5.076752793], [15, 4.570406079], [20, 4.573427012], [25, 4.407515536], [30, 6.864096918], [35, 5.280283804], [40, 4.439917883], [45, 7.539908117], [50, 7.410580977], [55, 7.727090813], [60, 7.550704173], [65, 7.8336571], [70, 6.806826481], [75, 7.630236888], [80, 8.041202451], [85, 7.128557497], [90, 7.393665005], [95, 7.248672626], [100, 6.086736965], [105, 7.674448691], [110, 8.068196242], [115, 8.207559836], [120, 8.367470501], [125, 6.332428619], [130, 7.928604512], [135, 6.599178612], [140, 7.264663489], [145, 8.463609625]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..cb2c7b1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.309591268], [5, 0.315001556], [10, 0.329978114], [15, 0.343487758], [20, 0.351707434], [25, 0.275374424], [30, 0.383717854], [35, 0.379002511], [40, 0.400738573], [45, 0.381476297], [50, 0.426064395], [55, 0.272069181], [60, 0.468633745], [65, 0.29985425], [70, 0.302972051], [75, 0.337180681], [80, 0.336690966], [85, 0.503608621], [90, 0.322392931], [95, 0.330228885], [100, 0.335041734], [105, 0.429705215], [110, 0.526053826], [115, 0.459046952], [120, 0.376454419], [125, 0.38186463], [130, 0.48072722], [135, 0.521677307], [140, 0.641838853], [145, 0.545147208]] + }, { + "name": "hana::tuple", + "data": [[0, 0.485953699], [5, 0.673141733], [10, 0.689343333], [15, 0.71115848], [20, 0.867849462], [25, 0.820237767], [30, 0.992386848], [35, 1.075966298], [40, 1.203281511], [45, 1.369075747], [50, 1.931007439], [55, 1.764268203], [60, 2.133269192], [65, 2.157447137], [70, 2.830300565], [75, 3.25728086], [80, 3.119886856], [85, 4.697308617], [90, 4.966214869], [95, 4.477116897], [100, 3.927488373], [105, 4.732312198], [110, 5.588737785], [115, 5.3494103], [120, 5.993270374], [125, 6.529708337], [130, 6.493414745], [135, 8.391918729], [140, 10.070718769], [145, 10.495243445]] + }, { + "name": "hana::map", + "data": [[0, 0.946219725], [5, 1.179757865], [10, 1.315363847], [15, 1.057816696], [20, 1.065064958], [25, 1.453339548], [30, 1.098471275], [35, 1.171339219], [40, 1.9428663], [45, 2.103427971], [50, 2.216846048], [55, 2.311330384], [60, 1.946158155], [65, 2.622776478], [70, 2.630898101], [75, 2.834213065], [80, 2.934420187], [85, 3.006966746], [90, 3.061617967], [95, 3.180756068], [100, 3.37228468], [105, 3.360411826], [110, 3.632315691], [115, 3.684458479], [120, 3.895853127], [125, 3.834517804], [130, 4.13354874], [135, 4.262053523], [140, 4.284576889], [145, 4.506774343]] + } + + + , { + "name": "fusion::map", + "data": [[0, 7.312222174], [5, 7.497768013], [10, 7.806571643], [15, 7.894296531], [20, 8.159851944], [25, 8.74022959], [30, 9.049773172], [35, 9.663228316], [40, 9.435436289], [45, 10.500373351], [50, 10.926474063], [55, 10.882053499], [60, 12.107478288], [65, 12.154076767], [70, 12.849076375], [75, 13.614452755], [80, 14.401823823], [85, 14.770208444], [90, 10.560348956], [95, 11.462982287], [100, 11.345804262], [105, 11.91994486], [110, 12.609277224], [115, 14.584697518], [120, 15.207137734], [125, 15.058804771], [130, 15.839386825], [135, 16.293728264], [140, 18.198045851], [145, 17.353326466]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..2892785 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.160564223], [1, 0.203525793], [2, 0.210692286], [3, 0.243705732], [4, 0.308595052], [5, 0.360096814], [6, 0.452220868], [7, 0.531022119], [8, 0.65187523], [9, 0.762966793], [10, 0.995773691], [11, 1.331036723], [12, 1.873524309], [13, 2.40019184], [14, 2.386889125], [15, 3.220853184], [16, 3.592190937], [17, 4.018011227], [18, 4.370801108], [19, 3.906232441], [20, 3.316286458], [21, 3.917226468], [22, 4.835368741], [23, 5.413524383], [24, 6.758845917], [25, 5.430665347], [26, 5.261440637], [27, 5.646119809], [28, 6.197945685], [29, 7.643798853], [30, 7.026315475]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.bloat.json new file mode 100644 index 0000000..8c4e764 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 91.011], [11, 108.297], [21, 129.843], [31, 151.365], [41, 172.889]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 97.738], [11, 217.843], [21, 371.114], [31, 558.527], [41, 775.054]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.compile.json new file mode 100644 index 0000000..cc0f521 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.313129977], [5, 0.38306897], [10, 0.352977982], [15, 0.317815204], [20, 0.4618981], [25, 0.375849124], [30, 0.333971399], [35, 0.385816682], [40, 0.353752003], [45, 0.356376331], [50, 0.408694094], [75, 0.458480503], [100, 0.574129383], [125, 0.642620966], [150, 0.730408835], [175, 0.824106367], [200, 0.921146046], [225, 1.040209097], [250, 1.136057802], [275, 1.226761919], [300, 1.322824496], [325, 1.534745106], [350, 1.566549029], [375, 2.399295209], [400, 1.934471981]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.62361143], [5, 0.692219818], [10, 0.752086534], [15, 0.815359578], [20, 1.186965774], [25, 1.003215947], [30, 1.264678105], [35, 1.114690541], [40, 1.212195332], [45, 1.27610015], [50, 1.366704002]] + }, { + "name": "fusion::list", + "data": [[0, 0.633288392], [5, 0.708525712], [10, 0.811129778], [15, 1.328955049], [20, 1.306701228], [25, 1.444879336], [30, 1.775643319], [35, 1.215769461], [40, 1.226558991], [45, 1.323792189], [50, 1.472224427]] + }, { + "name": "mpl::vector", + "data": [[0, 0.174339311], [5, 0.183741671], [10, 0.174195968], [15, 0.187882294], [20, 0.175670823], [25, 0.183327744], [30, 0.191724345], [35, 0.199979088], [40, 0.210750013], [45, 0.21735258], [50, 0.236754997], [75, 0.283465075], [100, 0.340179989], [125, 0.429853648], [150, 0.499122532], [175, 0.59290571], [200, 0.803763346], [225, 1.097282308], [250, 1.550806393], [275, 1.704195742], [300, 1.224240586], [325, 1.326649288], [350, 1.47799832], [375, 1.641071622], [400, 1.858210002]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.execute.json new file mode 100644 index 0000000..86c056e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 1.4e-05], [2, 0.000131], [4, 0.000224], [6, 0.000314], [8, 0.000404], [10, 0.000545], [12, 0.000558], [14, 0.000796], [16, 0.000952], [18, 0.001081], [20, 0.001235], [22, 0.001232], [24, 0.001496], [26, 0.001639], [28, 0.001743], [30, 0.001824], [32, 0.001748], [34, 0.001771], [36, 0.002235], [38, 0.001977], [40, 0.001826], [42, 0.001938], [44, 0.001992], [46, 0.002055], [48, 0.003197], [50, 0.003412]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 2.4e-05], [2, 0.000159], [4, 0.000311], [6, 0.000459], [8, 0.000582], [10, 0.000828], [12, 0.001061], [14, 0.001145], [16, 0.001386], [18, 0.001112], [20, 0.001742], [22, 0.001888], [24, 0.002119], [26, 0.002266], [28, 0.002478], [30, 0.002718], [32, 0.002934], [34, 0.003189], [36, 0.003445], [38, 0.003758], [40, 0.003968], [42, 0.004191], [44, 0.004447], [46, 0.0047], [48, 0.005018], [50, 0.005215]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.difference.compile.json new file mode 100644 index 0000000..4361c86 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.354258685], [5, 0.520888829], [10, 0.757949224], [15, 1.059427589], [20, 1.487474096], [25, 1.999346934], [30, 2.731588137], [35, 3.362461118], [40, 4.43350412], [45, 5.326245058]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.filter.compile.json new file mode 100644 index 0000000..43dc4a7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.343612461], [5, 0.406031608], [10, 0.410349518], [15, 0.446569086], [20, 0.549019848], [25, 0.521143314], [30, 0.620024209], [35, 0.641816207], [40, 0.648761098], [45, 0.701770779], [50, 0.720324751], [75, 0.954053508], [100, 1.18721793], [125, 1.418826734], [150, 1.661861921], [175, 1.86542597], [200, 2.205510125], [225, 2.458146637], [250, 2.735697645], [275, 2.947505538], [300, 3.254693146], [325, 3.5381242], [350, 3.596706027], [375, 2.938999384], [400, 4.6460174]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.987727074], [5, 1.071685518], [10, 1.211299147], [15, 1.386431247], [20, 1.529268056], [25, 1.723273725], [30, 2.010521018], [35, 2.203648917], [40, 2.520317557], [45, 2.887536592], [50, 3.271912765]] + }, { + "name": "fusion::list", + "data": [[0, 0.931271134], [5, 1.043303948], [10, 1.184758021], [15, 1.411757495], [20, 1.554358646], [25, 1.675377091], [30, 1.796321401], [35, 2.048620765], [40, 2.370548031], [45, 2.564142989], [50, 2.815874476]] + }, { + "name": "mpl::vector", + "data": [[0, 0.292872535], [5, 0.310007566], [10, 0.32513627], [15, 0.322352949], [20, 0.323532361], [25, 0.351167713], [30, 0.373966095], [35, 0.392748318], [40, 0.390371186], [45, 0.394324212], [50, 0.441719371], [75, 0.538973417], [100, 0.62686919], [125, 0.708772418], [150, 0.837610979], [175, 0.893172947], [200, 0.700528653], [225, 0.805447028], [250, 0.939388991], [275, 1.075815404], [300, 1.205115438], [325, 1.37344376], [350, 1.532624791], [375, 1.748315713], [400, 1.930511669]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.find_if.compile.json new file mode 100644 index 0000000..064c52e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.163805241], [5, 0.175574207], [10, 0.183065309], [15, 0.190625594], [20, 0.197447101], [25, 0.207184288], [30, 0.212145149], [35, 0.220100204], [40, 0.225722557], [45, 0.23940939], [50, 0.244467798], [75, 0.290041262], [100, 0.331488046], [125, 0.380939829], [150, 0.429280336], [175, 0.47627483], [200, 0.533341097]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.160120057], [5, 0.173412673], [10, 0.176951379], [15, 0.180640007], [20, 0.183309544], [25, 0.184064541], [30, 0.184342497], [35, 0.187796579], [40, 0.193137221], [45, 0.195035921], [50, 0.196187097], [75, 0.212501761], [100, 0.225031868], [125, 0.241805301], [150, 0.258457522], [175, 0.277466858], [200, 0.292576939]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.534605249], [5, 0.564638355], [10, 0.600082116], [15, 0.632266575], [20, 0.66891907], [25, 0.7006435], [30, 0.726538331], [35, 0.758331124], [40, 0.803773372], [45, 0.822968939]] + }, { + "name": "fusion::list", + "data": [[0, 0.531278621], [5, 0.575210597], [10, 0.627980328], [15, 0.686717056], [20, 0.750977356], [25, 0.826377105], [30, 0.901093227], [35, 0.972505978], [40, 1.05617313], [45, 1.140951763]] + }, { + "name": "mpl::vector", + "data": [[0, 0.163660955], [5, 0.172999123], [10, 0.180223382], [15, 0.18561056], [20, 0.193388967], [25, 0.202116805], [30, 0.213728019], [35, 0.222765442], [40, 0.23422875], [45, 0.245553521], [50, 0.255665665], [75, 0.312803118], [100, 0.378572364], [125, 0.459044818], [150, 0.540523748], [175, 0.625305211], [200, 0.736063428]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..b28a3bc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 84.174], [10, 111.27], [20, 134.967], [30, 156.498], [40, 180.442], [50, 205.009], [60, 224.472], [70, 248.522], [80, 278.221], [90, 299.97], [100, 323.684]] + }, { + "name": "std::vector", + "data": [[0, 96.357], [10, 112.229], [20, 112.373], [30, 112.525], [40, 112.677], [50, 112.829], [60, 112.973], [70, 113.125], [80, 113.277], [90, 113.429], [100, 113.573]] + }, { + "name": "std::array", + "data": [[0, 77.362], [10, 77.636], [20, 77.78], [30, 77.932], [40, 78.084], [50, 78.236], [60, 78.38], [70, 78.548], [80, 78.7], [90, 78.852], [100, 79.036]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 86.633], [10, 227.649], [20, 397.519], [30, 592.669], [40, 825.411], [50, 1091.657]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.compile.json new file mode 100644 index 0000000..e753970 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.127981716], [5, 0.135177658], [10, 0.140039555], [15, 0.144821799], [20, 0.161249412], [25, 0.179654338], [30, 0.186673717], [35, 0.166299403], [40, 0.171593772], [45, 0.175936076], [50, 0.182319627], [75, 0.211106026], [100, 0.251997321], [125, 0.267276616], [150, 0.295526315], [175, 0.335069727], [200, 0.362019999], [225, 0.396593081], [250, 0.417843917], [275, 0.463161267], [300, 0.502490963], [325, 0.542950149], [350, 0.579083798], [375, 0.611461961], [400, 0.667007263]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.155781905], [5, 0.122731497], [10, 0.126764551], [15, 0.130338875], [20, 0.133406748], [25, 0.137698054], [30, 0.14399506], [35, 0.141955286], [40, 0.147949494], [45, 0.152034471], [50, 0.195475679], [75, 0.177710993], [100, 0.200969733], [125, 0.224219474], [150, 0.243783391], [175, 0.269165241], [200, 0.300051053], [225, 0.320654051], [250, 0.34998303], [275, 0.388278418], [300, 0.40601732], [325, 0.442277797], [350, 0.607097006], [375, 0.493959868], [400, 0.529297193]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.548446061], [5, 0.57060752], [10, 0.686116753], [15, 0.641347305], [20, 0.673443329], [25, 0.710209394], [30, 0.781760454], [35, 0.912029386], [40, 0.823179029], [45, 0.861626606], [50, 0.892606762]] + },{ + "name": "fusion::list", + "data": [[0, 0.535178671], [5, 0.575151111], [10, 0.610957172], [15, 0.653614251], [20, 0.696575253], [25, 0.746288467], [30, 0.776557102], [35, 0.841009346], [40, 0.887851548], [45, 0.944617643], [50, 0.994116416]] + }, { + "name": "mpl::vector", + "data": [[0, 0.14943074], [5, 0.15309579], [10, 0.157832507], [15, 0.173647732], [20, 0.166992532], [25, 0.173113673], [30, 0.1801141], [35, 0.18568733], [40, 0.194402952], [45, 0.203358148], [50, 0.212605232], [75, 0.256093469], [100, 0.307103115], [125, 0.370295642], [150, 0.436369468], [175, 0.524227338], [200, 0.59878992], [225, 0.708570138], [250, 0.802468867], [275, 0.930186964], [300, 1.071330173], [325, 1.207640503], [350, 1.381263723], [375, 1.755218666], [400, 2.456618025]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.execute.json new file mode 100644 index 0000000..0d470ad --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 2.2e-05], [10, 0.000255], [20, 0.000674], [30, 0.001019], [40, 0.001382], [50, 0.001809], [60, 0.002055], [70, 0.002835], [80, 0.003595], [90, 0.004063], [100, 0.004708]] + }, { + "name": "std::vector", + "data": [[0, 2.5e-05], [10, 0.000471], [20, 0.000831], [30, 0.001162], [40, 0.001542], [50, 0.001857], [60, 0.002224], [70, 0.002652], [80, 0.002991], [90, 0.00326], [100, 0.003594]] + }, { + "name": "std::array", + "data": [[0, 7.0e-06], [10, 0.000156], [20, 0.000301], [30, 0.000501], [40, 0.000744], [50, 0.000912], [60, 0.001082], [70, 0.001229], [80, 0.001539], [90, 0.001676], [100, 0.001803]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.8e-05], [10, 0.000428], [20, 0.001014], [30, 0.001562], [40, 0.002116], [50, 0.002788]] + }, { + "name": "fusion::list", + "data": [[0, 1.8e-05], [10, 0.000551], [20, 0.00192], [30, 0.004286], [40, 0.009013], [50, 0.015115]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..3727c11 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 93.275], [11, 112.647], [21, 136.379], [31, 157.859], [41, 181.828]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 108.853], [11, 248.275], [21, 418.569], [31, 626.447], [41, 859.621]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.compile.json new file mode 100644 index 0000000..105d1fe --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.128418336], [5, 0.136786603], [10, 0.141281747], [15, 0.146657883], [20, 0.153145433], [25, 0.157586624], [30, 0.16271658], [35, 0.166548011], [40, 0.17140738], [45, 0.176979564], [50, 0.181590026], [75, 0.209602153], [100, 0.23477141], [125, 0.262832256], [150, 0.290733993], [175, 0.318609283], [200, 0.355924826], [225, 0.380693885], [250, 0.417835511], [275, 0.455608458], [300, 0.481975912], [325, 0.517519015], [350, 0.556747777], [375, 0.597256266], [400, 0.634939475]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.118457839], [5, 0.121952988], [10, 0.126154809], [15, 0.153864827], [20, 0.137511085], [25, 0.145264361], [30, 0.144483746], [35, 0.157186235], [40, 0.152159762], [45, 0.159680724], [50, 0.177120093], [75, 0.175749541], [100, 0.198389397], [125, 0.228593934], [150, 0.241396347], [175, 0.267691783], [200, 0.302871295], [225, 0.315570171], [250, 0.380899632], [275, 0.36475342], [300, 0.395950032], [325, 0.422021782], [350, 0.452129182], [375, 0.485282276], [400, 0.518155567]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.527567123], [5, 0.565467684], [10, 0.588036953], [15, 0.622392109], [20, 0.652507789], [25, 0.690605269], [30, 0.721329657], [35, 0.752483369], [40, 0.78901755], [45, 0.828526289]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.14497503], [5, 0.153845656], [10, 0.157514099], [15, 0.164665963], [20, 0.167626887], [25, 0.173175711], [30, 0.183689582], [35, 0.189833788], [40, 0.198703841], [45, 0.205317742], [50, 0.215346133], [75, 0.260707345], [100, 0.315834821], [125, 0.380599669], [150, 0.450639721], [175, 0.53340471], [200, 0.622805215], [225, 0.729486584], [250, 0.831621024], [275, 0.958666288], [300, 1.095320507], [325, 1.252312008], [350, 1.383841061], [375, 1.581291404], [400, 1.748542147]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.execute.json new file mode 100644 index 0000000..0c91251 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 5.3e-05], [3, 9.4e-05], [5, 0.000124], [7, 0.000176], [9, 0.000229], [11, 0.000335], [13, 0.000405], [15, 0.000437], [17, 0.000558], [19, 0.000635], [21, 0.000744], [23, 0.000793], [25, 0.000868], [27, 0.000909], [29, 0.001003], [31, 0.001024], [33, 0.001173], [35, 0.001216], [37, 0.001282], [39, 0.001341], [41, 0.001398], [43, 0.001514], [45, 0.001561], [47, 0.001682], [49, 0.002227]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 6.5e-05], [3, 0.000144], [5, 0.000199], [7, 0.000274], [9, 0.000375], [11, 0.000468], [13, 0.000585], [15, 0.000693], [17, 0.000888], [19, 0.000915], [21, 0.001054], [23, 0.001175], [25, 0.001268], [27, 0.001406], [29, 0.001471], [31, 0.001639], [33, 0.001809], [35, 0.001814], [37, 0.001929], [39, 0.002066], [41, 0.002747], [43, 0.002377], [45, 0.002465], [47, 0.002541], [49, 0.002782]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.including.compile.json new file mode 100644 index 0000000..8121823 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.030952697600000002 + }, { + "name": "Boost.Hana", + "y": 0.3745349042 + } + + + , { + "name": "Boost.MPL", + "y": 1.3389246216 + }, { + "name": "Boost.Fusion", + "y": 1.4364049096 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.insert.compile.json new file mode 100644 index 0000000..d3400f1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.226932312], [5, 0.255304868], [10, 0.274460452], [15, 0.292608587], [20, 0.313852914], [25, 0.332518501], [30, 0.350510344], [35, 0.3711787], [40, 0.3919592], [45, 0.412312736], [50, 0.439663164], [75, 0.55712329], [100, 0.682828457], [125, 0.821088103], [150, 0.976542102], [175, 1.146101092], [200, 1.333637059], [225, 1.525587412], [250, 1.739128167], [275, 1.951109347], [300, 2.206071047], [325, 2.446343711], [350, 2.694713893], [375, 2.987571233], [400, 3.339741094]] + }, { + "name": "hana::map", + "data": [[0, 0.241295144], [5, 0.28025946], [10, 0.316679695], [15, 0.356956915], [20, 0.397847903], [25, 0.434872682], [30, 0.4792443], [35, 0.516967462], [40, 0.558485033], [45, 0.605514674], [50, 0.646154902], [75, 0.865447484], [100, 1.103009834], [125, 1.343535206], [150, 1.60787147], [175, 1.853781847], [200, 2.138808708], [225, 2.465122313], [250, 2.745009245], [275, 3.00958964], [300, 3.344007522], [325, 3.697196468], [350, 4.080298279], [375, 4.393127612], [400, 4.804317697]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.intersection.compile.json new file mode 100644 index 0000000..6d7aec3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.223368623], [5, 0.26952534], [10, 0.306039852], [15, 0.355005817], [20, 0.441457157], [25, 0.514912333], [30, 0.605846377], [35, 0.678109928], [40, 1.066613839], [45, 0.948686092]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..fbb8971 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.196468027], [5, 0.3353081], [10, 0.596295959], [15, 1.094931443], [20, 1.497105689], [25, 2.21767542], [30, 3.024087409], [35, 4.000290201], [40, 5.928442367], [45, 9.699113563]] + }, { + "name": "hana::set", + "data": [[0, 0.246269266], [5, 0.605400155], [10, 0.635062383], [15, 0.971135591], [20, 1.379639733], [25, 1.98932585], [30, 3.500790053], [35, 3.33685234], [40, 5.517947952], [45, 7.342328875]] + }, { + "name": "hana::map", + "data": [[0, 0.292915425], [5, 0.499266954], [10, 0.884634385], [15, 1.408122843], [20, 1.973094988], [25, 2.712015357], [30, 3.66764098], [35, 4.83748549], [40, 6.013879933], [45, 7.448003389]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_subset.compile.json new file mode 100644 index 0000000..9226cad --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.191717252], [5, 0.378867501], [10, 0.688643314], [15, 1.146938549], [20, 1.771578399], [25, 2.522063475], [30, 3.514135554], [35, 4.586940839], [40, 5.832550367], [45, 7.353724054]] + }, { + "name": "hana::set", + "data": [[0, 0.219210047], [5, 0.326615888], [10, 0.505487443], [15, 0.77552709], [20, 1.151137737], [25, 1.623124465], [30, 2.246382881], [35, 2.940822945], [40, 3.727922919], [45, 4.699390481]] + }, { + "name": "hana::map", + "data": [[0, 0.229958418], [5, 0.408604101], [10, 0.629263943], [15, 0.899885271], [20, 1.226713191], [25, 1.616052879], [30, 2.018877634], [35, 2.512761071], [40, 3.059930568], [45, 3.750913135]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..3542df1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.224845764], [6, 0.236636553], [11, 0.3089958], [16, 0.438970562], [21, 0.543376128], [26, 0.709061598], [31, 0.868225894], [36, 1.033875296], [41, 1.306890635], [46, 1.563094271], [50, 1.750913585], [75, 3.586409217], [100, 6.150385754], [125, 10.011316325]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.make.compile.json new file mode 100644 index 0000000..eb7d6f1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.123735657], [5, 0.129185425], [10, 0.131703368], [15, 0.134976534], [20, 0.137261061], [25, 0.14085391], [30, 0.143709229], [35, 0.14746005], [40, 0.150845734], [45, 0.154317863], [50, 0.159359753], [75, 0.174900522], [100, 0.19149469], [125, 0.209568764], [150, 0.227707968], [175, 0.243942975], [200, 0.264474514], [225, 0.282809228], [250, 0.311567752], [275, 0.323890408], [300, 0.344235284], [325, 0.365078251], [350, 0.39132224], [375, 0.40639545], [400, 0.43792681]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.078192101], [5, 0.081499399], [10, 0.083173376], [15, 0.084662765], [20, 0.086543298], [25, 0.088548625], [30, 0.090886187], [35, 0.093809644], [40, 0.095670565], [45, 0.095998951], [50, 0.097908455], [75, 0.109098478], [100, 0.120106992], [125, 0.131211241], [150, 0.143273653], [175, 0.153548435], [200, 0.170713773], [225, 0.182085009], [250, 0.196101691], [275, 0.206718993], [300, 0.220229527], [325, 0.237001981], [350, 0.25022195], [375, 0.26124955], [400, 0.281322797]] + }, { + "name": "std::array", + "data": [[0, 0.24106552], [5, 0.239985365], [10, 0.241540787], [15, 0.241090677], [20, 0.240091879], [25, 0.241362477], [30, 0.241233081], [35, 0.242161022], [40, 0.239944499], [45, 0.242683733], [50, 0.242167557], [75, 0.242710936], [100, 0.240912978], [125, 0.241545298], [150, 0.243174588], [175, 0.241076338], [200, 0.241192182], [225, 0.241182374], [250, 0.241943691], [275, 0.242472199], [300, 0.242338586], [325, 0.240212071], [350, 0.241101664], [375, 0.243648127], [400, 0.240564846]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.09595537], [5, 0.119615559], [10, 0.142385852], [15, 0.16636012], [20, 0.195601079], [25, 0.224744532], [30, 0.262370413], [35, 0.31052328], [40, 0.363460732], [45, 0.421055742], [50, 0.479550676], [75, 0.924223742], [100, 1.639265299]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.532016261], [5, 0.547460945], [10, 0.557254126], [15, 0.586264899], [20, 0.637631723], [25, 0.686201575], [30, 0.749386895], [35, 0.811820306], [40, 0.895438594], [45, 0.966713446], [50, 1.064968869], [75, 1.618889056], [100, 2.397962129]] + }, { + "name": "fusion::list", + "data": [[0, 0.524789876], [5, 0.54657926], [10, 0.569353742], [15, 0.598618355], [20, 0.649537733], [25, 0.697296555], [30, 0.755507149], [35, 0.839911995], [40, 0.911857543], [45, 0.988841195], [50, 1.074831178], [75, 1.623643504], [100, 2.406096736]] + }, { + "name": "mpl::vector", + "data": [[0, 0.112192716], [5, 0.114387029], [10, 0.112066614], [15, 0.112184089], [20, 0.112133427], [25, 0.121559393], [30, 0.123392302], [35, 0.129821955], [40, 0.130923261], [45, 0.136410785], [50, 0.138912948], [75, 0.1609133], [100, 0.182260514], [125, 0.213339149], [150, 0.242119889], [175, 0.279246759], [200, 0.314149456], [225, 0.359834848], [250, 0.411261821], [275, 0.468106625], [300, 0.533244553], [325, 0.605514834], [350, 0.684211702], [375, 0.773929985], [400, 0.872405772]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.map.make.chart.json new file mode 100644 index 0000000..54fd558 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.033799728], [5, 0.034499706], [10, 0.035443639], [15, 0.036150265], [20, 0.036925249], [25, 0.037514108], [30, 0.038117499], [35, 0.039125617], [40, 0.039203418], [45, 0.039771946], [50, 0.041706339], [55, 0.041053937], [60, 0.040963992], [65, 0.04324807], [70, 0.044940379], [75, 0.054882373], [80, 0.044676729], [85, 0.065015663], [90, 0.045412744], [95, 0.046670108], [100, 0.050386122], [105, 0.056812164], [110, 0.04848515], [115, 0.049388825], [120, 0.05003998], [125, 0.051214282], [130, 0.053494257], [135, 0.052081777], [140, 0.052730557], [145, 0.054888847]] + }, { + "name": "hana::map", + "data": [[0, 0.222635974], [5, 0.23553652], [10, 0.245834114], [15, 0.25626569], [20, 0.263505038], [25, 0.272667456], [30, 0.281599651], [35, 0.29532144], [40, 0.299983617], [45, 0.320567477], [50, 0.335639716], [55, 0.334235812], [60, 0.34194786], [65, 0.355258521], [70, 0.364705325], [75, 0.395375504], [80, 0.389996122], [85, 0.403509893], [90, 0.423828028], [95, 0.4225873], [100, 0.443829429], [105, 0.463623657], [110, 0.536322685], [115, 0.552758583], [120, 0.527449636], [125, 0.688761725], [130, 0.517091244], [135, 0.733140878], [140, 0.680688545], [145, 0.834673086]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.554767139], [5, 0.65976078], [10, 0.618171593], [15, 0.637388109], [20, 0.658138559], [25, 0.927222838], [30, 0.769778142], [35, 0.946625505], [40, 1.26112008], [45, 1.089372864], [50, 1.141517055], [55, 1.553890334], [60, 1.902057772], [65, 1.661359446], [70, 1.280036243], [75, 1.64209658], [80, 1.514806715], [85, 1.635081945], [90, 1.732701778], [95, 1.834557938], [100, 1.978821286], [105, 2.139458583], [110, 2.306970909], [115, 2.479770535], [120, 2.647284526], [125, 2.870811783], [130, 3.061498733], [135, 3.299908914], [140, 3.502188621], [145, 3.710869956]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.partition.compile.json new file mode 100644 index 0000000..0df618d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.201784796], [5, 0.248782989], [10, 0.273834072], [15, 0.300725632], [20, 0.323790483], [25, 0.355498304], [30, 0.377680693], [35, 0.407779883], [40, 0.434003649], [45, 0.462564329], [50, 0.493489731], [75, 0.637631975], [100, 0.802301433], [125, 0.981777362], [150, 1.162367002], [175, 1.361093962], [200, 1.593000988], [225, 1.808144751], [250, 2.047868935], [275, 2.317380576], [300, 2.542612484], [325, 2.79390027], [350, 3.083993417], [375, 3.399043648], [400, 3.781025476]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.173855573], [5, 0.182405187], [10, 0.188116136], [15, 0.194161929], [20, 0.203038698], [25, 0.213509936], [30, 0.220390631], [35, 0.231804068], [40, 0.24242333], [45, 0.253118487], [50, 0.263121691], [75, 0.328260621], [100, 0.39408266], [125, 0.472351679], [150, 0.563108766], [175, 0.663716454], [200, 0.773343195], [225, 0.889975414], [250, 1.025819831], [275, 1.182292424], [300, 1.342415124], [325, 1.509770793], [350, 1.725695974], [375, 1.909252755], [400, 2.137111559]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.compile.json new file mode 100644 index 0000000..d04a175 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.147151256], [2, 0.139743042], [3, 0.13781202], [4, 0.137786208], [5, 0.138376485], [6, 0.138767398], [7, 0.138594397], [8, 0.139308069], [9, 0.139024911], [10, 0.140742238], [11, 0.139143937], [12, 0.137816101], [13, 0.139207849], [14, 0.136929664], [15, 0.143818419], [16, 0.153645508], [17, 0.138423291], [18, 0.142816128], [19, 0.139273496], [20, 0.139924376], [21, 0.145440265]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.141445388], [5, 0.156024069], [10, 0.167561692], [15, 0.178607155], [20, 0.192806335], [25, 0.211447429], [30, 0.221577026], [35, 0.242377819], [40, 0.253881747], [45, 0.268318851], [50, 0.282000554], [75, 0.353338459], [100, 0.490681952], [125, 0.503403111], [150, 0.60115834], [175, 0.634019855], [200, 0.709581934], [225, 0.797439025], [250, 0.897548875], [275, 0.955469928], [300, 1.105406325], [325, 1.127729849], [350, 1.214752695], [375, 1.280769999], [400, 1.369671829], [425, 1.490165447], [450, 1.581769129], [475, 1.664916172], [500, 1.749951543]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.128136214], [5, 0.136916509], [10, 0.140259845], [15, 0.142843415], [20, 0.146633385], [25, 0.151606697], [30, 0.153603728], [35, 0.157028488], [40, 0.160474031], [45, 0.163214229], [50, 0.167617555], [75, 0.184799823], [100, 0.204684879], [125, 0.225471191], [150, 0.24412583], [175, 0.266658374], [200, 0.286259784], [225, 0.303435563], [250, 0.332358549], [275, 0.35007857], [300, 0.375445785], [325, 0.390984172], [350, 0.411230983], [375, 0.439515306], [400, 0.468876677], [425, 0.492180916], [450, 0.517201052], [475, 0.537614083], [500, 0.569187194]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.execute.json new file mode 100644 index 0000000..96fcbf4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 9.2e-05], [3, 0.000147], [5, 0.000175], [7, 0.000254], [9, 0.000292], [11, 0.00037], [13, 0.00046], [15, 0.000518], [17, 0.000595], [19, 0.000702], [21, 0.000792], [23, 0.000851], [25, 0.000958], [27, 0.001222], [29, 0.001086], [31, 0.001107], [33, 0.00136], [35, 0.001282], [37, 0.001364], [39, 0.001463], [41, 0.00154], [43, 0.001625], [45, 0.001716], [47, 0.001754], [49, 0.001922]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.move.json new file mode 100644 index 0000000..89aefd1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 6.1e-05], [20, 0.000132], [30, 0.000256], [40, 0.000278], [50, 0.000378], [60, 0.000449], [70, 0.00053], [80, 0.000589], [90, 0.000699], [100, 0.000777]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 1.0e-06], [10, 0.000125], [20, 0.000245], [30, 0.000383], [40, 0.000539], [50, 0.000763]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.nomove.json new file mode 100644 index 0000000..d20f8d3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.0001], [20, 0.000204], [30, 0.000308], [40, 0.000413], [50, 0.000522], [60, 0.00063], [70, 0.002199], [80, 0.002835], [90, 0.00254], [100, 0.002978]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 2.0e-06], [10, 0.000113], [20, 0.000249], [30, 0.000381], [40, 0.000535], [50, 0.000718]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.sort.compile.json new file mode 100644 index 0000000..6317667 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.221010612], [5, 0.210469423], [10, 0.242894887], [15, 0.248355541], [20, 0.330659525], [25, 0.479988812], [30, 0.327229185], [35, 0.34538892], [40, 0.365824984], [45, 0.385732259], [50, 0.409872796], [75, 0.57546253], [100, 0.703842864], [125, 0.876288336], [150, 1.066255581], [175, 1.302016933], [200, 1.479175362]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.208373044], [5, 0.235724557], [10, 0.303722729], [15, 0.51342371], [20, 0.528476607], [25, 0.695774631], [30, 0.892426652], [35, 1.149457307], [40, 1.42118785], [45, 1.78316501], [50, 2.185482945], [75, 4.753752168], [100, 8.646511634], [125, 13.684933302], [150, 21.350161354], [175, 32.494082018], [200, 43.41844134]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..107571d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.235617885], [5, 0.351950239], [10, 0.499152756], [15, 0.711154072], [20, 1.008708287], [25, 1.347174391], [30, 1.834854752], [35, 2.356467978], [40, 2.993225955], [45, 3.679811033]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.bloat.json new file mode 100644 index 0000000..6168cd1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 82.41], [10, 123.247], [20, 153.985], [30, 188.749], [40, 223.559], [50, 258.337], [60, 293.115], [70, 327.917], [80, 362.719], [90, 397.529], [100, 432.339]] + } + + , { + "name": "std::array", + "data": [[0, 79.868], [10, 80.174], [20, 80.318], [30, 80.47], [40, 80.638], [50, 80.79], [60, 80.934], [70, 81.086], [80, 81.238], [90, 81.39], [100, 81.606]] + } + + , { + "name": "std::vector", + "data": [[0, 141.739], [10, 153.363], [20, 153.507], [30, 153.659], [40, 153.811], [50, 153.963], [60, 154.107], [70, 158.355], [80, 158.507], [90, 158.659], [100, 158.803]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 105.688], [10, 388.786], [20, 763.056], [30, 1213.078], [40, 1743.18], [50, 2357.188]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.compile.json new file mode 100644 index 0000000..f52f389 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.133035224], [5, 0.145799405], [10, 0.15436267], [15, 0.158985775], [20, 0.16773696], [25, 0.175296326], [30, 0.181906963], [35, 0.192076573], [40, 0.199579702], [45, 0.205607403], [50, 0.214529827], [75, 0.249750138], [100, 0.29483656], [125, 0.328566366], [150, 0.365657727], [175, 0.405912513], [200, 0.45305443], [225, 0.49973388], [250, 0.547755822], [275, 0.585735725], [300, 0.649649332], [325, 0.685910844], [350, 0.734399185], [375, 0.803563292], [400, 0.833383944]] + }, { + "name": "hana::types", + "data": [[0, 0.130772671], [5, 0.13117043], [10, 0.131584748], [15, 0.132960064], [20, 0.133309407], [25, 0.134709884], [30, 0.133859104], [35, 0.135256556], [40, 0.133826996], [45, 0.136774173], [50, 0.133614657], [75, 0.138129215], [100, 0.139126567], [125, 0.138749306], [150, 0.140807933], [175, 0.142917143], [200, 0.143335026], [225, 0.142239088], [250, 0.145415603], [275, 0.147455109], [300, 0.148364975], [325, 0.151552939], [350, 0.152950501], [375, 0.153575094], [400, 0.154566809]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.213335791], [5, 0.228233711], [10, 0.235472101], [15, 0.246307827], [20, 0.258700057], [25, 0.276001734], [30, 0.285314912], [35, 0.303034724], [40, 0.315000087], [45, 0.331481384], [50, 0.345181778], [75, 0.425159846], [100, 0.518374531], [125, 0.620133174], [150, 0.735091706], [175, 0.86966979], [200, 1.005484818], [225, 1.180214175], [250, 1.351774636], [275, 1.572580127], [300, 1.77257292], [325, 2.015215862], [350, 2.27816928], [375, 2.586991025], [400, 2.888336593]] + }, { + "name": "fusion::vector", + "data": [[0, 0.612275331], [5, 0.684305975], [10, 0.760535597], [15, 0.829320679], [20, 0.907775191], [25, 0.985946245], [30, 1.057082641], [35, 1.160578561], [40, 1.240731451], [45, 1.351430814], [50, 1.413062976]] + }, { + "name": "fusion::list", + "data": [[0, 0.617372914], [5, 0.694945527], [10, 0.778068559], [15, 0.853356363], [20, 0.937021981], [25, 1.014664478], [30, 1.116672884], [35, 1.246000569], [40, 1.351677442], [45, 1.476899], [50, 1.582949128]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.execute.json new file mode 100644 index 0000000..5a6abf7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 1.8e-05], [10, 0.000338], [20, 0.000816], [30, 0.00126], [40, 0.001875], [50, 0.003108], [60, 0.003286], [70, 0.00401], [80, 0.004874], [90, 0.006786], [100, 0.006314]] + } + + , { + "name": "std::array", + "data": [[0, 1.1e-05], [10, 0.000178], [20, 0.000387], [30, 0.000613], [40, 0.000895], [50, 0.001166], [60, 0.001263], [70, 0.001453], [80, 0.001705], [90, 0.001912], [100, 0.002135]] + } + + , { + "name": "std::vector", + "data": [[0, 4.3e-05], [10, 0.000692], [20, 0.00118], [30, 0.001596], [40, 0.002344], [50, 0.00237], [60, 0.002713], [70, 0.003832], [80, 0.004274], [90, 0.004032], [100, 0.004712]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 4.0e-05], [10, 0.000747], [20, 0.00169], [30, 0.00307], [40, 0.004951], [50, 0.008299]] + }, { + "name": "fusion::list", + "data": [[0, 5.7e-05], [10, 0.001276], [20, 0.00359], [30, 0.008866], [40, 0.016821], [50, 0.028316]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.union.compile.json new file mode 100644 index 0000000..0b1db6b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.232158796], [5, 0.288674446], [10, 0.363621227], [15, 0.481715304], [20, 0.642590504], [25, 0.875351333], [30, 1.127707894], [35, 1.379374982], [40, 1.750703601], [45, 2.150504887]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.unpack.compile.json new file mode 100644 index 0000000..32c34f0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.202588261], [2, 0.188191027], [4, 0.142447952], [6, 0.148986256], [8, 0.164930659], [10, 0.226733205], [12, 0.225812578], [14, 0.144492858], [16, 0.14922102], [18, 0.24338874], [20, 0.250057918], [21, 0.249146353], [26, 0.263382527], [31, 0.164059926], [36, 0.250153588], [41, 0.221925], [46, 0.18305217], [50, 0.189686209], [75, 0.344842397], [100, 0.389348434], [125, 0.332266467], [150, 0.371043849], [175, 0.476677813], [200, 0.458727207], [225, 0.44511786], [250, 0.502428827], [275, 0.53117616], [300, 0.56266539], [325, 0.598359735], [350, 0.625375124], [375, 0.680381925], [400, 0.741658366]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.117661602], [2, 0.117628156], [4, 0.118754819], [6, 0.12175379], [8, 0.122093808], [10, 0.12456469], [12, 0.141773086], [14, 0.182737376], [16, 0.131448017], [18, 0.138764691], [20, 0.141486385], [21, 0.140181172], [26, 0.14302087], [31, 0.158192409], [36, 0.161505076], [41, 0.157008007], [46, 0.176172051], [50, 0.180470908], [75, 0.235137826], [100, 0.279260097], [125, 0.37944473], [150, 0.349485591], [175, 0.389160501], [200, 0.509798837], [225, 0.529584965], [250, 0.547419246], [275, 0.644701791], [300, 0.629238926], [325, 0.670538908], [350, 0.63182493], [375, 0.743239734], [400, 0.778435977]] + }, { + "name": "hana::set", + "data": [[0, 0.248243657], [2, 0.222616815], [4, 0.227694643], [6, 0.252292665], [8, 0.230759487], [10, 0.233357215], [12, 0.235568654], [14, 0.242484928], [16, 0.242517785], [18, 0.248741048], [20, 0.312621741], [21, 0.274039282], [26, 0.328132451], [31, 0.387401153], [36, 0.372120864], [41, 0.400423936], [46, 0.431191237], [50, 0.410531532], [75, 0.414868736], [100, 0.548827886], [125, 0.598869169], [150, 0.535138381], [175, 0.70167278], [200, 0.639421456], [225, 0.60080148], [250, 0.630901498], [275, 0.941494102], [300, 0.932641469], [325, 1.085523628], [350, 1.091886416], [375, 0.845812778], [400, 0.895384464]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.760213823], [2, 0.716269238], [4, 0.734118573], [6, 0.763074813], [8, 0.771497807], [10, 0.941430348], [12, 0.863026188], [14, 0.90097065], [16, 1.106642245]] + }, { + "name": "fusion::list", + "data": [[0, 0.761086828], [2, 1.018178794], [4, 0.72822918], [6, 1.267436447], [8, 1.354530092], [10, 1.378171903], [12, 1.301134985], [14, 1.19519568], [16, 1.11095604]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.bloat.json new file mode 100644 index 0000000..ee2cd57 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.bloat.json @@ -0,0 +1,31 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 18.942], [11, 18.942], [21, 18.942], [31, 18.942], [41, 18.942]] + } + + + + + , { + "name": "fusion::vector", + "data": [[1, 18.942], [11, 18.942], [21, 18.942], [31, 18.942], [41, 18.942]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.compile.json new file mode 100644 index 0000000..c485963 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.compile.json @@ -0,0 +1,32 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.120572316], [6, 0.125267457], [11, 0.123115167], [16, 0.132254662], [21, 0.126631129], [26, 0.124302148], [31, 0.130873848], [36, 0.126298397], [41, 0.135252832], [46, 0.145313687], [50, 0.139560992], [75, 0.170741414], [100, 0.183898478], [125, 0.21923755], [150, 0.209406611], [175, 0.22970935], [200, 0.414306519], [225, 0.272925397], [250, 0.27788238], [275, 0.301387863], [300, 0.318783889], [325, 0.339889843], [350, 0.451815161], [375, 0.389315722], [400, 0.453166685]] + } + + + + + , { + "name": "fusion::vector", + "data": [[1, 0.681067273], [6, 0.530427865], [11, 0.530513835], [16, 0.488187841], [21, 0.527747258], [26, 0.624573339], [31, 0.845926387], [36, 0.572553261], [41, 0.911878005], [46, 0.563590566]] + }, { + "name": "fusion::list", + "data": [[1, 0.496766691], [6, 0.496813662], [11, 0.512728604], [16, 0.516573228], [21, 0.541379807], [26, 0.56836561], [31, 0.595362915], [36, 0.60996228], [41, 0.633870754], [46, 0.756314807]] + }, { + "name": "mpl::vector", + "data": [[1, 0.116036891], [6, 0.115175497], [11, 0.121224097], [16, 0.137380818], [21, 0.118587502], [26, 0.131568873], [31, 0.127151678], [36, 0.131887754], [41, 0.132599057], [46, 0.153374792], [50, 0.142123943], [75, 0.160532796], [100, 0.189676143], [125, 0.223723598], [150, 0.238789453], [175, 0.283015632], [200, 0.283666913], [225, 0.318638387], [250, 0.374290441], [275, 0.388308374], [300, 0.670141783], [325, 0.504648135], [350, 0.507282275], [375, 0.653345021], [400, 0.655648827]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.execute.json new file mode 100644 index 0000000..b384ff4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at.execute.json @@ -0,0 +1,24 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 9.0e-06], [6, 8.5e-05], [11, 0.00017], [16, 0.000261], [21, 0.000337], [26, 0.000416], [31, 0.000488], [36, 0.000586], [41, 0.000688], [46, 0.000744]] + } + + + + + , { + "name": "fusion::vector", + "data": [[1, 9.0e-06], [6, 9.1e-05], [11, 0.000166], [16, 0.000256], [21, 0.000336], [26, 0.000416], [31, 0.000485], [36, 0.00058], [41, 0.000673], [46, 0.000857]] + }, { + "name": "fusion::list", + "data": [[1, 9.0e-06], [6, 8.3e-05], [11, 0.000171], [16, 0.000253], [21, 0.00034], [26, 0.000426], [31, 0.000489], [36, 0.000581], [41, 0.000658], [46, 0.000925]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..861336c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.121930226], [5, 0.118852637], [10, 0.140571439], [15, 0.121425785], [20, 0.124629873], [25, 0.132422864], [30, 0.122732434], [35, 0.11715618], [40, 0.119116829], [45, 0.121415914], [50, 0.119299001], [55, 0.117328349], [60, 0.117321917], [65, 0.11912046], [70, 0.118526665], [75, 0.119203356], [80, 0.120143753], [85, 0.117255935], [90, 0.119306158], [95, 0.120022129], [100, 0.118399416], [105, 0.11555839], [110, 0.117283887], [115, 0.175712411], [120, 0.11899407], [125, 0.117932537], [130, 0.118355937], [135, 0.116435459], [140, 0.138189884], [145, 0.117898612]] + }, { + "name": "hana::tuple", + "data": [[0, 0.408579002], [5, 0.445551044], [10, 0.435828461], [15, 0.446958388], [20, 0.45015161], [25, 0.47306763], [30, 0.503881535], [35, 0.562113002], [40, 0.565427754], [45, 0.583340271], [50, 0.547203217], [55, 0.562125632], [60, 0.570193925], [65, 0.593995176], [70, 0.644429868], [75, 0.695620557], [80, 0.66908835], [85, 0.734770447], [90, 0.673338696], [95, 1.091106148], [100, 0.717655139], [105, 0.782891857], [110, 0.773211545], [115, 0.751199708], [120, 1.078052094], [125, 0.869056209], [130, 0.851383988], [135, 0.925531887], [140, 1.00163889], [145, 0.839852077]] + }, { + "name": "hana::map", + "data": [[0, 0.648747151], [5, 0.617540974], [10, 0.613713156], [15, 0.612066492], [20, 0.61275207], [25, 0.622078491], [30, 0.607576778], [35, 0.604357202], [40, 0.604216152], [45, 0.611787662], [50, 0.6117235], [55, 0.613580487], [60, 0.607764979], [65, 0.614729899], [70, 0.612625128], [75, 0.652863081], [80, 0.637104082], [85, 0.646345583], [90, 0.663335041], [95, 0.618089049], [100, 0.639862294], [105, 0.61966389], [110, 0.654214409], [115, 0.965651602], [120, 0.607388814], [125, 0.615269346], [130, 0.655103827], [135, 0.678391829], [140, 0.641759817], [145, 0.626063912]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.192575247], [5, 3.302953128], [10, 3.79204024], [15, 3.862173071], [20, 3.41326445], [25, 4.738992483], [30, 3.376370659], [35, 3.305524643], [40, 3.354541886], [45, 3.318051645], [50, 3.462971315], [55, 3.427126931], [60, 3.689669174], [65, 3.617335436], [70, 3.511242639], [75, 3.794406342], [80, 3.621012947], [85, 4.831512114], [90, 3.891249796], [95, 5.881963414], [100, 3.97384904], [105, 3.934412553], [110, 3.9041649], [115, 4.443001921], [120, 4.967863191], [125, 4.070409652], [130, 3.92315789], [135, 4.038833486], [140, 3.926424045], [145, 4.173728364]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..2a2803c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.161250825], [5, 0.167491539], [10, 0.167797775], [15, 0.173004055], [20, 0.176885107], [25, 0.2215648], [30, 0.187503347], [35, 0.193778832], [40, 0.19557359], [45, 0.195558643], [50, 0.202524077], [55, 0.209676608], [60, 0.216390604], [65, 0.237824407], [70, 0.218842107], [75, 0.222723641], [80, 0.245097273], [85, 0.254390994], [90, 0.2620292], [95, 0.24203846], [100, 0.26880776], [105, 0.268868872], [110, 0.257844946], [115, 0.260629554], [120, 0.300049609], [125, 0.262869178], [130, 0.272944584], [135, 0.291807736], [140, 0.286655201], [145, 0.290003349]] + }, { + "name": "hana::tuple", + "data": [[0, 0.414157919], [5, 0.496009273], [10, 0.47700544], [15, 0.544357898], [20, 0.609252196], [25, 0.7006037], [30, 1.224294164], [35, 0.922205009], [40, 1.055408851], [45, 1.189745492], [50, 1.335398985], [55, 1.564426042], [60, 1.73470508], [65, 1.953138557], [70, 2.242940784], [75, 2.583883173], [80, 2.665185806], [85, 2.919827217], [90, 3.128183158], [95, 3.293263948], [100, 3.652718434], [105, 4.162674848], [110, 4.393061753], [115, 4.501944463], [120, 4.966310044], [125, 6.482663836], [130, 5.77035428], [135, 5.840319878], [140, 6.487852392], [145, 6.695435713]] + }, { + "name": "hana::map", + "data": [[0, 0.701169027], [5, 0.635840408], [10, 0.682251247], [15, 0.711295014], [20, 0.830351495], [25, 0.814108742], [30, 0.854557496], [35, 0.888658825], [40, 0.922770533], [45, 0.975136389], [50, 1.10682562], [55, 1.07550401], [60, 1.145002732], [65, 1.159771071], [70, 1.231880901], [75, 1.229719398], [80, 1.278850442], [85, 1.360043831], [90, 1.384839072], [95, 1.414656853], [100, 1.461191952], [105, 1.502308437], [110, 1.554155246], [115, 1.586346201], [120, 1.668760099], [125, 1.673943648], [130, 1.760874093], [135, 1.741078435], [140, 1.794477972], [145, 1.864274172]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.115609217], [5, 3.238045168], [10, 3.384552189], [15, 3.455637205], [20, 3.641969993], [25, 3.79983757], [30, 3.930927942], [35, 4.020929992], [40, 4.687397685], [45, 4.598452367], [50, 4.79494824], [55, 5.311719192], [60, 5.707901235], [65, 5.998496099], [70, 6.126856716], [75, 6.460208412], [80, 6.841809767], [85, 7.413838633], [90, 8.00489157], [95, 8.746394992], [100, 9.61973054], [105, 9.508397942], [110, 10.326749346], [115, 11.700582269], [120, 10.357079617], [125, 11.3401629], [130, 12.518296603], [135, 12.254416809], [140, 12.758755719], [145, 13.409501841]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..8f6000f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.137687452], [1, 0.171670227], [2, 0.176123734], [3, 0.244198174], [4, 0.256420649], [5, 0.319303414], [6, 0.448561371], [7, 0.478052198], [8, 0.570658845], [9, 0.709100125], [10, 0.809844824], [11, 0.941126973], [12, 1.192075093], [13, 1.423642024], [14, 1.460107989], [15, 1.785311076], [16, 1.876245252], [17, 2.203259131], [18, 2.298774531], [19, 2.725019189], [20, 3.006599578], [21, 3.134910872], [22, 3.838902987], [23, 4.868528116], [24, 4.616229225], [25, 4.878842161], [26, 4.846250756], [27, 6.58782372], [28, 7.462874412], [29, 6.905754777], [30, 7.237041405]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.bloat.json new file mode 100644 index 0000000..0f8af17 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 18.948], [11, 18.948], [21, 18.948], [31, 18.948], [41, 18.948]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 18.948], [11, 18.948], [21, 18.948], [31, 18.948], [41, 18.948]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.compile.json new file mode 100644 index 0000000..6f152f9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.177796868], [5, 0.235706261], [10, 0.216814977], [15, 0.242748078], [20, 0.249823349], [25, 0.289719348], [30, 0.283705308], [35, 0.296810887], [40, 0.345090934], [45, 0.357085539], [50, 0.359230073], [75, 0.453928415], [100, 0.505817088], [125, 0.661682566], [150, 0.780917803], [175, 0.760780819], [200, 0.860960828], [225, 0.957960332], [250, 1.044076978], [275, 1.193640494], [300, 1.40476317], [325, 1.456455199], [350, 1.44449903], [375, 1.550581592], [400, 1.710303215]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.556972044], [5, 0.637483357], [10, 0.654868192], [15, 0.75774338], [20, 0.76885637], [25, 1.006907093], [30, 1.171915337], [35, 1.232891453], [40, 0.991441251], [45, 1.125358513], [50, 1.299762827]] + }, { + "name": "fusion::list", + "data": [[0, 0.545208349], [5, 0.613057241], [10, 0.75021072], [15, 0.761376658], [20, 1.14654037], [25, 0.838359299], [30, 0.931071107], [35, 0.993985185], [40, 0.991681757], [45, 1.259960279], [50, 1.145659139]] + }, { + "name": "mpl::vector", + "data": [[0, 0.150120903], [5, 0.157466562], [10, 0.208398738], [15, 0.172029844], [20, 0.175928589], [25, 0.166615526], [30, 0.192142547], [35, 0.201195364], [40, 0.215680802], [45, 0.260878301], [50, 0.245107327], [75, 0.302666851], [100, 0.360420899], [125, 0.375946522], [150, 0.485301837], [175, 0.572496404], [200, 0.796061113], [225, 1.022333376], [250, 1.344246686], [275, 1.12946977], [300, 1.16170801], [325, 1.302734649], [350, 1.440984227], [375, 1.387387046], [400, 1.726467452]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.execute.json new file mode 100644 index 0000000..4f5298b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.0], [2, 1.8e-05], [4, 5.1e-05], [6, 8.5e-05], [8, 0.00011], [10, 0.000149], [12, 0.000185], [14, 0.000225], [16, 0.000252], [18, 0.000284], [20, 0.000318], [22, 0.000353], [24, 0.000386], [26, 0.000416], [28, 0.000448], [30, 0.000582], [32, 0.000543], [34, 0.000548], [36, 0.000585], [38, 0.000628], [40, 0.000701], [42, 0.000706], [44, 0.00075], [46, 0.000779], [48, 0.000834], [50, 0.000805]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 0.0], [2, 1.8e-05], [4, 6.8e-05], [6, 8.6e-05], [8, 0.000109], [10, 0.000159], [12, 0.000195], [14, 0.000244], [16, 0.000319], [18, 0.0003], [20, 0.00034], [22, 0.000462], [24, 0.000383], [26, 0.000416], [28, 0.00045], [30, 0.000467], [32, 0.000505], [34, 0.000546], [36, 0.000578], [38, 0.000629], [40, 0.000636], [42, 0.000668], [44, 0.000707], [46, 0.000741], [48, 0.000783], [50, 0.000808]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.difference.compile.json new file mode 100644 index 0000000..6b141de --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.21111147], [5, 0.260825934], [10, 0.389955995], [15, 0.694667778], [20, 0.811646965], [25, 1.438510661], [30, 1.942714682], [35, 2.045828079], [40, 2.377619328], [45, 2.797378734]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.filter.compile.json new file mode 100644 index 0000000..23e5e95 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.237500981], [5, 0.225719016], [10, 0.229166927], [15, 0.280503317], [20, 0.295407948], [25, 0.300219605], [30, 0.313790428], [35, 0.32746219], [40, 0.348818861], [45, 0.367245447], [50, 0.388544564], [75, 0.499814241], [100, 0.675892017], [125, 0.744848827], [150, 0.876176326], [175, 1.010521492], [200, 1.172086925], [225, 1.322551659], [250, 1.49939544], [275, 1.684647478], [300, 1.922615029], [325, 1.976806763], [350, 2.241238157], [375, 2.438355375], [400, 2.600672324]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.600371402], [5, 0.601218581], [10, 0.609234311], [15, 0.617052088], [20, 0.799084486], [25, 0.772051671], [30, 0.951128142], [35, 0.915651865], [40, 1.036962955], [45, 1.724055058], [50, 1.229080104]] + }, { + "name": "fusion::list", + "data": [[0, 0.465302539], [5, 0.60118435], [10, 0.794828533], [15, 0.656617718], [20, 0.740344902], [25, 0.806792953], [30, 0.957948091], [35, 0.954884427], [40, 1.070548073], [45, 1.402930202], [50, 1.320094054]] + }, { + "name": "mpl::vector", + "data": [[0, 0.144575608], [5, 0.159070432], [10, 0.153619924], [15, 0.162323912], [20, 0.182391801], [25, 0.175963296], [30, 0.192930512], [35, 0.191651614], [40, 0.198378693], [45, 0.208265582], [50, 0.223586096], [75, 0.27216846], [100, 0.330963628], [125, 0.387858847], [150, 0.450061845], [175, 0.529111372], [200, 0.635281665], [225, 0.71789512], [250, 0.916624292], [275, 0.996932252], [300, 1.010266596], [325, 1.120665297], [350, 1.29670388], [375, 1.57839393], [400, 1.614075249]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.find_if.compile.json new file mode 100644 index 0000000..96875ec --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.160388051], [5, 0.152067466], [10, 0.155545295], [15, 0.162912471], [20, 0.170444551], [25, 0.175154794], [30, 0.199209122], [35, 0.202738189], [40, 0.201616109], [45, 0.206215397], [50, 0.220148825], [75, 0.28295601], [100, 0.299898605], [125, 0.323588185], [150, 0.374741348], [175, 0.414207099], [200, 0.614476915]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.14805189], [5, 0.167066288], [10, 0.15868207], [15, 0.167712406], [20, 0.16500282], [25, 0.201792691], [30, 0.244301926], [35, 0.235540574], [40, 0.169855334], [45, 0.171731533], [50, 0.180117846], [75, 0.206162536], [100, 0.274901669], [125, 0.315042587], [150, 0.264743934], [175, 0.282519658], [200, 0.316454048]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.474032949], [5, 0.578544752], [10, 0.536373375], [15, 0.56074699], [20, 0.577869122], [25, 0.598155686], [30, 0.605712499], [35, 0.712530062], [40, 0.669387271], [45, 0.692710448]] + }, { + "name": "fusion::list", + "data": [[0, 0.463773919], [5, 0.796754417], [10, 0.631907749], [15, 0.608515133], [20, 0.630727068], [25, 0.666565683], [30, 0.846313836], [35, 0.773834854], [40, 0.95280228], [45, 0.902841123]] + }, { + "name": "mpl::vector", + "data": [[0, 0.159952446], [5, 0.159068953], [10, 0.252037299], [15, 0.162717265], [20, 0.239716904], [25, 0.180708871], [30, 0.208583812], [35, 0.206865538], [40, 0.244230573], [45, 0.237977942], [50, 0.227899355], [75, 0.281696249], [100, 0.396769701], [125, 0.415454938], [150, 0.487758327], [175, 0.598361869], [200, 0.707762509]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..c1c2c8f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949], [60, 18.949], [70, 18.949], [80, 18.949], [90, 18.949], [100, 18.949]] + }, { + "name": "std::vector", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949], [60, 18.949], [70, 18.949], [80, 18.949], [90, 18.949], [100, 18.949]] + }, { + "name": "std::array", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949], [60, 18.949], [70, 18.949], [80, 18.949], [90, 18.949], [100, 18.949]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.compile.json new file mode 100644 index 0000000..9b1056a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.111860661], [5, 0.112970285], [10, 0.118244528], [15, 0.122563368], [20, 0.128467459], [25, 0.134310908], [30, 0.136850557], [35, 0.189017637], [40, 0.199295671], [45, 0.150822774], [50, 0.174594892], [75, 0.18308794], [100, 0.229710056], [125, 0.234716236], [150, 0.326614252], [175, 0.322263141], [200, 0.367175887], [225, 0.365933954], [250, 0.387651218], [275, 0.435673229], [300, 0.45721622], [325, 0.612869711], [350, 0.604936568], [375, 0.624634537], [400, 0.627740132]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.097258897], [5, 0.101396723], [10, 0.131523954], [15, 0.118309345], [20, 0.134564989], [25, 0.129086645], [30, 0.117784756], [35, 0.122331599], [40, 0.13483173], [45, 0.128977585], [50, 0.133879187], [75, 0.165950369], [100, 0.171181351], [125, 0.191789299], [150, 0.253507122], [175, 0.288803074], [200, 0.29171895], [225, 0.329245951], [250, 0.435299677], [275, 0.38328942], [300, 0.389374474], [325, 0.437998476], [350, 0.433117212], [375, 0.461473047], [400, 0.502580074]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.603410103], [5, 0.61751062], [10, 0.587184401], [15, 0.640247059], [20, 0.706086037], [25, 0.681969653], [30, 0.848409986], [35, 0.881302636], [40, 0.981294851], [45, 0.949466874], [50, 0.913477678]] + },{ + "name": "fusion::list", + "data": [[0, 0.507191223], [5, 0.514728207], [10, 0.570143304], [15, 0.755177409], [20, 0.684400986], [25, 0.670574182], [30, 0.845102205], [35, 0.861144132], [40, 1.04659513], [45, 0.873934213], [50, 1.018237414]] + }, { + "name": "mpl::vector", + "data": [[0, 0.137051342], [5, 0.136634941], [10, 0.134281916], [15, 0.161982935], [20, 0.145441923], [25, 0.152889642], [30, 0.161436591], [35, 0.16475377], [40, 0.172343246], [45, 0.191224343], [50, 0.190733148], [75, 0.238553319], [100, 0.279446728], [125, 0.328954747], [150, 0.387166842], [175, 0.488374215], [200, 0.541353579], [225, 0.612383294], [250, 0.929088397], [275, 0.97896883], [300, 0.994489274], [325, 1.35576557], [350, 1.352721218], [375, 1.474079534], [400, 1.360587109]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.execute.json new file mode 100644 index 0000000..3d4bcd1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.00015], [20, 0.00033], [30, 0.000514], [40, 0.000669], [50, 0.000859], [60, 0.000967], [70, 0.001198], [80, 0.001349], [90, 0.001516], [100, 0.001679]] + }, { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000148], [20, 0.00032], [30, 0.000469], [40, 0.00072], [50, 0.000859], [60, 0.001026], [70, 0.001181], [80, 0.001525], [90, 0.001538], [100, 0.001812]] + }, { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000318], [30, 0.000468], [40, 0.000697], [50, 0.000814], [60, 0.001001], [70, 0.001138], [80, 0.0013], [90, 0.001449], [100, 0.001625]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000149], [20, 0.000318], [30, 0.000489], [40, 0.000636], [50, 0.00091]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000171], [20, 0.00033], [30, 0.000509], [40, 0.000808], [50, 0.000806]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..0b5926d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 18.95], [11, 18.95], [21, 18.95], [31, 18.95], [41, 18.95]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 18.95], [11, 18.95], [21, 18.95], [31, 18.95], [41, 18.95]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.compile.json new file mode 100644 index 0000000..c69a02a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.121431419], [5, 0.127672771], [10, 0.131949472], [15, 0.125484036], [20, 0.130795002], [25, 0.137084828], [30, 0.187399207], [35, 0.156111188], [40, 0.15397873], [45, 0.153059548], [50, 0.16328636], [75, 0.293004253], [100, 0.230678895], [125, 0.350460693], [150, 0.273322131], [175, 0.321001554], [200, 0.357544148], [225, 0.429138808], [250, 0.428971167], [275, 0.610105703], [300, 0.603504666], [325, 0.69497985], [350, 0.602630163], [375, 0.756582046], [400, 0.819300054]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.110529325], [5, 0.144471603], [10, 0.134718169], [15, 0.141834573], [20, 0.155901494], [25, 0.160634886], [30, 0.173250328], [35, 0.179291416], [40, 0.165742818], [45, 0.163304393], [50, 0.17654832], [75, 0.186633602], [100, 0.223521551], [125, 0.281052161], [150, 0.294297875], [175, 0.347808907], [200, 0.320855427], [225, 0.43333287], [250, 0.411583821], [275, 0.542217432], [300, 0.542170412], [325, 0.593704508], [350, 0.617038619], [375, 0.686015594], [400, 0.719712738]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.708139307], [5, 0.656605896], [10, 0.78591243], [15, 0.877429795], [20, 0.955355217], [25, 0.893851819], [30, 1.062560966], [35, 0.987088896], [40, 1.191706404], [45, 1.279428054]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.190046622], [5, 0.201280074], [10, 0.216314742], [15, 0.219513137], [20, 0.231836827], [25, 0.220562594], [30, 0.236128561], [35, 0.258996399], [40, 0.265385891], [45, 0.274857245], [50, 0.280309733], [75, 0.356659609], [100, 0.432197131], [125, 0.530953412], [150, 0.570376649], [175, 0.707598172], [200, 0.847304023], [225, 1.055284318], [250, 1.133732412], [275, 1.323372401], [300, 1.395353189], [325, 1.551864418], [350, 1.675471672], [375, 2.140754826], [400, 2.147252485]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.execute.json new file mode 100644 index 0000000..a336155 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 1.3e-05], [3, 5.2e-05], [5, 7.0e-05], [7, 9.5e-05], [9, 0.000127], [11, 0.000165], [13, 0.000206], [15, 0.000247], [17, 0.000308], [19, 0.000306], [21, 0.000347], [23, 0.000372], [25, 0.000402], [27, 0.000438], [29, 0.000464], [31, 0.000503], [33, 0.000591], [35, 0.000595], [37, 0.000831], [39, 0.000681], [41, 0.000661], [43, 0.000725], [45, 0.00074], [47, 0.000766], [49, 0.000805]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 9.0e-06], [3, 4.3e-05], [5, 7.0e-05], [7, 9.6e-05], [9, 0.000127], [11, 0.000165], [13, 0.00022], [15, 0.000239], [17, 0.000276], [19, 0.000302], [21, 0.000348], [23, 0.000369], [25, 0.000405], [27, 0.000446], [29, 0.000503], [31, 0.000503], [33, 0.000602], [35, 0.000601], [37, 0.00072], [39, 0.000625], [41, 0.000654], [43, 0.00069], [45, 0.000751], [47, 0.00078], [49, 0.000791]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.including.compile.json new file mode 100644 index 0000000..712684f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.0253598524 + }, { + "name": "Boost.Hana", + "y": 0.36574935379999995 + } + + + , { + "name": "Boost.MPL", + "y": 1.3541819812 + }, { + "name": "Boost.Fusion", + "y": 1.3634628331999998 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.insert.compile.json new file mode 100644 index 0000000..1a8c58f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.219953397], [5, 0.286858819], [10, 0.248204915], [15, 0.262601754], [20, 0.311000306], [25, 0.294299731], [30, 0.370858142], [35, 0.327593861], [40, 0.380428599], [45, 0.388570192], [50, 0.423541842], [75, 0.572339096], [100, 0.655033286], [125, 1.126842859], [150, 0.923910798], [175, 1.109686668], [200, 1.305084647], [225, 1.468858349], [250, 2.311475173], [275, 1.851909598], [300, 2.135989185], [325, 2.608445626], [350, 2.902642308], [375, 2.920952707], [400, 3.515808014]] + }, { + "name": "hana::map", + "data": [[0, 0.211540415], [5, 0.351844893], [10, 0.428174749], [15, 0.42928335], [20, 0.375761335], [25, 0.412348397], [30, 0.478732468], [35, 0.546083275], [40, 0.572258325], [45, 0.613841138], [50, 0.584472022], [75, 0.78924394], [100, 1.007023381], [125, 1.301760371], [150, 1.438092447], [175, 1.679446437], [200, 1.934467428], [225, 2.216082525], [250, 2.551532312], [275, 2.798446626], [300, 3.50460181], [325, 4.73752938], [350, 3.74157125], [375, 4.091343855], [400, 5.030196404]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.intersection.compile.json new file mode 100644 index 0000000..59b17f6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.21372028], [5, 0.243995045], [10, 0.38198854], [15, 0.359706479], [20, 0.473937886], [25, 0.452088058], [30, 0.688199201], [35, 0.64833853], [40, 0.924226012], [45, 1.030098289]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..2e9966b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.268774984], [5, 0.293435468], [10, 0.476498396], [15, 0.755010091], [20, 1.863138871], [25, 2.179861296], [30, 3.057538527], [35, 3.684420266], [40, 4.777573984], [45, 6.517674735]] + }, { + "name": "hana::set", + "data": [[0, 0.290891705], [5, 0.520883786], [10, 0.771631157], [15, 1.034434955], [20, 1.783781878], [25, 2.53458672], [30, 3.073931523], [35, 3.054227108], [40, 4.817160627], [45, 4.174666181]] + }, { + "name": "hana::map", + "data": [[0, 0.2427554], [5, 0.439010068], [10, 0.723194278], [15, 1.485410257], [20, 1.653499108], [25, 3.504650945], [30, 4.717611574], [35, 5.323519615], [40, 4.507657783], [45, 5.583077522]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_subset.compile.json new file mode 100644 index 0000000..745a2cd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.166402317], [5, 0.320132367], [10, 0.550152784], [15, 0.877975697], [20, 1.308510682], [25, 1.843497282], [30, 2.981022118], [35, 3.314965059], [40, 4.848196172], [45, 5.578343618]] + }, { + "name": "hana::set", + "data": [[0, 0.197226259], [5, 0.441265775], [10, 0.562858848], [15, 0.917879483], [20, 1.230666804], [25, 1.568496827], [30, 2.131208137], [35, 2.779961235], [40, 3.711867603], [45, 4.47592353]] + }, { + "name": "hana::map", + "data": [[0, 0.230416784], [5, 0.369028567], [10, 0.558686721], [15, 0.815492175], [20, 1.123934985], [25, 1.469103653], [30, 1.90702525], [35, 2.409069885], [40, 2.912123282], [45, 3.506939268]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..7848663 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.165820114], [6, 0.212889161], [11, 0.285132466], [16, 0.38050784], [21, 0.568620903], [26, 0.651008105], [31, 0.803950121], [36, 1.005345002], [41, 1.226392183], [46, 1.471623743], [50, 1.745229932], [75, 3.470630651], [100, 6.036640454], [125, 9.606454805]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.make.compile.json new file mode 100644 index 0000000..995cf4c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.make.compile.json @@ -0,0 +1,38 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.110485348], [5, 0.117677006], [10, 0.113179287], [15, 0.11763567], [20, 0.118513171], [25, 0.12265589], [30, 0.124710476], [35, 0.151491106], [40, 0.133764662], [45, 0.134934891], [50, 0.139261585], [75, 0.152218569], [100, 0.171744969], [125, 0.187478812], [150, 0.202647223], [175, 0.221654224], [200, 0.247995477], [225, 0.258520796], [250, 0.322763681], [275, 0.296473926], [300, 0.314354817], [325, 0.329937509], [350, 0.356849786], [375, 0.383923177], [400, 0.414841507]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.063949655], [5, 0.065147474], [10, 0.06980924], [15, 0.068161276], [20, 0.073874712], [25, 0.077186889], [30, 0.087394826], [35, 0.07722783], [40, 0.08702523], [45, 0.098047856], [50, 0.08349679], [75, 0.093572038], [100, 0.102824955], [125, 0.115096148], [150, 0.12345603], [175, 0.132691663], [200, 0.144246979], [225, 0.156935806], [250, 0.179413505], [275, 0.186017417], [300, 0.21612665], [325, 0.207443363], [350, 0.220913987], [375, 0.293960735], [400, 0.251013156]] + }, { + "name": "std::array", + "data": [[0, 0.203379304], [5, 0.221327073], [10, 0.215439133], [15, 0.201867636], [20, 0.20061034], [25, 0.218575501], [30, 0.203762056], [35, 0.206097906], [40, 0.221152812], [45, 0.209438613], [50, 0.219865803], [75, 0.228233857], [100, 0.221321582], [125, 0.199677272], [150, 0.203929023], [175, 0.223827412], [200, 0.245675543], [225, 0.231576853], [250, 0.20660633], [275, 0.233000657], [300, 0.227605959], [325, 0.213650691], [350, 0.221507214], [375, 0.242566123], [400, 0.20562101]] + } + + + + + , { + "name": "fusion::vector", + "data": [[0, 0.518743047], [5, 0.517229258], [10, 0.498384023], [15, 0.536824464], [20, 0.562386583], [25, 0.56868277], [30, 0.597230276], [35, 0.613988584], [40, 0.692411856], [45, 0.713724443], [50, 0.717567193], [75, 1.006157537], [100, 1.461003041]] + }, { + "name": "fusion::list", + "data": [[0, 0.606652515], [5, 0.478881416], [10, 0.499345967], [15, 0.525697719], [20, 0.559632709], [25, 0.562122895], [30, 0.598864621], [35, 0.691792534], [40, 0.767450752], [45, 0.688499962], [50, 0.733163914], [75, 1.060396124], [100, 1.47579556]] + }, { + "name": "mpl::vector", + "data": [[0, 0.098246112], [5, 0.09729728], [10, 0.099257546], [15, 0.102340953], [20, 0.098503897], [25, 0.106436425], [30, 0.153441219], [35, 0.124025054], [40, 0.155172781], [45, 0.126367115], [50, 0.173929899], [75, 0.140660054], [100, 0.163836204], [125, 0.198668364], [150, 0.225455959], [175, 0.234483509], [200, 0.273588354], [225, 0.288595203], [250, 0.316202686], [275, 0.359704459], [300, 0.446596263], [325, 0.574068091], [350, 0.522378364], [375, 0.697091481], [400, 0.570138787]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.map.make.chart.json new file mode 100644 index 0000000..93a593f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.028658156], [5, 0.034771033], [10, 0.026731932], [15, 0.028396941], [20, 0.028800533], [25, 0.032569986], [30, 0.029345986], [35, 0.030375783], [40, 0.028736444], [45, 0.029284719], [50, 0.029239364], [55, 0.030396104], [60, 0.03184364], [65, 0.031248833], [70, 0.031046872], [75, 0.032746621], [80, 0.032952698], [85, 0.033715161], [90, 0.034851716], [95, 0.035069826], [100, 0.035581686], [105, 0.036842166], [110, 0.036262551], [115, 0.046370521], [120, 0.043609021], [125, 0.04239095], [130, 0.044292348], [135, 0.054653951], [140, 0.04729648], [145, 0.04254314]] + }, { + "name": "hana::map", + "data": [[0, 0.210012608], [5, 0.237186182], [10, 0.228886489], [15, 0.246099871], [20, 0.234548302], [25, 0.241688223], [30, 0.254713411], [35, 0.264350601], [40, 0.269893402], [45, 0.304348615], [50, 0.442374411], [55, 0.320216371], [60, 0.351571623], [65, 0.357610416], [70, 0.394813626], [75, 0.342449449], [80, 0.383345721], [85, 0.383609961], [90, 0.412601449], [95, 0.458635757], [100, 0.409143518], [105, 0.419580437], [110, 0.454349365], [115, 0.48631496], [120, 0.519234865], [125, 0.498461546], [130, 0.490102809], [135, 0.519330447], [140, 0.591156099], [145, 0.540956351]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.458881196], [5, 0.480348402], [10, 0.536334645], [15, 0.508044501], [20, 0.531757641], [25, 0.590236689], [30, 0.613567658], [35, 0.71961101], [40, 0.834695124], [45, 0.744831435], [50, 0.727309674], [55, 0.769434938], [60, 0.827383323], [65, 0.981784894], [70, 0.935498567], [75, 1.015249386], [80, 1.266612054], [85, 1.174865023], [90, 1.544632268], [95, 2.205843127], [100, 2.069018006], [105, 1.720642343], [110, 1.762709546], [115, 1.890464616], [120, 2.029901152], [125, 2.310092565], [130, 2.484066539], [135, 3.304734832], [140, 2.682431482], [145, 4.567287331]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.partition.compile.json new file mode 100644 index 0000000..fd07cc3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.196698645], [5, 0.228085005], [10, 0.24853861], [15, 0.277154681], [20, 0.300390868], [25, 0.328578416], [30, 0.396455548], [35, 0.39470093], [40, 0.449950036], [45, 0.425816898], [50, 0.475144744], [75, 0.600014221], [100, 0.776642405], [125, 0.953129939], [150, 1.123142374], [175, 1.323593512], [200, 1.565886567], [225, 1.733237788], [250, 1.963644102], [275, 2.918595151], [300, 2.586258893], [325, 2.910439881], [350, 4.379472182], [375, 3.583190152], [400, 4.05802166]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.16137447], [5, 0.186090657], [10, 0.179897528], [15, 0.217032151], [20, 0.184602262], [25, 0.197454103], [30, 0.20449763], [35, 0.228375978], [40, 0.229568605], [45, 0.246991297], [50, 0.25476511], [75, 0.303904554], [100, 0.556033844], [125, 0.473843957], [150, 0.538188497], [175, 0.613081214], [200, 0.706618244], [225, 0.972399087], [250, 0.99332928], [275, 1.072820056], [300, 1.747517992], [325, 1.444891217], [350, 1.751980694], [375, 1.789780951], [400, 1.84124083]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.compile.json new file mode 100644 index 0000000..3fddf74 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.120847133], [2, 0.121427996], [3, 0.123560335], [4, 0.128645285], [5, 0.122328478], [6, 0.169842635], [7, 0.14973707], [8, 0.119808512], [9, 0.11768108], [10, 0.123704938], [11, 0.119077352], [12, 0.126826887], [13, 0.117986873], [14, 0.119915351], [15, 0.125822396], [16, 0.122369057], [17, 0.117832302], [18, 0.11766838], [19, 0.118991929], [20, 0.12397751], [21, 0.119287935]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.114560214], [5, 0.134493611], [10, 0.150620083], [15, 0.165667597], [20, 0.171592658], [25, 0.193609657], [30, 0.251392272], [35, 0.226158265], [40, 0.224669311], [45, 0.273280924], [50, 0.254408563], [75, 0.348644633], [100, 0.413399059], [125, 0.444748362], [150, 0.499731305], [175, 0.571483161], [200, 0.646232851], [225, 0.778399708], [250, 0.780197488], [275, 0.869658039], [300, 1.050489536], [325, 1.013289337], [350, 1.267297813], [375, 1.263911947], [400, 1.423327931], [425, 1.412495898], [450, 1.687092867], [475, 1.812622936], [500, 1.838789899]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.118985278], [5, 0.118452634], [10, 0.166561015], [15, 0.133251461], [20, 0.145410861], [25, 0.140485725], [30, 0.13679398], [35, 0.13753097], [40, 0.162139089], [45, 0.146938806], [50, 0.160615517], [75, 0.190996987], [100, 0.199882408], [125, 0.207513356], [150, 0.236706149], [175, 0.276936806], [200, 0.2597435], [225, 0.306255346], [250, 0.335019212], [275, 0.393067625], [300, 0.350320505], [325, 0.401043424], [350, 0.419663691], [375, 0.535695534], [400, 0.630190598], [425, 0.58189175], [450, 0.742832786], [475, 0.795838423], [500, 0.749952543]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.execute.json new file mode 100644 index 0000000..00b7dfc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 9.0e-06], [3, 4.1e-05], [5, 9.6e-05], [7, 9.3e-05], [9, 0.000174], [11, 0.000225], [13, 0.000276], [15, 0.000325], [17, 0.000269], [19, 0.000301], [21, 0.000453], [23, 0.000368], [25, 0.000547], [27, 0.000594], [29, 0.000548], [31, 0.000654], [33, 0.000705], [35, 0.000773], [37, 0.000748], [39, 0.000863], [41, 0.000656], [43, 0.000926], [45, 0.000838], [47, 0.001042], [49, 0.001091]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.move.json new file mode 100644 index 0000000..9518fe7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 4.5e-05], [20, 9.6e-05], [30, 0.000104], [40, 0.000195], [50, 0.000256], [60, 0.000301], [70, 0.000368], [80, 0.000425], [90, 0.000392], [100, 0.000368]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 5.3e-05], [20, 0.000114], [30, 0.00018], [40, 0.000239], [50, 0.000331]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.nomove.json new file mode 100644 index 0000000..be80412 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 5.2e-05], [20, 0.000127], [30, 0.000175], [40, 0.000232], [50, 0.000291], [60, 0.000377], [70, 0.001134], [80, 0.001556], [90, 0.002138], [100, 0.002172]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 5.3e-05], [20, 0.000133], [30, 0.000179], [40, 0.000245], [50, 0.00031]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.sort.compile.json new file mode 100644 index 0000000..7a0f73e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.154353558], [5, 0.177723418], [10, 0.21329209], [15, 0.241594055], [20, 0.261538904], [25, 0.259149008], [30, 0.284643133], [35, 0.332027253], [40, 0.370498717], [45, 0.335938264], [50, 0.369915977], [75, 0.492871996], [100, 0.796658267], [125, 0.797247295], [150, 1.124387523], [175, 1.158737498], [200, 1.362585471]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.218806396], [5, 0.25418755], [10, 0.311315758], [15, 0.364887962], [20, 0.488679955], [25, 0.815524574], [30, 0.876454556], [35, 1.358640912], [40, 1.389272836], [45, 1.898164079], [50, 2.571952899], [75, 5.453865518], [100, 12.711251543], [125, 14.114927479], [150, 26.411239284], [175, 30.145569409], [200, 37.004901092]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..1412aae --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.236967973], [5, 0.413978831], [10, 0.475841977], [15, 0.675652048], [20, 0.989607925], [25, 1.309831222], [30, 1.875647699], [35, 2.263569614], [40, 2.823879811], [45, 3.445381161]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.bloat.json new file mode 100644 index 0000000..dc2c365 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949], [60, 18.949], [70, 18.949], [80, 18.949], [90, 18.949], [100, 18.949]] + } + + , { + "name": "std::array", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949], [60, 18.949], [70, 18.949], [80, 18.949], [90, 18.949], [100, 18.949]] + } + + , { + "name": "std::vector", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949], [60, 18.949], [70, 18.949], [80, 18.949], [90, 18.949], [100, 18.949]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.803], [10, 18.949], [20, 18.949], [30, 18.949], [40, 18.949], [50, 18.949]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.compile.json new file mode 100644 index 0000000..f5122fc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.159375371], [5, 0.166656124], [10, 0.13116086], [15, 0.199814846], [20, 0.211250684], [25, 0.207356222], [30, 0.187684793], [35, 0.212966655], [40, 0.233306901], [45, 0.242203184], [50, 0.25300148], [75, 0.309191604], [100, 0.340084129], [125, 0.427548396], [150, 0.424548024], [175, 0.387114651], [200, 0.500656727], [225, 0.533648965], [250, 0.498575153], [275, 0.658141036], [300, 0.783251039], [325, 0.833937157], [350, 0.804063631], [375, 0.820139287], [400, 0.932080457]] + }, { + "name": "hana::types", + "data": [[0, 0.116425035], [5, 0.138712322], [10, 0.118181122], [15, 0.115325433], [20, 0.15606172], [25, 0.117802407], [30, 0.12139837], [35, 0.175033931], [40, 0.133039245], [45, 0.122102472], [50, 0.15768109], [75, 0.160428375], [100, 0.154043901], [125, 0.148328501], [150, 0.150813218], [175, 0.118428702], [200, 0.119005941], [225, 0.121081309], [250, 0.143158517], [275, 0.122665781], [300, 0.186787183], [325, 0.136675174], [350, 0.180560581], [375, 0.160282316], [400, 0.133144952]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.271240621], [5, 0.277293868], [10, 0.244846838], [15, 0.228078763], [20, 0.240038899], [25, 0.303257638], [30, 0.274587485], [35, 0.27997324], [40, 0.33971824], [45, 0.36919799], [50, 0.361239043], [75, 0.407120094], [100, 0.604087571], [125, 0.897576812], [150, 0.738802325], [175, 0.842561947], [200, 0.998373318], [225, 1.22429173], [250, 1.370819547], [275, 1.610474355], [300, 1.841038433], [325, 1.95740208], [350, 2.13281831], [375, 2.667801599], [400, 2.720335839]] + }, { + "name": "fusion::vector", + "data": [[0, 0.645697464], [5, 0.724764554], [10, 0.668000961], [15, 0.823135701], [20, 0.807789658], [25, 1.015331896], [30, 1.248595653], [35, 1.059233778], [40, 1.137927949], [45, 1.173751467], [50, 1.275960438]] + }, { + "name": "fusion::list", + "data": [[0, 0.702082188], [5, 0.71822395], [10, 0.858828156], [15, 1.064693233], [20, 1.137525219], [25, 1.3295156], [30, 1.128410724], [35, 1.356208675], [40, 1.384614231], [45, 1.221079335], [50, 1.369234189]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.execute.json new file mode 100644 index 0000000..1798049 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000329], [30, 0.00057], [40, 0.000657], [50, 0.000814], [60, 0.001072], [70, 0.001184], [80, 0.001452], [90, 0.001467], [100, 0.001638]] + } + + , { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000209], [20, 0.000356], [30, 0.000646], [40, 0.000737], [50, 0.00091], [60, 0.001005], [70, 0.001163], [80, 0.001412], [90, 0.001719], [100, 0.001728]] + } + + , { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000148], [20, 0.000329], [30, 0.000652], [40, 0.00078], [50, 0.001038], [60, 0.001098], [70, 0.001445], [80, 0.001537], [90, 0.001627], [100, 0.001821]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000155], [20, 0.000328], [30, 0.00047], [40, 0.00066], [50, 0.000816]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000155], [20, 0.000326], [30, 0.000479], [40, 0.000664], [50, 0.000805]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.union.compile.json new file mode 100644 index 0000000..47d4bd7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.214788801], [5, 0.244060149], [10, 0.36668768], [15, 0.551052435], [20, 0.803527742], [25, 0.856085845], [30, 1.358082008], [35, 1.690284025], [40, 1.942093221], [45, 2.906161646]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.unpack.compile.json new file mode 100644 index 0000000..7f9def0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.11094028], [2, 0.11425172], [4, 0.113868937], [6, 0.116141084], [8, 0.186661556], [10, 0.120421264], [12, 0.145693221], [14, 0.122771353], [16, 0.129763268], [18, 0.137747715], [20, 0.129581802], [21, 0.130461705], [26, 0.14897697], [31, 0.158195981], [36, 0.144830154], [41, 0.149451566], [46, 0.189430603], [50, 0.163700494], [75, 0.267123855], [100, 0.222930983], [125, 0.277959046], [150, 0.304736325], [175, 0.316940975], [200, 0.357226217], [225, 0.423480444], [250, 0.474940004], [275, 0.529992748], [300, 0.537793932], [325, 0.606414653], [350, 0.693836269], [375, 0.735670024], [400, 0.750080432]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.098061871], [2, 0.099174117], [4, 0.116481875], [6, 0.101988737], [8, 0.112217244], [10, 0.11007487], [12, 0.10790619], [14, 0.110467566], [16, 0.111456092], [18, 0.11420992], [20, 0.114350924], [21, 0.131166976], [26, 0.117688422], [31, 0.143769151], [36, 0.127203894], [41, 0.144368996], [46, 0.15020401], [50, 0.138770815], [75, 0.184647918], [100, 0.189074683], [125, 0.209577436], [150, 0.252221946], [175, 0.267914267], [200, 0.299505246], [225, 0.363083175], [250, 0.38323759], [275, 0.444758089], [300, 0.456151386], [325, 0.523844556], [350, 0.597643581], [375, 0.621761566], [400, 0.849654436]] + }, { + "name": "hana::set", + "data": [[0, 0.200582749], [2, 0.215745201], [4, 0.211442166], [6, 0.214906699], [8, 0.223852629], [10, 0.352876972], [12, 0.216703324], [14, 0.226190438], [16, 0.225916497], [18, 0.236330467], [20, 0.254753267], [21, 0.226653056], [26, 0.235320319], [31, 0.363552429], [36, 0.380146679], [41, 0.277089528], [46, 0.25944201], [50, 0.261045535], [75, 0.305478045], [100, 0.337348913], [125, 0.374376521], [150, 0.697770198], [175, 0.44215053], [200, 0.490977174], [225, 0.607336011], [250, 0.583687625], [275, 0.615466302], [300, 0.738497084], [325, 0.746936533], [350, 0.957593098], [375, 0.878423803], [400, 1.064350836]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.675153746], [2, 0.663663021], [4, 0.696577386], [6, 0.70174455], [8, 0.785659213], [10, 0.748399467], [12, 0.809706358], [14, 0.918355302], [16, 0.963291697]] + }, { + "name": "fusion::list", + "data": [[0, 0.667293552], [2, 0.672658529], [4, 0.656934936], [6, 0.676267155], [8, 0.757288313], [10, 0.804190769], [12, 0.815445693], [14, 0.897759401], [16, 0.870371894]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.bloat.json new file mode 100644 index 0000000..ec300f5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.bloat.json @@ -0,0 +1,36 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.694], [11, 14.694], [21, 14.694], [31, 14.694], [41, 14.694]] + } + + + , { + "name": "std::tuple", + "data": [[1, 14.694], [11, 14.694], [21, 14.694], [31, 14.694], [41, 14.694]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 14.694], [11, 14.694], [21, 14.694], [31, 14.694], [41, 14.694]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.compile.json new file mode 100644 index 0000000..6b5fbd2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.compile.json @@ -0,0 +1,37 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.104504885], [6, 0.105447319], [11, 0.10923967], [16, 0.11265327], [21, 0.115851397], [26, 0.117664762], [31, 0.120542688], [36, 0.12456791], [41, 0.124937406], [46, 0.129464837], [50, 0.131609416], [75, 0.146047916], [100, 0.161120774], [125, 0.175886534], [150, 0.190025351], [175, 0.206944662], [200, 0.225269743], [225, 0.242382885], [250, 0.258977332], [275, 0.278181832], [300, 0.292555498], [325, 0.314378897], [350, 0.332493255], [375, 0.356121561], [400, 0.372914797]] + } + + + , { + "name": "std::tuple", + "data": [[1, 0.082024697], [6, 0.098846198], [11, 0.117470388], [16, 0.140341148], [21, 0.164993869], [26, 0.196799474], [31, 0.231513227], [36, 0.270420337], [41, 0.318837625], [46, 0.370800255], [50, 0.412764551], [75, 0.810781325], [100, 1.470362021]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 0.465597761], [6, 0.464616648], [11, 0.473538305], [16, 0.485234353], [21, 0.490479176], [26, 0.494286386], [31, 0.503916391], [36, 0.509983721], [41, 0.512949073], [46, 0.525630018]] + }, { + "name": "fusion::list", + "data": [[1, 0.454542452], [6, 0.468497685], [11, 0.489612512], [16, 0.494298494], [21, 0.524214683], [26, 0.544127378], [31, 0.56440826], [36, 0.585615836], [41, 0.608325328], [46, 0.630583206]] + }, { + "name": "mpl::vector", + "data": [[1, 0.103593864], [6, 0.103694573], [11, 0.106699826], [16, 0.107771756], [21, 0.109151325], [26, 0.112900957], [31, 0.114981763], [36, 0.118820165], [41, 0.122751977], [46, 0.127011534], [50, 0.129503453], [75, 0.146838904], [100, 0.16450426], [125, 0.18687062], [150, 0.209433694], [175, 0.232677258], [200, 0.261422876], [225, 0.288129087], [250, 0.315839399], [275, 0.348873186], [300, 0.384627651], [325, 0.421706618], [350, 0.461991236], [375, 0.500644575], [400, 0.545676625]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.execute.json new file mode 100644 index 0000000..5634776 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at.execute.json @@ -0,0 +1,29 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 9.0e-06], [6, 8.2e-05], [11, 0.000163], [16, 0.00025], [21, 0.000328], [26, 0.000431], [31, 0.000473], [36, 0.000573], [41, 0.0007], [46, 0.000734]] + } + + + , { + "name": "std::tuple", + "data": [[1, 9.0e-06], [6, 8.3e-05], [11, 0.000163], [16, 0.000266], [21, 0.000325], [26, 0.000404], [31, 0.000475], [36, 0.000577], [41, 0.000658], [46, 0.00074]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 9.0e-06], [6, 8.2e-05], [11, 0.000165], [16, 0.000251], [21, 0.000344], [26, 0.000405], [31, 0.000473], [36, 0.000613], [41, 0.000655], [46, 0.000737]] + }, { + "name": "fusion::list", + "data": [[1, 9.0e-06], [6, 8.4e-05], [11, 0.000172], [16, 0.000252], [21, 0.000325], [26, 0.000404], [31, 0.000474], [36, 0.000573], [41, 0.000697], [46, 0.000734]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..12cc6e6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.110625713], [5, 0.110161557], [10, 0.109889181], [15, 0.109946074], [20, 0.109562828], [25, 0.109283381], [30, 0.110383147], [35, 0.109500504], [40, 0.109564518], [45, 0.109555304], [50, 0.108939573], [55, 0.109351414], [60, 0.108924552], [65, 0.109540724], [70, 0.108374847], [75, 0.109749425], [80, 0.110791737], [85, 0.109813964], [90, 0.109263015], [95, 0.10892198], [100, 0.108882638], [105, 0.110119276], [110, 0.109005974], [115, 0.109681981], [120, 0.109423888], [125, 0.110243983], [130, 0.109142054], [135, 0.109274385], [140, 0.110045613], [145, 0.108578988]] + }, { + "name": "hana::tuple", + "data": [[0, 0.360513668], [5, 0.373321915], [10, 0.390685145], [15, 0.401265227], [20, 0.409576865], [25, 0.42093451], [30, 0.435088274], [35, 0.452619312], [40, 0.464659714], [45, 0.478380651], [50, 0.491030083], [55, 0.499406088], [60, 0.518251356], [65, 0.53007459], [70, 0.546624552], [75, 0.558445182], [80, 0.573283488], [85, 0.587389943], [90, 0.606466858], [95, 0.616960581], [100, 0.630455696], [105, 0.648949418], [110, 0.660086724], [115, 0.6734707], [120, 0.684360706], [125, 0.707262109], [130, 0.709232156], [135, 0.738739306], [140, 0.746820252], [145, 0.764121148]] + }, { + "name": "hana::map", + "data": [[0, 0.559381438], [5, 0.558434592], [10, 0.559672936], [15, 0.554141602], [20, 0.557304213], [25, 0.566730415], [30, 0.562449581], [35, 0.568012567], [40, 0.563150047], [45, 0.566252153], [50, 0.558660706], [55, 0.556787864], [60, 0.557993312], [65, 0.557325847], [70, 0.558600061], [75, 0.552460005], [80, 0.557125377], [85, 0.556362777], [90, 0.558606787], [95, 0.557432871], [100, 0.55443513], [105, 0.553278482], [110, 0.557830383], [115, 0.553155244], [120, 0.560802216], [125, 0.555002551], [130, 0.555440143], [135, 0.556633368], [140, 0.554526019], [145, 0.55676632]] + } + + + , { + "name": "fusion::map", + "data": [[0, 2.891427309], [5, 2.880689105], [10, 2.905998585], [15, 2.924133862], [20, 2.975216711], [25, 2.941324387], [30, 2.977109452], [35, 3.034457025], [40, 2.996056237], [45, 3.112998816], [50, 3.083994841], [55, 3.126543603], [60, 3.098870204], [65, 3.159345435], [70, 3.212994115], [75, 3.224829738], [80, 3.261788674], [85, 3.252542235], [90, 3.347493941], [95, 3.335927532], [100, 3.359432329], [105, 3.316858643], [110, 3.378834762], [115, 3.377647746], [120, 3.49042098], [125, 3.490514189], [130, 3.460217957], [135, 3.486226989], [140, 3.509147128], [145, 3.565000557]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..420890f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.149015952], [5, 0.153563249], [10, 0.157050552], [15, 0.161178533], [20, 0.163570754], [25, 0.168494302], [30, 0.173004544], [35, 0.176520497], [40, 0.17924742], [45, 0.181830751], [50, 0.186810433], [55, 0.188699755], [60, 0.193210474], [65, 0.196613639], [70, 0.201700159], [75, 0.204650206], [80, 0.209276366], [85, 0.21456484], [90, 0.216331452], [95, 0.220691761], [100, 0.225132754], [105, 0.225944495], [110, 0.232481596], [115, 0.236276462], [120, 0.238484835], [125, 0.242359788], [130, 0.246982309], [135, 0.249347115], [140, 0.251946994], [145, 0.257516521]] + }, { + "name": "hana::tuple", + "data": [[0, 0.34981521], [5, 0.383868611], [10, 0.427161819], [15, 0.475486222], [20, 0.541609479], [25, 0.626676314], [30, 0.709990152], [35, 0.820678772], [40, 0.931199918], [45, 1.051447028], [50, 1.179819315], [55, 1.340742983], [60, 1.490499813], [65, 1.662421565], [70, 1.879206707], [75, 2.072237443], [80, 2.257331318], [85, 2.478875285], [90, 2.714960226], [95, 2.963197529], [100, 3.220624853], [105, 3.494876207], [110, 3.858874563], [115, 4.685443965], [120, 4.456207252], [125, 4.78875892], [130, 5.73788951], [135, 7.177826674], [140, 6.892327815], [145, 9.361733412]] + }, { + "name": "hana::map", + "data": [[0, 0.623358078], [5, 0.660545168], [10, 0.724600015], [15, 0.762255135], [20, 0.818857082], [25, 0.854499634], [30, 0.877332512], [35, 0.927080832], [40, 0.996453348], [45, 1.274938501], [50, 1.062237533], [55, 1.092132646], [60, 1.144516239], [65, 1.344632185], [70, 1.226152344], [75, 1.423613306], [80, 1.327459715], [85, 1.507074341], [90, 1.643763517], [95, 2.197393864], [100, 1.502532328], [105, 1.573870502], [110, 2.384573832], [115, 1.593003097], [120, 1.880509641], [125, 2.403461806], [130, 1.914862579], [135, 2.109501731], [140, 2.139404631], [145, 1.809476605]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.054465222], [5, 3.188565651], [10, 3.244654435], [15, 3.36337077], [20, 3.529186265], [25, 3.61947928], [30, 3.933024013], [35, 4.158382477], [40, 4.38484757], [45, 4.528035294], [50, 4.858220254], [55, 5.072147704], [60, 5.169570937], [65, 5.360168993], [70, 5.665982982], [75, 6.021416939], [80, 6.29900056], [85, 6.757515636], [90, 6.958745323], [95, 7.348116399], [100, 7.923284021], [105, 8.157852564], [110, 8.524845537], [115, 9.450234693], [120, 9.920758644], [125, 10.017575547], [130, 10.684050822], [135, 11.19915877], [140, 11.687254203], [145, 12.304039372]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..a9e970b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.130776994], [1, 0.153567614], [2, 0.166784696], [3, 0.197175349], [4, 0.236997521], [5, 0.288362365], [6, 0.348599229], [7, 0.418500752], [8, 0.507762021], [9, 0.599526084], [10, 0.711381202], [11, 0.826815164], [12, 0.95362967], [13, 1.088820559], [14, 1.251841165], [15, 1.420429221], [16, 1.584581598], [17, 1.773791581], [18, 1.992833297], [19, 2.247531961], [20, 2.448078746], [21, 2.687067541], [22, 2.94889764], [23, 3.195700182], [24, 3.510430951], [25, 3.734744135], [26, 4.035078909], [27, 4.448226838], [28, 4.741869709], [29, 5.139187787], [30, 5.494753442]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.bloat.json new file mode 100644 index 0000000..cec51ff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.7], [11, 14.7], [21, 14.7], [31, 14.7], [41, 14.7]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 14.7], [11, 14.7], [21, 14.7], [31, 14.7], [41, 14.7]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.compile.json new file mode 100644 index 0000000..86bd9eb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.163322678], [5, 0.190873805], [10, 0.203333008], [15, 0.217744152], [20, 0.234643885], [25, 0.246830974], [30, 0.26201758], [35, 0.2736145], [40, 0.289475781], [45, 0.304307937], [50, 0.319935197], [75, 0.390686053], [100, 0.467335293], [125, 0.549574169], [150, 0.622943223], [175, 0.707847162], [200, 0.793586023], [225, 0.885324165], [250, 0.969116564], [275, 1.049546708], [300, 1.154716035], [325, 1.247138496], [350, 1.373038135], [375, 1.462286845], [400, 1.560552101]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.538125979], [5, 0.596767938], [10, 0.63559904], [15, 0.676734006], [20, 0.762347598], [25, 0.778921625], [30, 0.825967926], [35, 0.875811326], [40, 0.995900492], [45, 1.009937738], [50, 1.030989688]] + }, { + "name": "fusion::list", + "data": [[0, 0.536618735], [5, 0.66122818], [10, 0.644019899], [15, 0.693231034], [20, 0.736226908], [25, 0.78252126], [30, 0.84430553], [35, 0.944418259], [40, 1.004518708], [45, 1.008777756], [50, 1.112816123]] + }, { + "name": "mpl::vector", + "data": [[0, 0.127904727], [5, 0.130347056], [10, 0.138898161], [15, 0.141414421], [20, 0.146032862], [25, 0.153576569], [30, 0.160436654], [35, 0.175237922], [40, 0.177553465], [45, 0.185470639], [50, 0.194376512], [75, 0.245721825], [100, 0.302288069], [125, 0.355418829], [150, 0.425556319], [175, 0.494554554], [200, 0.575817948], [225, 0.869457565], [250, 0.800079878], [275, 0.859347064], [300, 0.973978049], [325, 1.147766022], [350, 1.220830762], [375, 1.329781856], [400, 1.528748129]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.execute.json new file mode 100644 index 0000000..eee4793 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.0], [2, 1.8e-05], [4, 5.1e-05], [6, 8.4e-05], [8, 0.000108], [10, 0.000153], [12, 0.000184], [14, 0.000218], [16, 0.00025], [18, 0.000284], [20, 0.000309], [22, 0.000341], [24, 0.000385], [26, 0.000406], [28, 0.000465], [30, 0.000476], [32, 0.00051], [34, 0.000543], [36, 0.000612], [38, 0.000605], [40, 0.000637], [42, 0.00067], [44, 0.000748], [46, 0.000735], [48, 0.000819], [50, 0.000801]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 0.0], [2, 1.8e-05], [4, 5.2e-05], [6, 8.2e-05], [8, 0.000109], [10, 0.000152], [12, 0.000179], [14, 0.000218], [16, 0.00025], [18, 0.000297], [20, 0.000308], [22, 0.000342], [24, 0.000366], [26, 0.000404], [28, 0.000437], [30, 0.000505], [32, 0.000507], [34, 0.000541], [36, 0.000577], [38, 0.00061], [40, 0.00064], [42, 0.000673], [44, 0.000705], [46, 0.00074], [48, 0.000817], [50, 0.0008]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.difference.compile.json new file mode 100644 index 0000000..4136822 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.181206029], [5, 0.249608821], [10, 0.358631102], [15, 0.505121801], [20, 0.725980587], [25, 0.981610365], [30, 1.323898419], [35, 1.68266047], [40, 2.193241972], [45, 2.691113886]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.filter.compile.json new file mode 100644 index 0000000..49786bf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.17200397], [5, 0.204117094], [10, 0.224172826], [15, 0.241448788], [20, 0.259718141], [25, 0.277783023], [30, 0.295396416], [35, 0.311535869], [40, 0.33136546], [45, 0.355715934], [50, 0.376245471], [75, 0.477800903], [100, 0.594183843], [125, 0.70623656], [150, 0.832999505], [175, 0.96643584], [200, 1.111526868], [225, 1.253432695], [250, 1.408086216], [275, 1.549254451], [300, 1.719545306], [325, 1.904100001], [350, 2.077578506], [375, 2.267433001], [400, 2.502072992]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.476354975], [5, 0.513246278], [10, 0.572259278], [15, 0.624839908], [20, 0.692795881], [25, 0.748507278], [30, 0.823978889], [35, 0.901364931], [40, 0.988585626], [45, 1.068858585], [50, 1.166440234]] + }, { + "name": "fusion::list", + "data": [[0, 0.471814213], [5, 0.51646032], [10, 0.575882176], [15, 0.634576804], [20, 0.702475904], [25, 0.761768251], [30, 0.825817308], [35, 0.8966281], [40, 0.972541634], [45, 1.037855117], [50, 1.122341347]] + }, { + "name": "mpl::vector", + "data": [[0, 0.136808773], [5, 0.141643488], [10, 0.147284009], [15, 0.152317661], [20, 0.158924211], [25, 0.165098006], [30, 0.173786986], [35, 0.181248693], [40, 0.190597455], [45, 0.197463971], [50, 0.205979629], [75, 0.253848252], [100, 0.307884533], [125, 0.370982673], [150, 0.442963882], [175, 0.514219192], [200, 0.597506242], [225, 0.689442537], [250, 0.780883053], [275, 0.886497506], [300, 0.997418748], [325, 1.115369014], [350, 1.255463148], [375, 1.382028634], [400, 1.54484902]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.find_if.compile.json new file mode 100644 index 0000000..995e0cf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.134537778], [5, 0.142363754], [10, 0.147009707], [15, 0.153775831], [20, 0.161020896], [25, 0.170050987], [30, 0.171876533], [35, 0.180053647], [40, 0.184568292], [45, 0.193503038], [50, 0.197096747], [75, 0.232824767], [100, 0.269893538], [125, 0.307953227], [150, 0.350901199], [175, 0.389224923], [200, 0.440084363]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.130608418], [5, 0.141659011], [10, 0.146131663], [15, 0.146507328], [20, 0.148373604], [25, 0.151162744], [30, 0.154597271], [35, 0.1570435], [40, 0.158628834], [45, 0.161148054], [50, 0.163200336], [75, 0.176038592], [100, 0.189318763], [125, 0.204455625], [150, 0.221729959], [175, 0.237645221], [200, 0.253865497]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.47476772], [5, 0.484027719], [10, 0.503808802], [15, 0.528537925], [20, 0.553868019], [25, 0.575507211], [30, 0.594373009], [35, 0.614990616], [40, 0.634413995], [45, 0.661081043]] + }, { + "name": "fusion::list", + "data": [[0, 0.481058848], [5, 0.493100389], [10, 0.529488153], [15, 0.57493735], [20, 0.610064897], [25, 0.657633922], [30, 0.692270106], [35, 0.742619636], [40, 0.801778196], [45, 0.84722835]] + }, { + "name": "mpl::vector", + "data": [[0, 0.135433016], [5, 0.142309494], [10, 0.147317361], [15, 0.154068501], [20, 0.161500339], [25, 0.169147423], [30, 0.179520567], [35, 0.1866498], [40, 0.195718072], [45, 0.205780322], [50, 0.215503227], [75, 0.267235666], [100, 0.329572749], [125, 0.395641874], [150, 0.469106663], [175, 0.548712571], [200, 0.645718583]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..2a0d2b5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + }, { + "name": "std::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.778], [100, 14.701]] + }, { + "name": "std::array", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.compile.json new file mode 100644 index 0000000..96c0e00 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.102142836], [5, 0.10895826], [10, 0.113454503], [15, 0.118379105], [20, 0.122574175], [25, 0.127563703], [30, 0.13505224], [35, 0.136610806], [40, 0.141235408], [45, 0.143765436], [50, 0.149882087], [75, 0.17181269], [100, 0.195505201], [125, 0.220085004], [150, 0.249040871], [175, 0.272450389], [200, 0.303565592], [225, 0.331157544], [250, 0.361759558], [275, 0.393539019], [300, 0.424028834], [325, 0.459076834], [350, 0.492812669], [375, 0.523363043], [400, 0.565821252]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.09441969], [5, 0.097185657], [10, 0.099182342], [15, 0.102561888], [20, 0.106431038], [25, 0.109729438], [30, 0.113358002], [35, 0.116798924], [40, 0.11940588], [45, 0.122403172], [50, 0.125973812], [75, 0.142774513], [100, 0.16270467], [125, 0.181776462], [150, 0.20115763], [175, 0.220082073], [200, 0.244530398], [225, 0.267004969], [250, 0.289590821], [275, 0.314385014], [300, 0.341244665], [325, 0.366831], [350, 0.39165483], [375, 0.418178382], [400, 0.452782517]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.463077758], [5, 0.483817582], [10, 0.510320571], [15, 0.534385627], [20, 0.56902106], [25, 0.593653898], [30, 0.615663185], [35, 0.649601267], [40, 0.681030267], [45, 0.711186108], [50, 0.748977796]] + },{ + "name": "fusion::list", + "data": [[0, 0.4507619], [5, 0.481207006], [10, 0.509376866], [15, 0.544068607], [20, 0.578475234], [25, 0.610879685], [30, 0.639076693], [35, 0.675309916], [40, 0.715035998], [45, 0.748027814], [50, 0.786439524]] + }, { + "name": "mpl::vector", + "data": [[0, 0.118314211], [5, 0.122597401], [10, 0.126186452], [15, 0.130448752], [20, 0.133914283], [25, 0.139907207], [30, 0.146599336], [35, 0.152675182], [40, 0.159489787], [45, 0.166040824], [50, 0.174925298], [75, 0.213771883], [100, 0.259485992], [125, 0.313236476], [150, 0.372678912], [175, 0.437400695], [200, 0.510564574], [225, 0.585398652], [250, 0.680347449], [275, 0.777011048], [300, 0.874462938], [325, 0.978833178], [350, 1.09150638], [375, 1.220972942], [400, 1.335606147]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.execute.json new file mode 100644 index 0000000..482242c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000148], [20, 0.000309], [30, 0.000477], [40, 0.00064], [50, 0.000801], [60, 0.001027], [70, 0.001178], [80, 0.001292], [90, 0.001468], [100, 0.001619]] + }, { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000149], [20, 0.000308], [30, 0.000505], [40, 0.000639], [50, 0.000799], [60, 0.001027], [70, 0.001114], [80, 0.001371], [90, 0.001513], [100, 0.001605]] + }, { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000147], [20, 0.000343], [30, 0.000505], [40, 0.000641], [50, 0.000799], [60, 0.001026], [70, 0.001118], [80, 0.001282], [90, 0.001545], [100, 0.001613]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000148], [20, 0.00031], [30, 0.000475], [40, 0.000637], [50, 0.000802]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000149], [20, 0.00031], [30, 0.000476], [40, 0.000639], [50, 0.0008]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..19da731 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.702], [11, 14.702], [21, 14.702], [31, 14.702], [41, 14.702]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 14.702], [11, 14.702], [21, 14.702], [31, 14.702], [41, 14.702]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.compile.json new file mode 100644 index 0000000..8e24e40 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.106718945], [5, 0.113342484], [10, 0.117706265], [15, 0.120937434], [20, 0.126994152], [25, 0.13090556], [30, 0.13436816], [35, 0.139372387], [40, 0.143606782], [45, 0.147865695], [50, 0.154127049], [75, 0.173509304], [100, 0.200038938], [125, 0.223753725], [150, 0.249035566], [175, 0.273635207], [200, 0.30627949], [225, 0.332406211], [250, 0.35945394], [275, 0.397505272], [300, 0.420447182], [325, 0.448042849], [350, 0.48326427], [375, 0.528723625], [400, 0.552917841]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.097298303], [5, 0.100192623], [10, 0.103622449], [15, 0.10628248], [20, 0.108210612], [25, 0.113274391], [30, 0.115284577], [35, 0.119140921], [40, 0.121878681], [45, 0.126407067], [50, 0.128659369], [75, 0.145859825], [100, 0.164913774], [125, 0.18348295], [150, 0.202291715], [175, 0.223391815], [200, 0.245124542], [225, 0.268200906], [250, 0.29496738], [275, 0.316360989], [300, 0.341865103], [325, 0.366926018], [350, 0.395013305], [375, 0.42097343], [400, 0.452848549]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.457481275], [5, 0.483640674], [10, 0.513911758], [15, 0.536007711], [20, 0.561885496], [25, 0.589954539], [30, 0.618377712], [35, 0.640254486], [40, 0.672849483], [45, 0.70801135]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.118991636], [5, 0.123764914], [10, 0.12826735], [15, 0.132391561], [20, 0.140453356], [25, 0.144103472], [30, 0.150033043], [35, 0.15761109], [40, 0.166981827], [45, 0.174770323], [50, 0.179215289], [75, 0.222227239], [100, 0.27132046], [125, 0.328481282], [150, 0.388338115], [175, 0.462076579], [200, 0.533932905], [225, 0.644977577], [250, 0.71207125], [275, 0.8098826], [300, 0.908499968], [325, 1.032037883], [350, 1.13900532], [375, 1.314809116], [400, 2.185448161]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.execute.json new file mode 100644 index 0000000..455ea2c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 9.0e-06], [3, 4.1e-05], [5, 6.7e-05], [7, 0.000113], [9, 0.000125], [11, 0.000164], [13, 0.000203], [15, 0.000235], [17, 0.000262], [19, 0.000307], [21, 0.000325], [23, 0.000351], [25, 0.000384], [27, 0.000429], [29, 0.000465], [31, 0.000474], [33, 0.000528], [35, 0.000559], [37, 0.000628], [39, 0.000622], [41, 0.000698], [43, 0.000686], [45, 0.000718], [47, 0.000751], [49, 0.000783]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 9.0e-06], [3, 4.1e-05], [5, 6.6e-05], [7, 9.2e-05], [9, 0.000126], [11, 0.000163], [13, 0.000203], [15, 0.000234], [17, 0.00026], [19, 0.000299], [21, 0.000342], [23, 0.000351], [25, 0.000401], [27, 0.000448], [29, 0.000488], [31, 0.000473], [33, 0.000524], [35, 0.00056], [37, 0.000589], [39, 0.000621], [41, 0.000654], [43, 0.000685], [45, 0.000765], [47, 0.000802], [49, 0.000787]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.including.compile.json new file mode 100644 index 0000000..bcef6c2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.0128082166 + }, { + "name": "Boost.Hana", + "y": 0.3216356694 + } + + + , { + "name": "Boost.MPL", + "y": 1.2122062493999999 + }, { + "name": "Boost.Fusion", + "y": 1.2893831828000002 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.insert.compile.json new file mode 100644 index 0000000..0c29713 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.189100089], [5, 0.212225218], [10, 0.230035759], [15, 0.243730082], [20, 0.262879166], [25, 0.275755528], [30, 0.295530726], [35, 0.310895028], [40, 0.331159626], [45, 0.350923751], [50, 0.369048122], [75, 0.473586227], [100, 0.594530221], [125, 0.727627091], [150, 0.873974442], [175, 1.020076014], [200, 1.207837532], [225, 1.389490115], [250, 1.571250098], [275, 1.797603563], [300, 2.002703399], [325, 2.241127514], [350, 2.488719301], [375, 2.763031122], [400, 3.102316717]] + }, { + "name": "hana::map", + "data": [[0, 0.20054323], [5, 0.230763495], [10, 0.265088959], [15, 0.295977982], [20, 0.327229072], [25, 0.361918518], [30, 0.392399469], [35, 0.429015927], [40, 0.459473741], [45, 0.497717355], [50, 0.524565201], [75, 0.707950794], [100, 0.889197518], [125, 1.098680126], [150, 1.321403719], [175, 1.52523641], [200, 1.762605191], [225, 1.980811817], [250, 2.260420548], [275, 2.488660631], [300, 2.826745853], [325, 3.072572941], [350, 3.373764919], [375, 3.65402834], [400, 4.004656395]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.intersection.compile.json new file mode 100644 index 0000000..37ee088 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.189721846], [5, 0.223348318], [10, 0.258861842], [15, 0.299256423], [20, 0.350303592], [25, 0.411337825], [30, 0.488382277], [35, 0.563959956], [40, 0.663223709], [45, 0.768947303]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..3981e61 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.15122762], [5, 0.250913135], [10, 0.423968189], [15, 0.68025528], [20, 1.020323145], [25, 1.466290972], [30, 1.985965152], [35, 2.615484632], [40, 3.349137855], [45, 4.164815729]] + }, { + "name": "hana::set", + "data": [[0, 0.191505435], [5, 0.280816073], [10, 0.427756165], [15, 0.646093608], [20, 0.932775343], [25, 1.306086858], [30, 1.746793868], [35, 2.297348606], [40, 2.935648488], [45, 3.63675976]] + }, { + "name": "hana::map", + "data": [[0, 0.20097763], [5, 0.363651738], [10, 0.601758885], [15, 0.928155224], [20, 1.32988201], [25, 1.839265584], [30, 2.453935546], [35, 3.140671533], [40, 3.910263204], [45, 4.980314237]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_subset.compile.json new file mode 100644 index 0000000..e3f1f1f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.154230199], [5, 0.281253319], [10, 0.480533586], [15, 0.768509372], [20, 1.157410929], [25, 1.667197668], [30, 2.228828557], [35, 4.274307985], [40, 3.745651506], [45, 4.625633818]] + }, { + "name": "hana::set", + "data": [[0, 0.217902097], [5, 0.27273404], [10, 0.434312195], [15, 0.718853846], [20, 1.233025916], [25, 1.754665353], [30, 2.923274038], [35, 2.702423338], [40, 3.52402184], [45, 4.256892069]] + }, { + "name": "hana::map", + "data": [[0, 0.222211167], [5, 0.35320951], [10, 0.763388302], [15, 0.746986002], [20, 1.110565032], [25, 1.350838383], [30, 2.080668683], [35, 3.153805898], [40, 3.695669753], [45, 3.791607026]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..45ad9fd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.160866486], [6, 0.202088481], [11, 0.274064307], [16, 0.349902537], [21, 0.465257279], [26, 0.587047354], [31, 0.749212339], [36, 0.928279202], [41, 1.137686538], [46, 1.371294192], [50, 1.572540245], [75, 3.278761359], [100, 5.671230173], [125, 8.889950145]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.make.compile.json new file mode 100644 index 0000000..5db1eaf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.10202302], [5, 0.106290162], [10, 0.108890267], [15, 0.112436359], [20, 0.113734129], [25, 0.116003884], [30, 0.119739272], [35, 0.122460793], [40, 0.124671152], [45, 0.127299631], [50, 0.130326023], [75, 0.144056662], [100, 0.158935741], [125, 0.174146985], [150, 0.192499368], [175, 0.205132231], [200, 0.223269291], [225, 0.23806153], [250, 0.256393261], [275, 0.273075244], [300, 0.291072403], [325, 0.307114003], [350, 0.326562553], [375, 0.345602838], [400, 0.368162822]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.06047805], [5, 0.06236124], [10, 0.064873418], [15, 0.065567967], [20, 0.066653678], [25, 0.068055721], [30, 0.069542573], [35, 0.070946866], [40, 0.073208986], [45, 0.074835868], [50, 0.07689415], [75, 0.085556044], [100, 0.094878481], [125, 0.103905071], [150, 0.113809161], [175, 0.123185902], [200, 0.134328797], [225, 0.14426989], [250, 0.154754133], [275, 0.166896062], [300, 0.178721263], [325, 0.190580846], [350, 0.20617734], [375, 0.21831684], [400, 0.233020967]] + }, { + "name": "std::array", + "data": [[0, 0.201376419], [5, 0.201381121], [10, 0.198592034], [15, 0.202930182], [20, 0.199830462], [25, 0.203313239], [30, 0.200677683], [35, 0.201266002], [40, 0.201937807], [45, 0.201744133], [50, 0.200124781], [75, 0.200677768], [100, 0.202752555], [125, 0.199748807], [150, 0.201538661], [175, 0.201027761], [200, 0.202524682], [225, 0.201908157], [250, 0.200971081], [275, 0.202297014], [300, 0.202970369], [325, 0.203048143], [350, 0.200487909], [375, 0.200798961], [400, 0.201307733]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.074167662], [5, 0.096668441], [10, 0.112993964], [15, 0.133256289], [20, 0.156942656], [25, 0.18868528], [30, 0.220895763], [35, 0.262243265], [40, 0.306989494], [45, 0.358028961], [50, 0.412979244], [75, 0.810821022], [100, 1.456560904]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.449944913], [5, 0.462019857], [10, 0.4668025], [15, 0.488537536], [20, 0.515313088], [25, 0.538501501], [30, 0.558894168], [35, 0.586045071], [40, 0.616841485], [45, 0.63909788], [50, 0.669596416], [75, 0.839326095], [100, 1.064824048]] + }, { + "name": "fusion::list", + "data": [[0, 0.444487972], [5, 0.456990556], [10, 0.471676208], [15, 0.492082103], [20, 0.517888437], [25, 0.539797897], [30, 0.559473702], [35, 0.595664725], [40, 0.617640468], [45, 0.646037889], [50, 0.670118528], [75, 0.843552462], [100, 1.048861104]] + }, { + "name": "mpl::vector", + "data": [[0, 0.087360764], [5, 0.086781271], [10, 0.087925418], [15, 0.087277123], [20, 0.087384224], [25, 0.096214333], [30, 0.099243661], [35, 0.102935688], [40, 0.105665825], [45, 0.108680976], [50, 0.111532872], [75, 0.129396724], [100, 0.147485044], [125, 0.168989822], [150, 0.190245748], [175, 0.214209517], [200, 0.239272367], [225, 0.266197627], [250, 0.296276113], [275, 0.328370286], [300, 0.365878682], [325, 0.398126851], [350, 0.441171949], [375, 0.483757003], [400, 0.525011542]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.map.make.chart.json new file mode 100644 index 0000000..4802359 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.020739209], [5, 0.021744849], [10, 0.021960996], [15, 0.021973734], [20, 0.022528169], [25, 0.022424878], [30, 0.022743938], [35, 0.023543362], [40, 0.023374895], [45, 0.024228213], [50, 0.024121635], [55, 0.024701431], [60, 0.025078083], [65, 0.025432259], [70, 0.025687369], [75, 0.026161087], [80, 0.026789043], [85, 0.027279313], [90, 0.027996965], [95, 0.028484053], [100, 0.028854564], [105, 0.029660558], [110, 0.030255505], [115, 0.0310412], [120, 0.031752958], [125, 0.033603449], [130, 0.034025078], [135, 0.035327744], [140, 0.03493196], [145, 0.035447163]] + }, { + "name": "hana::map", + "data": [[0, 0.18677698], [5, 0.196564307], [10, 0.204785952], [15, 0.211763132], [20, 0.218240875], [25, 0.22801117], [30, 0.235821139], [35, 0.244589955], [40, 0.25466703], [45, 0.264943926], [50, 0.274170406], [55, 0.282789009], [60, 0.293702586], [65, 0.303191838], [70, 0.312094698], [75, 0.329347293], [80, 0.331051131], [85, 0.343435014], [90, 0.349708461], [95, 0.362701262], [100, 0.374675148], [105, 0.386579066], [110, 0.399142126], [115, 0.408973279], [120, 0.42670499], [125, 0.434367217], [130, 0.449110571], [135, 0.45800276], [140, 0.47138478], [145, 0.484233594]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.455121201], [5, 0.465845399], [10, 0.485717434], [15, 0.497281184], [20, 0.515106432], [25, 0.52895247], [30, 0.556161602], [35, 0.582110725], [40, 0.614864589], [45, 0.643538189], [50, 0.687252591], [55, 0.724621815], [60, 0.759850157], [65, 0.812099539], [70, 0.871071803], [75, 0.935969046], [80, 0.994385], [85, 1.075828824], [90, 1.132898816], [95, 1.216414577], [100, 1.312540899], [105, 1.418452556], [110, 1.54901674], [115, 1.666615286], [120, 1.81289013], [125, 1.891135778], [130, 1.986255626], [135, 2.211041116], [140, 2.342221471], [145, 2.494328193]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.partition.compile.json new file mode 100644 index 0000000..c2f2762 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.169754903], [5, 0.207255393], [10, 0.230624981], [15, 0.254811976], [20, 0.276504174], [25, 0.299929327], [30, 0.322868607], [35, 0.346606759], [40, 0.371114845], [45, 0.396890055], [50, 0.424932492], [75, 0.560398602], [100, 0.712063176], [125, 0.873269272], [150, 1.03392709], [175, 1.21457027], [200, 1.405530749], [225, 1.616446176], [250, 1.827068881], [275, 2.075107318], [300, 2.300726778], [325, 2.557921143], [350, 2.786362895], [375, 3.078871797], [400, 3.402358297]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.145028391], [5, 0.149859822], [10, 0.157243468], [15, 0.16317845], [20, 0.169512565], [25, 0.180163856], [30, 0.188444418], [35, 0.198508872], [40, 0.206910869], [45, 0.217183178], [50, 0.225325538], [75, 0.282551997], [100, 0.344101342], [125, 0.413891328], [150, 0.488394728], [175, 0.567001595], [200, 0.65996773], [225, 0.76168088], [250, 0.872585098], [275, 0.98350046], [300, 1.105128886], [325, 1.228970065], [350, 1.37413042], [375, 1.531938943], [400, 1.687586149]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.compile.json new file mode 100644 index 0000000..f352906 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.114516759], [2, 0.114323766], [3, 0.114829439], [4, 0.113756026], [5, 0.114814764], [6, 0.11340308], [7, 0.114151616], [8, 0.11386273], [9, 0.11384364], [10, 0.113882387], [11, 0.114413089], [12, 0.116857664], [13, 0.114979948], [14, 0.114201963], [15, 0.11393688], [16, 0.112883796], [17, 0.114087616], [18, 0.114262877], [19, 0.122159922], [20, 0.113410799], [21, 0.114623384]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.109893325], [5, 0.123737163], [10, 0.136592749], [15, 0.149748343], [20, 0.160800667], [25, 0.173538705], [30, 0.211922121], [35, 0.19973549], [40, 0.226994559], [45, 0.222950341], [50, 0.240593621], [75, 0.299273776], [100, 0.353491634], [125, 0.417580038], [150, 0.470733771], [175, 0.549078796], [200, 0.599933874], [225, 0.673132623], [250, 0.740739332], [275, 0.832760807], [300, 1.015338986], [325, 0.938945196], [350, 1.024728287], [375, 1.109301094], [400, 1.204099227], [425, 1.276964448], [450, 1.360409851], [475, 1.436368036], [500, 1.536233036]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.104986035], [5, 0.110904298], [10, 0.11619409], [15, 0.118306963], [20, 0.121997716], [25, 0.124857311], [30, 0.127126062], [35, 0.131000282], [40, 0.133555139], [45, 0.136448549], [50, 0.140556112], [75, 0.15437244], [100, 0.171181258], [125, 0.187741696], [150, 0.206209598], [175, 0.222955988], [200, 0.240367395], [225, 0.257683358], [250, 0.281028478], [275, 0.295310454], [300, 0.317693425], [325, 0.343535755], [350, 0.359721565], [375, 0.379790815], [400, 0.405838712], [425, 0.426482809], [450, 0.44808395], [475, 0.471883737], [500, 0.492979969]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.execute.json new file mode 100644 index 0000000..36af988 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 9.0e-06], [3, 4.1e-05], [5, 6.7e-05], [7, 9.2e-05], [9, 0.000125], [11, 0.000165], [13, 0.000203], [15, 0.000248], [17, 0.000261], [19, 0.000317], [21, 0.000325], [23, 0.000351], [25, 0.000381], [27, 0.00042], [29, 0.000476], [31, 0.000474], [33, 0.000523], [35, 0.000558], [37, 0.00059], [39, 0.000624], [41, 0.000699], [43, 0.000731], [45, 0.000743], [47, 0.000803], [49, 0.000784]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.move.json new file mode 100644 index 0000000..01d2aee --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 4.7e-05], [20, 0.000102], [30, 0.000152], [40, 0.00021], [50, 0.000262], [60, 0.000309], [70, 0.000363], [80, 0.000413], [90, 0.000475], [100, 0.000522]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.0e-05], [20, 0.000187], [30, 0.000284], [40, 0.000376], [50, 0.000481]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.nomove.json new file mode 100644 index 0000000..2f42d26 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 8.7e-05], [20, 0.000186], [30, 0.000286], [40, 0.000378], [50, 0.000473], [60, 0.000573], [70, 0.001311], [80, 0.001636], [90, 0.002081], [100, 0.002316]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.1e-05], [20, 0.000186], [30, 0.000285], [40, 0.000381], [50, 0.000477]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.sort.compile.json new file mode 100644 index 0000000..3fd56b6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.146273283], [5, 0.171400687], [10, 0.186652446], [15, 0.204399473], [20, 0.223955808], [25, 0.241557037], [30, 0.265607256], [35, 0.281047272], [40, 0.299546704], [45, 0.325290435], [50, 0.343961893], [75, 0.469410038], [100, 0.601962635], [125, 0.75382106], [150, 0.908104588], [175, 1.092703751], [200, 1.291813186]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.167979943], [5, 0.197526969], [10, 0.251543486], [15, 0.339889296], [20, 0.457278804], [25, 0.594540892], [30, 0.785881953], [35, 0.990425357], [40, 1.24465057], [45, 1.544130863], [50, 1.87317449], [75, 4.251984735], [100, 7.696289079], [125, 12.585274118], [150, 18.569198288], [175, 26.123124505], [200, 36.1074398]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..e2e16ac --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.198142491], [5, 0.289511487], [10, 0.43270182], [15, 0.619295709], [20, 0.885950571], [25, 1.203442004], [30, 1.635943541], [35, 2.085010747], [40, 2.698029581], [45, 3.360977842]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.bloat.json new file mode 100644 index 0000000..a2986a4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + } + + , { + "name": "std::array", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.753], [50, 14.753], [60, 14.753], [70, 14.753], [80, 14.753], [90, 14.753], [100, 14.753]] + } + + , { + "name": "std::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.778], [50, 14.778], [60, 18.874], [70, 18.874], [80, 14.778], [90, 18.874], [100, 18.874]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.compile.json new file mode 100644 index 0000000..dcbe496 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.141837441], [5, 0.12003027], [10, 0.127592111], [15, 0.132160064], [20, 0.137883767], [25, 0.166910435], [30, 0.150622096], [35, 0.158238539], [40, 0.167761886], [45, 0.175481105], [50, 0.180323443], [75, 0.212107762], [100, 0.434903593], [125, 0.278833216], [150, 0.321311558], [175, 0.362290731], [200, 0.40164358], [225, 0.435329302], [250, 0.482077469], [275, 0.512896169], [300, 0.560577389], [325, 0.606987435], [350, 0.635847223], [375, 0.694827455], [400, 0.746506525]] + }, { + "name": "hana::types", + "data": [[0, 0.107732006], [5, 0.107809961], [10, 0.108271541], [15, 0.109910114], [20, 0.108996008], [25, 0.109740801], [30, 0.109018307], [35, 0.108329111], [40, 0.109285038], [45, 0.10915795], [50, 0.109539075], [75, 0.109996485], [100, 0.110337969], [125, 0.110563473], [150, 0.110309983], [175, 0.112371541], [200, 0.112132988], [225, 0.113339364], [250, 0.113580184], [275, 0.115420244], [300, 0.115217887], [325, 0.115060062], [350, 0.117248551], [375, 0.116437152], [400, 0.11739298]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.178835627], [5, 0.191445616], [10, 0.200187026], [15, 0.207758352], [20, 0.219612569], [25, 0.23163808], [30, 0.242426236], [35, 0.25576154], [40, 0.272334375], [45, 0.286525192], [50, 0.298451206], [75, 0.368657248], [100, 0.457078794], [125, 0.538398619], [150, 0.637747188], [175, 0.745199912], [200, 0.860854925], [225, 0.976320199], [250, 1.137569394], [275, 1.25475238], [300, 1.417689287], [325, 1.66535747], [350, 1.777572613], [375, 2.014431331], [400, 2.31212149]] + }, { + "name": "fusion::vector", + "data": [[0, 0.537041267], [5, 0.590280426], [10, 0.645715267], [15, 0.691588457], [20, 0.738018132], [25, 0.804107654], [30, 0.853309823], [35, 0.916116093], [40, 0.972209097], [45, 1.047467852], [50, 1.113466337]] + }, { + "name": "fusion::list", + "data": [[0, 0.543524815], [5, 0.603189822], [10, 0.647752078], [15, 0.714417107], [20, 0.771382248], [25, 0.823511679], [30, 0.891241072], [35, 0.965440447], [40, 1.028623941], [45, 1.10095306], [50, 1.176334973]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.execute.json new file mode 100644 index 0000000..c4ae6b5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000309], [30, 0.000475], [40, 0.000682], [50, 0.000799], [60, 0.000961], [70, 0.001114], [80, 0.001292], [90, 0.001445], [100, 0.001611]] + } + + , { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000149], [20, 0.00031], [30, 0.000476], [40, 0.000647], [50, 0.000826], [60, 0.000987], [70, 0.001137], [80, 0.001313], [90, 0.001469], [100, 0.001633]] + } + + , { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000148], [20, 0.000309], [30, 0.000476], [40, 0.000771], [50, 0.000949], [60, 0.001119], [70, 0.001275], [80, 0.001454], [90, 0.001587], [100, 0.001743]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000321], [30, 0.000479], [40, 0.000642], [50, 0.000799]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000152], [20, 0.00031], [30, 0.000475], [40, 0.000638], [50, 0.000851]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.union.compile.json new file mode 100644 index 0000000..aa6edb1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.188119532], [5, 0.227079626], [10, 0.304071296], [15, 0.406409159], [20, 0.567551008], [25, 0.736566293], [30, 0.976965973], [35, 1.199498415], [40, 1.547968716], [45, 1.916838786]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.unpack.compile.json new file mode 100644 index 0000000..6f93bf7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.104005634], [2, 0.108826466], [4, 0.108838262], [6, 0.112446792], [8, 0.114463325], [10, 0.114889613], [12, 0.115719599], [14, 0.120961141], [16, 0.119571522], [18, 0.121025004], [20, 0.124645878], [21, 0.125214392], [26, 0.130153176], [31, 0.134138523], [36, 0.140184156], [41, 0.142377266], [46, 0.148007986], [50, 0.15021043], [75, 0.176865028], [100, 0.210394437], [125, 0.230527529], [150, 0.261138896], [175, 0.289495291], [200, 0.329964734], [225, 0.361013531], [250, 0.397148009], [275, 0.439451665], [300, 0.477127748], [325, 0.524144386], [350, 0.573128384], [375, 0.614080787], [400, 0.676585925]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.094312625], [2, 0.114588499], [4, 0.096692819], [6, 0.097895785], [8, 0.100735196], [10, 0.101317248], [12, 0.100895093], [14, 0.10338456], [16, 0.104013266], [18, 0.106636543], [20, 0.107651829], [21, 0.109557441], [26, 0.113496626], [31, 0.115778349], [36, 0.119294131], [41, 0.122446149], [46, 0.127166018], [50, 0.128779336], [75, 0.148451958], [100, 0.171101213], [125, 0.192720194], [150, 0.220461079], [175, 0.250094089], [200, 0.275451861], [225, 0.303781025], [250, 0.340744742], [275, 0.365584709], [300, 0.404720212], [325, 0.439105538], [350, 0.482650189], [375, 0.519379156], [400, 0.575295121]] + }, { + "name": "hana::set", + "data": [[0, 0.18174472], [2, 0.184953698], [4, 0.184649331], [6, 0.190750037], [8, 0.193467855], [10, 0.193626838], [12, 0.198703117], [14, 0.200647667], [16, 0.201547093], [18, 0.203367323], [20, 0.206674278], [21, 0.209587874], [26, 0.215072878], [31, 0.220785589], [36, 0.224829077], [41, 0.231373068], [46, 0.23659139], [50, 0.238122261], [75, 0.268699087], [100, 0.301250452], [125, 0.333072038], [150, 0.368274676], [175, 0.4020029], [200, 0.445752275], [225, 0.488480691], [250, 0.527803665], [275, 0.564601257], [300, 0.597366205], [325, 0.64736122], [350, 0.694465137], [375, 0.760427534], [400, 0.810211268]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.612786516], [2, 0.618386442], [4, 0.631627621], [6, 0.648947008], [8, 0.675039682], [10, 0.7052303], [12, 0.735085619], [14, 0.776312862], [16, 0.810685797]] + }, { + "name": "fusion::list", + "data": [[0, 0.606381051], [2, 0.623054959], [4, 0.636465206], [6, 0.645129645], [8, 0.671766134], [10, 0.714816764], [12, 0.745708385], [14, 0.791120324], [16, 0.845284194]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.bloat.json new file mode 100644 index 0000000..ec300f5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.bloat.json @@ -0,0 +1,36 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.694], [11, 14.694], [21, 14.694], [31, 14.694], [41, 14.694]] + } + + + , { + "name": "std::tuple", + "data": [[1, 14.694], [11, 14.694], [21, 14.694], [31, 14.694], [41, 14.694]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 14.694], [11, 14.694], [21, 14.694], [31, 14.694], [41, 14.694]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.compile.json new file mode 100644 index 0000000..18ee6e4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.compile.json @@ -0,0 +1,37 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.105574522], [6, 0.108566429], [11, 0.111498704], [16, 0.112987144], [21, 0.116219559], [26, 0.118889997], [31, 0.121259801], [36, 0.124954117], [41, 0.127529315], [46, 0.132460421], [50, 0.132833734], [75, 0.148782274], [100, 0.160583095], [125, 0.178888792], [150, 0.191832504], [175, 0.207772366], [200, 0.22502474], [225, 0.243980502], [250, 0.259359039], [275, 0.271844273], [300, 0.295068338], [325, 0.31306133], [350, 0.401498826], [375, 0.346248457], [400, 0.364809851]] + } + + + , { + "name": "std::tuple", + "data": [[1, 0.08344206], [6, 0.098542993], [11, 0.116902084], [16, 0.138429243], [21, 0.164380009], [26, 0.194700982], [31, 0.226379517], [36, 0.271138358], [41, 0.315068408], [46, 0.369684683], [50, 0.419098047], [75, 0.841523237], [100, 1.48027198]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 0.512907428], [6, 0.517539743], [11, 0.555580992], [16, 0.535650978], [21, 0.53485882], [26, 0.548406152], [31, 0.556661414], [36, 0.55717316], [41, 0.572285933], [46, 0.579427899]] + }, { + "name": "fusion::list", + "data": [[1, 0.622198346], [6, 0.524752187], [11, 0.539496563], [16, 0.556037393], [21, 0.57677704], [26, 0.594923751], [31, 0.618090465], [36, 0.6488462], [41, 0.686916976], [46, 0.704838436]] + }, { + "name": "mpl::vector", + "data": [[1, 0.113193454], [6, 0.115680205], [11, 0.116074083], [16, 0.119541194], [21, 0.118632025], [26, 0.121784467], [31, 0.126166057], [36, 0.129931844], [41, 0.132462345], [46, 0.134822815], [50, 0.139000486], [75, 0.157959583], [100, 0.179887532], [125, 0.207096429], [150, 0.23401624], [175, 0.269002924], [200, 0.303625719], [225, 0.347615599], [250, 0.397843381], [275, 0.458178777], [300, 0.540276865], [325, 0.631897718], [350, 0.659747994], [375, 0.848324771], [400, 0.963816587]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.execute.json new file mode 100644 index 0000000..7fe7d77 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at.execute.json @@ -0,0 +1,29 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 9.0e-06], [6, 8.4e-05], [11, 0.000165], [16, 0.000251], [21, 0.000327], [26, 0.000409], [31, 0.000509], [36, 0.000583], [41, 0.000663], [46, 0.000746]] + } + + + , { + "name": "std::tuple", + "data": [[1, 1.3e-05], [6, 9.4e-05], [11, 0.000168], [16, 0.000268], [21, 0.000325], [26, 0.000563], [31, 0.000661], [36, 0.000796], [41, 0.000883], [46, 0.001013]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 1.5e-05], [6, 0.000116], [11, 0.000224], [16, 0.000345], [21, 0.000452], [26, 0.000566], [31, 0.000655], [36, 0.000618], [41, 0.000911], [46, 0.000999]] + }, { + "name": "fusion::list", + "data": [[1, 1.5e-05], [6, 0.000114], [11, 0.000218], [16, 0.000266], [21, 0.000326], [26, 0.000406], [31, 0.000475], [36, 0.000613], [41, 0.000658], [46, 0.00074]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..37808a5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.119214354], [5, 0.120134118], [10, 0.119992571], [15, 0.120698298], [20, 0.119670147], [25, 0.120133347], [30, 0.119323243], [35, 0.119249401], [40, 0.119863653], [45, 0.122452849], [50, 0.122106596], [55, 0.119292713], [60, 0.119850549], [65, 0.12122934], [70, 0.121163117], [75, 0.124086618], [80, 0.119694625], [85, 0.120085619], [90, 0.120530083], [95, 0.118628561], [100, 0.119135341], [105, 0.124669458], [110, 0.120706971], [115, 0.120316284], [120, 0.121861731], [125, 0.120710097], [130, 0.120960564], [135, 0.121254897], [140, 0.120610468], [145, 0.121636008]] + }, { + "name": "hana::tuple", + "data": [[0, 0.467865002], [5, 0.477982421], [10, 0.484608437], [15, 0.503510215], [20, 0.516113837], [25, 0.51575598], [30, 0.53247836], [35, 0.547253469], [40, 0.552633629], [45, 0.565267654], [50, 0.571406772], [55, 0.60096202], [60, 0.602635667], [65, 0.634062899], [70, 0.650941461], [75, 0.658727921], [80, 0.685147991], [85, 0.691299627], [90, 0.699308335], [95, 0.710621288], [100, 0.731504712], [105, 0.732482014], [110, 0.765891669], [115, 0.771125573], [120, 0.785524904], [125, 0.804502868], [130, 0.830174654], [135, 0.841380186], [140, 0.855122613], [145, 0.903876413]] + }, { + "name": "hana::map", + "data": [[0, 0.571314147], [5, 0.57134514], [10, 0.570477892], [15, 0.899702548], [20, 0.576361766], [25, 0.574271198], [30, 0.566885383], [35, 0.573656667], [40, 0.579002225], [45, 0.57526293], [50, 0.571813647], [55, 0.575673949], [60, 0.569740863], [65, 0.568099779], [70, 0.571691123], [75, 0.572920658], [80, 0.5790755], [85, 0.569759626], [90, 0.572650985], [95, 0.57708648], [100, 0.59507297], [105, 0.574388188], [110, 0.573429001], [115, 0.582151601], [120, 0.581267356], [125, 0.572393841], [130, 0.574146369], [135, 0.581702572], [140, 0.577945915], [145, 0.572672769]] + } + + + , { + "name": "fusion::map", + "data": [[0, 4.875151071], [5, 4.877503877], [10, 4.805257749], [15, 4.802479751], [20, 4.947833857], [25, 5.069258585], [30, 4.726601545], [35, 4.874754111], [40, 4.966580945], [45, 4.971296307], [50, 4.979952602], [55, 4.928252471], [60, 4.928725059], [65, 4.958711224], [70, 5.107857869], [75, 5.308201359], [80, 5.076930963], [85, 5.094355786], [90, 5.077537756], [95, 5.12944459], [100, 5.163063215], [105, 5.146541802], [110, 5.24117418], [115, 5.253367198], [120, 5.334606261], [125, 5.37188462], [130, 5.207459309], [135, 5.311603278], [140, 5.459421237], [145, 5.447886672]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..fb57d88 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.16104533], [5, 0.167095258], [10, 0.171047342], [15, 0.172530135], [20, 0.179173291], [25, 0.185015853], [30, 0.18555809], [35, 0.189804322], [40, 0.194431704], [45, 0.197390624], [50, 0.201588309], [55, 0.202753171], [60, 0.207899726], [65, 0.210933185], [70, 0.218124521], [75, 0.223314482], [80, 0.226160597], [85, 0.230860488], [90, 0.235656183], [95, 0.236122489], [100, 0.238648212], [105, 0.243750979], [110, 0.247377255], [115, 0.250864064], [120, 0.253475286], [125, 0.260108087], [130, 0.268874652], [135, 0.266787556], [140, 0.277538886], [145, 0.272858735]] + }, { + "name": "hana::tuple", + "data": [[0, 0.473107205], [5, 0.485991134], [10, 0.525591622], [15, 0.581454754], [20, 0.658860803], [25, 0.734498256], [30, 0.8287857], [35, 0.914442775], [40, 1.06888723], [45, 1.18103511], [50, 1.314540763], [55, 1.492835839], [60, 1.656603676], [65, 1.850614739], [70, 2.022034038], [75, 2.21266156], [80, 2.432051919], [85, 2.731047236], [90, 2.91739035], [95, 3.192267667], [100, 3.436326148], [105, 3.767989612], [110, 4.042310713], [115, 4.328840132], [120, 5.298105391], [125, 5.075564603], [130, 5.613858554], [135, 6.726521862], [140, 7.151912409], [145, 6.545792689]] + }, { + "name": "hana::map", + "data": [[0, 0.55270418], [5, 0.602026109], [10, 0.674162895], [15, 0.678471889], [20, 0.719671751], [25, 0.758009208], [30, 0.799802945], [35, 0.845007854], [40, 0.881683381], [45, 0.922937424], [50, 0.963267776], [55, 1.001886644], [60, 1.046477232], [65, 1.07992852], [70, 1.128356922], [75, 1.161563424], [80, 1.201362611], [85, 1.247259629], [90, 1.296790911], [95, 1.33589471], [100, 1.379297641], [105, 1.422477755], [110, 1.467417949], [115, 1.504277092], [120, 1.580307813], [125, 1.581857942], [130, 1.617268667], [135, 1.750552727], [140, 1.704555858], [145, 1.768176222]] + } + + + , { + "name": "fusion::map", + "data": [[0, 4.659105453], [5, 4.816060168], [10, 4.814642607], [15, 4.99340838], [20, 5.046770745], [25, 5.252102513], [30, 5.375601953], [35, 5.653641978], [40, 5.914460766], [45, 5.965553176], [50, 6.183486602], [55, 6.424688454], [60, 6.705930122], [65, 6.984655564], [70, 7.614127089], [75, 7.580514112], [80, 8.200813328], [85, 8.465817355], [90, 8.793745444], [95, 9.171882754], [100, 9.579317858], [105, 10.258417913], [110, 10.510354564], [115, 11.162774991], [120, 11.961626257], [125, 12.397960974], [130, 13.029201048], [135, 13.207926203], [140, 13.893488834], [145, 13.978521129]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..6de0dd8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.134855261], [1, 0.156497521], [2, 0.171503745], [3, 0.202179483], [4, 0.242272991], [5, 0.298358024], [6, 0.357722077], [7, 0.428691374], [8, 0.511085107], [9, 0.608524748], [10, 0.717646805], [11, 0.826994615], [12, 0.97092058], [13, 1.105705904], [14, 1.278804526], [15, 1.443364086], [16, 1.60431421], [17, 1.806824216], [18, 2.012482453], [19, 2.263640787], [20, 2.535504368], [21, 2.76498185], [22, 2.997943716], [23, 3.284041338], [24, 3.583170274], [25, 3.864546375], [26, 4.328011229], [27, 4.470924877], [28, 4.813820163], [29, 5.262725194], [30, 5.630359454]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.bloat.json new file mode 100644 index 0000000..cec51ff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.7], [11, 14.7], [21, 14.7], [31, 14.7], [41, 14.7]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 14.7], [11, 14.7], [21, 14.7], [31, 14.7], [41, 14.7]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.compile.json new file mode 100644 index 0000000..81d634f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.172486213], [5, 0.197378899], [10, 0.211826299], [15, 0.227267678], [20, 0.244135319], [25, 0.258866822], [30, 0.271320962], [35, 0.302998881], [40, 0.294103468], [45, 0.315081551], [50, 0.324068772], [75, 0.404744629], [100, 0.473801967], [125, 0.555837296], [150, 0.640272961], [175, 0.727507781], [200, 0.8095577], [225, 0.89907449], [250, 0.986114172], [275, 1.072495579], [300, 1.152917825], [325, 1.251349097], [350, 1.368455542], [375, 1.458909716], [400, 1.575018899]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.605153081], [5, 0.662250835], [10, 0.706199713], [15, 0.760255721], [20, 0.809074833], [25, 0.859178965], [30, 0.905564174], [35, 0.967749357], [40, 1.01956785], [45, 1.072719048], [50, 1.129273323]] + }, { + "name": "fusion::list", + "data": [[0, 0.594097157], [5, 0.649955415], [10, 0.703162647], [15, 0.750290654], [20, 0.811957066], [25, 0.863115889], [30, 0.928852771], [35, 0.988344161], [40, 1.046196474], [45, 1.112611446], [50, 1.190557471]] + }, { + "name": "mpl::vector", + "data": [[0, 0.135813674], [5, 0.141779569], [10, 0.146684509], [15, 0.153246257], [20, 0.173492806], [25, 0.16346783], [30, 0.171041873], [35, 0.182241184], [40, 0.189347479], [45, 0.196278488], [50, 0.206137919], [75, 0.253844158], [100, 0.310176173], [125, 0.371562007], [150, 0.44715266], [175, 0.517073496], [200, 0.611640472], [225, 0.711203269], [250, 0.821103957], [275, 0.934780674], [300, 1.075406607], [325, 1.212226309], [350, 1.369638231], [375, 1.530216351], [400, 1.726757044]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.execute.json new file mode 100644 index 0000000..57a33b0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.0], [2, 1.8e-05], [4, 5.1e-05], [6, 8.4e-05], [8, 0.000109], [10, 0.000149], [12, 0.000181], [14, 0.000221], [16, 0.000269], [18, 0.000283], [20, 0.000309], [22, 0.000342], [24, 0.000366], [26, 0.000405], [28, 0.000438], [30, 0.000498], [32, 0.000508], [34, 0.000545], [36, 0.000574], [38, 0.000643], [40, 0.000639], [42, 0.000716], [44, 0.000707], [46, 0.000736], [48, 0.000821], [50, 0.000804]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 0.0], [2, 1.8e-05], [4, 5.1e-05], [6, 8.3e-05], [8, 0.000111], [10, 0.000152], [12, 0.00018], [14, 0.00022], [16, 0.00026], [18, 0.000284], [20, 0.000311], [22, 0.000343], [24, 0.000367], [26, 0.000405], [28, 0.000444], [30, 0.000476], [32, 0.000542], [34, 0.000542], [36, 0.000611], [38, 0.000606], [40, 0.000682], [42, 0.000682], [44, 0.000707], [46, 0.00074], [48, 0.000769], [50, 0.000852]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.difference.compile.json new file mode 100644 index 0000000..290da07 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.188774422], [5, 0.255067793], [10, 0.504126704], [15, 0.769166814], [20, 0.907233518], [25, 0.999550375], [30, 1.456324047], [35, 1.698087249], [40, 3.516904009], [45, 2.701054236]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.filter.compile.json new file mode 100644 index 0000000..007a7c4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.178088008], [5, 0.210430004], [10, 0.225643088], [15, 0.369285468], [20, 0.264510278], [25, 0.465585841], [30, 0.428352968], [35, 0.314092965], [40, 0.331135901], [45, 0.352426348], [50, 0.376022858], [75, 0.474366511], [100, 0.585523214], [125, 0.69359631], [150, 0.820723914], [175, 0.93945136], [200, 1.08045222], [225, 1.546252937], [250, 1.378151549], [275, 1.797023386], [300, 1.741545758], [325, 2.253138569], [350, 2.031878859], [375, 2.228149149], [400, 2.45065684]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.525290431], [5, 0.565708345], [10, 0.626427237], [15, 0.680265951], [20, 0.757525844], [25, 0.812083568], [30, 0.922610495], [35, 0.982732686], [40, 1.072541101], [45, 1.155003713], [50, 1.281974174]] + }, { + "name": "fusion::list", + "data": [[0, 0.519368186], [5, 0.567019738], [10, 0.631881342], [15, 0.695478365], [20, 0.766578978], [25, 0.82993498], [30, 1.294168256], [35, 1.303481931], [40, 1.083903276], [45, 1.150017245], [50, 1.250632604]] + }, { + "name": "mpl::vector", + "data": [[0, 0.158756045], [5, 0.15468033], [10, 0.160613505], [15, 0.164678715], [20, 0.172278718], [25, 0.178663115], [30, 0.18381438], [35, 0.192627916], [40, 0.203103052], [45, 0.207196425], [50, 0.222194593], [75, 0.26534691], [100, 0.323150441], [125, 0.38707104], [150, 0.458241209], [175, 0.541040512], [200, 0.634338768], [225, 0.730821915], [250, 0.846291914], [275, 0.979508414], [300, 1.110035849], [325, 1.252207484], [350, 1.417758203], [375, 1.609190418], [400, 1.799759678]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.find_if.compile.json new file mode 100644 index 0000000..eda3b2a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.136419907], [5, 0.146696388], [10, 0.151188065], [15, 0.158862877], [20, 0.162131118], [25, 0.169347276], [30, 0.175713983], [35, 0.181641917], [40, 0.189688131], [45, 0.19727288], [50, 0.208844318], [75, 0.236788623], [100, 0.276174753], [125, 0.315024145], [150, 0.352997241], [175, 0.398963316], [200, 0.441015189]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.135756198], [5, 0.147124053], [10, 0.148346049], [15, 0.15017095], [20, 0.154004274], [25, 0.156003447], [30, 0.15761137], [35, 0.162143461], [40, 0.162337267], [45, 0.165240592], [50, 0.168113603], [75, 0.180886507], [100, 0.194759016], [125, 0.213155131], [150, 0.225868295], [175, 0.242685297], [200, 0.268507363]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.514553576], [5, 0.535256586], [10, 0.558038801], [15, 0.580818895], [20, 0.6026836], [25, 0.626236641], [30, 0.65044539], [35, 0.662274016], [40, 0.688317342], [45, 0.712002878]] + }, { + "name": "fusion::list", + "data": [[0, 0.508575883], [5, 0.552613731], [10, 0.580163387], [15, 0.632397027], [20, 0.665072851], [25, 0.709170705], [30, 0.763401356], [35, 0.813902785], [40, 0.865656221], [45, 0.91954379]] + }, { + "name": "mpl::vector", + "data": [[0, 0.143939903], [5, 0.153306837], [10, 0.157809552], [15, 0.163167624], [20, 0.206908935], [25, 0.179099169], [30, 0.189839658], [35, 0.197708497], [40, 0.20803534], [45, 0.216700863], [50, 0.228563886], [75, 0.280539351], [100, 0.345222301], [125, 0.40849079], [150, 0.480905255], [175, 0.573476875], [200, 0.667862463]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..79c36c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + }, { + "name": "std::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + }, { + "name": "std::array", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.compile.json new file mode 100644 index 0000000..ac3f6fd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.105067975], [5, 0.111976121], [10, 0.119571713], [15, 0.12211571], [20, 0.124725769], [25, 0.132584092], [30, 0.134334944], [35, 0.137769874], [40, 0.142297842], [45, 0.150651722], [50, 0.150671991], [75, 0.17527755], [100, 0.203160892], [125, 0.221288218], [150, 0.250204729], [175, 0.28068109], [200, 0.312145761], [225, 0.332473098], [250, 0.368427315], [275, 0.3906994], [300, 0.421208644], [325, 0.460819391], [350, 0.496324739], [375, 0.525091949], [400, 0.564194708]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.095510744], [5, 0.131810855], [10, 0.101305571], [15, 0.103824076], [20, 0.109809202], [25, 0.118910859], [30, 0.114903396], [35, 0.118887818], [40, 0.12146227], [45, 0.124241096], [50, 0.128340454], [75, 0.145333158], [100, 0.161211183], [125, 0.182140625], [150, 0.202483081], [175, 0.222684679], [200, 0.245610272], [225, 0.269947109], [250, 0.292481717], [275, 0.316245457], [300, 0.344322888], [325, 0.371544482], [350, 0.394820829], [375, 0.432213794], [400, 0.463863155]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.514230096], [5, 0.542367581], [10, 0.564634921], [15, 0.588646791], [20, 0.620832115], [25, 0.645373266], [30, 0.677705946], [35, 0.708575058], [40, 0.73866233], [45, 0.769828839], [50, 0.809048585]] + },{ + "name": "fusion::list", + "data": [[0, 0.49985296], [5, 0.534155672], [10, 0.559622961], [15, 0.595838633], [20, 0.619037388], [25, 0.656264772], [30, 0.69723524], [35, 0.731377684], [40, 0.780344215], [45, 0.845249247], [50, 0.873503652]] + }, { + "name": "mpl::vector", + "data": [[0, 0.127913581], [5, 0.130946051], [10, 0.178153056], [15, 0.139537502], [20, 0.142823906], [25, 0.148773927], [30, 0.155806931], [35, 0.161932666], [40, 0.167557884], [45, 0.1752639], [50, 0.182486448], [75, 0.223146885], [100, 0.284231249], [125, 0.325386699], [150, 0.396863102], [175, 0.465285138], [200, 0.542390893], [225, 0.631091874], [250, 0.731084731], [275, 0.841901043], [300, 0.954881353], [325, 1.102581538], [350, 1.234963764], [375, 1.407106662], [400, 1.579959562]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.execute.json new file mode 100644 index 0000000..60b93a9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000148], [20, 0.000328], [30, 0.000502], [40, 0.000639], [50, 0.0008], [60, 0.00103], [70, 0.001121], [80, 0.001433], [90, 0.001552], [100, 0.001718]] + }, { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000309], [30, 0.000476], [40, 0.000639], [50, 0.000997], [60, 0.000974], [70, 0.001116], [80, 0.001284], [90, 0.001448], [100, 0.00166]] + }, { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000173], [20, 0.000356], [30, 0.000478], [40, 0.000682], [50, 0.000814], [60, 0.000988], [70, 0.001122], [80, 0.001324], [90, 0.001451], [100, 0.00161]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000149], [20, 0.000379], [30, 0.000507], [40, 0.000736], [50, 0.00096]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000214], [20, 0.000435], [30, 0.000656], [40, 0.000857], [50, 0.001138]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..19da731 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.702], [11, 14.702], [21, 14.702], [31, 14.702], [41, 14.702]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 14.702], [11, 14.702], [21, 14.702], [31, 14.702], [41, 14.702]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.compile.json new file mode 100644 index 0000000..c152981 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.173689392], [5, 0.186147249], [10, 0.200092701], [15, 0.204067517], [20, 0.223315902], [25, 0.218183433], [30, 0.233766576], [35, 0.256505347], [40, 0.25095597], [45, 0.242011185], [50, 0.274741466], [75, 0.291392287], [100, 0.360436981], [125, 0.379099834], [150, 0.428057045], [175, 0.503145495], [200, 0.52492497], [225, 0.603586199], [250, 0.60287058], [275, 0.656300798], [300, 0.423629867], [325, 0.456006519], [350, 0.489071791], [375, 0.524243101], [400, 0.563265393]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.097459712], [5, 0.100131882], [10, 0.104408857], [15, 0.106548224], [20, 0.110768557], [25, 0.113264536], [30, 0.116145162], [35, 0.119768679], [40, 0.12294845], [45, 0.126687731], [50, 0.130127709], [75, 0.147043697], [100, 0.16362183], [125, 0.188646077], [150, 0.201478486], [175, 0.401826259], [200, 0.410718824], [225, 0.475345426], [250, 0.30412022], [275, 0.540549796], [300, 0.612950627], [325, 0.640293769], [350, 0.678854892], [375, 0.712693363], [400, 0.770509259]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.845104394], [5, 0.90402301], [10, 0.950102072], [15, 1.00424056], [20, 0.611498324], [25, 0.644676502], [30, 0.692153666], [35, 0.713056057], [40, 0.732592891], [45, 0.762583238]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.168392721], [5, 0.133188205], [10, 0.137662147], [15, 0.141891721], [20, 0.147001527], [25, 0.164137182], [30, 0.167331329], [35, 0.177306418], [40, 0.177540092], [45, 0.183175915], [50, 0.193303896], [75, 0.235324624], [100, 0.287855002], [125, 0.348409743], [150, 0.41272417], [175, 0.496520086], [200, 0.574140396], [225, 0.680084936], [250, 0.761767736], [275, 0.875535023], [300, 1.004661039], [325, 1.189242961], [350, 1.351995868], [375, 1.483082035], [400, 1.619733344]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.execute.json new file mode 100644 index 0000000..f9fbf84 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 9.0e-06], [3, 4.2e-05], [5, 6.7e-05], [7, 9.3e-05], [9, 0.000131], [11, 0.000172], [13, 0.000229], [15, 0.00029], [17, 0.000296], [19, 0.000299], [21, 0.000325], [23, 0.000351], [25, 0.000401], [27, 0.00042], [29, 0.00046], [31, 0.000475], [33, 0.000592], [35, 0.00056], [37, 0.00059], [39, 0.000663], [41, 0.000659], [43, 0.000688], [45, 0.000766], [47, 0.000757], [49, 0.000787]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 9.0e-06], [3, 4.1e-05], [5, 6.7e-05], [7, 9.6e-05], [9, 0.000126], [11, 0.000168], [13, 0.000204], [15, 0.000237], [17, 0.000261], [19, 0.000325], [21, 0.000343], [23, 0.000351], [25, 0.000382], [27, 0.000466], [29, 0.000489], [31, 0.000581], [33, 0.000561], [35, 0.000641], [37, 0.000623], [39, 0.000848], [41, 0.000918], [43, 0.001017], [45, 0.001002], [47, 0.00077], [49, 0.000837]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.including.compile.json new file mode 100644 index 0000000..b98a723 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.0182668258 + }, { + "name": "Boost.Hana", + "y": 0.547869966 + } + + + , { + "name": "Boost.MPL", + "y": 2.1816139466 + }, { + "name": "Boost.Fusion", + "y": 2.2934158984 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.insert.compile.json new file mode 100644 index 0000000..2181dd6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.228922883], [5, 0.306844464], [10, 0.273895827], [15, 0.304808551], [20, 0.422503395], [25, 0.451845839], [30, 0.486577219], [35, 0.551173024], [40, 0.548777419], [45, 0.59942498], [50, 0.399100599], [75, 0.533098082], [100, 0.607028549], [125, 0.745739095], [150, 0.891483678], [175, 1.038577109], [200, 1.229158254], [225, 1.417554194], [250, 1.603534859], [275, 1.821560712], [300, 2.051866972], [325, 2.268246298], [350, 2.522378645], [375, 2.790139119], [400, 3.130365376]] + }, { + "name": "hana::map", + "data": [[0, 0.20899103], [5, 0.244064059], [10, 0.275218783], [15, 0.305610889], [20, 0.342746545], [25, 0.373416857], [30, 0.409600153], [35, 0.445184418], [40, 0.479560971], [45, 0.510949909], [50, 0.547757965], [75, 0.727013066], [100, 0.923033804], [125, 1.118882261], [150, 1.371805187], [175, 1.563872164], [200, 1.807860517], [225, 2.038658308], [250, 2.288460786], [275, 2.554698593], [300, 2.809309978], [325, 3.22764744], [350, 3.401259678], [375, 3.682476416], [400, 4.019971387]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.intersection.compile.json new file mode 100644 index 0000000..acb9f34 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.193213526], [5, 0.230705632], [10, 0.309132921], [15, 0.306975281], [20, 0.356607933], [25, 0.425752805], [30, 0.497124538], [35, 0.583580499], [40, 0.680847074], [45, 0.781266238]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..f537f7c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.154747103], [5, 0.268038171], [10, 0.465539367], [15, 0.750637601], [20, 1.148767578], [25, 1.663612935], [30, 2.24869998], [35, 2.987611538], [40, 4.253369194], [45, 4.886117818]] + }, { + "name": "hana::set", + "data": [[0, 0.20232547], [5, 0.302193996], [10, 0.465824237], [15, 0.709820687], [20, 1.054285828], [25, 1.466962189], [30, 2.005628298], [35, 2.560435537], [40, 3.316890037], [45, 4.26156399]] + }, { + "name": "hana::map", + "data": [[0, 0.209011519], [5, 0.38519411], [10, 0.663784283], [15, 1.028776367], [20, 1.504107157], [25, 2.10445823], [30, 2.790773924], [35, 3.642675415], [40, 4.571145209], [45, 5.616147923]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_subset.compile.json new file mode 100644 index 0000000..811fd13 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.162715721], [5, 0.304073968], [10, 0.534328435], [15, 0.868608992], [20, 1.31207961], [25, 1.858040094], [30, 2.516238313], [35, 3.30389319], [40, 4.26379415], [45, 5.315296584]] + }, { + "name": "hana::set", + "data": [[0, 0.19281638], [5, 0.283997762], [10, 0.445161201], [15, 0.697925341], [20, 1.026057721], [25, 1.479050362], [30, 1.968001047], [35, 2.62171239], [40, 3.800984314], [45, 4.222791912]] + }, { + "name": "hana::map", + "data": [[0, 0.198828345], [5, 0.347604368], [10, 0.519737385], [15, 0.749156637], [20, 1.037530156], [25, 1.374028152], [30, 1.756430828], [35, 2.210998049], [40, 2.711341531], [45, 3.275451092]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..f3ea3c1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.162757626], [6, 0.204222255], [11, 0.270422533], [16, 0.357680679], [21, 0.467585197], [26, 0.608851642], [31, 0.768495649], [36, 0.946605978], [41, 1.148815717], [46, 1.449382488], [50, 1.595031789], [75, 3.289897284], [100, 5.671870846], [125, 9.025441202]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.make.compile.json new file mode 100644 index 0000000..e830c61 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.105071911], [5, 0.107670287], [10, 0.112548512], [15, 0.113402936], [20, 0.11540436], [25, 0.118929871], [30, 0.121875851], [35, 0.12587944], [40, 0.126437246], [45, 0.129131295], [50, 0.131946233], [75, 0.147925038], [100, 0.164087525], [125, 0.177370476], [150, 0.192424745], [175, 0.208797272], [200, 0.227613935], [225, 0.239052474], [250, 0.260977712], [275, 0.275974219], [300, 0.294651546], [325, 0.311867513], [350, 0.329551439], [375, 0.349634097], [400, 0.377076157]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.05992007], [5, 0.061568535], [10, 0.063262815], [15, 0.064949269], [20, 0.066013563], [25, 0.067630689], [30, 0.069310608], [35, 0.071737117], [40, 0.073049337], [45, 0.074596907], [50, 0.076594218], [75, 0.084759641], [100, 0.093124833], [125, 0.104717853], [150, 0.113851696], [175, 0.123322528], [200, 0.132853749], [225, 0.144639308], [250, 0.154972143], [275, 0.168693733], [300, 0.181731688], [325, 0.191785677], [350, 0.205323832], [375, 0.215400663], [400, 0.233833473]] + }, { + "name": "std::array", + "data": [[0, 0.214165394], [5, 0.213870939], [10, 0.215382923], [15, 0.214903315], [20, 0.255569871], [25, 0.212178342], [30, 0.218874432], [35, 0.213784744], [40, 0.214640737], [45, 0.21547148], [50, 0.215011057], [75, 0.215331566], [100, 0.214307141], [125, 0.215494608], [150, 0.219202045], [175, 0.21238579], [200, 0.213860892], [225, 0.216144434], [250, 0.212831821], [275, 0.214206894], [300, 0.214303414], [325, 0.216809001], [350, 0.216769654], [375, 0.215448665], [400, 0.216156354]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.075920728], [5, 0.095722956], [10, 0.113510844], [15, 0.135232161], [20, 0.161822098], [25, 0.188438505], [30, 0.222474562], [35, 0.263083511], [40, 0.311373221], [45, 0.360600703], [50, 0.42112318], [75, 0.825426172], [100, 1.488622384]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.502951894], [5, 0.509836031], [10, 0.521787685], [15, 0.54022477], [20, 0.567076682], [25, 0.593051057], [30, 0.616409752], [35, 0.644796694], [40, 0.677978893], [45, 0.703997938], [50, 0.733973594], [75, 0.904202408], [100, 1.10344146]] + }, { + "name": "fusion::list", + "data": [[0, 0.498190792], [5, 0.511079385], [10, 0.525189763], [15, 0.550849058], [20, 0.584366613], [25, 0.838132465], [30, 0.625069102], [35, 0.651790131], [40, 0.682194285], [45, 0.711544883], [50, 0.745459552], [75, 0.986090624], [100, 1.125206888]] + }, { + "name": "mpl::vector", + "data": [[0, 0.098071433], [5, 0.096356213], [10, 0.123116333], [15, 0.132717267], [20, 0.121236838], [25, 0.113692326], [30, 0.112671369], [35, 0.117169441], [40, 0.171402477], [45, 0.139300628], [50, 0.141375176], [75, 0.140257711], [100, 0.175725004], [125, 0.18466654], [150, 0.365315742], [175, 0.313481688], [200, 0.286508712], [225, 0.331837471], [250, 0.373395618], [275, 0.431757843], [300, 0.489707572], [325, 0.559274178], [350, 0.640674111], [375, 0.719639312], [400, 0.816510085]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.map.make.chart.json new file mode 100644 index 0000000..3a669a4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.018922523], [5, 0.019005228], [10, 0.019326482], [15, 0.019679371], [20, 0.020048303], [25, 0.02058676], [30, 0.020842537], [35, 0.021394327], [40, 0.021601411], [45, 0.022430034], [50, 0.022499551], [55, 0.023389874], [60, 0.023770787], [65, 0.02426242], [70, 0.025080374], [75, 0.026016932], [80, 0.02701958], [85, 0.02755064], [90, 0.028851667], [95, 0.029717518], [100, 0.030285204], [105, 0.031900981], [110, 0.033421802], [115, 0.032738722], [120, 0.03562441], [125, 0.037067678], [130, 0.03709752], [135, 0.038232724], [140, 0.038703503], [145, 0.040913777]] + }, { + "name": "hana::map", + "data": [[0, 0.190431872], [5, 0.202061638], [10, 0.212054539], [15, 0.220709146], [20, 0.227632694], [25, 0.237927391], [30, 0.243398562], [35, 0.255651584], [40, 0.262522614], [45, 0.293278741], [50, 0.282541889], [55, 0.290840564], [60, 0.30150808], [65, 0.310889425], [70, 0.320813783], [75, 0.335724464], [80, 0.340572475], [85, 0.351983438], [90, 0.359236969], [95, 0.370906167], [100, 0.385573297], [105, 0.39652592], [110, 0.407784153], [115, 0.424379583], [120, 0.433808364], [125, 0.443008223], [130, 0.456050759], [135, 0.469970433], [140, 0.478731914], [145, 0.498170099]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.507570665], [5, 0.521877183], [10, 0.539828041], [15, 0.554322947], [20, 0.570426473], [25, 0.600400339], [30, 0.62370151], [35, 0.65886619], [40, 0.696354863], [45, 0.744603923], [50, 0.788410432], [55, 0.85413059], [60, 0.908407522], [65, 0.978715192], [70, 1.069837578], [75, 1.162503864], [80, 1.286435563], [85, 1.375930943], [90, 1.567441867], [95, 1.65916558], [100, 1.815208166], [105, 2.051634187], [110, 2.188154188], [115, 2.452358369], [120, 2.719450522], [125, 2.846205057], [130, 3.078549713], [135, 3.499433357], [140, 3.834295177], [145, 4.313749487]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.partition.compile.json new file mode 100644 index 0000000..77ce2ab --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.177891169], [5, 0.217713184], [10, 0.238871658], [15, 0.285211913], [20, 0.287448405], [25, 0.307274238], [30, 0.341762532], [35, 0.356819947], [40, 0.383178628], [45, 0.410657601], [50, 0.439043322], [75, 0.581844489], [100, 0.725541743], [125, 0.891448901], [150, 1.044650835], [175, 1.240505424], [200, 1.425520533], [225, 1.651411158], [250, 1.856464244], [275, 2.089081737], [300, 2.321764635], [325, 2.551510043], [350, 2.809723497], [375, 3.087247995], [400, 3.410733813]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.157279468], [5, 0.164578303], [10, 0.170826811], [15, 0.177304563], [20, 0.182458228], [25, 0.193537431], [30, 0.20318763], [35, 0.210758038], [40, 0.220185997], [45, 0.230118024], [50, 0.239721261], [75, 0.329194921], [100, 0.361319019], [125, 0.434228525], [150, 0.519255048], [175, 0.618701603], [200, 0.719693822], [225, 0.824378467], [250, 0.95380484], [275, 1.102896458], [300, 1.25706101], [325, 1.424804604], [350, 1.611178778], [375, 1.832682284], [400, 2.064463436]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.compile.json new file mode 100644 index 0000000..a13c148 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.117334329], [2, 0.117672437], [3, 0.118904235], [4, 0.117969757], [5, 0.118030404], [6, 0.119048769], [7, 0.117596603], [8, 0.119902039], [9, 0.118506644], [10, 0.117959084], [11, 0.118155658], [12, 0.118593908], [13, 0.117568405], [14, 0.117226206], [15, 0.118178988], [16, 0.119171567], [17, 0.11863213], [18, 0.118260509], [19, 0.118478977], [20, 0.117392789], [21, 0.118382113]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.114288531], [5, 0.128924413], [10, 0.139367702], [15, 0.151845567], [20, 0.165429456], [25, 0.177395446], [30, 0.189001092], [35, 0.202994278], [40, 0.218167594], [45, 0.231885904], [50, 0.245167197], [75, 0.305910264], [100, 0.363893279], [125, 0.429805322], [150, 0.484398774], [175, 0.548003373], [200, 0.616044989], [225, 0.686835106], [250, 0.791459357], [275, 0.82941997], [300, 0.899165271], [325, 1.006208545], [350, 1.056087066], [375, 1.12375677], [400, 1.25338806], [425, 1.302411779], [450, 1.397172573], [475, 1.46928752], [500, 1.579009917]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.110148005], [5, 0.114622429], [10, 0.118748533], [15, 0.121484128], [20, 0.124345056], [25, 0.128833977], [30, 0.1315685], [35, 0.133959101], [40, 0.137255206], [45, 0.150931201], [50, 0.144799886], [75, 0.158557417], [100, 0.176087297], [125, 0.191704998], [150, 0.209412699], [175, 0.227427976], [200, 0.249756214], [225, 0.268220184], [250, 0.289272544], [275, 0.303784299], [300, 0.328059594], [325, 0.342921564], [350, 0.359978825], [375, 0.385733422], [400, 0.406918709], [425, 0.435768592], [450, 0.45679098], [475, 0.498967952], [500, 0.497601688]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.execute.json new file mode 100644 index 0000000..a2d36a9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 9.0e-06], [3, 4.3e-05], [5, 6.7e-05], [7, 0.000103], [9, 0.000134], [11, 0.00018], [13, 0.000279], [15, 0.000253], [17, 0.000263], [19, 0.000302], [21, 0.000345], [23, 0.000354], [25, 0.00051], [27, 0.000422], [29, 0.000461], [31, 0.000505], [33, 0.000527], [35, 0.000559], [37, 0.000593], [39, 0.000627], [41, 0.000662], [43, 0.000694], [45, 0.000769], [47, 0.000755], [49, 0.000789]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.move.json new file mode 100644 index 0000000..23cee09 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 4.9e-05], [20, 0.000104], [30, 0.000158], [40, 0.000208], [50, 0.000265], [60, 0.00032], [70, 0.00037], [80, 0.000428], [90, 0.000478], [100, 0.000538]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.2e-05], [20, 0.000191], [30, 0.000288], [40, 0.000387], [50, 0.000482]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.nomove.json new file mode 100644 index 0000000..f872def --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 9.2e-05], [20, 0.000192], [30, 0.00029], [40, 0.000387], [50, 0.000488], [60, 0.000584], [70, 0.001338], [80, 0.001729], [90, 0.002061], [100, 0.00247]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.2e-05], [20, 0.000201], [30, 0.000293], [40, 0.000389], [50, 0.000483]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.sort.compile.json new file mode 100644 index 0000000..16078e5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.149407977], [5, 0.176471796], [10, 0.191757697], [15, 0.20774601], [20, 0.226863075], [25, 0.246529963], [30, 0.263168742], [35, 0.285446009], [40, 0.307649548], [45, 0.329123915], [50, 0.350055539], [75, 0.472804453], [100, 0.60167718], [125, 0.753863048], [150, 0.936664472], [175, 1.094632567], [200, 1.337177619]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.186781921], [5, 0.222345415], [10, 0.269704765], [15, 0.352554253], [20, 0.466226088], [25, 0.611928705], [30, 0.801564352], [35, 1.026284081], [40, 1.258653454], [45, 1.570422583], [50, 1.941793929], [75, 4.224099252], [100, 7.821881151], [125, 12.566142335], [150, 18.933175742], [175, 26.492361323], [200, 37.091231208]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..06cf422 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.206183418], [5, 0.297755508], [10, 0.443637657], [15, 0.632012311], [20, 0.916236625], [25, 1.232650293], [30, 1.659523749], [35, 2.132705014], [40, 2.718172231], [45, 3.33090253]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.bloat.json new file mode 100644 index 0000000..a2986a4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + } + + , { + "name": "std::array", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.753], [50, 14.753], [60, 14.753], [70, 14.753], [80, 14.753], [90, 14.753], [100, 14.753]] + } + + , { + "name": "std::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.778], [50, 14.778], [60, 18.874], [70, 18.874], [80, 14.778], [90, 18.874], [100, 18.874]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.compile.json new file mode 100644 index 0000000..392e218 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.114997298], [5, 0.122544613], [10, 0.126870624], [15, 0.137172808], [20, 0.139242391], [25, 0.147331041], [30, 0.154307729], [35, 0.170836717], [40, 0.166731042], [45, 0.177697016], [50, 0.180113053], [75, 0.211908745], [100, 0.267076831], [125, 0.287162287], [150, 0.329622442], [175, 0.351259553], [200, 0.398032602], [225, 0.440265879], [250, 0.476389009], [275, 0.522678565], [300, 0.633706704], [325, 0.605799638], [350, 0.643632743], [375, 0.702833463], [400, 0.814696811]] + }, { + "name": "hana::types", + "data": [[0, 0.109069415], [5, 0.186160601], [10, 0.185843893], [15, 0.121618716], [20, 0.125132183], [25, 0.130193831], [30, 0.122018416], [35, 0.111860296], [40, 0.137088185], [45, 0.128347629], [50, 0.129194643], [75, 0.130709526], [100, 0.131069188], [125, 0.14483443], [150, 0.141320742], [175, 0.119746481], [200, 0.115586672], [225, 0.11882694], [250, 0.116601568], [275, 0.116150822], [300, 0.118195419], [325, 0.121251375], [350, 0.123152401], [375, 0.123049645], [400, 0.122830367]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.20046372], [5, 0.207138442], [10, 0.224472959], [15, 0.23839292], [20, 0.23804786], [25, 0.255353647], [30, 0.271166379], [35, 0.269316799], [40, 0.286361784], [45, 0.296294111], [50, 0.319551675], [75, 0.387001065], [100, 0.597148833], [125, 0.565475027], [150, 0.669203298], [175, 0.822067761], [200, 0.965884722], [225, 1.300888067], [250, 1.259036329], [275, 1.44786136], [300, 1.720873312], [325, 1.884006426], [350, 2.258240621], [375, 2.558383773], [400, 2.774035335]] + }, { + "name": "fusion::vector", + "data": [[0, 0.587320947], [5, 0.679147337], [10, 0.738328456], [15, 0.794281397], [20, 0.812636947], [25, 0.922800524], [30, 0.99184677], [35, 1.002388816], [40, 1.062215361], [45, 1.193183197], [50, 1.272752036]] + }, { + "name": "fusion::list", + "data": [[0, 0.591113438], [5, 0.659865607], [10, 0.7077477], [15, 0.76478731], [20, 0.827171569], [25, 0.898434043], [30, 0.972821089], [35, 1.083802185], [40, 1.123060566], [45, 1.23868187], [50, 1.341501572]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.execute.json new file mode 100644 index 0000000..9f514a8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000148], [20, 0.00033], [30, 0.000477], [40, 0.000684], [50, 0.000805], [60, 0.00097], [70, 0.001117], [80, 0.001293], [90, 0.001455], [100, 0.001641]] + } + + , { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000151], [20, 0.00031], [30, 0.000506], [40, 0.000649], [50, 0.000838], [60, 0.00101], [70, 0.001142], [80, 0.001316], [90, 0.00151], [100, 0.001675]] + } + + , { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000148], [20, 0.000311], [30, 0.000488], [40, 0.000831], [50, 0.000934], [60, 0.001172], [70, 0.001264], [80, 0.002431], [90, 0.001582], [100, 0.001757]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000309], [30, 0.000477], [40, 0.000643], [50, 0.000802]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.00015], [20, 0.000312], [30, 0.000477], [40, 0.000644], [50, 0.000806]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.union.compile.json new file mode 100644 index 0000000..ef4c48e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.195998205], [5, 0.236986685], [10, 0.317514783], [15, 0.411923362], [20, 0.566898669], [25, 0.738153638], [30, 0.97354981], [35, 1.227222346], [40, 1.562964627], [45, 1.910637663]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.unpack.compile.json new file mode 100644 index 0000000..a15f718 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.103387738], [2, 0.107726217], [4, 0.109771843], [6, 0.112361283], [8, 0.114009371], [10, 0.115276709], [12, 0.117885294], [14, 0.120441667], [16, 0.123055723], [18, 0.123997364], [20, 0.124504101], [21, 0.127718882], [26, 0.14911322], [31, 0.137452579], [36, 0.140789266], [41, 0.146308097], [46, 0.150692992], [50, 0.172325232], [75, 0.181304977], [100, 0.209747492], [125, 0.240567153], [150, 0.269763117], [175, 0.313033904], [200, 0.350980058], [225, 0.386515902], [250, 0.430290845], [275, 0.59046538], [300, 0.543819684], [325, 0.604534198], [350, 0.667445908], [375, 0.733005484], [400, 0.823409467]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.094836658], [2, 0.096612505], [4, 0.097076741], [6, 0.099171625], [8, 0.100646693], [10, 0.101789729], [12, 0.103375979], [14, 0.105066381], [16, 0.106963542], [18, 0.108905214], [20, 0.109502666], [21, 0.110557466], [26, 0.113340869], [31, 0.115880126], [36, 0.1211275], [41, 0.124585989], [46, 0.127996184], [50, 0.13316773], [75, 0.153420099], [100, 0.17593658], [125, 0.200691143], [150, 0.229655676], [175, 0.26237362], [200, 0.291872887], [225, 0.324184387], [250, 0.357622985], [275, 0.39402178], [300, 0.455650856], [325, 0.496467921], [350, 0.565978971], [375, 0.624091259], [400, 0.68546095]] + }, { + "name": "hana::set", + "data": [[0, 0.183004693], [2, 0.189714132], [4, 0.19218594], [6, 0.195046707], [8, 0.195608248], [10, 0.199834134], [12, 0.201821047], [14, 0.207839829], [16, 0.207665506], [18, 0.207471555], [20, 0.218479028], [21, 0.222426322], [26, 0.21555316], [31, 0.229396056], [36, 0.233624992], [41, 0.24199073], [46, 0.243432664], [50, 0.24507882], [75, 0.284836911], [100, 0.317026365], [125, 0.343911345], [150, 0.379101358], [175, 0.42142556], [200, 0.479785549], [225, 0.515012539], [250, 0.552719105], [275, 0.614533888], [300, 0.671784656], [325, 0.739524931], [350, 0.809059262], [375, 0.892148636], [400, 0.979875737]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.694272837], [2, 0.69058458], [4, 0.703150206], [6, 0.713133688], [8, 0.738151823], [10, 0.770076567], [12, 0.811715889], [14, 0.867310483], [16, 0.905814474]] + }, { + "name": "fusion::list", + "data": [[0, 0.668223658], [2, 0.69181128], [4, 0.70177703], [6, 0.716019644], [8, 0.750401286], [10, 0.794897551], [12, 0.861838143], [14, 0.869728346], [16, 0.930964695]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.find_if.compile.json new file mode 100644 index 0000000..41f509f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.158929678], [5, 0.177159481], [10, 0.166333396], [15, 0.174763648], [20, 0.185589212], [25, 0.198718979], [30, 0.235785649], [35, 0.213743236], [40, 0.241588693], [45, 0.224305248], [50, 0.225606886], [75, 0.270511598], [100, 0.330249907], [125, 0.367605835], [150, 0.383951169], [175, 0.500872479], [200, 0.510116795]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.185045382], [5, 0.168464437], [10, 0.163585771], [15, 0.168216456], [20, 0.174161117], [25, 0.171315046], [30, 0.198097394], [35, 0.198029372], [40, 0.250097325], [45, 0.190651036], [50, 0.262870718], [75, 0.267562117], [100, 0.282217877], [125, 0.254456045], [150, 0.375384061], [175, 0.453036665], [200, 0.359498665]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.696344928], [5, 0.614198581], [10, 0.788486324], [15, 0.839176685], [20, 0.863225929], [25, 0.841979513], [30, 0.736381268], [35, 0.758171886], [40, 0.806644667], [45, 0.82671003]] + }, { + "name": "fusion::list", + "data": [[0, 0.543175854], [5, 0.628169179], [10, 0.645614138], [15, 0.699168403], [20, 0.759912859], [25, 0.79524592], [30, 0.842614998], [35, 0.931624298], [40, 0.99468396], [45, 0.985260409]] + }, { + "name": "mpl::vector", + "data": [[0, 0.159572412], [5, 0.177889921], [10, 0.183742347], [15, 0.181776544], [20, 0.215262751], [25, 0.19937544], [30, 0.228524353], [35, 0.226658915], [40, 0.242181213], [45, 0.237917612], [50, 0.249151164], [75, 0.306059598], [100, 0.406832156], [125, 0.449602244], [150, 0.568527344], [175, 0.610277517], [200, 0.736913337]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..79c36c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + }, { + "name": "std::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + }, { + "name": "std::array", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.compile.json new file mode 100644 index 0000000..7e5e141 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.130748294], [5, 0.180025962], [10, 0.137850316], [15, 0.153564874], [20, 0.193128615], [25, 0.192836264], [30, 0.169652226], [35, 0.20421996], [40, 0.318370562], [45, 0.275323122], [50, 0.181966574], [75, 0.227857551], [100, 0.303667461], [125, 0.324432893], [150, 0.364893695], [175, 0.343845342], [200, 0.413100969], [225, 0.37225928], [250, 0.462977296], [275, 0.557048575], [300, 0.549566749], [325, 0.572571157], [350, 0.655296675], [375, 0.71925501], [400, 0.669683886]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.109806436], [5, 0.128171979], [10, 0.114071281], [15, 0.117785306], [20, 0.120981778], [25, 0.125591306], [30, 0.131059335], [35, 0.131211947], [40, 0.136244114], [45, 0.138309812], [50, 0.21815121], [75, 0.20992706], [100, 0.254343283], [125, 0.22499743], [150, 0.273234248], [175, 0.404822854], [200, 0.390718018], [225, 0.393624179], [250, 0.377542737], [275, 0.428810595], [300, 0.564593769], [325, 0.438829726], [350, 0.586688226], [375, 0.556370997], [400, 0.596026655]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.745479455], [5, 0.669919039], [10, 0.79138399], [15, 0.868660548], [20, 0.867654626], [25, 0.795258522], [30, 1.028013353], [35, 0.927253014], [40, 0.853579803], [45, 0.962225998], [50, 1.038052938]] + },{ + "name": "fusion::list", + "data": [[0, 0.585696837], [5, 0.625649518], [10, 0.872032452], [15, 0.759338499], [20, 0.844712274], [25, 0.816832507], [30, 0.927539725], [35, 0.84595848], [40, 0.824190081], [45, 0.901946443], [50, 0.925966323]] + }, { + "name": "mpl::vector", + "data": [[0, 0.333454617], [5, 0.147953256], [10, 0.150966034], [15, 0.157250734], [20, 0.158544184], [25, 0.160281554], [30, 0.168141748], [35, 0.182814415], [40, 0.199656037], [45, 0.190695545], [50, 0.202501379], [75, 0.254229283], [100, 0.316511208], [125, 0.36087782], [150, 0.422025269], [175, 0.498722514], [200, 0.584078567], [225, 0.717990775], [250, 0.821014533], [275, 0.905582914], [300, 1.094598464], [325, 1.20913379], [350, 1.35479308], [375, 1.479767597], [400, 1.68120574]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.execute.json new file mode 100644 index 0000000..db180a5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000151], [20, 0.000312], [30, 0.000483], [40, 0.000643], [50, 0.000855], [60, 0.000987], [70, 0.001144], [80, 0.001302], [90, 0.001462], [100, 0.001625]] + }, { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000154], [20, 0.00031], [30, 0.000478], [40, 0.000646], [50, 0.000809], [60, 0.001035], [70, 0.001193], [80, 0.001299], [90, 0.001453], [100, 0.001631]] + }, { + "name": "std::array", + "data": [[0, 0.0], [10, 0.00015], [20, 0.000311], [30, 0.00048], [40, 0.000643], [50, 0.000807], [60, 0.000973], [70, 0.001123], [80, 0.001441], [90, 0.001502], [100, 0.00181]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000153], [20, 0.000331], [30, 0.000484], [40, 0.000643], [50, 0.000807]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000151], [20, 0.000311], [30, 0.000509], [40, 0.000648], [50, 0.000813]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.including.compile.json new file mode 100644 index 0000000..a059ff1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.0190385994 + }, { + "name": "Boost.Hana", + "y": 0.5275949506 + } + + + , { + "name": "Boost.MPL", + "y": 1.6442379370000002 + }, { + "name": "Boost.Fusion", + "y": 1.4907879899999998 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.make.compile.json new file mode 100644 index 0000000..12e4ecd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.123419705], [5, 0.132504432], [10, 0.121246562], [15, 0.128494886], [20, 0.134283274], [25, 0.130690843], [30, 0.136738824], [35, 0.137853671], [40, 0.140984809], [45, 0.14526263], [50, 0.148179982], [75, 0.166308156], [100, 0.172063984], [125, 0.189032124], [150, 0.205562727], [175, 0.220889897], [200, 0.233026417], [225, 0.26586573], [250, 0.272509097], [275, 0.293996209], [300, 0.307368189], [325, 0.326518772], [350, 0.347996795], [375, 0.365562095], [400, 0.424274185]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.067544746], [5, 0.06990287], [10, 0.07042774], [15, 0.073161782], [20, 0.079896978], [25, 0.076207005], [30, 0.096580332], [35, 0.077994108], [40, 0.07937004], [45, 0.08266779], [50, 0.087521668], [75, 0.095119156], [100, 0.10492557], [125, 0.114467665], [150, 0.122871632], [175, 0.133126914], [200, 0.144566386], [225, 0.156992765], [250, 0.169705134], [275, 0.180178756], [300, 0.193626011], [325, 0.207608697], [350, 0.217554621], [375, 0.230209553], [400, 0.252206888]] + }, { + "name": "std::array", + "data": [[0, 0.238770058], [5, 0.232151077], [10, 0.233504491], [15, 0.232187511], [20, 0.239779322], [25, 0.261522723], [30, 0.236613689], [35, 0.237971631], [40, 0.247370858], [45, 0.239238584], [50, 0.235392238], [75, 0.405553549], [100, 0.404147866], [125, 0.300782572], [150, 0.314607449], [175, 0.232289066], [200, 0.390372329], [225, 0.373585062], [250, 0.359470105], [275, 0.388447152], [300, 0.382622097], [325, 0.243101972], [350, 0.255292949], [375, 0.255164029], [400, 0.243180895]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.103419749], [5, 0.106783902], [10, 0.148859916], [15, 0.159718175], [20, 0.193355402], [25, 0.213704488], [30, 0.27099956], [35, 0.296394555], [40, 0.382308321], [45, 0.395208692], [50, 0.458408799], [75, 0.91764241], [100, 1.593590697]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.537723454], [5, 0.727372931], [10, 0.571592573], [15, 0.76820703], [20, 0.993369287], [25, 0.685989946], [30, 0.678682907], [35, 0.722867838], [40, 0.777907504], [45, 0.769962207], [50, 0.781920809], [75, 0.979072008], [100, 1.18362177]] + }, { + "name": "fusion::list", + "data": [[0, 0.524575132], [5, 0.543590647], [10, 0.543770823], [15, 0.574531227], [20, 0.601834661], [25, 0.632212574], [30, 0.771928789], [35, 0.694102933], [40, 0.722323669], [45, 0.988370572], [50, 0.850985921], [75, 0.963238666], [100, 1.186036541]] + }, { + "name": "mpl::vector", + "data": [[0, 0.099547796], [5, 0.102597834], [10, 0.103512757], [15, 0.100811536], [20, 0.106922672], [25, 0.112727699], [30, 0.115636912], [35, 0.120340562], [40, 0.122019334], [45, 0.126307373], [50, 0.130907221], [75, 0.149904531], [100, 0.178266458], [125, 0.208921047], [150, 0.23056098], [175, 0.267998189], [200, 0.299857756], [225, 0.351151243], [250, 0.409739119], [275, 0.467474008], [300, 0.537856089], [325, 0.606993447], [350, 0.720239928], [375, 0.772296197], [400, 0.871861229]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.move.json new file mode 100644 index 0000000..f0cb308 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 5.3e-05], [20, 0.000139], [30, 0.000167], [40, 0.000223], [50, 0.000278], [60, 0.000332], [70, 0.000419], [80, 0.00044], [90, 0.000529], [100, 0.000558]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.5e-05], [20, 0.000201], [30, 0.000297], [40, 0.000409], [50, 0.000496]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.nomove.json new file mode 100644 index 0000000..451d77b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 9.8e-05], [20, 0.000198], [30, 0.0003], [40, 0.000401], [50, 0.00053], [60, 0.000595], [70, 0.001625], [80, 0.002254], [90, 0.002776], [100, 0.003586]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.6e-05], [20, 0.000198], [30, 0.000295], [40, 0.000401], [50, 0.000532]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.bloat.json new file mode 100644 index 0000000..a2986a4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701], [60, 14.701], [70, 14.701], [80, 14.701], [90, 14.701], [100, 14.701]] + } + + , { + "name": "std::array", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.753], [50, 14.753], [60, 14.753], [70, 14.753], [80, 14.753], [90, 14.753], [100, 14.753]] + } + + , { + "name": "std::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.778], [50, 14.778], [60, 18.874], [70, 18.874], [80, 14.778], [90, 18.874], [100, 18.874]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.651], [10, 14.701], [20, 14.701], [30, 14.701], [40, 14.701], [50, 14.701]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.compile.json new file mode 100644 index 0000000..ecc9c24 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.128454545], [5, 0.132239498], [10, 0.139833014], [15, 0.147955637], [20, 0.156520993], [25, 0.162191919], [30, 0.167884255], [35, 0.171938758], [40, 0.186716526], [45, 0.186734962], [50, 0.193013203], [75, 0.228665027], [100, 0.268889716], [125, 0.303757092], [150, 0.343684758], [175, 0.392879233], [200, 0.425829202], [225, 0.464201604], [250, 0.524970708], [275, 0.713064269], [300, 0.589465218], [325, 0.650170073], [350, 0.735104977], [375, 0.744385057], [400, 0.7547754]] + }, { + "name": "hana::types", + "data": [[0, 0.124918832], [5, 0.124315047], [10, 0.123645049], [15, 0.1289228], [20, 0.128753315], [25, 0.128848457], [30, 0.128995485], [35, 0.125593888], [40, 0.121716424], [45, 0.128786071], [50, 0.124465239], [75, 0.127197161], [100, 0.12545419], [125, 0.124878049], [150, 0.144209932], [175, 0.130898448], [200, 0.140064417], [225, 0.151726238], [250, 0.12724668], [275, 0.132020469], [300, 0.144179531], [325, 0.150354531], [350, 0.15803116], [375, 0.140210048], [400, 0.132990469]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.210827213], [5, 0.227877866], [10, 0.246677231], [15, 0.263363512], [20, 0.256295407], [25, 0.267812585], [30, 0.293406142], [35, 0.329495578], [40, 0.305648182], [45, 0.358842662], [50, 0.342427719], [75, 0.417060804], [100, 0.516708577], [125, 0.663905548], [150, 0.762835185], [175, 0.90224769], [200, 1.021461167], [225, 1.234285386], [250, 1.342366172], [275, 1.547829036], [300, 1.810312475], [325, 1.983815711], [350, 2.297720909], [375, 2.745556578], [400, 3.057079789]] + }, { + "name": "fusion::vector", + "data": [[0, 0.633651646], [5, 0.690791706], [10, 0.741708518], [15, 0.845618895], [20, 0.868538855], [25, 0.983979682], [30, 1.016102389], [35, 1.09520482], [40, 1.167313313], [45, 1.239286857], [50, 1.325140409]] + }, { + "name": "fusion::list", + "data": [[0, 0.661396972], [5, 0.709644936], [10, 0.76013476], [15, 0.866843474], [20, 0.93036247], [25, 1.083770559], [30, 1.158779745], [35, 1.186113126], [40, 1.221694604], [45, 1.451173831], [50, 1.442281674]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.execute.json new file mode 100644 index 0000000..9878872 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.0/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.00015], [20, 0.000343], [30, 0.000512], [40, 0.000646], [50, 0.000819], [60, 0.001023], [70, 0.001155], [80, 0.00129], [90, 0.001623], [100, 0.001654]] + } + + , { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000154], [20, 0.000312], [30, 0.000479], [40, 0.000683], [50, 0.000833], [60, 0.001016], [70, 0.001174], [80, 0.001327], [90, 0.001474], [100, 0.001643]] + } + + , { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000149], [20, 0.000325], [30, 0.000478], [40, 0.000807], [50, 0.000948], [60, 0.001132], [70, 0.001313], [80, 0.001492], [90, 0.001593], [100, 0.001793]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000149], [20, 0.000329], [30, 0.000507], [40, 0.000719], [50, 0.000818]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000149], [20, 0.000312], [30, 0.000478], [40, 0.000685], [50, 0.000807]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.bloat.json new file mode 100644 index 0000000..1f3fdd5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.bloat.json @@ -0,0 +1,36 @@ + + +{ + "title": { + "text": "Executable size for at" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.71], [11, 14.71], [21, 14.71], [31, 14.71], [41, 14.71]] + } + + + , { + "name": "std::tuple", + "data": [[1, 14.71], [11, 14.71], [21, 14.71], [31, 14.71], [41, 14.71]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 14.71], [11, 14.71], [21, 14.71], [31, 14.71], [41, 14.71]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.compile.json new file mode 100644 index 0000000..570d9bf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.compile.json @@ -0,0 +1,37 @@ + + +{ + "title": { + "text": "Compile-time behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.141684673], [6, 0.133189489], [11, 0.138624446], [16, 0.193433359], [21, 0.141654505], [26, 0.148077984], [31, 0.154391733], [36, 0.150822153], [41, 0.153438256], [46, 0.157794393], [50, 0.162467637], [75, 0.180695631], [100, 0.190020398], [125, 0.209651132], [150, 0.22316846], [175, 0.243561499], [200, 0.257969673], [225, 0.274667357], [250, 0.302330027], [275, 0.310139131], [300, 0.335996941], [325, 0.38282927], [350, 0.371286236], [375, 0.389292927], [400, 0.415420338]] + } + + + , { + "name": "std::tuple", + "data": [[1, 0.104796], [6, 0.12304536], [11, 0.146632688], [16, 0.168688269], [21, 0.19940435], [26, 0.233556104], [31, 0.268433538], [36, 0.313468423], [41, 0.367450851], [46, 0.422538677], [50, 0.471247284], [75, 0.906197374], [100, 1.615416086]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 0.534117542], [6, 0.545243309], [11, 0.561171174], [16, 0.567871511], [21, 0.572651373], [26, 0.580093332], [31, 0.585401908], [36, 0.587651593], [41, 0.604210091], [46, 0.614773914]] + }, { + "name": "fusion::list", + "data": [[1, 0.51980354], [6, 0.548108918], [11, 0.561058518], [16, 0.580330741], [21, 0.605500524], [26, 0.626936978], [31, 0.653174717], [36, 0.681061088], [41, 0.704250601], [46, 0.741468995]] + }, { + "name": "mpl::vector", + "data": [[1, 0.130444213], [6, 0.133080361], [11, 0.133341986], [16, 0.136046666], [21, 0.136866625], [26, 0.141409859], [31, 0.172067654], [36, 0.149144574], [41, 0.162031596], [46, 0.154448926], [50, 0.160527862], [75, 0.180179721], [100, 0.205162137], [125, 0.233797315], [150, 0.264963824], [175, 0.318166978], [200, 0.342083856], [225, 0.38284727], [250, 0.461102901], [275, 0.496847742], [300, 0.577738587], [325, 0.71566273], [350, 0.722568366], [375, 0.814798408], [400, 0.922962138]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.execute.json new file mode 100644 index 0000000..81bbccc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at.execute.json @@ -0,0 +1,29 @@ + +{ + "title": { + "text": "Runtime behavior of at" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 9.0e-06], [6, 8.4e-05], [11, 0.000164], [16, 0.000251], [21, 0.000325], [26, 0.000404], [31, 0.000473], [36, 0.000613], [41, 0.0007], [46, 0.000762]] + } + + + , { + "name": "std::tuple", + "data": [[1, 9.0e-06], [6, 8.3e-05], [11, 0.000169], [16, 0.000251], [21, 0.000343], [26, 0.000432], [31, 0.000475], [36, 0.000573], [41, 0.000655], [46, 0.000735]] + } + + + + , { + "name": "fusion::vector", + "data": [[1, 9.0e-06], [6, 8.3e-05], [11, 0.000164], [16, 0.000251], [21, 0.000343], [26, 0.000406], [31, 0.000475], [36, 0.000614], [41, 0.000655], [46, 0.000742]] + }, { + "name": "fusion::list", + "data": [[1, 9.0e-06], [6, 8.4e-05], [11, 0.000165], [16, 0.000252], [21, 0.000325], [26, 0.000406], [31, 0.000506], [36, 0.000579], [41, 0.000662], [46, 0.000738]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json new file mode 100644 index 0000000..1027cfd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.index_of_lookup.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Index of the key looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.140814532], [5, 0.137699447], [10, 0.13534838], [15, 0.138554387], [20, 0.139286407], [25, 0.140932909], [30, 0.13492919], [35, 0.135603422], [40, 0.137618564], [45, 0.136288778], [50, 0.134681286], [55, 0.135116381], [60, 0.1398199], [65, 0.138730496], [70, 0.135291918], [75, 0.136332805], [80, 0.136976998], [85, 0.139040486], [90, 0.133911661], [95, 0.135074753], [100, 0.140217002], [105, 0.212137927], [110, 0.145870292], [115, 0.135396925], [120, 0.134913813], [125, 0.134731366], [130, 0.135825148], [135, 0.136459944], [140, 0.134685515], [145, 0.137604221]] + }, { + "name": "hana::tuple", + "data": [[0, 0.437171884], [5, 0.463902402], [10, 0.478389324], [15, 0.593329607], [20, 0.497240182], [25, 0.520720909], [30, 0.528356711], [35, 0.65907068], [40, 0.558455197], [45, 0.571952587], [50, 0.592513887], [55, 0.596274958], [60, 0.625292369], [65, 0.622278694], [70, 0.660205479], [75, 0.658600549], [80, 0.708792595], [85, 0.692643081], [90, 0.708430858], [95, 0.70870309], [100, 0.729480044], [105, 0.750912582], [110, 0.775724531], [115, 0.824566093], [120, 1.356414223], [125, 1.355807799], [130, 1.398520852], [135, 1.352370098], [140, 1.435796415], [145, 1.440433234]] + }, { + "name": "hana::map", + "data": [[0, 1.048657953], [5, 1.034500235], [10, 0.992176409], [15, 1.054284399], [20, 1.059439796], [25, 1.061563487], [30, 1.043862288], [35, 1.060205584], [40, 1.064153745], [45, 1.051398521], [50, 1.048506388], [55, 1.084037186], [60, 1.055360749], [65, 0.958867051], [70, 1.033107684], [75, 1.050073652], [80, 0.990584242], [85, 0.983271674], [90, 1.047986215], [95, 1.056026911], [100, 1.071074227], [105, 1.051987264], [110, 1.056652017], [115, 1.04517257], [120, 1.065274703], [125, 1.05568993], [130, 1.039512923], [135, 1.043224258], [140, 1.060472884], [145, 1.030259505]] + } + + + , { + "name": "fusion::map", + "data": [[0, 6.495606687], [5, 6.567091927], [10, 6.504054376], [15, 6.667870753], [20, 6.750320734], [25, 6.750284156], [30, 6.733631111], [35, 6.910335691], [40, 6.797603203], [45, 6.944450923], [50, 6.846910564], [55, 7.000938389], [60, 7.002762609], [65, 7.044261056], [70, 6.929264658], [75, 4.279731927], [80, 4.332061837], [85, 4.406862213], [90, 4.398660875], [95, 4.43727945], [100, 4.575357275], [105, 4.472338438], [110, 4.482555594], [115, 4.605164312], [120, 4.558202398], [125, 4.584350748], [130, 4.955328381], [135, 4.641275268], [140, 7.248547089], [145, 4.709411078]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json new file mode 100644 index 0000000..a49e7b8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.at_key.number_of_lookups.chart.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of at_key" + }, + "xAxis": { + "title": { "text": "Number of elements looked up" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.184034624], [5, 0.187551675], [10, 0.19178292], [15, 0.199169343], [20, 0.202615277], [25, 0.207400068], [30, 0.211371911], [35, 0.215570547], [40, 0.219980787], [45, 0.227095398], [50, 0.229373321], [55, 0.236907074], [60, 0.242737931], [65, 0.243054241], [70, 0.246257272], [75, 0.251511031], [80, 0.256329444], [85, 0.261826051], [90, 0.268260194], [95, 0.271328162], [100, 0.277103862], [105, 0.279912235], [110, 0.285323462], [115, 0.290532701], [120, 0.293874863], [125, 0.300417813], [130, 0.304975884], [135, 0.313311179], [140, 0.317357405], [145, 0.320931383]] + }, { + "name": "hana::tuple", + "data": [[0, 0.41674842], [5, 0.459625439], [10, 0.508093065], [15, 0.572853262], [20, 0.655952234], [25, 0.73201187], [30, 0.837482502], [35, 0.961076374], [40, 1.101485163], [45, 1.227133356], [50, 1.398911686], [55, 1.551149593], [60, 1.741190077], [65, 1.922872803], [70, 2.149834242], [75, 2.366737886], [80, 2.59431843], [85, 2.879642321], [90, 3.101672814], [95, 3.430002524], [100, 3.728193783], [105, 4.069471369], [110, 4.362190781], [115, 4.626528896], [120, 5.018044608], [125, 5.386532573], [130, 5.720202501], [135, 6.10910353], [140, 6.546104981], [145, 6.972941536]] + }, { + "name": "hana::map", + "data": [[0, 0.61829552], [5, 0.67035958], [10, 0.721304822], [15, 0.759484327], [20, 0.807885273], [25, 0.853093795], [30, 0.902206092], [35, 0.949938458], [40, 1.008781189], [45, 1.046131574], [50, 1.103332217], [55, 1.13876108], [60, 1.191540483], [65, 1.248599639], [70, 1.292101134], [75, 1.361779413], [80, 1.393387268], [85, 1.436757232], [90, 1.484568954], [95, 1.54623808], [100, 1.583625663], [105, 1.65250636], [110, 1.676336275], [115, 1.744045289], [120, 1.783623929], [125, 1.835142004], [130, 1.879282594], [135, 1.920529566], [140, 1.977585259], [145, 2.022244161]] + } + + + , { + "name": "fusion::map", + "data": [[0, 3.766847056], [5, 4.047003151], [10, 4.098663147], [15, 4.234071448], [20, 4.33470614], [25, 4.508104134], [30, 4.679221767], [35, 4.916787342], [40, 5.143874678], [45, 5.416475533], [50, 5.707078812], [55, 5.999589666], [60, 6.34719337], [65, 6.748253709], [70, 7.003365395], [75, 7.249127178], [80, 7.891683035], [85, 8.217593406], [90, 8.63316927], [95, 9.278249352], [100, 9.713061048], [105, 10.104583119], [110, 10.763546331], [115, 11.102453575], [120, 11.727809774], [125, 12.342506438], [130, 13.015903614], [135, 13.732329129], [140, 14.259371407], [145, 14.887447603]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.cartesian_product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.cartesian_product.compile.json new file mode 100644 index 0000000..b7bdf0b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.cartesian_product.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of cartesian_product" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.162869011], [1, 0.192765808], [2, 0.210756279], [3, 0.24838825], [4, 0.327350356], [5, 0.363668269], [6, 0.43966428], [7, 0.536687158], [8, 0.644175019], [9, 0.769784438], [10, 0.902883166], [11, 1.049035054], [12, 1.227664616], [13, 1.394701344], [14, 1.59769888], [15, 1.784268446], [16, 2.007365731], [17, 2.253561847], [18, 2.559703232], [19, 2.852577902], [20, 3.144323668], [21, 3.479963539], [22, 3.720527101], [23, 4.130976278], [24, 4.516108859], [25, 4.8824372], [26, 5.297944523], [27, 5.669506764], [28, 6.125480361], [29, 6.671632667], [30, 7.360275734]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.bloat.json new file mode 100644 index 0000000..901caed --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for count_if" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.716], [11, 14.716], [21, 14.716], [31, 14.716], [41, 14.716]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 14.716], [11, 14.716], [21, 14.716], [31, 14.716], [41, 14.716]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.compile.json new file mode 100644 index 0000000..57e955c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.compile.json @@ -0,0 +1,28 @@ + + +{ + "title": { + "text": "Compile-time behavior of count_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.204847033], [5, 0.236861571], [10, 0.250197455], [15, 0.267631128], [20, 0.297239717], [25, 0.297710566], [30, 0.31808794], [35, 0.327299885], [40, 0.341311473], [45, 0.354063837], [50, 0.376462802], [75, 0.460573426], [100, 0.713210387], [125, 0.640399732], [150, 0.726286113], [175, 0.80487905], [200, 0.924457757], [225, 1.010725586], [250, 1.07764926], [275, 1.191702783], [300, 1.281231676], [325, 1.558107875], [350, 1.579434604], [375, 1.612331243], [400, 1.742735721]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.630709874], [5, 1.0236626], [10, 0.754479176], [15, 0.801496814], [20, 0.869096306], [25, 0.933140987], [30, 0.984018037], [35, 1.062809124], [40, 1.116574333], [45, 1.206249335], [50, 1.254215554]] + }, { + "name": "fusion::list", + "data": [[0, 0.630623657], [5, 0.705144287], [10, 0.801817618], [15, 0.875603771], [20, 0.900540095], [25, 1.383069854], [30, 1.079490783], [35, 1.093797789], [40, 1.156603164], [45, 1.301856197], [50, 1.283862254]] + }, { + "name": "mpl::vector", + "data": [[0, 0.154422796], [5, 0.161267654], [10, 0.166599211], [15, 0.174391108], [20, 0.179584895], [25, 0.188684779], [30, 0.195000022], [35, 0.202265378], [40, 0.212743459], [45, 0.222809059], [50, 0.230802591], [75, 0.287306553], [100, 0.349572141], [125, 0.434132015], [150, 0.494724534], [175, 0.603292084], [200, 0.704353572], [225, 0.782712989], [250, 0.911096002], [275, 1.043176211], [300, 1.174872703], [325, 1.318974288], [350, 1.521676553], [375, 1.680816867], [400, 1.869123116]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.execute.json new file mode 100644 index 0000000..16ab6d3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.count_if.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of count_if" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.0], [2, 1.8e-05], [4, 5.2e-05], [6, 8.4e-05], [8, 0.000111], [10, 0.000171], [12, 0.00018], [14, 0.000232], [16, 0.000259], [18, 0.000291], [20, 0.000333], [22, 0.000343], [24, 0.000368], [26, 0.00041], [28, 0.000439], [30, 0.000505], [32, 0.000508], [34, 0.000544], [36, 0.000574], [38, 0.000605], [40, 0.00064], [42, 0.000675], [44, 0.000706], [46, 0.000737], [48, 0.00077], [50, 0.000801]] + } + + + , { + "name": "Homogeneous fusion::vector", + "data": [[0, 0.0], [2, 1.8e-05], [4, 5.2e-05], [6, 8.3e-05], [8, 0.000111], [10, 0.000149], [12, 0.00018], [14, 0.000219], [16, 0.000253], [18, 0.000284], [20, 0.000309], [22, 0.000349], [24, 0.000387], [26, 0.000432], [28, 0.000498], [30, 0.000482], [32, 0.000542], [34, 0.000579], [36, 0.000576], [38, 0.000612], [40, 0.000645], [42, 0.000716], [44, 0.000711], [46, 0.000789], [48, 0.000768], [50, 0.000898]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.difference.compile.json new file mode 100644 index 0000000..bb3df02 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.252372204], [5, 0.349169266], [10, 0.437844215], [15, 0.588357367], [20, 0.848904257], [25, 1.146078201], [30, 1.564495397], [35, 1.922938352], [40, 2.479302378], [45, 3.003604814]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.filter.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.filter.compile.json new file mode 100644 index 0000000..7c37825 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.filter.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of filter" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.213287798], [5, 0.24803486], [10, 0.26857105], [15, 0.28431054], [20, 0.30905059], [25, 0.322678159], [30, 0.343707046], [35, 0.367145854], [40, 0.395094896], [45, 0.411602055], [50, 0.44092284], [75, 0.546444059], [100, 0.680060742], [125, 0.794851016], [150, 0.928347361], [175, 1.057124498], [200, 1.213942949], [225, 1.369967611], [250, 1.572993165], [275, 1.699077044], [300, 1.908530533], [325, 2.07729586], [350, 2.275569083], [375, 2.495773847], [400, 2.713708446]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.56679817], [5, 0.602359295], [10, 0.682539787], [15, 0.737319812], [20, 0.823408472], [25, 0.893097971], [30, 0.99837208], [35, 1.084003825], [40, 1.221897511], [45, 1.308445271], [50, 1.419711229]] + }, { + "name": "fusion::list", + "data": [[0, 0.541987606], [5, 0.605681148], [10, 0.694387027], [15, 0.763117178], [20, 0.843498165], [25, 0.91865098], [30, 1.013333556], [35, 1.095424887], [40, 1.188358797], [45, 1.285584282], [50, 1.408857348]] + }, { + "name": "mpl::vector", + "data": [[0, 0.171531998], [5, 0.191578498], [10, 0.180058507], [15, 0.187835013], [20, 0.194966369], [25, 0.210209531], [30, 0.210541002], [35, 0.216775084], [40, 0.228500024], [45, 0.235856726], [50, 0.248501414], [75, 0.303860586], [100, 0.36266562], [125, 0.432374579], [150, 0.515507229], [175, 0.607568785], [200, 0.703659648], [225, 0.810899381], [250, 0.930555874], [275, 1.075273306], [300, 1.22849526], [325, 1.367552955], [350, 1.554407866], [375, 1.738899952], [400, 1.960092866]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.find_if.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.find_if.compile.json new file mode 100644 index 0000000..0fcbcb7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.find_if.compile.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Compile-time behavior of find_if" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.169174983], [5, 0.174721757], [10, 0.183715167], [15, 0.191275444], [20, 0.196347175], [25, 0.205434406], [30, 0.214458193], [35, 0.220641207], [40, 0.227782457], [45, 0.233296236], [50, 0.244451783], [75, 0.280509144], [100, 0.32538555], [125, 0.365632022], [150, 0.418636077], [175, 0.460331732], [200, 0.520842262]] + } + + + + , { + "name": "std::integer_sequence", + "data": [[0, 0.170934121], [5, 0.187951978], [10, 0.188025329], [15, 0.231844125], [20, 0.192549736], [25, 0.194904678], [30, 0.195792415], [35, 0.199294973], [40, 0.197022817], [45, 0.208546986], [50, 0.31116993], [75, 0.221550246], [100, 0.237079648], [125, 0.255031606], [150, 0.28091711], [175, 0.289251478], [200, 0.310901391]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.568434736], [5, 0.591486141], [10, 0.608313907], [15, 0.635417561], [20, 0.651040566], [25, 0.684079773], [30, 0.717413175], [35, 0.734212945], [40, 0.770661678], [45, 0.788281322]] + }, { + "name": "fusion::list", + "data": [[0, 0.554260943], [5, 0.607118779], [10, 0.716814893], [15, 0.683201532], [20, 0.720610766], [25, 0.79282852], [30, 0.8479479], [35, 0.903481868], [40, 0.95269247], [45, 1.021498481]] + }, { + "name": "mpl::vector", + "data": [[0, 0.170778032], [5, 0.176210281], [10, 0.179995181], [15, 0.189789401], [20, 0.195019926], [25, 0.205568078], [30, 0.213343408], [35, 0.224727049], [40, 0.235796135], [45, 0.244916713], [50, 0.256187759], [75, 0.317813064], [100, 0.378137427], [125, 0.458854065], [150, 0.540745784], [175, 0.638071844], [200, 0.733525375]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.bloat.json new file mode 100644 index 0000000..f59c224 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.bloat.json @@ -0,0 +1,35 @@ + + +{ + "title": { + "text": "Executable size for fold_left" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.717], [50, 14.717], [60, 14.717], [70, 14.717], [80, 14.717], [90, 14.717], [100, 14.717]] + }, { + "name": "std::vector", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.717], [50, 14.717], [60, 14.717], [70, 14.717], [80, 14.717], [90, 14.717], [100, 14.717]] + }, { + "name": "std::array", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.717], [50, 14.717], [60, 14.717], [70, 14.717], [80, 14.717], [90, 14.717], [100, 14.717]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.717], [50, 14.717]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.compile.json new file mode 100644 index 0000000..9f3c7f5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.compile.json @@ -0,0 +1,36 @@ + + + +{ + "title": { + "text": "Compile-time behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.127810223], [5, 0.135603447], [10, 0.140481354], [15, 0.149922592], [20, 0.163526582], [25, 0.154587451], [30, 0.159517477], [35, 0.164897309], [40, 0.16929533], [45, 0.173794239], [50, 0.184399349], [75, 0.205177042], [100, 0.23097405], [125, 0.258017159], [150, 0.286302736], [175, 0.317469575], [200, 0.349538035], [225, 0.38463853], [250, 0.413839822], [275, 0.447562968], [300, 0.475511394], [325, 0.510535371], [350, 0.546138966], [375, 0.583454543], [400, 0.621374937]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.120103495], [5, 0.121523519], [10, 0.124540562], [15, 0.127625124], [20, 0.130976517], [25, 0.13434857], [30, 0.138958218], [35, 0.141132791], [40, 0.14648103], [45, 0.149127373], [50, 0.15404341], [75, 0.173100304], [100, 0.193331511], [125, 0.212561121], [150, 0.25271293], [175, 0.261726933], [200, 0.287515075], [225, 0.306876623], [250, 0.334519529], [275, 0.357672041], [300, 0.385456867], [325, 0.411558009], [350, 0.442750324], [375, 0.473162983], [400, 0.51127521]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.531085418], [5, 0.566557617], [10, 0.591870243], [15, 0.625792879], [20, 0.658153024], [25, 0.695639743], [30, 0.72586344], [35, 0.762153461], [40, 0.810089836], [45, 0.837477168], [50, 0.865135363]] + },{ + "name": "fusion::list", + "data": [[0, 0.524365453], [5, 0.564916694], [10, 0.599496267], [15, 0.641462387], [20, 0.667518319], [25, 0.699510395], [30, 0.742570368], [35, 0.791391959], [40, 0.832800275], [45, 0.882950456], [50, 0.923839745]] + }, { + "name": "mpl::vector", + "data": [[0, 0.168532337], [5, 0.16449875], [10, 0.160387955], [15, 0.169593936], [20, 0.164887427], [25, 0.173550833], [30, 0.180743307], [35, 0.186846765], [40, 0.244444109], [45, 0.201096545], [50, 0.210998319], [75, 0.254321598], [100, 0.30541705], [125, 0.366666956], [150, 0.584110845], [175, 0.683623089], [200, 0.727629117], [225, 0.715442324], [250, 0.806337674], [275, 0.924227928], [300, 1.239154626], [325, 1.485067255], [350, 2.234321252], [375, 1.853061408], [400, 1.835494832]] + } + + + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.execute.json new file mode 100644 index 0000000..b7aeb95 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_left.execute.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Runtime behavior of fold_left" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000148], [20, 0.000309], [30, 0.000603], [40, 0.000717], [50, 0.001004], [60, 0.001028], [70, 0.001242], [80, 0.001623], [90, 0.001526], [100, 0.001715]] + }, { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000147], [20, 0.000328], [30, 0.000475], [40, 0.000638], [50, 0.000799], [60, 0.001028], [70, 0.001114], [80, 0.001291], [90, 0.001543], [100, 0.001719]] + }, { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000153], [20, 0.000309], [30, 0.000482], [40, 0.00064], [50, 0.000853], [60, 0.000964], [70, 0.001124], [80, 0.001378], [90, 0.001456], [100, 0.00161]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000309], [30, 0.000478], [40, 0.000642], [50, 0.000852]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000152], [20, 0.000309], [30, 0.000497], [40, 0.00064], [50, 0.000941]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.bloat.json new file mode 100644 index 0000000..da1e95d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.bloat.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Executable size for fold_right" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 14.718], [11, 14.718], [21, 14.718], [31, 14.718], [41, 14.718]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 14.718], [11, 14.718], [21, 14.718], [31, 14.718], [41, 14.718]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.compile.json new file mode 100644 index 0000000..bdea7a6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.compile.json @@ -0,0 +1,30 @@ + + +{ + "title": { + "text": "Compile-time behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.13188829], [5, 0.140465647], [10, 0.14871925], [15, 0.14981888], [20, 0.156634658], [25, 0.160624313], [30, 0.168781237], [35, 0.170354756], [40, 0.175836768], [45, 0.181255614], [50, 0.188322419], [75, 0.211267683], [100, 0.243046309], [125, 0.266474644], [150, 0.297288184], [175, 0.324350821], [200, 0.353513994], [225, 0.401564855], [250, 0.422366231], [275, 0.45693734], [300, 0.486067567], [325, 0.517788813], [350, 0.555495611], [375, 0.594852659], [400, 0.643388481]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.122702408], [5, 0.125711961], [10, 0.126490375], [15, 0.131668397], [20, 0.136205981], [25, 0.140983418], [30, 0.146695395], [35, 0.14922374], [40, 0.154545463], [45, 0.156294047], [50, 0.157891218], [75, 0.178332108], [100, 0.199808847], [125, 0.219286217], [150, 0.243014859], [175, 0.26264587], [200, 0.292816627], [225, 0.310831637], [250, 0.338160548], [275, 0.362809097], [300, 0.400621338], [325, 0.420673244], [350, 0.44862627], [375, 0.476964515], [400, 0.514790987]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.538423816], [5, 0.566928263], [10, 0.596560897], [15, 0.628844618], [20, 0.649501202], [25, 0.684645669], [30, 0.726358399], [35, 0.747288008], [40, 0.777713906], [45, 0.816581634]] + }, { + "name": "mpl::vector ", + "data": [[0, 0.149907982], [5, 0.152769919], [10, 0.164933959], [15, 0.162911715], [20, 0.167732228], [25, 0.175559654], [30, 0.183362165], [35, 0.197247101], [40, 0.197850401], [45, 0.205542929], [50, 0.213721692], [75, 0.268239205], [100, 0.323170749], [125, 0.384141668], [150, 0.455670906], [175, 0.540670201], [200, 0.624516411], [225, 0.733711588], [250, 0.838845434], [275, 0.979889895], [300, 1.102962615], [325, 1.248547269], [350, 1.420978023], [375, 1.636119322], [400, 1.802866113]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.execute.json new file mode 100644 index 0000000..e80c9a0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.fold_right.execute.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Runtime behavior of fold_right" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 9.0e-06], [3, 4.2e-05], [5, 6.7e-05], [7, 9.5e-05], [9, 0.000125], [11, 0.000168], [13, 0.000213], [15, 0.000234], [17, 0.000259], [19, 0.000299], [21, 0.000324], [23, 0.000372], [25, 0.000384], [27, 0.000505], [29, 0.000464], [31, 0.000474], [33, 0.000529], [35, 0.00056], [37, 0.00063], [39, 0.000665], [41, 0.00066], [43, 0.000692], [45, 0.000724], [47, 0.000806], [49, 0.00079]] + } + + + , { + "name": "fusion::vector", + "data": [[1, 9.0e-06], [3, 4.1e-05], [5, 6.7e-05], [7, 9.3e-05], [9, 0.000126], [11, 0.000168], [13, 0.000204], [15, 0.000234], [17, 0.00026], [19, 0.0003], [21, 0.000325], [23, 0.000371], [25, 0.000382], [27, 0.000506], [29, 0.000462], [31, 0.000473], [33, 0.000559], [35, 0.000594], [37, 0.00063], [39, 0.000635], [41, 0.000655], [43, 0.000696], [45, 0.000722], [47, 0.000754], [49, 0.000789]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.including.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.including.compile.json new file mode 100644 index 0000000..ae075c4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.including.compile.json @@ -0,0 +1,52 @@ + + +{ + "chart": { + "type": "column" + }, + "legend": { + "enabled": false + }, + "xAxis": { + "type": "category" + }, + "title": { + "text": "Including various metaprogramming libraries" + }, + "plotOptions": { + "series": { + "borderWidth": 0, + "dataLabels": { + "enabled": true, + "format": "{point.y:.5f}s" + } + } + }, + "series": [{ + "name": "Include time", + "colorByPoint": true, + "data": [ + { + "name": "Baseline (no includes)", + "y": 0.0327891608 + }, { + "name": "Boost.Hana", + "y": 0.37607554099999996 + } + + + , { + "name": "Boost.MPL", + "y": 1.3777711 + }, { + "name": "Boost.Fusion", + "y": 1.4703264988 + } + + + + + + ] + }] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.insert.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.insert.compile.json new file mode 100644 index 0000000..760e36f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.insert.compile.json @@ -0,0 +1,16 @@ + + +{ + "title": { + "text": "Compile-time behavior of insert" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.232756074], [5, 0.26270964], [10, 0.279320016], [15, 0.295344818], [20, 0.318522999], [25, 0.331189189], [30, 0.346378278], [35, 0.36930723], [40, 0.389384557], [45, 0.41248994], [50, 0.435264775], [75, 0.551702678], [100, 0.677250049], [125, 0.825377234], [150, 0.982567068], [175, 1.155521171], [200, 1.325558869], [225, 1.527868782], [250, 1.740546478], [275, 1.964763729], [300, 2.194978171], [325, 2.437508662], [350, 2.690507905], [375, 2.982446752], [400, 3.339351612]] + }, { + "name": "hana::map", + "data": [[0, 0.245445892], [5, 0.285479785], [10, 0.324158051], [15, 0.360342401], [20, 0.398448124], [25, 0.438464434], [30, 0.485635275], [35, 0.518515949], [40, 0.556765847], [45, 0.599051806], [50, 0.640766529], [75, 0.86769451], [100, 1.086180464], [125, 1.330661689], [150, 1.582273526], [175, 1.827937855], [200, 2.131729756], [225, 2.403991652], [250, 2.690000396], [275, 3.008545497], [300, 3.30817654], [325, 3.672752287], [350, 4.004451084], [375, 4.380201241], [400, 4.773233265]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.intersection.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.intersection.compile.json new file mode 100644 index 0000000..83dc201 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.intersection.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of intersection" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.231813541], [5, 0.274062489], [10, 0.315871336], [15, 0.3658108], [20, 0.422479903], [25, 0.493810695], [30, 0.579233913], [35, 0.673243132], [40, 0.789675109], [45, 0.891125145]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_disjoint.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_disjoint.compile.json new file mode 100644 index 0000000..96a3d86 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_disjoint.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_disjoint" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.188635293], [5, 0.321671464], [10, 0.555710922], [15, 0.911789309], [20, 1.385378964], [25, 1.969577988], [30, 2.698821179], [35, 3.558977178], [40, 4.547528447], [45, 5.699985597]] + }, { + "name": "hana::set", + "data": [[0, 0.236714296], [5, 0.363433914], [10, 0.569388061], [15, 0.874437596], [20, 1.310239252], [25, 1.824798202], [30, 2.361314885], [35, 3.050729649], [40, 3.913558949], [45, 4.721552397]] + }, { + "name": "hana::map", + "data": [[0, 0.251731214], [5, 0.468632867], [10, 0.796627546], [15, 1.233971223], [20, 1.958346919], [25, 2.55717262], [30, 3.431818098], [35, 4.385065143], [40, 5.51131603], [45, 6.616276103]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_subset.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_subset.compile.json new file mode 100644 index 0000000..5d4b7ff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.is_subset.compile.json @@ -0,0 +1,19 @@ + + +{ + "title": { + "text": "Compile-time behavior of is_subset" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.198709535], [5, 0.374001525], [10, 0.644246241], [15, 1.048988632], [20, 1.576926998], [25, 2.234413598], [30, 3.010352247], [35, 3.964303766], [40, 5.048260377], [45, 6.29782717]] + }, { + "name": "hana::set", + "data": [[0, 0.225454278], [5, 0.333973085], [10, 0.511683591], [15, 0.801695327], [20, 1.173968862], [25, 1.661684444], [30, 2.237196233], [35, 2.974641975], [40, 3.814704057], [45, 4.724065455]] + }, { + "name": "hana::map", + "data": [[0, 0.237364795], [5, 0.412165493], [10, 0.620965725], [15, 0.896914879], [20, 1.210381059], [25, 1.577993943], [30, 2.030949314], [35, 2.530232796], [40, 3.124832887], [45, 3.734881465]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.lexicographical_compare.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.lexicographical_compare.compile.json new file mode 100644 index 0000000..d117dac --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.lexicographical_compare.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of lexicographical_compare" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[1, 0.197485905], [6, 0.246223358], [11, 0.324728733], [16, 0.42360926], [21, 0.552234276], [26, 0.70351944], [31, 0.878118212], [36, 1.091043897], [41, 1.333703636], [46, 1.588434621], [50, 1.831548533], [75, 3.790090556], [100, 6.719158885], [125, 10.17735456]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.make.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.make.compile.json new file mode 100644 index 0000000..d781e2b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.make.compile.json @@ -0,0 +1,43 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a sequence" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.128836404], [5, 0.134704165], [10, 0.138467117], [15, 0.139789943], [20, 0.145730763], [25, 0.199152561], [30, 0.148686422], [35, 0.152227381], [40, 0.155301571], [45, 0.158677312], [50, 0.161880147], [75, 0.177212411], [100, 0.194429336], [125, 0.214701767], [150, 0.262065375], [175, 0.359125739], [200, 0.264293099], [225, 0.403014718], [250, 0.309145671], [275, 0.348849673], [300, 0.345171776], [325, 0.365874135], [350, 0.384364048], [375, 0.462804118], [400, 0.433875526]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.121739383], [5, 0.084225163], [10, 0.086475689], [15, 0.088091776], [20, 0.088862084], [25, 0.090517339], [30, 0.093623885], [35, 0.094366777], [40, 0.097438406], [45, 0.09957476], [50, 0.100892875], [75, 0.109952778], [100, 0.119662617], [125, 0.130153389], [150, 0.142460432], [175, 0.153906781], [200, 0.166562332], [225, 0.177341077], [250, 0.187959724], [275, 0.203032446], [300, 0.210954735], [325, 0.228967137], [350, 0.243555275], [375, 0.266677508], [400, 0.271660963]] + }, { + "name": "std::array", + "data": [[0, 0.243166125], [5, 0.2451378], [10, 0.245564558], [15, 0.244682189], [20, 0.251742251], [25, 0.245227551], [30, 0.242471565], [35, 0.246599951], [40, 0.243292284], [45, 0.246287253], [50, 0.253421966], [75, 0.243766573], [100, 0.244835743], [125, 0.245853636], [150, 0.430084085], [175, 0.250684573], [200, 0.24999952], [225, 0.246811528], [250, 0.242065943], [275, 0.24648093], [300, 0.245401665], [325, 0.244714307], [350, 0.246753774], [375, 0.245189139], [400, 0.246557322]] + } + + + , { + "name": "std::tuple", + "data": [[0, 0.099257687], [5, 0.121189947], [10, 0.14295316], [15, 0.167871097], [20, 0.197318764], [25, 0.231449581], [30, 0.268238206], [35, 0.31865544], [40, 0.362052452], [45, 0.425725337], [50, 0.484684873], [75, 0.931757447], [100, 1.65142465]] + } + + + + , { + "name": "fusion::vector", + "data": [[0, 0.539656074], [5, 0.541765449], [10, 0.555411736], [15, 0.577530991], [20, 0.608449873], [25, 0.635306295], [30, 0.665541961], [35, 0.693935274], [40, 0.736418141], [45, 0.756674932], [50, 0.80036824], [75, 0.993025899], [100, 1.230124319]] + }, { + "name": "fusion::list", + "data": [[0, 0.524757804], [5, 0.539635517], [10, 0.555945015], [15, 0.584325643], [20, 0.609205053], [25, 0.644560048], [30, 0.670565935], [35, 0.703172397], [40, 0.727696038], [45, 0.758960536], [50, 0.801667134], [75, 1.022964927], [100, 1.242417976]] + }, { + "name": "mpl::vector", + "data": [[0, 0.113853073], [5, 0.112943393], [10, 0.114057844], [15, 0.192110811], [20, 0.113538971], [25, 0.124072644], [30, 0.127768069], [35, 0.130970819], [40, 0.134818655], [45, 0.139236272], [50, 0.142296456], [75, 0.162373334], [100, 0.186187588], [125, 0.213867176], [150, 0.248176287], [175, 0.286193427], [200, 0.321209426], [225, 0.366181064], [250, 0.417072634], [275, 0.476054739], [300, 0.544005485], [325, 0.619160192], [350, 0.705787779], [375, 0.806907534], [400, 0.898879887]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.map.make.chart.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.map.make.chart.json new file mode 100644 index 0000000..992713b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.map.make.chart.json @@ -0,0 +1,26 @@ + + +{ + "title": { + "text": "Compile-time behavior of creating a map" + }, + "xAxis": { + "title": { "text": "Size of the map" } + }, + "series": [ + { + "name": "baseline", + "data": [[0, 0.037343219], [5, 0.038356436], [10, 0.037939048], [15, 0.038875349], [20, 0.038860266], [25, 0.039648246], [30, 0.03946299], [35, 0.039728908], [40, 0.040308176], [45, 0.04064362], [50, 0.041209511], [55, 0.040764], [60, 0.04136885], [65, 0.041886427], [70, 0.043373118], [75, 0.043964014], [80, 0.04356504], [85, 0.043344502], [90, 0.044333023], [95, 0.047071724], [100, 0.047086075], [105, 0.046665894], [110, 0.052917914], [115, 0.048318393], [120, 0.048445871], [125, 0.049023603], [130, 0.050017866], [135, 0.049847405], [140, 0.0512015], [145, 0.051586502]] + }, { + "name": "hana::map", + "data": [[0, 0.226483111], [5, 0.236891937], [10, 0.246427519], [15, 0.256480627], [20, 0.261152683], [25, 0.268151464], [30, 0.277575707], [35, 0.286424046], [40, 0.298832994], [45, 0.311558344], [50, 0.314442326], [55, 0.326025721], [60, 0.33769383], [65, 0.348597724], [70, 0.358169704], [75, 0.37285898], [80, 0.387863292], [85, 0.394678366], [90, 0.404831436], [95, 0.419363361], [100, 0.433477111], [105, 0.445440281], [110, 0.457712155], [115, 0.46894018], [120, 0.488940348], [125, 0.491118316], [130, 0.514791413], [135, 0.515678884], [140, 0.552064121], [145, 0.554925858]] + } + + + , { + "name": "fusion::map", + "data": [[0, 0.534182964], [5, 0.549254798], [10, 0.563508919], [15, 0.581336148], [20, 0.609431453], [25, 0.642542927], [30, 0.769414042], [35, 0.691844755], [40, 0.730621484], [45, 0.781875264], [50, 0.831344286], [55, 0.882708811], [60, 0.946364112], [65, 1.015111656], [70, 1.100053869], [75, 1.20978643], [80, 1.305150203], [85, 1.382429189], [90, 1.508842795], [95, 1.648089967], [100, 1.732963689], [105, 1.890902227], [110, 2.073569301], [115, 2.240829292], [120, 2.398216068], [125, 2.600024213], [130, 2.774760189], [135, 2.963101458], [140, 3.277381218], [145, 4.479691887]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.partition.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.partition.compile.json new file mode 100644 index 0000000..9bdb575 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.partition.compile.json @@ -0,0 +1,22 @@ + + +{ + "title": { + "text": "Compile-time behavior of partition" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.208930508], [5, 0.256209501], [10, 0.28093877], [15, 0.305293654], [20, 0.331502052], [25, 0.354704918], [30, 0.377909631], [35, 0.402102544], [40, 0.436511883], [45, 0.466212374], [50, 0.486383964], [75, 0.631880507], [100, 0.811718797], [125, 0.971236851], [150, 1.168733308], [175, 1.348308419], [200, 1.574283794], [225, 1.779276394], [250, 2.024534404], [275, 2.267040569], [300, 2.546491896], [325, 2.798760548], [350, 3.071260383], [375, 3.386070754], [400, 4.863979092]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.172967155], [5, 0.181024876], [10, 0.186851657], [15, 0.198057958], [20, 0.202567246], [25, 0.216630682], [30, 0.224049546], [35, 0.232869852], [40, 0.244880791], [45, 0.253162945], [50, 0.265394167], [75, 0.327169945], [100, 0.39595292], [125, 0.474338023], [150, 0.563145056], [175, 0.665447642], [200, 0.781087397], [225, 0.913569859], [250, 1.05150129], [275, 1.207101315], [300, 1.355817539], [325, 1.526905085], [350, 1.735130659], [375, 1.943548691], [400, 2.191007038]] + } + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.compile.json new file mode 100644 index 0000000..cc598f9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.compile.json @@ -0,0 +1,19 @@ + +{ + "title": { + "text": "Compile-time behavior of product" + }, + "series": [ + { + + "name": "hana::range", + "data": [[1, 0.141984395], [2, 0.142522216], [3, 0.140835332], [4, 0.141537699], [5, 0.140993591], [6, 0.140102422], [7, 0.141873301], [8, 0.140413802], [9, 0.140450097], [10, 0.142126928], [11, 0.14036068], [12, 0.140678108], [13, 0.140573434], [14, 0.140784881], [15, 0.141168248], [16, 0.141901646], [17, 0.142276265], [18, 0.139585828], [19, 0.143994144], [20, 0.146287025], [21, 0.140828436]] + }, { + "name": "Heterogeneous hana::tuple", + "data": [[0, 0.138800138], [5, 0.156144802], [10, 0.168642888], [15, 0.182220578], [20, 0.196105677], [25, 0.211102966], [30, 0.22212962], [35, 0.25958705], [40, 0.25704289], [45, 0.269856943], [50, 0.283300168], [75, 0.35156095], [100, 0.415646741], [125, 0.4805272], [150, 0.54931061], [175, 0.60932689], [200, 0.692424909], [225, 0.763850563], [250, 0.841359446], [275, 0.907975015], [300, 1.006487299], [325, 1.076865555], [350, 1.158873396], [375, 1.237035852], [400, 1.345905798], [425, 1.444556901], [450, 1.552150988], [475, 1.638026668], [500, 1.738478232]] + }, { + "name": "Homogeneous hana::tuple", + "data": [[0, 0.133406973], [5, 0.139283467], [10, 0.14329426], [15, 0.147089709], [20, 0.15068248], [25, 0.171049017], [30, 0.158557046], [35, 0.16155972], [40, 0.165365443], [45, 0.168805094], [50, 0.172779687], [75, 0.190313755], [100, 0.209889582], [125, 0.225918586], [150, 0.24859649], [175, 0.265992746], [200, 0.285794164], [225, 0.309250726], [250, 0.328809062], [275, 0.356692235], [300, 0.36929822], [325, 0.392832693], [350, 0.419510969], [375, 0.436896014], [400, 0.470311304], [425, 0.482419083], [450, 0.507322769], [475, 0.536609315], [500, 0.564188101]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.execute.json new file mode 100644 index 0000000..964980a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.product.execute.json @@ -0,0 +1,12 @@ + +{ + "title": { + "text": "Runtime behavior of product" + }, + "series": [ + { + "name": "Homogeneous hana::tuple", + "data": [[1, 9.0e-06], [3, 4.1e-05], [5, 6.7e-05], [7, 9.2e-05], [9, 0.000126], [11, 0.000165], [13, 0.000202], [15, 0.000234], [17, 0.000275], [19, 0.000317], [21, 0.000342], [23, 0.00035], [25, 0.000401], [27, 0.000421], [29, 0.000488], [31, 0.000472], [33, 0.000526], [35, 0.000569], [37, 0.00059], [39, 0.000621], [41, 0.000697], [43, 0.000729], [45, 0.000718], [47, 0.000751], [49, 0.000786]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.move.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.move.json new file mode 100644 index 0000000..3493801 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.move.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a moved-from container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 5.2e-05], [20, 0.000109], [30, 0.000164], [40, 0.000217], [50, 0.000274], [60, 0.000328], [70, 0.000578], [80, 0.000441], [90, 0.000498], [100, 0.000553]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.5e-05], [20, 0.000195], [30, 0.000297], [40, 0.000395], [50, 0.000495]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.nomove.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.nomove.json new file mode 100644 index 0000000..11a932f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.reverse.nomove.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Runtime performance of reverse on a normal container" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 9.5e-05], [20, 0.000197], [30, 0.000296], [40, 0.000396], [50, 0.000494], [60, 0.00059], [70, 0.001383], [80, 0.001882], [90, 0.002235], [100, 0.002705]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 9.5e-05], [20, 0.000198], [30, 0.000297], [40, 0.000399], [50, 0.000493]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.sort.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.sort.compile.json new file mode 100644 index 0000000..c7f2ff6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.sort.compile.json @@ -0,0 +1,20 @@ + + +{ + "title": { + "text": "Compile-time behavior of sort" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.176096192], [5, 0.202778191], [10, 0.222218175], [15, 0.241046807], [20, 0.259856776], [25, 0.281269866], [30, 0.308343752], [35, 0.321917769], [40, 0.345965691], [45, 0.373662552], [50, 0.390704299], [75, 0.527370869], [100, 0.677752581], [125, 0.830378013], [150, 1.010247225], [175, 1.215505628], [200, 1.418152161]] + } + + + , { + "name": "mpl::vector ", + "data": [[0, 0.204106373], [5, 0.233724468], [10, 0.293374031], [15, 0.402073937], [20, 0.522073181], [25, 0.676381553], [30, 0.866256462], [35, 1.099154752], [40, 1.371315575], [45, 1.693808033], [50, 2.080214838], [75, 4.617223729], [100, 8.379802782], [125, 13.803048419], [150, 20.747895077], [175, 28.60786642], [200, 39.598771511]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.symmetric_difference.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.symmetric_difference.compile.json new file mode 100644 index 0000000..acd2f1a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.symmetric_difference.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of symmetric_difference" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.236671372], [5, 0.339637173], [10, 0.520971446], [15, 0.700563477], [20, 1.036470319], [25, 1.374035988], [30, 1.860258209], [35, 2.367876551], [40, 3.017621726], [45, 3.653038791]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.bloat.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.bloat.json new file mode 100644 index 0000000..c1ad895 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.bloat.json @@ -0,0 +1,39 @@ + + +{ + "title": { + "text": "Executable size for transform" + }, + "yAxis": { + "title": { + "text": "Executable size (kb)" + }, + "floor": 0 + }, + "tooltip": { + "valueSuffix": "kb" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.717], [50, 14.717], [60, 14.717], [70, 14.717], [80, 14.717], [90, 14.717], [100, 14.717]] + } + + , { + "name": "std::array", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.769], [50, 14.769], [60, 14.769], [70, 14.769], [80, 14.769], [90, 14.769], [100, 14.769]] + } + + , { + "name": "std::vector", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.794], [50, 14.794], [60, 18.89], [70, 18.89], [80, 14.794], [90, 18.89], [100, 18.89]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 14.667], [10, 14.717], [20, 14.717], [30, 14.717], [40, 14.717], [50, 14.717]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.compile.json new file mode 100644 index 0000000..bfb3b0d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.compile.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Compile-time behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.135287165], [5, 0.14713023], [10, 0.152441934], [15, 0.162714391], [20, 0.17838271], [25, 0.176491565], [30, 0.184775049], [35, 0.226094124], [40, 0.205108553], [45, 0.211952929], [50, 0.212690636], [75, 0.248178052], [100, 0.290076435], [125, 0.512499281], [150, 0.483285861], [175, 0.409838882], [200, 0.45512114], [225, 0.496155791], [250, 0.553325184], [275, 0.583646676], [300, 0.639815637], [325, 0.687375045], [350, 0.738612851], [375, 0.872495658], [400, 0.951371519]] + }, { + "name": "hana::types", + "data": [[0, 0.146301486], [5, 0.151038714], [10, 0.145065443], [15, 0.178342065], [20, 0.167280805], [25, 0.160969851], [30, 0.189628308], [35, 0.172351288], [40, 0.209410806], [45, 0.214545066], [50, 0.199407661], [75, 0.154289401], [100, 0.155363279], [125, 0.160129902], [150, 0.143020232], [175, 0.157123641], [200, 0.168042548], [225, 0.164221563], [250, 0.148411186], [275, 0.215453312], [300, 0.154529412], [325, 0.22689945], [350, 0.231006801], [375, 0.146108273], [400, 0.237241492]] + } + + + , { + "name": "mpl::vector", + "data": [[0, 0.387452316], [5, 0.225078949], [10, 0.23782956], [15, 0.423262656], [20, 0.350499594], [25, 0.476554582], [30, 0.318436689], [35, 0.350576828], [40, 0.316087878], [45, 0.41391794], [50, 0.607530199], [75, 0.453647721], [100, 0.528681341], [125, 0.644179933], [150, 0.750790224], [175, 0.982759218], [200, 1.080630463], [225, 1.32991263], [250, 1.412019437], [275, 1.654835285], [300, 2.721890073], [325, 2.177860634], [350, 2.438365843], [375, 2.762986825], [400, 4.998829313]] + }, { + "name": "fusion::vector", + "data": [[0, 0.776446742], [5, 1.138845934], [10, 1.07181919], [15, 0.898189481], [20, 1.392020004], [25, 1.471447602], [30, 1.227000566], [35, 1.749257349], [40, 1.669460005], [45, 1.407404153], [50, 1.326205354]] + }, { + "name": "fusion::list", + "data": [[0, 0.613434442], [5, 0.701570251], [10, 0.795726738], [15, 1.296314186], [20, 1.166448139], [25, 1.468463416], [30, 1.40029894], [35, 1.545485367], [40, 1.680287779], [45, 2.168141098], [50, 1.945069989]] + } + + + + + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.execute.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.execute.json new file mode 100644 index 0000000..1bd8763 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.transform.execute.json @@ -0,0 +1,33 @@ + + +{ + "title": { + "text": "Runtime behavior of transform" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.0], [10, 0.000203], [20, 0.000359], [30, 0.00055], [40, 0.00078], [50, 0.000852], [60, 0.000963], [70, 0.001117], [80, 0.001291], [90, 0.001514], [100, 0.001695]] + } + + , { + "name": "std::array", + "data": [[0, 0.0], [10, 0.000149], [20, 0.000426], [30, 0.000537], [40, 0.000724], [50, 0.000884], [60, 0.001282], [70, 0.001293], [80, 0.001316], [90, 0.001537], [100, 0.002365]] + } + + , { + "name": "std::vector", + "data": [[0, 0.0], [10, 0.000207], [20, 0.000422], [30, 0.00066], [40, 0.001167], [50, 0.001415], [60, 0.001618], [70, 0.001881], [80, 0.002105], [90, 0.002281], [100, 0.002582]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.0], [10, 0.000202], [20, 0.000434], [30, 0.000664], [40, 0.000886], [50, 0.001184]] + }, { + "name": "fusion::list", + "data": [[0, 0.0], [10, 0.000207], [20, 0.000422], [30, 0.000662], [40, 0.00088], [50, 0.001087]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.union.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.union.compile.json new file mode 100644 index 0000000..e82cd3d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.union.compile.json @@ -0,0 +1,13 @@ + + +{ + "title": { + "text": "Compile-time behavior of union_" + }, + "series": [ + { + "name": "hana::set", + "data": [[0, 0.373265575], [5, 0.43967103], [10, 0.597786283], [15, 0.824308331], [20, 1.118008341], [25, 1.454759997], [30, 1.95730837], [35, 2.411215006], [40, 3.046457064], [45, 3.73531982]] + } + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.unpack.compile.json b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.unpack.compile.json new file mode 100644 index 0000000..5546ed7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.unpack.compile.json @@ -0,0 +1,29 @@ + + +{ + "title": { + "text": "Compile-time behavior of unpack" + }, + "series": [ + { + "name": "hana::tuple", + "data": [[0, 0.126301206], [2, 0.131700457], [4, 0.136259985], [6, 0.135779877], [8, 0.142997859], [10, 0.140626118], [12, 0.141381366], [14, 0.146119022], [16, 0.14626263], [18, 0.151557205], [20, 0.152007825], [21, 0.152376319], [26, 0.157403349], [31, 0.163478716], [36, 0.168127379], [41, 0.173711869], [46, 0.181030657], [50, 0.185433258], [75, 0.216369663], [100, 0.249097902], [125, 0.274225998], [150, 0.311297075], [175, 0.34535425], [200, 0.385046309], [225, 0.423441372], [250, 0.457206081], [275, 0.508093525], [300, 0.551626231], [325, 0.592365449], [350, 0.646463935], [375, 0.700270922], [400, 0.769495302]] + }, { + "name": "hana::basic_tuple", + "data": [[0, 0.115649741], [2, 0.119007052], [4, 0.121622714], [6, 0.123705037], [8, 0.123438712], [10, 0.125017772], [12, 0.127620835], [14, 0.127409421], [16, 0.129795491], [18, 0.136027731], [20, 0.133640325], [21, 0.13390936], [26, 0.138012453], [31, 0.14395794], [36, 0.148474033], [41, 0.151694148], [46, 0.155570334], [50, 0.158981429], [75, 0.181406438], [100, 0.207551938], [125, 0.23105682], [150, 0.257188422], [175, 0.28764682], [200, 0.316491754], [225, 0.349475311], [250, 0.380228399], [275, 0.416391001], [300, 0.458370272], [325, 0.493678224], [350, 0.539083762], [375, 0.582768784], [400, 0.650688813]] + }, { + "name": "hana::set", + "data": [[0, 0.214660497], [2, 0.223804221], [4, 0.223004067], [6, 0.226543446], [8, 0.229647503], [10, 0.236508977], [12, 0.24271821], [14, 0.240198098], [16, 0.242360598], [18, 0.24911893], [20, 0.248859841], [21, 0.249565354], [26, 0.255582616], [31, 0.263705284], [36, 0.282143946], [41, 0.275814207], [46, 0.282394443], [50, 0.287732181], [75, 0.322370286], [100, 0.362694645], [125, 0.396839922], [150, 0.429989613], [175, 0.479198339], [200, 0.526140507], [225, 0.564566406], [250, 0.617876443], [275, 0.656305703], [300, 0.7092405], [325, 0.758712543], [350, 0.816260311], [375, 0.87467598], [400, 0.932553749]] + } + + + , { + "name": "fusion::vector", + "data": [[0, 0.741078419], [2, 0.719588016], [4, 0.762872553], [6, 0.768122662], [8, 0.781054284], [10, 0.806075894], [12, 0.86554901], [14, 0.895251937], [16, 0.944132809]] + }, { + "name": "fusion::list", + "data": [[0, 0.699718543], [2, 0.715975646], [4, 0.748554825], [6, 0.781990492], [8, 0.791939913], [10, 0.827888246], [12, 0.86731982], [14, 0.946432462], [16, 0.992166051]] + } + + ] +} diff --git a/boost_1_63_0/libs/hana/doc/html/bool_8hpp.html b/boost_1_63_0/libs/hana/doc/html/bool_8hpp.html new file mode 100644 index 0000000..c2e900d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/bool_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/bool.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
bool.hpp File Reference
+
+
+ +

Defines the Logical and Comparable models of boost::hana::integral_constant. +More...

+ + + + + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
 boost::hana::literals
 Namespace containing C++14 user-defined literals provided by Hana.
 
+ + + + + +

+Functions

template<char... c>
constexpr auto boost::hana::literals::operator""_c ()
 Creates a hana::integral_constant from a literal. More...
 
+

Detailed Description

+

Defines the Logical and Comparable models of boost::hana::integral_constant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/bool_8hpp.js b/boost_1_63_0/libs/hana/doc/html/bool_8hpp.js new file mode 100644 index 0000000..763b3af --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/bool_8hpp.js @@ -0,0 +1,4 @@ +var bool_8hpp = +[ + [ "operator\"\"_c", "bool_8hpp.html#a85ac3c47d02722a334181aab540e732c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/boost_2fusion_2vector_8hpp.html b/boost_1_63_0/libs/hana/doc/html/boost_2fusion_2vector_8hpp.html new file mode 100644 index 0000000..adf7711 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/boost_2fusion_2vector_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion/vector.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
vector.hpp File Reference
+
+
+ +

Adapts boost::fusion::vector for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::fusion::vector< T >
 Adapter for Boost.Fusion vectors. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts boost::fusion::vector for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/boost_2mpl_2vector_8hpp.html b/boost_1_63_0/libs/hana/doc/html/boost_2mpl_2vector_8hpp.html new file mode 100644 index 0000000..c7d76ec --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/boost_2mpl_2vector_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/mpl/vector.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
vector.hpp File Reference
+
+
+ +

Adapts boost::mpl::vector for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::mpl::vector< T >
 Adapter for Boost.MPL vectors. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts boost::mpl::vector for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/boost_8hpp.html b/boost_1_63_0/libs/hana/doc/html/boost_8hpp.html new file mode 100644 index 0000000..7ba4d08 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/boost_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost.hpp File Reference
+
+
+ +

Includes all the adaptors for external Boost libraries. +More...

+

Detailed Description

+

Includes all the adaptors for external Boost libraries.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/bug.html b/boost_1_63_0/libs/hana/doc/html/bug.html new file mode 100644 index 0000000..da048cf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/bug.html @@ -0,0 +1,147 @@ + + + + + + + + + +Boost.Hana: Bug List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Bug List
+
+
+
+
Member boost::hana::when_valid
+
Using when_valid seems to trigger ambiguous partial specializations on GCC.
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/canonical__constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/canonical__constant_8hpp.html new file mode 100644 index 0000000..2fbbb5c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/canonical__constant_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/canonical_constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
canonical_constant.hpp File Reference
+
+
+ +

Defines boost::hana::detail::CanonicalConstant. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::CanonicalConstant< T >
 Tag representing a canonical Constant. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::CanonicalConstant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/capture_8hpp.html b/boost_1_63_0/libs/hana/doc/html/capture_8hpp.html new file mode 100644 index 0000000..89cfbdd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/capture_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/capture.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
capture.hpp File Reference
+
+
+ +

Defines boost::hana::capture. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::capture
 Create a function capturing the given variables. More...
 
+

Detailed Description

+

Defines boost::hana::capture.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/capture_8hpp.js b/boost_1_63_0/libs/hana/doc/html/capture_8hpp.js new file mode 100644 index 0000000..587f13f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/capture_8hpp.js @@ -0,0 +1,4 @@ +var capture_8hpp = +[ + [ "capture", "capture_8hpp.html#ga41ada6b336e9d5bcb101ff0c737acbd0", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/cartesian__product_8hpp.html b/boost_1_63_0/libs/hana/doc/html/cartesian__product_8hpp.html new file mode 100644 index 0000000..1c4940f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/cartesian__product_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/cartesian_product.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
cartesian_product.hpp File Reference
+
+
+ +

Defines boost::hana::cartesian_product. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::cartesian_product.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/chain_8hpp.html b/boost_1_63_0/libs/hana/doc/html/chain_8hpp.html new file mode 100644 index 0000000..358db82 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/chain_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/chain.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
chain.hpp File Reference
+
+
+ +

Defines boost::hana::chain. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::chain.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/chart.js b/boost_1_63_0/libs/hana/doc/html/chart.js new file mode 100644 index 0000000..0c49699 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/chart.js @@ -0,0 +1,78 @@ +// Copyright Louis Dionne 2013-2016 +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) + +(function() { + 'use strict'; + + var Hana = {}; + Hana.initChart = function(div, options) { + if (options.xAxis == undefined) { + options.xAxis = { + title: { text: "Number of elements" }, + minTickInterval: 1 + }; + } + + if (options.yAxis == undefined) { + options.yAxis = { + title: { text: "Time (s)" }, + floor: 0 + }; + } + + if (options.subtitle == undefined) { + options.subtitle = { text: "(smaller is better)" }; + } + + if (options.chart == undefined) { + options.chart = { zoomType: 'xy' }; + } + + options.plotOptions = options.plotOptions || {}; + options.plotOptions.series = options.plotOptions.series || {}; + options.plotOptions.series.marker = options.plotOptions.series.marker || { enabled: false }; + + if (options.title.x == undefined) { + options.title.x = -20; // center + } + + if (options.series.stickyTracking == undefined) { + options.series.stickyTracking = false; + } + + // Fix the colors so that a series has the same color on all the charts. + // Based on the colors at http://api.highcharts.com/highcharts#colors. + var colorMap = { + 'hana::tuple': '#f45b5b' + , 'hana::basic_tuple': '#434348' + , 'mpl::vector': '#90ed7d' + , 'std::array': '#8085e9' + , 'fusion::vector': '#f7a35c' + , 'std::vector: ': '#f15c80' + , 'std::tuple': '#e4d354' + , 'hana::set': '#2b908f' + , 'hana::map': '#7cb5ec' + , 'fusion::list': '#91e8e1' + }; + options.series.forEach(function(series) { + if (colorMap[series.name]) + series.color = colorMap[series.name]; + }); + + options.tooltip = options.tooltip || {}; + options.tooltip.valueSuffix = options.tooltip.valueSuffix || 's'; + + if (options.legend == undefined) { + options.legend = { + layout: 'vertical', + align: 'right', + verticalAlign: 'middle', + borderWidth: 0 + }; + } + div.highcharts(options); + }; + + window.Hana = Hana; +})(); diff --git a/boost_1_63_0/libs/hana/doc/html/classes.html b/boost_1_63_0/libs/hana/doc/html/classes.html new file mode 100644 index 0000000..1d1fb7a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/classes.html @@ -0,0 +1,271 @@ + + + + + + + + + +Boost.Hana: Class Index + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
A | B | C | D | E | F | H | I | L | M | N | O | P | R | S | T | V | W
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  C  
+
CanonicalConstant (boost::hana::detail)   
  I  
+
IntegralConstant (boost::hana)   
  a  
+
advance_until (boost::hana::at_key_detail)   
any_of (boost::hana::detail)   
array (boost::hana::detail)   
adl (boost::hana::detail::operators)   
array (std)   
  b  
+
basic_tuple (boost::hana)   
basic_tuple_tag (boost::hana)   
basic_type (boost::hana)   
  c  
+
common (boost::hana)   
create (boost::hana::detail)   
  d  
+
deque (boost::fusion)   
default_ (boost::hana)   
decay (boost::hana::detail)   
  e  
+
embedding (boost::hana)   
  f  
+
first_unsatisfied_index (boost::hana::detail)   
  h  
+
has_duplicates (boost::hana::detail)   
has_common (boost::hana)   
  i  
+
index_if (boost::hana::detail)   
integral_constant (boost::hana)   
integral_constant_tag (boost::hana)   
is_convertible (boost::hana)   
is_default (boost::hana)   
is_embedded (boost::hana)   
integral_c (boost::mpl)   
integer_sequence (std)   
integral_constant (std)   
  l  
+
list (boost::fusion)   
lazy (boost::hana)   
lazy_tag (boost::hana)   
list (boost::mpl)   
  m  
+
map (boost::hana)   
map_tag (boost::hana)   
  n  
+
nested_by (boost::hana::detail)   
nested_than (boost::hana::detail)   
nested_to (boost::hana::detail)   
  o  
+
optional (boost::hana)   
optional_tag (boost::hana)   
  p  
+
pair (boost::hana)   
pair_tag (boost::hana)   
pair (std)   
  r  
+
range (boost::hana)   
range_tag (boost::hana)   
ratio (std)   
  s  
+
std_common_type (boost::hana::detail)   
set (boost::hana)   
set_tag (boost::hana)   
string (boost::hana)   
string_tag (boost::hana)   
  t  
+
tuple (boost::fusion)   
type_at (boost::hana::detail)   
types (boost::hana::experimental)   
tag_of (boost::hana)   
tuple (boost::hana)   
tuple_tag (boost::hana)   
type (boost::hana)   
type_tag (boost::hana)   
tuple (boost)   
tuple (std)   
  v  
+
vector (boost::fusion)   
vector (boost::mpl)   
  w  
+
which (boost::hana::constant_detail)   
+
A | B | C | D | E | F | H | I | L | M | N | O | P | R | S | T | V | W
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/classstd_1_1ratio.html b/boost_1_63_0/libs/hana/doc/html/classstd_1_1ratio.html new file mode 100644 index 0000000..8a7c327 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/classstd_1_1ratio.html @@ -0,0 +1,158 @@ + + + + + + + + + +Boost.Hana: std::ratio< Num, Denom > Class Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::ratio< Num, Denom > Class Template Reference
+
+
+

Description

+

template<std::intmax_t Num, std::intmax_t Denom>
+class std::ratio< Num, Denom >

+ +

Adaptation of std::ratio for Hana.

+

Modeled concepts

+
    +
  1. Comparable
    +std::ratios are compared for equality using std::ratio_equal.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <ratio>
    namespace hana = boost::hana;
    int main() { }
  2. +
  3. Orderable
    +std::ratios are ordered using std::ratio_less.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <ratio>
    namespace hana = boost::hana;
    int main() { }
  4. +
  5. Monoid, Group, Ring, and EuclideanRing
    +std::ratios are added, subtracted, multiplied and divided using std::ratio_add, std::ratio_subtract, std::ratio_multiply and std::ratio_divide, respectively. Furthermore, the neutral element for the additive operation is std::ratio<0, 1>{}, and the neutral element for the multiplicative operation is std::ratio<1, 1>{}.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <ratio>
    namespace hana = boost::hana;
    ));
    ));
    ));
    ));
    // The mod of two ratios is always 0, because they can always be
    // divided without remainder.
    ));
    hana::zero<hana::ext::std::ratio_tag>(),
    ));
    hana::one<hana::ext::std::ratio_tag>(),
    ));
    int main() { }
  6. +
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/closed.png b/boost_1_63_0/libs/hana/doc/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..b6e4a400890f5b9ae06d1e5b9fdd44beb5e74e35 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0y~yVBiE{4mJh`h6fYb1Q-|?d^}woLn;{G&JE;sP~>6e z&w0q`$WhVsp+WD2N8Bb|0}+$A*Yl!P8D@OBsFpB?vBqWwLo)A`Pj7#IoD|QY-#T~8 llT;2{>%Rv?FEwN^uKFdye_B#%9s>gdgQu&X%Q~loCIDB6D*pfg literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/comparing_8hpp.html b/boost_1_63_0/libs/hana/doc/html/comparing_8hpp.html new file mode 100644 index 0000000..4bfa7ff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/comparing_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/comparing.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
comparing.hpp File Reference
+
+
+ +

Defines boost::hana::comparing. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::comparing.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/compose_8hpp.html b/boost_1_63_0/libs/hana/doc/html/compose_8hpp.html new file mode 100644 index 0000000..45ff3be --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/compose_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/compose.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
compose.hpp File Reference
+
+
+ +

Defines boost::hana::compose. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::compose
 Return the composition of two functions or more. More...
 
+

Detailed Description

+

Defines boost::hana::compose.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/compose_8hpp.js b/boost_1_63_0/libs/hana/doc/html/compose_8hpp.js new file mode 100644 index 0000000..1d7531e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/compose_8hpp.js @@ -0,0 +1,4 @@ +var compose_8hpp = +[ + [ "compose", "compose_8hpp.html#ga3b16146e53efcdf9ecbb9a7b21f8cd0b", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/concat_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concat_8hpp.html new file mode 100644 index 0000000..2a97cf1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concat_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concat.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
concat.hpp File Reference
+
+
+ +

Defines boost::hana::concat. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::concat.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2applicative_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2applicative_8hpp.html new file mode 100644 index 0000000..965edf1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2applicative_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/applicative.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
applicative.hpp File Reference
+
+
+ +

Defines boost::hana::Applicative. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Applicative.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2comonad_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2comonad_8hpp.html new file mode 100644 index 0000000..41a6b22 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2comonad_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/comonad.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
comonad.hpp File Reference
+
+
+ +

Defines boost::hana::Comonad. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Comonad.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2comparable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2comparable_8hpp.html new file mode 100644 index 0000000..01b9465 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2comparable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/comparable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
comparable.hpp File Reference
+
+
+ +

Defines boost::hana::Comparable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Comparable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2constant_8hpp.html new file mode 100644 index 0000000..8622488 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2constant_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
constant.hpp File Reference
+
+
+ +

Defines boost::hana::Constant. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Constant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2euclidean__ring_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2euclidean__ring_8hpp.html new file mode 100644 index 0000000..31205b5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2euclidean__ring_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/euclidean_ring.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
euclidean_ring.hpp File Reference
+
+
+ +

Defines boost::hana::EuclideanRing. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::EuclideanRing.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2foldable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2foldable_8hpp.html new file mode 100644 index 0000000..7374674 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2foldable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/foldable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
foldable.hpp File Reference
+
+
+ +

Defines boost::hana::Foldable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Foldable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2functor_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2functor_8hpp.html new file mode 100644 index 0000000..59d22d2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2functor_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/functor.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
functor.hpp File Reference
+
+
+ +

Defines boost::hana::Functor. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Functor.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2group_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2group_8hpp.html new file mode 100644 index 0000000..03f18bb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2group_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/group.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
group.hpp File Reference
+
+
+ +

Defines boost::hana::Group. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Group.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2hashable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2hashable_8hpp.html new file mode 100644 index 0000000..e25096b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2hashable_8hpp.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/hashable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
hashable.hpp File Reference
+
+
+ +

Defines boost::hana::Hashable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Hashable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2integral__constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2integral__constant_8hpp.html new file mode 100644 index 0000000..02b3e71 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2integral__constant_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/integral_constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
integral_constant.hpp File Reference
+
+
+ +

Defines boost::hana::IntegralConstant. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::IntegralConstant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2iterable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2iterable_8hpp.html new file mode 100644 index 0000000..2a37dbb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2iterable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/iterable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
iterable.hpp File Reference
+
+
+ +

Defines boost::hana::Iterable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Iterable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2logical_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2logical_8hpp.html new file mode 100644 index 0000000..2a3e103 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2logical_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/logical.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
logical.hpp File Reference
+
+
+ +

Defines boost::hana::Logical. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Logical.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2metafunction_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2metafunction_8hpp.html new file mode 100644 index 0000000..09c32e3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2metafunction_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/metafunction.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
metafunction.hpp File Reference
+
+
+ +

Defines boost::hana::Metafunction. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Metafunction.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2monad_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2monad_8hpp.html new file mode 100644 index 0000000..4494a16 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2monad_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/monad.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monad.hpp File Reference
+
+
+ +

Defines boost::hana::Monad. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Monad.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2monad__plus_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2monad__plus_8hpp.html new file mode 100644 index 0000000..33b7559 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2monad__plus_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/monad_plus.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monad_plus.hpp File Reference
+
+
+ +

Defines boost::hana::MonadPlus. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::MonadPlus.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2monoid_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2monoid_8hpp.html new file mode 100644 index 0000000..26264bf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2monoid_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/monoid.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monoid.hpp File Reference
+
+
+ +

Defines boost::hana::Monoid. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Monoid.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2orderable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2orderable_8hpp.html new file mode 100644 index 0000000..9a8bdb6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2orderable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/orderable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
orderable.hpp File Reference
+
+
+ +

Defines boost::hana::Orderable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Orderable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2product_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2product_8hpp.html new file mode 100644 index 0000000..6230f5a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2product_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/product.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
product.hpp File Reference
+
+
+ +

Defines boost::hana::Product. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Product.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2ring_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2ring_8hpp.html new file mode 100644 index 0000000..f6c8148 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2ring_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/ring.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ring.hpp File Reference
+
+
+ +

Defines boost::hana::Ring. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Ring.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2searchable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2searchable_8hpp.html new file mode 100644 index 0000000..5729b78 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2searchable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/searchable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
searchable.hpp File Reference
+
+
+ +

Defines boost::hana::Searchable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Searchable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2sequence_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2sequence_8hpp.html new file mode 100644 index 0000000..36ae8f0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2sequence_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/sequence.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sequence.hpp File Reference
+
+
+ +

Defines boost::hana::Sequence. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Sequence.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_2struct_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_2struct_8hpp.html new file mode 100644 index 0000000..bb6c244 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_2struct_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept/struct.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
struct.hpp File Reference
+
+
+ +

Defines boost::hana::Struct. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::Struct.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concept_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concept_8hpp.html new file mode 100644 index 0000000..1bd597f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concept_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
concept.hpp File Reference
+
+
+ +

Master header for the boost/hana/concept/ subdirectory. +More...

+

Detailed Description

+

Master header for the boost/hana/concept/ subdirectory.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/concepts_8hpp.html b/boost_1_63_0/libs/hana/doc/html/concepts_8hpp.html new file mode 100644 index 0000000..a7de4b5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/concepts_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/concepts.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
concepts.hpp File Reference
+
+
+ +

Defines concepts from the Standard library. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines concepts from the Standard library.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/config_8hpp.html b/boost_1_63_0/libs/hana/doc/html/config_8hpp.html new file mode 100644 index 0000000..8addff6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/config_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/config.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
config.hpp File Reference
+
+
+ +

Defines configuration macros used throughout the library. +More...

+ + + + + + + + + + + + + + +

+Macros

#define BOOST_HANA_CONFIG_DISABLE_ASSERTIONS
 Disables the BOOST_HANA_*_ASSERT macro & friends. More...
 
#define BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS
 Disables concept checks in interface methods. More...
 
#define BOOST_HANA_CONFIG_ENABLE_STRING_UDL
 Enables usage of the "string literal operator template" GNU extension. More...
 
#define BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE
 Enables additional assertions and sanity checks to be done by Hana. More...
 
+

Detailed Description

+

Defines configuration macros used throughout the library.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/config_8hpp.js b/boost_1_63_0/libs/hana/doc/html/config_8hpp.js new file mode 100644 index 0000000..d507458 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/config_8hpp.js @@ -0,0 +1,7 @@ +var config_8hpp = +[ + [ "BOOST_HANA_CONFIG_DISABLE_ASSERTIONS", "group__group-config.html#ga08dcc32bef198420e646244e851d1995", null ], + [ "BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS", "group__group-config.html#gad2b44f7cf8a6ba1002437a1a89e62acd", null ], + [ "BOOST_HANA_CONFIG_ENABLE_STRING_UDL", "group__group-config.html#ga81de60f5bea16e6ff4a38c94e3022f10", null ], + [ "BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE", "group__group-config.html#ga95603295cd6cc840c0dbc50b75e02ee9", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/contains_8hpp.html b/boost_1_63_0/libs/hana/doc/html/contains_8hpp.html new file mode 100644 index 0000000..6e68881 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/contains_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/contains.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
contains.hpp File Reference
+
+
+ +

Defines boost::hana::contains and boost::hana::in. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::contains and boost::hana::in.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_2common_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_2common_8hpp.html new file mode 100644 index 0000000..219f16c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_2common_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/common.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
common.hpp File Reference
+
+
+ +

Defines boost::hana::common and boost::hana::common_t. +More...

+ + + + + + + +

+Classes

struct  boost::hana::has_common< T, U, typename >
 Metafunction returning whether two data types share a common data type. More...
 
struct  boost::hana::constant_detail::which< A, B, C >
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::common and boost::hana::common_t.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_2default_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_2default_8hpp.html new file mode 100644 index 0000000..e03dc62 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_2default_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/default.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
default.hpp File Reference
+
+
+ +

Defines boost::hana::default_ and boost::hana::is_default. +More...

+ + + + + +

+Classes

struct  boost::hana::is_default< Method, typename >
 Returns whether a tag-dispatched method implementation is a default implementation. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::default_ and boost::hana::is_default.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_2is__a_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_2is__a_8hpp.html new file mode 100644 index 0000000..ff26180 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_2is__a_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/is_a.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_a.hpp File Reference
+
+
+ +

Defines boost::hana::is_a and boost::hana::is_an. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::is_a and boost::hana::is_an.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_2make_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_2make_8hpp.html new file mode 100644 index 0000000..1385078 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_2make_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/make.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
make.hpp File Reference
+
+
+ +

Defines boost::hana::make. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::make.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_2tag__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_2tag__of_8hpp.html new file mode 100644 index 0000000..2a757bd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_2tag__of_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/tag_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tag_of.hpp File Reference
+
+
+ +

Defines boost::hana::tag_of and boost::hana::tag_of_t. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::tag_of and boost::hana::tag_of_t.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_2to_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_2to_8hpp.html new file mode 100644 index 0000000..f8dfd1a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_2to_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/to.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
to.hpp File Reference
+
+
+ +

Defines boost::hana::to and related utilities. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::is_convertible< From, To, typename >
 Returns whether there is a Hana-conversion from a data type to another. More...
 
struct  boost::hana::is_embedded< From, To, typename >
 Returns whether a data type can be embedded into another data type. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::to and related utilities.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_2when_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_2when_8hpp.html new file mode 100644 index 0000000..371cf3f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_2when_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/when.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
when.hpp File Reference
+
+
+ +

Defines boost::hana::when and boost::hana::when_valid. +More...

+

Detailed Description

+

Defines boost::hana::when and boost::hana::when_valid.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/core_8hpp.html b/boost_1_63_0/libs/hana/doc/html/core_8hpp.html new file mode 100644 index 0000000..b34977f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/core_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/core.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
core.hpp File Reference
+
+
+ +

Defines the Core module. +More...

+

Detailed Description

+

Defines the Core module.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/count_8hpp.html b/boost_1_63_0/libs/hana/doc/html/count_8hpp.html new file mode 100644 index 0000000..15a809f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/count_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/count.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
count.hpp File Reference
+
+
+ +

Defines boost::hana::count. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::count.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/count__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/count__if_8hpp.html new file mode 100644 index 0000000..cc80963 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/count__if_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/count_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
count_if.hpp File Reference
+
+
+ +

Defines boost::hana::count_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::count_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/create_8hpp.html b/boost_1_63_0/libs/hana/doc/html/create_8hpp.html new file mode 100644 index 0000000..fe00f99 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/create_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/create.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
create.hpp File Reference
+
+
+ +

Defines boost::hana::detail::create. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::create< T >
 Implementation of the generic std::make_xxx pattern for arbitrary xxxs. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::create.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/curry_8hpp.html b/boost_1_63_0/libs/hana/doc/html/curry_8hpp.html new file mode 100644 index 0000000..6918925 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/curry_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/curry.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
curry.hpp File Reference
+
+
+ +

Defines boost::hana::curry. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<std::size_t n>
constexpr auto boost::hana::curry
 Curry a function up to the given number of arguments. More...
 
+

Detailed Description

+

Defines boost::hana::curry.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/curry_8hpp.js b/boost_1_63_0/libs/hana/doc/html/curry_8hpp.js new file mode 100644 index 0000000..756c5e7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/curry_8hpp.js @@ -0,0 +1,4 @@ +var curry_8hpp = +[ + [ "curry", "curry_8hpp.html#ga49ea872ade5ac8f6c10052c495302e89", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/cycle_8hpp.html b/boost_1_63_0/libs/hana/doc/html/cycle_8hpp.html new file mode 100644 index 0000000..fc6c3cd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/cycle_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/cycle.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
cycle.hpp File Reference
+
+
+ +

Defines boost::hana::cycle. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::cycle.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/decay_8hpp.html b/boost_1_63_0/libs/hana/doc/html/decay_8hpp.html new file mode 100644 index 0000000..4886c0f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/decay_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/decay.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
decay.hpp File Reference
+
+
+ +

Defines a replacement for std::decay, which is sometimes too slow at compile-time. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::decay< T, U >
 Equivalent to std::decay, except faster. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines a replacement for std::decay, which is sometimes too slow at compile-time.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/define__struct_8hpp.html b/boost_1_63_0/libs/hana/doc/html/define__struct_8hpp.html new file mode 100644 index 0000000..212af1c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/define__struct_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/define_struct.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
define_struct.hpp File Reference
+
+
+ +

Defines the BOOST_HANA_DEFINE_STRUCT macro. +More...

+

Detailed Description

+

Defines the BOOST_HANA_DEFINE_STRUCT macro.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/demux_8hpp.html b/boost_1_63_0/libs/hana/doc/html/demux_8hpp.html new file mode 100644 index 0000000..a6beef9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/demux_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/demux.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
demux.hpp File Reference
+
+
+ +

Defines boost::hana::demux. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::demux
 Invoke a function with the results of invoking other functions on its arguments. More...
 
+

Detailed Description

+

Defines boost::hana::demux.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/demux_8hpp.js b/boost_1_63_0/libs/hana/doc/html/demux_8hpp.js new file mode 100644 index 0000000..d7e4284 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/demux_8hpp.js @@ -0,0 +1,4 @@ +var demux_8hpp = +[ + [ "demux", "demux_8hpp.html#ga3a8316acd5efa22c3d1861b62d5df3c2", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dependent__on_8hpp.html b/boost_1_63_0/libs/hana/doc/html/dependent__on_8hpp.html new file mode 100644 index 0000000..92bd265 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dependent__on_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/dependent_on.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
dependent_on.hpp File Reference
+
+
+ +

Defines boost::hana::detail::dependent_on. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::dependent_on.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/deprecated.html b/boost_1_63_0/libs/hana/doc/html/deprecated.html new file mode 100644 index 0000000..f1d67aa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/deprecated.html @@ -0,0 +1,147 @@ + + + + + + + + + +Boost.Hana: Deprecated List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Deprecated List
+
+
+
+
Member decltype_
+
The semantics of decltype_ can be confusing, and hana::typeid_ should be preferred instead. decltype_ may be removed in the next major version of the library.
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/deque_8hpp.html b/boost_1_63_0/libs/hana/doc/html/deque_8hpp.html new file mode 100644 index 0000000..810beef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/deque_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion/deque.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
deque.hpp File Reference
+
+
+ +

Adapts boost::fusion::deque for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::fusion::deque< T >
 Adapter for Boost.Fusion deques. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts boost::fusion::deque for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2any__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2any__of_8hpp.html new file mode 100644 index 0000000..9be144a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2any__of_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/any_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
any_of.hpp File Reference
+
+
+ +

Defines boost::hana::detail::any_of. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::any_of< Predicate, T >
 Returns whether the Predicate is satisfied by any of the T.... More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::any_of.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2array_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2array_8hpp.html new file mode 100644 index 0000000..2a3350d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2array_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/array.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
array.hpp File Reference
+
+
+ +

Defines boost::hana::detail::array. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::array< T, Size >
 A minimal std::array with better constexpr support. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::array.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2integral__constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2integral__constant_8hpp.html new file mode 100644 index 0000000..ad4b8e1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2integral__constant_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/integral_constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
integral_constant.hpp File Reference
+
+
+ +

Defines the barebones boost::hana::integral_constant template, but no operations on it. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::integral_constant_tag< T >
 Tag representing hana::integral_constant. More...
 
struct  boost::hana::integral_constant< T, v >
 Compile-time value of an integral type. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines the barebones boost::hana::integral_constant template, but no operations on it.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2operators_2comparable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2comparable_8hpp.html new file mode 100644 index 0000000..4aa8813 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2comparable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/comparable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
comparable.hpp File Reference
+
+
+ +

Defines operators for Comparables. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines operators for Comparables.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2operators_2iterable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2iterable_8hpp.html new file mode 100644 index 0000000..a0dc22e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2iterable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/iterable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
iterable.hpp File Reference
+
+
+ +

Defines operators for Iterables. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines operators for Iterables.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2operators_2logical_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2logical_8hpp.html new file mode 100644 index 0000000..dc09502 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2logical_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/logical.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
logical.hpp File Reference
+
+
+ +

Defines logical operators. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines logical operators.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2operators_2monad_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2monad_8hpp.html new file mode 100644 index 0000000..0e5fe78 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2monad_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/monad.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monad.hpp File Reference
+
+
+ +

Defines operators for Monads. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines operators for Monads.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2operators_2orderable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2orderable_8hpp.html new file mode 100644 index 0000000..0805df0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2orderable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/orderable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
orderable.hpp File Reference
+
+
+ +

Defines operators for Orderables. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines operators for Orderables.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2operators_2searchable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2searchable_8hpp.html new file mode 100644 index 0000000..b72b4d7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2operators_2searchable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators/searchable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
searchable.hpp File Reference
+
+
+ +

Defines operators for Searchables. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines operators for Searchables.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/detail_2variadic_2at_8hpp.html b/boost_1_63_0/libs/hana/doc/html/detail_2variadic_2at_8hpp.html new file mode 100644 index 0000000..ea68ed8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/detail_2variadic_2at_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/at.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
at.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::at. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::at.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/difference_8hpp.html b/boost_1_63_0/libs/hana/doc/html/difference_8hpp.html new file mode 100644 index 0000000..bbb755c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/difference_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/difference.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
difference.hpp File Reference
+
+
+ +

Defines boost::hana::difference. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::difference.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.html b/boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.html new file mode 100644 index 0000000..99dabf3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.html @@ -0,0 +1,247 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
detail Directory Reference
+
+
+ + +

+Directories

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  algorithm.hpp
 Defines several constexpr algorithms.
 
file  any_of.hpp
 Defines boost::hana::detail::any_of.
 
file  array.hpp
 Defines boost::hana::detail::array.
 
file  canonical_constant.hpp
 Defines boost::hana::detail::CanonicalConstant.
 
file  concepts.hpp
 Defines concepts from the Standard library.
 
file  create.hpp
 Defines boost::hana::detail::create.
 
file  decay.hpp
 Defines a replacement for std::decay, which is sometimes too slow at compile-time.
 
file  dependent_on.hpp
 Defines boost::hana::detail::dependent_on.
 
file  dispatch_if.hpp
 Defines BOOST_HANA_DISPATCH_IF.
 
file  fast_and.hpp
 Defines boost::hana::detail::fast_and.
 
file  first_unsatisfied_index.hpp
 Defines boost::hana::detail::first_unsatisfied_index.
 
file  has_common_embedding.hpp
 Defines boost::hana::detail::has_[nontrivial_]common_embedding.
 
file  has_duplicates.hpp
 Defines boost::hana::detail::has_duplicates.
 
file  hash_table.hpp
 Defines boost::hana::detail::hash_table.
 
file  index_if.hpp
 Defines boost::hana::detail::index_if.
 
file  integral_constant.hpp
 Defines the barebones boost::hana::integral_constant template, but no operations on it.
 
file  intrinsics.hpp
 Defines macros for commonly used type traits.
 
file  nested_by.hpp
 Defines boost::hana::detail::nested_by.
 
file  nested_by_fwd.hpp
 Forward declares boost::hana::detail::nested_by.
 
file  nested_than.hpp
 Defines boost::hana::detail::nested_than.
 
file  nested_than_fwd.hpp
 Forward declares boost::hana::detail::nested_than.
 
file  nested_to.hpp
 Defines boost::hana::detail::nested_to.
 
file  nested_to_fwd.hpp
 Forward declares boost::hana::detail::nested_to.
 
file  preprocessor.hpp
 Defines generally useful preprocessor macros.
 
file  std_common_type.hpp
 Defines a SFINAE-friendly version of std::common_type.
 
file  struct_macros.hpp
 Defines the BOOST_HANA_DEFINE_STRUCT, BOOST_HANA_ADAPT_STRUCT, and BOOST_HANA_ADAPT_ADT macros.
 
file  type_at.hpp
 Defines boost::hana::detail::type_at.
 
file  type_foldl1.hpp
 Defines boost::hana::detail::type_foldl1.
 
file  type_foldr1.hpp
 Defines boost::hana::detail::type_foldr1.
 
file  unpack_flatten.hpp
 Defines boost::hana::detail::unpack_flatten.
 
file  void_t.hpp
 Defines an equivalent to the proposed std::void_t.
 
file  wrong.hpp
 Defines boost::hana::detail::wrong.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.js b/boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.js new file mode 100644 index 0000000..9c8ee3b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_0a4844ac9cb2026bd07faf42b116b549.js @@ -0,0 +1,41 @@ +var dir_0a4844ac9cb2026bd07faf42b116b549 = +[ + [ "operators", "dir_0cd2b357ffff5ecfb0310070703d859b.html", "dir_0cd2b357ffff5ecfb0310070703d859b" ], + [ "variadic", "dir_3a2d86f21a1d869e2ec4e510547bf681.html", "dir_3a2d86f21a1d869e2ec4e510547bf681" ], + [ "algorithm.hpp", "algorithm_8hpp.html", null ], + [ "any_of.hpp", "detail_2any__of_8hpp.html", null ], + [ "array.hpp", "detail_2array_8hpp.html", null ], + [ "canonical_constant.hpp", "canonical__constant_8hpp.html", null ], + [ "concepts.hpp", "concepts_8hpp.html", null ], + [ "create.hpp", "create_8hpp.html", null ], + [ "decay.hpp", "decay_8hpp.html", null ], + [ "dependent_on.hpp", "dependent__on_8hpp.html", null ], + [ "dispatch_if.hpp", "dispatch__if_8hpp.html", "dispatch__if_8hpp" ], + [ "fast_and.hpp", "fast__and_8hpp.html", null ], + [ "first_unsatisfied_index.hpp", "first__unsatisfied__index_8hpp.html", null ], + [ "has_common_embedding.hpp", "has__common__embedding_8hpp.html", "has__common__embedding_8hpp" ], + [ "has_duplicates.hpp", "has__duplicates_8hpp.html", null ], + [ "hash_table.hpp", "hash__table_8hpp.html", null ], + [ "index_if.hpp", "index__if_8hpp.html", null ], + [ "integral_constant.hpp", "detail_2integral__constant_8hpp.html", [ + [ "integral_constant_tag", "structboost_1_1hana_1_1integral__constant__tag.html", null ] + ] ], + [ "intrinsics.hpp", "intrinsics_8hpp.html", null ], + [ "nested_by.hpp", "nested__by_8hpp.html", null ], + [ "nested_by_fwd.hpp", "nested__by__fwd_8hpp.html", null ], + [ "nested_than.hpp", "nested__than_8hpp.html", null ], + [ "nested_than_fwd.hpp", "nested__than__fwd_8hpp.html", null ], + [ "nested_to.hpp", "nested__to_8hpp.html", null ], + [ "nested_to_fwd.hpp", "nested__to__fwd_8hpp.html", null ], + [ "preprocessor.hpp", "preprocessor_8hpp.html", "preprocessor_8hpp" ], + [ "std_common_type.hpp", "std__common__type_8hpp.html", null ], + [ "struct_macros.hpp", "struct__macros_8hpp.html", null ], + [ "type_at.hpp", "type__at_8hpp.html", null ], + [ "type_foldl1.hpp", "type__foldl1_8hpp.html", null ], + [ "type_foldr1.hpp", "type__foldr1_8hpp.html", null ], + [ "unpack_flatten.hpp", "unpack__flatten_8hpp.html", null ], + [ "void_t.hpp", "void__t_8hpp.html", null ], + [ "wrong.hpp", "wrong_8hpp.html", [ + [ "wrong", "structboost_1_1hana_1_1detail_1_1wrong.html", null ] + ] ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.html b/boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.html new file mode 100644 index 0000000..b200de7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/operators Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
operators Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  adl.hpp
 Defines boost::hana::detail::operators::adl.
 
file  arithmetic.hpp
 Defines arithmetic operators.
 
file  comparable.hpp
 Defines operators for Comparables.
 
file  iterable.hpp
 Defines operators for Iterables.
 
file  logical.hpp
 Defines logical operators.
 
file  monad.hpp
 Defines operators for Monads.
 
file  orderable.hpp
 Defines operators for Orderables.
 
file  searchable.hpp
 Defines operators for Searchables.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.js b/boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.js new file mode 100644 index 0000000..52c6e03 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_0cd2b357ffff5ecfb0310070703d859b.js @@ -0,0 +1,11 @@ +var dir_0cd2b357ffff5ecfb0310070703d859b = +[ + [ "adl.hpp", "adl_8hpp.html", null ], + [ "arithmetic.hpp", "arithmetic_8hpp.html", null ], + [ "comparable.hpp", "detail_2operators_2comparable_8hpp.html", null ], + [ "iterable.hpp", "detail_2operators_2iterable_8hpp.html", null ], + [ "logical.hpp", "detail_2operators_2logical_8hpp.html", null ], + [ "monad.hpp", "detail_2operators_2monad_8hpp.html", null ], + [ "orderable.hpp", "detail_2operators_2orderable_8hpp.html", null ], + [ "searchable.hpp", "detail_2operators_2searchable_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.html b/boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.html new file mode 100644 index 0000000..9b9fd11 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.html @@ -0,0 +1,154 @@ + + + + + + + + + +Boost.Hana: boost Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost Directory Reference
+
+
+ + +

+Directories

+ + + + +

+Files

file  hana.hpp
 Includes all the library components except the adapters for external libraries.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.js b/boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.js new file mode 100644 index 0000000..9759dac --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_1878a3f4746a95c6aad317458cc7ef80.js @@ -0,0 +1,5 @@ +var dir_1878a3f4746a95c6aad317458cc7ef80 = +[ + [ "hana", "dir_daf74c896eae580804ddb7810f485dad.html", "dir_daf74c896eae580804ddb7810f485dad" ], + [ "hana.hpp", "hana_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.html b/boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.html new file mode 100644 index 0000000..2bf6aca --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost/hana/experimental Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
experimental Directory Reference
+
+
+ + + + + +

+Files

file  types.hpp
 Defines boost::hana::experimental::types.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.js b/boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.js new file mode 100644 index 0000000..bfb1f40 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_323f3a97cf58df541572718162fe1793.js @@ -0,0 +1,4 @@ +var dir_323f3a97cf58df541572718162fe1793 = +[ + [ "types.hpp", "types_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.html b/boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.html new file mode 100644 index 0000000..9ab23e4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
variadic Directory Reference
+
+
+ + +

+Directories

+ + + + + + + + + + + + + + + + + + + + + + +

+Files

file  at.hpp
 Defines boost::hana::detail::variadic::at.
 
file  drop_into.hpp
 Defines boost::hana::detail::variadic::drop_into.
 
file  foldl1.hpp
 Defines boost::hana::detail::variadic::foldl1.
 
file  foldr1.hpp
 Defines boost::hana::detail::variadic::foldr1.
 
file  reverse_apply.hpp
 Defines boost::hana::detail::variadic::reverse_apply.
 
file  split_at.hpp
 Defines boost::hana::detail::variadic::split_at.
 
file  take.hpp
 Defines boost::hana::detail::variadic::take.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.js b/boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.js new file mode 100644 index 0000000..b693756 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_3a2d86f21a1d869e2ec4e510547bf681.js @@ -0,0 +1,11 @@ +var dir_3a2d86f21a1d869e2ec4e510547bf681 = +[ + [ "reverse_apply", "dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.html", "dir_cd91aed0e5b3a0fe3db2eb07a1431dc6" ], + [ "at.hpp", "detail_2variadic_2at_8hpp.html", null ], + [ "drop_into.hpp", "drop__into_8hpp.html", null ], + [ "foldl1.hpp", "foldl1_8hpp.html", null ], + [ "foldr1.hpp", "foldr1_8hpp.html", null ], + [ "reverse_apply.hpp", "reverse__apply_8hpp.html", null ], + [ "split_at.hpp", "split__at_8hpp.html", null ], + [ "take.hpp", "take_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.html b/boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.html new file mode 100644 index 0000000..449cce4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/core Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
core Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  common.hpp
 Defines boost::hana::common and boost::hana::common_t.
 
file  default.hpp
 Defines boost::hana::default_ and boost::hana::is_default.
 
file  dispatch.hpp
 Includes all the headers needed to setup tag-dispatching.
 
file  is_a.hpp
 Defines boost::hana::is_a and boost::hana::is_an.
 
file  make.hpp
 Defines boost::hana::make.
 
file  tag_of.hpp
 Defines boost::hana::tag_of and boost::hana::tag_of_t.
 
file  to.hpp
 Defines boost::hana::to and related utilities.
 
file  when.hpp
 Defines boost::hana::when and boost::hana::when_valid.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.js b/boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.js new file mode 100644 index 0000000..04dc900 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_579efcf19f0a51e7b529b5b94ff4dd6f.js @@ -0,0 +1,13 @@ +var dir_579efcf19f0a51e7b529b5b94ff4dd6f = +[ + [ "common.hpp", "core_2common_8hpp.html", [ + [ "which", "structboost_1_1hana_1_1constant__detail_1_1which.html", null ] + ] ], + [ "default.hpp", "core_2default_8hpp.html", null ], + [ "dispatch.hpp", "dispatch_8hpp.html", null ], + [ "is_a.hpp", "core_2is__a_8hpp.html", null ], + [ "make.hpp", "core_2make_8hpp.html", null ], + [ "tag_of.hpp", "core_2tag__of_8hpp.html", null ], + [ "to.hpp", "core_2to_8hpp.html", null ], + [ "when.hpp", "core_2when_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.html b/boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.html new file mode 100644 index 0000000..e6278d9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
fusion Directory Reference
+
+
+ + +

+Directories

+ + + + + + + + + + + + + +

+Files

file  deque.hpp
 Adapts boost::fusion::deque for use with Hana.
 
file  list.hpp
 Adapts boost::fusion::list for use with Hana.
 
file  tuple.hpp
 Adapts boost::fusion::tuple for use with Hana.
 
file  vector.hpp
 Adapts boost::fusion::vector for use with Hana.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.js b/boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.js new file mode 100644 index 0000000..0eaab94 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_666cbe1241d83a4f7d9cad90f7b86490.js @@ -0,0 +1,8 @@ +var dir_666cbe1241d83a4f7d9cad90f7b86490 = +[ + [ "detail", "dir_7042a2e59d7efa2568e3581036b964b0.html", "dir_7042a2e59d7efa2568e3581036b964b0" ], + [ "deque.hpp", "deque_8hpp.html", null ], + [ "list.hpp", "fusion_2list_8hpp.html", null ], + [ "tuple.hpp", "ext_2boost_2fusion_2tuple_8hpp.html", null ], + [ "vector.hpp", "boost_2fusion_2vector_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.html b/boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.html new file mode 100644 index 0000000..192eba2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion/detail Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
detail Directory Reference
+
+
+ + + + + +

+Files

file  common.hpp
 Defines common methods for all Boost.Fusion sequences.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.js b/boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.js new file mode 100644 index 0000000..041995a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_7042a2e59d7efa2568e3581036b964b0.js @@ -0,0 +1,4 @@ +var dir_7042a2e59d7efa2568e3581036b964b0 = +[ + [ "common.hpp", "ext_2boost_2fusion_2detail_2common_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.html b/boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.html new file mode 100644 index 0000000..5d8bf4e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost Directory Reference
+
+
+ + +

+Directories

+ + + + + + + + + + +

+Files

file  fusion.hpp
 Includes all the adaptors for the Boost.Fusion library.
 
file  mpl.hpp
 Includes all the adaptors for the Boost.MPL library.
 
file  tuple.hpp
 Adapts boost::tuple for use with Hana.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.js b/boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.js new file mode 100644 index 0000000..e624ff0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_8414a6d7fc3b38da6a6da863ae030f2c.js @@ -0,0 +1,8 @@ +var dir_8414a6d7fc3b38da6a6da863ae030f2c = +[ + [ "fusion", "dir_666cbe1241d83a4f7d9cad90f7b86490.html", "dir_666cbe1241d83a4f7d9cad90f7b86490" ], + [ "mpl", "dir_aa8bf510119a03cbd5af87806db73281.html", "dir_aa8bf510119a03cbd5af87806db73281" ], + [ "fusion.hpp", "fusion_8hpp.html", null ], + [ "mpl.hpp", "mpl_8hpp.html", null ], + [ "tuple.hpp", "ext_2boost_2tuple_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.html b/boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.html new file mode 100644 index 0000000..1c8e33d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.html @@ -0,0 +1,157 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ext Directory Reference
+
+
+ + +

+Directories

+ + + + + + + +

+Files

file  boost.hpp
 Includes all the adaptors for external Boost libraries.
 
file  std.hpp
 Includes all the adaptors for the standard library.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.js b/boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.js new file mode 100644 index 0000000..8c7d8dc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_97491a7940b2b44461a547afe712abd2.js @@ -0,0 +1,7 @@ +var dir_97491a7940b2b44461a547afe712abd2 = +[ + [ "boost", "dir_8414a6d7fc3b38da6a6da863ae030f2c.html", "dir_8414a6d7fc3b38da6a6da863ae030f2c" ], + [ "std", "dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.html", "dir_f021aaf8cb4047f6c82c8c8a57a9e0c7" ], + [ "boost.hpp", "boost_8hpp.html", null ], + [ "std.hpp", "std_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.html b/boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.html new file mode 100644 index 0000000..c1b0a46 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.html @@ -0,0 +1,214 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
concept Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  applicative.hpp
 Forward declares boost::hana::Applicative.
 
file  comonad.hpp
 Forward declares boost::hana::Comonad.
 
file  comparable.hpp
 Forward declares boost::hana::Comparable.
 
file  constant.hpp
 Forward declares boost::hana::Constant.
 
file  euclidean_ring.hpp
 Forward declares boost::hana::EuclideanRing.
 
file  foldable.hpp
 Forward declares boost::hana::Foldable.
 
file  functor.hpp
 Forward declares boost::hana::Functor.
 
file  group.hpp
 Forward declares boost::hana::Group.
 
file  hashable.hpp
 Forward declares boost::hana::Hashable.
 
file  integral_constant.hpp
 Forward declares boost::hana::IntegralConstant.
 
file  iterable.hpp
 Forward declares boost::hana::Iterable.
 
file  logical.hpp
 Forward declares boost::hana::Logical.
 
file  metafunction.hpp
 Forward declares boost::hana::Metafunction.
 
file  monad.hpp
 Forward declares boost::hana::Monad.
 
file  monad_plus.hpp
 Forward declares boost::hana::MonadPlus.
 
file  monoid.hpp
 Forward declares boost::hana::Monoid.
 
file  orderable.hpp
 Forward declares boost::hana::Orderable.
 
file  product.hpp
 Forward declares boost::hana::Product.
 
file  ring.hpp
 Forward declares boost::hana::Ring.
 
file  searchable.hpp
 Forward declares boost::hana::Searchable.
 
file  sequence.hpp
 Forward declares boost::hana::Sequence.
 
file  struct.hpp
 Forward declares boost::hana::Struct.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.js b/boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.js new file mode 100644 index 0000000..4671991 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_9c824c28346f35ae3c8d4f56bd6b4593.js @@ -0,0 +1,25 @@ +var dir_9c824c28346f35ae3c8d4f56bd6b4593 = +[ + [ "applicative.hpp", "fwd_2concept_2applicative_8hpp.html", null ], + [ "comonad.hpp", "fwd_2concept_2comonad_8hpp.html", null ], + [ "comparable.hpp", "fwd_2concept_2comparable_8hpp.html", null ], + [ "constant.hpp", "fwd_2concept_2constant_8hpp.html", null ], + [ "euclidean_ring.hpp", "fwd_2concept_2euclidean__ring_8hpp.html", null ], + [ "foldable.hpp", "fwd_2concept_2foldable_8hpp.html", null ], + [ "functor.hpp", "fwd_2concept_2functor_8hpp.html", null ], + [ "group.hpp", "fwd_2concept_2group_8hpp.html", null ], + [ "hashable.hpp", "fwd_2concept_2hashable_8hpp.html", null ], + [ "integral_constant.hpp", "fwd_2concept_2integral__constant_8hpp.html", null ], + [ "iterable.hpp", "fwd_2concept_2iterable_8hpp.html", null ], + [ "logical.hpp", "fwd_2concept_2logical_8hpp.html", null ], + [ "metafunction.hpp", "fwd_2concept_2metafunction_8hpp.html", null ], + [ "monad.hpp", "fwd_2concept_2monad_8hpp.html", null ], + [ "monad_plus.hpp", "fwd_2concept_2monad__plus_8hpp.html", null ], + [ "monoid.hpp", "fwd_2concept_2monoid_8hpp.html", null ], + [ "orderable.hpp", "fwd_2concept_2orderable_8hpp.html", null ], + [ "product.hpp", "fwd_2concept_2product_8hpp.html", null ], + [ "ring.hpp", "fwd_2concept_2ring_8hpp.html", null ], + [ "searchable.hpp", "fwd_2concept_2searchable_8hpp.html", null ], + [ "sequence.hpp", "fwd_2concept_2sequence_8hpp.html", null ], + [ "struct.hpp", "fwd_2concept_2struct_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.html b/boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.html new file mode 100644 index 0000000..046233e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.html @@ -0,0 +1,214 @@ + + + + + + + + + +Boost.Hana: boost/hana/concept Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
concept Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  applicative.hpp
 Defines boost::hana::Applicative.
 
file  comonad.hpp
 Defines boost::hana::Comonad.
 
file  comparable.hpp
 Defines boost::hana::Comparable.
 
file  constant.hpp
 Defines boost::hana::Constant.
 
file  euclidean_ring.hpp
 Defines boost::hana::EuclideanRing.
 
file  foldable.hpp
 Defines boost::hana::Foldable.
 
file  functor.hpp
 Defines boost::hana::Functor.
 
file  group.hpp
 Defines boost::hana::Group.
 
file  hashable.hpp
 Defines boost::hana::Hashable.
 
file  integral_constant.hpp
 Defines boost::hana::IntegralConstant.
 
file  iterable.hpp
 Defines boost::hana::Iterable.
 
file  logical.hpp
 Defines boost::hana::Logical.
 
file  metafunction.hpp
 Defines boost::hana::Metafunction.
 
file  monad.hpp
 Defines boost::hana::Monad.
 
file  monad_plus.hpp
 Defines boost::hana::MonadPlus.
 
file  monoid.hpp
 Defines boost::hana::Monoid.
 
file  orderable.hpp
 Defines boost::hana::Orderable.
 
file  product.hpp
 Defines boost::hana::Product.
 
file  ring.hpp
 Defines boost::hana::Ring.
 
file  searchable.hpp
 Defines boost::hana::Searchable.
 
file  sequence.hpp
 Defines boost::hana::Sequence.
 
file  struct.hpp
 Defines boost::hana::Struct.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.js b/boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.js new file mode 100644 index 0000000..8e81aa3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.js @@ -0,0 +1,25 @@ +var dir_a6bcc969367a2b1bb27eb51c9ff4f3b4 = +[ + [ "applicative.hpp", "concept_2applicative_8hpp.html", null ], + [ "comonad.hpp", "concept_2comonad_8hpp.html", null ], + [ "comparable.hpp", "concept_2comparable_8hpp.html", null ], + [ "constant.hpp", "concept_2constant_8hpp.html", null ], + [ "euclidean_ring.hpp", "concept_2euclidean__ring_8hpp.html", null ], + [ "foldable.hpp", "concept_2foldable_8hpp.html", null ], + [ "functor.hpp", "concept_2functor_8hpp.html", null ], + [ "group.hpp", "concept_2group_8hpp.html", null ], + [ "hashable.hpp", "concept_2hashable_8hpp.html", null ], + [ "integral_constant.hpp", "concept_2integral__constant_8hpp.html", null ], + [ "iterable.hpp", "concept_2iterable_8hpp.html", null ], + [ "logical.hpp", "concept_2logical_8hpp.html", null ], + [ "metafunction.hpp", "concept_2metafunction_8hpp.html", null ], + [ "monad.hpp", "concept_2monad_8hpp.html", null ], + [ "monad_plus.hpp", "concept_2monad__plus_8hpp.html", null ], + [ "monoid.hpp", "concept_2monoid_8hpp.html", null ], + [ "orderable.hpp", "concept_2orderable_8hpp.html", null ], + [ "product.hpp", "concept_2product_8hpp.html", null ], + [ "ring.hpp", "concept_2ring_8hpp.html", null ], + [ "searchable.hpp", "concept_2searchable_8hpp.html", null ], + [ "sequence.hpp", "concept_2sequence_8hpp.html", null ], + [ "struct.hpp", "concept_2struct_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.html b/boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.html new file mode 100644 index 0000000..4ceb5f6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.html @@ -0,0 +1,157 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/mpl Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mpl Directory Reference
+
+
+ + + + + + + + + + + +

+Files

file  integral_c.hpp
 Adapts Boost.MPL IntegralConstants for use with Hana.
 
file  list.hpp
 Adapts boost::mpl::list for use with Hana.
 
file  vector.hpp
 Adapts boost::mpl::vector for use with Hana.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.js b/boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.js new file mode 100644 index 0000000..08e1adf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_aa8bf510119a03cbd5af87806db73281.js @@ -0,0 +1,6 @@ +var dir_aa8bf510119a03cbd5af87806db73281 = +[ + [ "integral_c.hpp", "integral__c_8hpp.html", null ], + [ "list.hpp", "mpl_2list_8hpp.html", null ], + [ "vector.hpp", "boost_2mpl_2vector_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.html b/boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.html new file mode 100644 index 0000000..59afd7f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
core Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  common.hpp
 Forward declares boost::hana::common and boost::hana::common_t.
 
file  default.hpp
 Forward declares boost::hana::default_ and boost::hana::is_default.
 
file  is_a.hpp
 Forward declares boost::hana::is_a and boost::hana::is_an.
 
file  make.hpp
 Forward declares boost::hana::make.
 
file  tag_of.hpp
 Forward declares boost::hana::tag_of and boost::hana::tag_of_t.
 
file  to.hpp
 Forward declares boost::hana::to and related utilities.
 
file  when.hpp
 Forward declares boost::hana::when and boost::hana::when_valid.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.js b/boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.js new file mode 100644 index 0000000..bc8e2c7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_b00751b7bd933c58cff85542f43b8f16.js @@ -0,0 +1,10 @@ +var dir_b00751b7bd933c58cff85542f43b8f16 = +[ + [ "common.hpp", "fwd_2core_2common_8hpp.html", "fwd_2core_2common_8hpp" ], + [ "default.hpp", "fwd_2core_2default_8hpp.html", null ], + [ "is_a.hpp", "fwd_2core_2is__a_8hpp.html", "fwd_2core_2is__a_8hpp" ], + [ "make.hpp", "fwd_2core_2make_8hpp.html", "fwd_2core_2make_8hpp" ], + [ "tag_of.hpp", "fwd_2core_2tag__of_8hpp.html", "fwd_2core_2tag__of_8hpp" ], + [ "to.hpp", "fwd_2core_2to_8hpp.html", "fwd_2core_2to_8hpp" ], + [ "when.hpp", "fwd_2core_2when_8hpp.html", "fwd_2core_2when_8hpp" ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.html b/boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.html new file mode 100644 index 0000000..ac3f041 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.html @@ -0,0 +1,586 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
fwd Directory Reference
+
+
+ + +

+Directories

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  accessors.hpp
 Forward declares boost::hana::accessors.
 
file  adapt_adt.hpp
 Documents the BOOST_HANA_ADAPT_ADT macro.
 
file  adapt_struct.hpp
 Documents the BOOST_HANA_ADAPT_STRUCT macro.
 
file  adjust.hpp
 Forward declares boost::hana::adjust.
 
file  adjust_if.hpp
 Forward declares boost::hana::adjust_if.
 
file  all.hpp
 Forward declares boost::hana::all.
 
file  all_of.hpp
 Forward declares boost::hana::all_of.
 
file  and.hpp
 Forward declares boost::hana::and_.
 
file  any.hpp
 Forward declares boost::hana::any.
 
file  any_of.hpp
 Forward declares boost::hana::any_of.
 
file  ap.hpp
 Forward declares boost::hana::ap.
 
file  append.hpp
 Forward declares boost::hana::append.
 
file  at.hpp
 Forward declares boost::hana::at and boost::hana::at_c.
 
file  at_key.hpp
 Forward declares boost::hana::at_key.
 
file  back.hpp
 Forward declares boost::hana::back.
 
file  basic_tuple.hpp
 Forward declares boost::hana::basic_tuple.
 
file  bool.hpp
 Includes boost/hana/fwd/integral_constant.hpp.
 
file  cartesian_product.hpp
 Forward declares boost::hana::cartesian_product.
 
file  chain.hpp
 Forward declares boost::hana::chain.
 
file  comparing.hpp
 Forward declares boost::hana::comparing.
 
file  concat.hpp
 Forward declares boost::hana::concat.
 
file  contains.hpp
 Forward declares boost::hana::contains and boost::hana::in.
 
file  core.hpp
 Forward declares the Core module.
 
file  count.hpp
 Forward declares boost::hana::count.
 
file  count_if.hpp
 Forward declares boost::hana::count_if.
 
file  cycle.hpp
 Forward declares boost::hana::cycle.
 
file  define_struct.hpp
 Documents the BOOST_HANA_DEFINE_STRUCT macro.
 
file  difference.hpp
 Forward declares boost::hana::difference.
 
file  div.hpp
 Forward declares boost::hana::div.
 
file  drop_back.hpp
 Forward declares boost::hana::drop_back.
 
file  drop_front.hpp
 Forward declares boost::hana::drop_front.
 
file  drop_front_exactly.hpp
 Forward declares boost::hana::drop_front_exactly.
 
file  drop_while.hpp
 Forward declares boost::hana::drop_while.
 
file  duplicate.hpp
 Forward declares boost::hana::duplicate.
 
file  empty.hpp
 Forward declares boost::hana::empty.
 
file  equal.hpp
 Forward declares boost::hana::equal.
 
file  erase_key.hpp
 Forward declares boost::hana::erase_key.
 
file  eval.hpp
 Forward declares boost::hana::eval.
 
file  eval_if.hpp
 Forward declares boost::hana::eval_if.
 
file  extend.hpp
 Forward declares boost::hana::extend.
 
file  extract.hpp
 Forward declares boost::hana::extract.
 
file  fill.hpp
 Forward declares boost::hana::fill.
 
file  filter.hpp
 Forward declares boost::hana::filter.
 
file  find.hpp
 Forward declares boost::hana::find.
 
file  find_if.hpp
 Forward declares boost::hana::find_if.
 
file  first.hpp
 Forward declares boost::hana::first.
 
file  flatten.hpp
 Forward declares boost::hana::flatten.
 
file  fold.hpp
 Forward declares boost::hana::fold.
 
file  fold_left.hpp
 Forward declares boost::hana::fold_left.
 
file  fold_right.hpp
 Forward declares boost::hana::fold_right.
 
file  for_each.hpp
 Forward declares boost::hana::for_each.
 
file  front.hpp
 Forward declares boost::hana::front.
 
file  fuse.hpp
 Forward declares boost::hana::fuse.
 
file  greater.hpp
 Forward declares boost::hana::greater.
 
file  greater_equal.hpp
 Forward declares boost::hana::greater_equal.
 
file  group.hpp
 Forward declares boost::hana::group.
 
file  hash.hpp
 Forward declares boost::hana::hash.
 
file  if.hpp
 Forward declares boost::hana::if_.
 
file  insert.hpp
 Forward declares boost::hana::insert.
 
file  insert_range.hpp
 Forward declares boost::hana::insert_range.
 
file  integral_constant.hpp
 Forward declares boost::hana::integral_constant.
 
file  intersection.hpp
 Forward declares boost::hana::intersection.
 
file  intersperse.hpp
 Forward declares boost::hana::intersperse.
 
file  is_disjoint.hpp
 Forward declares boost::hana::is_disjoint.
 
file  is_empty.hpp
 Forward declares boost::hana::is_empty.
 
file  is_subset.hpp
 Forward declares boost::hana::is_subset.
 
file  keys.hpp
 Forward declares boost::hana::keys.
 
file  lazy.hpp
 Forward declares boost::hana::lazy.
 
file  length.hpp
 Forward declares boost::hana::length.
 
file  less.hpp
 Forward declares boost::hana::less.
 
file  less_equal.hpp
 Forward declares boost::hana::less_equal.
 
file  lexicographical_compare.hpp
 Forward declares boost::hana::lexicographical_compare.
 
file  lift.hpp
 Forward declares boost::hana::lift.
 
file  map.hpp
 Forward declares boost::hana::map.
 
file  max.hpp
 Forward declares boost::hana::max.
 
file  maximum.hpp
 Forward declares boost::hana::maximum.
 
file  members.hpp
 Forward declares boost::hana::members.
 
file  min.hpp
 Forward declares boost::hana::min.
 
file  minimum.hpp
 Forward declares boost::hana::minimum.
 
file  minus.hpp
 Forward declares boost::hana::minus.
 
file  mod.hpp
 Forward declares boost::hana::mod.
 
file  monadic_compose.hpp
 Forward declares boost::hana::monadic_compose.
 
file  monadic_fold_left.hpp
 Forward declares boost::hana::monadic_fold_left.
 
file  monadic_fold_right.hpp
 Forward declares boost::hana::monadic_fold_right.
 
file  mult.hpp
 Forward declares boost::hana::mult.
 
file  negate.hpp
 Forward declares boost::hana::negate.
 
file  none.hpp
 Forward declares boost::hana::none.
 
file  none_of.hpp
 Forward declares boost::hana::none_of.
 
file  not.hpp
 Forward declares boost::hana::not_.
 
file  not_equal.hpp
 Forward declares boost::hana::not_equal.
 
file  one.hpp
 Forward declares boost::hana::one.
 
file  optional.hpp
 Forward declares boost::hana::optional.
 
file  or.hpp
 Forward declares boost::hana::or_.
 
file  ordering.hpp
 Forward declares boost::hana::ordering.
 
file  pair.hpp
 Forward declares boost::hana::pair.
 
file  partition.hpp
 Forward declares boost::hana::partition.
 
file  permutations.hpp
 Forward declares boost::hana::permutations.
 
file  plus.hpp
 Forward declares boost::hana::plus.
 
file  power.hpp
 Forward declares boost::hana::power.
 
file  prefix.hpp
 Forward declares boost::hana::prefix.
 
file  prepend.hpp
 Forward declares boost::hana::prepend.
 
file  product.hpp
 Forward declares boost::hana::product.
 
file  range.hpp
 Forward declares boost::hana::range.
 
file  remove.hpp
 Forward declares boost::hana::remove.
 
file  remove_at.hpp
 Forward declares boost::hana::remove_at and boost::hana::remove_at_c.
 
file  remove_if.hpp
 Forward declares boost::hana::remove_if.
 
file  remove_range.hpp
 Forward declares boost::hana::remove_range and boost::hana::remove_range_c.
 
file  repeat.hpp
 Forward declares boost::hana::repeat.
 
file  replace.hpp
 Forward declares boost::hana::replace.
 
file  replace_if.hpp
 Forward declares boost::hana::replace_if.
 
file  replicate.hpp
 Forward declares boost::hana::replicate.
 
file  reverse.hpp
 Forward declares boost::hana::reverse.
 
file  reverse_fold.hpp
 Forward declares boost::hana::reverse_fold.
 
file  scan_left.hpp
 Forward declares boost::hana::scan_left.
 
file  scan_right.hpp
 Forward declares boost::hana::scan_right.
 
file  second.hpp
 Forward declares boost::hana::second.
 
file  set.hpp
 Forward declares boost::hana::set.
 
file  size.hpp
 Forward declares boost::hana::size.
 
file  slice.hpp
 Forward declares boost::hana::slice and boost::hana::slice_c.
 
file  sort.hpp
 Forward declares boost::hana::sort.
 
file  span.hpp
 Forward declares boost::hana::span.
 
file  string.hpp
 Forward declares boost::hana::string.
 
file  suffix.hpp
 Forward declares boost::hana::suffix.
 
file  sum.hpp
 Forward declares boost::hana::sum.
 
file  symmetric_difference.hpp
 Forward declares boost::hana::symmetric_difference.
 
file  take_back.hpp
 Forward declares boost::hana::take_back.
 
file  take_front.hpp
 Forward declares boost::hana::take_front and boost::hana::take_front_c.
 
file  take_while.hpp
 Forward declares boost::hana::take_while.
 
file  tap.hpp
 Forward declares boost::hana::tap.
 
file  then.hpp
 Forward declares boost::hana::then.
 
file  transform.hpp
 Forward declares boost::hana::transform.
 
file  tuple.hpp
 Forward declares boost::hana::tuple.
 
file  type.hpp
 Forward declares boost::hana::type and related utilities.
 
file  unfold_left.hpp
 Forward declares boost::hana::unfold_left.
 
file  unfold_right.hpp
 Forward declares boost::hana::unfold_right.
 
file  union.hpp
 Forward declares boost::hana::union_.
 
file  unique.hpp
 Forward declares boost::hana::unique.
 
file  unpack.hpp
 Forward declares boost::hana::unpack.
 
file  value.hpp
 Forward declares boost::hana::value.
 
file  while.hpp
 Forward declares boost::hana::while_.
 
file  zero.hpp
 Forward declares boost::hana::zero.
 
file  zip.hpp
 Forward declares boost::hana::zip.
 
file  zip_shortest.hpp
 Forward declares boost::hana::zip_shortest.
 
file  zip_shortest_with.hpp
 Forward declares boost::hana::zip_shortest_with.
 
file  zip_with.hpp
 Forward declares boost::hana::zip_with.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.js b/boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.js new file mode 100644 index 0000000..292f40c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_cc4d96287a8e6ea2980c75f79e8c5cd4.js @@ -0,0 +1,166 @@ +var dir_cc4d96287a8e6ea2980c75f79e8c5cd4 = +[ + [ "concept", "dir_9c824c28346f35ae3c8d4f56bd6b4593.html", "dir_9c824c28346f35ae3c8d4f56bd6b4593" ], + [ "core", "dir_b00751b7bd933c58cff85542f43b8f16.html", "dir_b00751b7bd933c58cff85542f43b8f16" ], + [ "accessors.hpp", "fwd_2accessors_8hpp.html", "fwd_2accessors_8hpp" ], + [ "adapt_adt.hpp", "fwd_2adapt__adt_8hpp.html", "fwd_2adapt__adt_8hpp" ], + [ "adapt_struct.hpp", "fwd_2adapt__struct_8hpp.html", "fwd_2adapt__struct_8hpp" ], + [ "adjust.hpp", "fwd_2adjust_8hpp.html", "fwd_2adjust_8hpp" ], + [ "adjust_if.hpp", "fwd_2adjust__if_8hpp.html", "fwd_2adjust__if_8hpp" ], + [ "all.hpp", "fwd_2all_8hpp.html", "fwd_2all_8hpp" ], + [ "all_of.hpp", "fwd_2all__of_8hpp.html", "fwd_2all__of_8hpp" ], + [ "and.hpp", "fwd_2and_8hpp.html", "fwd_2and_8hpp" ], + [ "any.hpp", "fwd_2any_8hpp.html", "fwd_2any_8hpp" ], + [ "any_of.hpp", "fwd_2any__of_8hpp.html", "fwd_2any__of_8hpp" ], + [ "ap.hpp", "fwd_2ap_8hpp.html", "fwd_2ap_8hpp" ], + [ "append.hpp", "fwd_2append_8hpp.html", "fwd_2append_8hpp" ], + [ "at.hpp", "fwd_2at_8hpp.html", "fwd_2at_8hpp" ], + [ "at_key.hpp", "fwd_2at__key_8hpp.html", "fwd_2at__key_8hpp" ], + [ "back.hpp", "fwd_2back_8hpp.html", "fwd_2back_8hpp" ], + [ "basic_tuple.hpp", "fwd_2basic__tuple_8hpp.html", [ + [ "basic_tuple_tag", "structboost_1_1hana_1_1basic__tuple__tag.html", null ] + ] ], + [ "bool.hpp", "fwd_2bool_8hpp.html", null ], + [ "cartesian_product.hpp", "fwd_2cartesian__product_8hpp.html", "fwd_2cartesian__product_8hpp" ], + [ "chain.hpp", "fwd_2chain_8hpp.html", "fwd_2chain_8hpp" ], + [ "comparing.hpp", "fwd_2comparing_8hpp.html", "fwd_2comparing_8hpp" ], + [ "concat.hpp", "fwd_2concat_8hpp.html", "fwd_2concat_8hpp" ], + [ "contains.hpp", "fwd_2contains_8hpp.html", "fwd_2contains_8hpp" ], + [ "core.hpp", "fwd_2core_8hpp.html", null ], + [ "count.hpp", "fwd_2count_8hpp.html", "fwd_2count_8hpp" ], + [ "count_if.hpp", "fwd_2count__if_8hpp.html", "fwd_2count__if_8hpp" ], + [ "cycle.hpp", "fwd_2cycle_8hpp.html", "fwd_2cycle_8hpp" ], + [ "define_struct.hpp", "fwd_2define__struct_8hpp.html", "fwd_2define__struct_8hpp" ], + [ "difference.hpp", "fwd_2difference_8hpp.html", null ], + [ "div.hpp", "fwd_2div_8hpp.html", "fwd_2div_8hpp" ], + [ "drop_back.hpp", "fwd_2drop__back_8hpp.html", "fwd_2drop__back_8hpp" ], + [ "drop_front.hpp", "fwd_2drop__front_8hpp.html", "fwd_2drop__front_8hpp" ], + [ "drop_front_exactly.hpp", "fwd_2drop__front__exactly_8hpp.html", "fwd_2drop__front__exactly_8hpp" ], + [ "drop_while.hpp", "fwd_2drop__while_8hpp.html", "fwd_2drop__while_8hpp" ], + [ "duplicate.hpp", "fwd_2duplicate_8hpp.html", "fwd_2duplicate_8hpp" ], + [ "empty.hpp", "fwd_2empty_8hpp.html", "fwd_2empty_8hpp" ], + [ "equal.hpp", "fwd_2equal_8hpp.html", "fwd_2equal_8hpp" ], + [ "erase_key.hpp", "fwd_2erase__key_8hpp.html", null ], + [ "eval.hpp", "fwd_2eval_8hpp.html", null ], + [ "eval_if.hpp", "fwd_2eval__if_8hpp.html", "fwd_2eval__if_8hpp" ], + [ "extend.hpp", "fwd_2extend_8hpp.html", "fwd_2extend_8hpp" ], + [ "extract.hpp", "fwd_2extract_8hpp.html", "fwd_2extract_8hpp" ], + [ "fill.hpp", "fwd_2fill_8hpp.html", "fwd_2fill_8hpp" ], + [ "filter.hpp", "fwd_2filter_8hpp.html", "fwd_2filter_8hpp" ], + [ "find.hpp", "fwd_2find_8hpp.html", "fwd_2find_8hpp" ], + [ "find_if.hpp", "fwd_2find__if_8hpp.html", "fwd_2find__if_8hpp" ], + [ "first.hpp", "fwd_2first_8hpp.html", "fwd_2first_8hpp" ], + [ "flatten.hpp", "fwd_2flatten_8hpp.html", "fwd_2flatten_8hpp" ], + [ "fold.hpp", "fwd_2fold_8hpp.html", "fwd_2fold_8hpp" ], + [ "fold_left.hpp", "fwd_2fold__left_8hpp.html", "fwd_2fold__left_8hpp" ], + [ "fold_right.hpp", "fwd_2fold__right_8hpp.html", "fwd_2fold__right_8hpp" ], + [ "for_each.hpp", "fwd_2for__each_8hpp.html", "fwd_2for__each_8hpp" ], + [ "front.hpp", "fwd_2front_8hpp.html", "fwd_2front_8hpp" ], + [ "fuse.hpp", "fwd_2fuse_8hpp.html", "fwd_2fuse_8hpp" ], + [ "greater.hpp", "fwd_2greater_8hpp.html", "fwd_2greater_8hpp" ], + [ "greater_equal.hpp", "fwd_2greater__equal_8hpp.html", "fwd_2greater__equal_8hpp" ], + [ "group.hpp", "fwd_2group_8hpp.html", "fwd_2group_8hpp" ], + [ "hash.hpp", "fwd_2hash_8hpp.html", "fwd_2hash_8hpp" ], + [ "if.hpp", "fwd_2if_8hpp.html", "fwd_2if_8hpp" ], + [ "insert.hpp", "fwd_2insert_8hpp.html", "fwd_2insert_8hpp" ], + [ "insert_range.hpp", "fwd_2insert__range_8hpp.html", "fwd_2insert__range_8hpp" ], + [ "integral_constant.hpp", "fwd_2integral__constant_8hpp.html", "fwd_2integral__constant_8hpp" ], + [ "intersection.hpp", "fwd_2intersection_8hpp.html", null ], + [ "intersperse.hpp", "fwd_2intersperse_8hpp.html", "fwd_2intersperse_8hpp" ], + [ "is_disjoint.hpp", "fwd_2is__disjoint_8hpp.html", "fwd_2is__disjoint_8hpp" ], + [ "is_empty.hpp", "fwd_2is__empty_8hpp.html", "fwd_2is__empty_8hpp" ], + [ "is_subset.hpp", "fwd_2is__subset_8hpp.html", "fwd_2is__subset_8hpp" ], + [ "keys.hpp", "fwd_2keys_8hpp.html", "fwd_2keys_8hpp" ], + [ "lazy.hpp", "fwd_2lazy_8hpp.html", [ + [ "lazy_tag", "structboost_1_1hana_1_1lazy__tag.html", null ] + ] ], + [ "length.hpp", "fwd_2length_8hpp.html", "fwd_2length_8hpp" ], + [ "less.hpp", "fwd_2less_8hpp.html", "fwd_2less_8hpp" ], + [ "less_equal.hpp", "fwd_2less__equal_8hpp.html", "fwd_2less__equal_8hpp" ], + [ "lexicographical_compare.hpp", "fwd_2lexicographical__compare_8hpp.html", "fwd_2lexicographical__compare_8hpp" ], + [ "lift.hpp", "fwd_2lift_8hpp.html", "fwd_2lift_8hpp" ], + [ "map.hpp", "fwd_2map_8hpp.html", [ + [ "map_tag", "structboost_1_1hana_1_1map__tag.html", null ] + ] ], + [ "max.hpp", "fwd_2max_8hpp.html", "fwd_2max_8hpp" ], + [ "maximum.hpp", "fwd_2maximum_8hpp.html", "fwd_2maximum_8hpp" ], + [ "members.hpp", "fwd_2members_8hpp.html", "fwd_2members_8hpp" ], + [ "min.hpp", "fwd_2min_8hpp.html", "fwd_2min_8hpp" ], + [ "minimum.hpp", "fwd_2minimum_8hpp.html", "fwd_2minimum_8hpp" ], + [ "minus.hpp", "fwd_2minus_8hpp.html", "fwd_2minus_8hpp" ], + [ "mod.hpp", "fwd_2mod_8hpp.html", "fwd_2mod_8hpp" ], + [ "monadic_compose.hpp", "fwd_2monadic__compose_8hpp.html", "fwd_2monadic__compose_8hpp" ], + [ "monadic_fold_left.hpp", "fwd_2monadic__fold__left_8hpp.html", "fwd_2monadic__fold__left_8hpp" ], + [ "monadic_fold_right.hpp", "fwd_2monadic__fold__right_8hpp.html", "fwd_2monadic__fold__right_8hpp" ], + [ "mult.hpp", "fwd_2mult_8hpp.html", "fwd_2mult_8hpp" ], + [ "negate.hpp", "fwd_2negate_8hpp.html", "fwd_2negate_8hpp" ], + [ "none.hpp", "fwd_2none_8hpp.html", "fwd_2none_8hpp" ], + [ "none_of.hpp", "fwd_2none__of_8hpp.html", "fwd_2none__of_8hpp" ], + [ "not.hpp", "fwd_2not_8hpp.html", "fwd_2not_8hpp" ], + [ "not_equal.hpp", "fwd_2not__equal_8hpp.html", "fwd_2not__equal_8hpp" ], + [ "one.hpp", "fwd_2one_8hpp.html", "fwd_2one_8hpp" ], + [ "optional.hpp", "fwd_2optional_8hpp.html", [ + [ "optional_tag", "structboost_1_1hana_1_1optional__tag.html", null ] + ] ], + [ "or.hpp", "fwd_2or_8hpp.html", "fwd_2or_8hpp" ], + [ "ordering.hpp", "fwd_2ordering_8hpp.html", "fwd_2ordering_8hpp" ], + [ "pair.hpp", "fwd_2pair_8hpp.html", [ + [ "pair_tag", "structboost_1_1hana_1_1pair__tag.html", null ] + ] ], + [ "partition.hpp", "fwd_2partition_8hpp.html", "fwd_2partition_8hpp" ], + [ "permutations.hpp", "fwd_2permutations_8hpp.html", "fwd_2permutations_8hpp" ], + [ "plus.hpp", "fwd_2plus_8hpp.html", "fwd_2plus_8hpp" ], + [ "power.hpp", "fwd_2power_8hpp.html", "fwd_2power_8hpp" ], + [ "prefix.hpp", "fwd_2prefix_8hpp.html", "fwd_2prefix_8hpp" ], + [ "prepend.hpp", "fwd_2prepend_8hpp.html", "fwd_2prepend_8hpp" ], + [ "product.hpp", "fwd_2product_8hpp.html", "fwd_2product_8hpp" ], + [ "range.hpp", "fwd_2range_8hpp.html", [ + [ "range_tag", "structboost_1_1hana_1_1range__tag.html", null ] + ] ], + [ "remove.hpp", "fwd_2remove_8hpp.html", "fwd_2remove_8hpp" ], + [ "remove_at.hpp", "fwd_2remove__at_8hpp.html", "fwd_2remove__at_8hpp" ], + [ "remove_if.hpp", "fwd_2remove__if_8hpp.html", "fwd_2remove__if_8hpp" ], + [ "remove_range.hpp", "fwd_2remove__range_8hpp.html", "fwd_2remove__range_8hpp" ], + [ "repeat.hpp", "fwd_2repeat_8hpp.html", "fwd_2repeat_8hpp" ], + [ "replace.hpp", "fwd_2replace_8hpp.html", "fwd_2replace_8hpp" ], + [ "replace_if.hpp", "fwd_2replace__if_8hpp.html", "fwd_2replace__if_8hpp" ], + [ "replicate.hpp", "fwd_2replicate_8hpp.html", "fwd_2replicate_8hpp" ], + [ "reverse.hpp", "fwd_2reverse_8hpp.html", "fwd_2reverse_8hpp" ], + [ "reverse_fold.hpp", "fwd_2reverse__fold_8hpp.html", "fwd_2reverse__fold_8hpp" ], + [ "scan_left.hpp", "fwd_2scan__left_8hpp.html", "fwd_2scan__left_8hpp" ], + [ "scan_right.hpp", "fwd_2scan__right_8hpp.html", "fwd_2scan__right_8hpp" ], + [ "second.hpp", "fwd_2second_8hpp.html", "fwd_2second_8hpp" ], + [ "set.hpp", "fwd_2set_8hpp.html", [ + [ "set_tag", "structboost_1_1hana_1_1set__tag.html", null ] + ] ], + [ "size.hpp", "fwd_2size_8hpp.html", "fwd_2size_8hpp" ], + [ "slice.hpp", "fwd_2slice_8hpp.html", "fwd_2slice_8hpp" ], + [ "sort.hpp", "fwd_2sort_8hpp.html", "fwd_2sort_8hpp" ], + [ "span.hpp", "fwd_2span_8hpp.html", "fwd_2span_8hpp" ], + [ "string.hpp", "fwd_2string_8hpp.html", "fwd_2string_8hpp" ], + [ "suffix.hpp", "fwd_2suffix_8hpp.html", "fwd_2suffix_8hpp" ], + [ "sum.hpp", "fwd_2sum_8hpp.html", "fwd_2sum_8hpp" ], + [ "symmetric_difference.hpp", "fwd_2symmetric__difference_8hpp.html", null ], + [ "take_back.hpp", "fwd_2take__back_8hpp.html", "fwd_2take__back_8hpp" ], + [ "take_front.hpp", "fwd_2take__front_8hpp.html", "fwd_2take__front_8hpp" ], + [ "take_while.hpp", "fwd_2take__while_8hpp.html", "fwd_2take__while_8hpp" ], + [ "tap.hpp", "fwd_2tap_8hpp.html", "fwd_2tap_8hpp" ], + [ "then.hpp", "fwd_2then_8hpp.html", "fwd_2then_8hpp" ], + [ "transform.hpp", "fwd_2transform_8hpp.html", "fwd_2transform_8hpp" ], + [ "tuple.hpp", "fwd_2tuple_8hpp.html", [ + [ "tuple_tag", "structboost_1_1hana_1_1tuple__tag.html", null ] + ] ], + [ "type.hpp", "fwd_2type_8hpp.html", "fwd_2type_8hpp" ], + [ "unfold_left.hpp", "fwd_2unfold__left_8hpp.html", "fwd_2unfold__left_8hpp" ], + [ "unfold_right.hpp", "fwd_2unfold__right_8hpp.html", "fwd_2unfold__right_8hpp" ], + [ "union.hpp", "fwd_2union_8hpp.html", null ], + [ "unique.hpp", "fwd_2unique_8hpp.html", "fwd_2unique_8hpp" ], + [ "unpack.hpp", "fwd_2unpack_8hpp.html", "fwd_2unpack_8hpp" ], + [ "value.hpp", "fwd_2value_8hpp.html", "fwd_2value_8hpp" ], + [ "while.hpp", "fwd_2while_8hpp.html", "fwd_2while_8hpp" ], + [ "zero.hpp", "fwd_2zero_8hpp.html", "fwd_2zero_8hpp" ], + [ "zip.hpp", "fwd_2zip_8hpp.html", "fwd_2zip_8hpp" ], + [ "zip_shortest.hpp", "fwd_2zip__shortest_8hpp.html", "fwd_2zip__shortest_8hpp" ], + [ "zip_shortest_with.hpp", "fwd_2zip__shortest__with_8hpp.html", "fwd_2zip__shortest__with_8hpp" ], + [ "zip_with.hpp", "fwd_2zip__with_8hpp.html", "fwd_2zip__with_8hpp" ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.html b/boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.html new file mode 100644 index 0000000..a89e69d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.html @@ -0,0 +1,154 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/reverse_apply Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
reverse_apply Directory Reference
+
+
+ + + + + + + + +

+Files

file  flat.hpp
 Defines boost::hana::detail::variadic::reverse_apply_flat.
 
file  unrolled.hpp
 Defines boost::hana::detail::variadic::reverse_apply_unrolled.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.js b/boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.js new file mode 100644 index 0000000..2073cb0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_cd91aed0e5b3a0fe3db2eb07a1431dc6.js @@ -0,0 +1,5 @@ +var dir_cd91aed0e5b3a0fe3db2eb07a1431dc6 = +[ + [ "flat.hpp", "flat_8hpp.html", null ], + [ "unrolled.hpp", "unrolled_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.html b/boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.html new file mode 100644 index 0000000..253c222 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.html @@ -0,0 +1,205 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
functional Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  always.hpp
 Defines boost::hana::always.
 
file  apply.hpp
 Defines boost::hana::apply.
 
file  arg.hpp
 Defines boost::hana::arg.
 
file  capture.hpp
 Defines boost::hana::capture.
 
file  compose.hpp
 Defines boost::hana::compose.
 
file  curry.hpp
 Defines boost::hana::curry.
 
file  demux.hpp
 Defines boost::hana::demux.
 
file  fix.hpp
 Defines boost::hana::fix.
 
file  flip.hpp
 Defines boost::hana::flip.
 
file  id.hpp
 Defines boost::hana::id.
 
file  infix.hpp
 Defines boost::hana::infix.
 
file  iterate.hpp
 Defines boost::hana::iterate.
 
file  lockstep.hpp
 Defines boost::hana::lockstep.
 
file  on.hpp
 Defines boost::hana::on.
 
file  overload.hpp
 Defines boost::hana::overload.
 
file  overload_linearly.hpp
 Defines boost::hana::overload_linearly.
 
file  partial.hpp
 Defines boost::hana::partial.
 
file  placeholder.hpp
 Defines boost::hana::_.
 
file  reverse_partial.hpp
 Defines boost::hana::reverse_partial.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.js b/boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.js new file mode 100644 index 0000000..a7d8deb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_cf196044773ad9db3b539387dd944c9e.js @@ -0,0 +1,22 @@ +var dir_cf196044773ad9db3b539387dd944c9e = +[ + [ "always.hpp", "always_8hpp.html", "always_8hpp" ], + [ "apply.hpp", "apply_8hpp.html", "apply_8hpp" ], + [ "arg.hpp", "arg_8hpp.html", "arg_8hpp" ], + [ "capture.hpp", "capture_8hpp.html", "capture_8hpp" ], + [ "compose.hpp", "compose_8hpp.html", "compose_8hpp" ], + [ "curry.hpp", "curry_8hpp.html", "curry_8hpp" ], + [ "demux.hpp", "demux_8hpp.html", "demux_8hpp" ], + [ "fix.hpp", "fix_8hpp.html", "fix_8hpp" ], + [ "flip.hpp", "flip_8hpp.html", "flip_8hpp" ], + [ "id.hpp", "id_8hpp.html", "id_8hpp" ], + [ "infix.hpp", "infix_8hpp.html", "infix_8hpp" ], + [ "iterate.hpp", "iterate_8hpp.html", "iterate_8hpp" ], + [ "lockstep.hpp", "lockstep_8hpp.html", "lockstep_8hpp" ], + [ "on.hpp", "on_8hpp.html", "on_8hpp" ], + [ "overload.hpp", "overload_8hpp.html", "overload_8hpp" ], + [ "overload_linearly.hpp", "overload__linearly_8hpp.html", "overload__linearly_8hpp" ], + [ "partial.hpp", "partial_8hpp.html", "partial_8hpp" ], + [ "placeholder.hpp", "placeholder_8hpp.html", "placeholder_8hpp" ], + [ "reverse_partial.hpp", "reverse__partial_8hpp.html", "reverse__partial_8hpp" ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.html b/boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.html new file mode 100644 index 0000000..3c24794 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.html @@ -0,0 +1,604 @@ + + + + + + + + + +Boost.Hana: boost/hana Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
hana Directory Reference
+
+
+ + +

+Directories

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  accessors.hpp
 Defines boost::hana::accessors.
 
file  adapt_adt.hpp
 Defines the BOOST_HANA_ADAPT_ADT macro.
 
file  adapt_struct.hpp
 Defines the BOOST_HANA_ADAPT_STRUCT macro.
 
file  adjust.hpp
 Defines boost::hana::adjust.
 
file  adjust_if.hpp
 Defines boost::hana::adjust_if.
 
file  all.hpp
 Defines boost::hana::all.
 
file  all_of.hpp
 Defines boost::hana::all_of.
 
file  and.hpp
 Defines boost::hana::and_.
 
file  any.hpp
 Defines boost::hana::any.
 
file  any_of.hpp
 Defines boost::hana::any_of.
 
file  ap.hpp
 Defines boost::hana::ap.
 
file  append.hpp
 Defines boost::hana::append.
 
file  assert.hpp
 Defines macros to perform different kinds of assertions.
 
file  at.hpp
 Defines boost::hana::at and boost::hana::at_c.
 
file  at_key.hpp
 Defines boost::hana::at_key.
 
file  back.hpp
 Defines boost::hana::back.
 
file  basic_tuple.hpp
 Defines boost::hana::basic_tuple.
 
file  bool.hpp
 Defines the Logical and Comparable models of boost::hana::integral_constant.
 
file  cartesian_product.hpp
 Defines boost::hana::cartesian_product.
 
file  chain.hpp
 Defines boost::hana::chain.
 
file  comparing.hpp
 Defines boost::hana::comparing.
 
file  concat.hpp
 Defines boost::hana::concat.
 
file  concept.hpp
 Master header for the boost/hana/concept/ subdirectory.
 
file  config.hpp
 Defines configuration macros used throughout the library.
 
file  contains.hpp
 Defines boost::hana::contains and boost::hana::in.
 
file  core.hpp
 Defines the Core module.
 
file  count.hpp
 Defines boost::hana::count.
 
file  count_if.hpp
 Defines boost::hana::count_if.
 
file  cycle.hpp
 Defines boost::hana::cycle.
 
file  define_struct.hpp
 Defines the BOOST_HANA_DEFINE_STRUCT macro.
 
file  difference.hpp
 Defines boost::hana::difference.
 
file  div.hpp
 Defines boost::hana::div.
 
file  drop_back.hpp
 Defines boost::hana::drop_back.
 
file  drop_front.hpp
 Defines boost::hana::drop_front.
 
file  drop_front_exactly.hpp
 Defines boost::hana::drop_front_exactly.
 
file  drop_while.hpp
 Defines boost::hana::drop_while.
 
file  duplicate.hpp
 Defines boost::hana::duplicate.
 
file  empty.hpp
 Defines boost::hana::empty.
 
file  equal.hpp
 Defines boost::hana::equal.
 
file  erase_key.hpp
 Defines boost::hana::erase_key.
 
file  eval.hpp
 Defines boost::hana::eval.
 
file  eval_if.hpp
 Defines boost::hana::eval_if.
 
file  extend.hpp
 Defines boost::hana::extend.
 
file  extract.hpp
 Defines boost::hana::extract.
 
file  fill.hpp
 Defines boost::hana::fill.
 
file  filter.hpp
 Defines boost::hana::filter.
 
file  find.hpp
 Defines boost::hana::find.
 
file  find_if.hpp
 Defines boost::hana::find_if.
 
file  first.hpp
 Defines boost::hana::first.
 
file  flatten.hpp
 Defines boost::hana::flatten.
 
file  fold.hpp
 Defines boost::hana::fold.
 
file  fold_left.hpp
 Defines boost::hana::fold_left.
 
file  fold_right.hpp
 Defines boost::hana::fold_right.
 
file  for_each.hpp
 Defines boost::hana::for_each.
 
file  front.hpp
 Defines boost::hana::front.
 
file  functional.hpp
 Defines the Functional module.
 
file  fuse.hpp
 Defines boost::hana::fuse.
 
file  greater.hpp
 Defines boost::hana::greater.
 
file  greater_equal.hpp
 Defines boost::hana::greater_equal.
 
file  group.hpp
 Defines boost::hana::group.
 
file  hash.hpp
 Defines boost::hana::hash.
 
file  if.hpp
 Defines boost::hana::if_.
 
file  insert.hpp
 Defines boost::hana::insert.
 
file  insert_range.hpp
 Defines boost::hana::insert_range.
 
file  integral_constant.hpp
 Defines boost::hana::integral_constant.
 
file  intersection.hpp
 Defines boost::hana::intersection.
 
file  intersperse.hpp
 Defines boost::hana::intersperse.
 
file  is_disjoint.hpp
 Defines boost::hana::is_disjoint.
 
file  is_empty.hpp
 Defines boost::hana::is_empty.
 
file  is_subset.hpp
 Defines boost::hana::is_subset.
 
file  keys.hpp
 Defines boost::hana::keys.
 
file  lazy.hpp
 Defines boost::hana::lazy.
 
file  length.hpp
 Defines boost::hana::length.
 
file  less.hpp
 Defines boost::hana::less.
 
file  less_equal.hpp
 Defines boost::hana::less_equal.
 
file  lexicographical_compare.hpp
 Defines boost::hana::lexicographical_compare.
 
file  lift.hpp
 Defines boost::hana::lift.
 
file  map.hpp
 Defines boost::hana::map.
 
file  max.hpp
 Defines boost::hana::max.
 
file  maximum.hpp
 Defines boost::hana::maximum.
 
file  members.hpp
 Defines boost::hana::members.
 
file  min.hpp
 Defines boost::hana::min.
 
file  minimum.hpp
 Defines boost::hana::minimum.
 
file  minus.hpp
 Defines boost::hana::minus.
 
file  mod.hpp
 Defines boost::hana::mod.
 
file  monadic_compose.hpp
 Defines boost::hana::monadic_compose.
 
file  monadic_fold_left.hpp
 Defines boost::hana::monadic_fold_left.
 
file  monadic_fold_right.hpp
 Defines boost::hana::monadic_fold_right.
 
file  mult.hpp
 Defines boost::hana::mult.
 
file  negate.hpp
 Defines boost::hana::negate.
 
file  none.hpp
 Defines boost::hana::none.
 
file  none_of.hpp
 Defines boost::hana::none_of.
 
file  not.hpp
 Defines boost::hana::not_.
 
file  not_equal.hpp
 Defines boost::hana::not_equal.
 
file  one.hpp
 Defines boost::hana::one.
 
file  optional.hpp
 Defines boost::hana::optional.
 
file  or.hpp
 Defines boost::hana::or_.
 
file  ordering.hpp
 Defines boost::hana::ordering.
 
file  pair.hpp
 Defines boost::hana::pair.
 
file  partition.hpp
 Defines boost::hana::partition.
 
file  permutations.hpp
 Defines boost::hana::permutations.
 
file  plus.hpp
 Defines boost::hana::plus.
 
file  power.hpp
 Defines boost::hana::power.
 
file  prefix.hpp
 Defines boost::hana::prefix.
 
file  prepend.hpp
 Defines boost::hana::prepend.
 
file  product.hpp
 Defines boost::hana::product.
 
file  range.hpp
 Defines boost::hana::range.
 
file  remove.hpp
 Defines boost::hana::remove.
 
file  remove_at.hpp
 Defines boost::hana::remove_at and boost::hana::remove_at_c.
 
file  remove_if.hpp
 Defines boost::hana::remove_if.
 
file  remove_range.hpp
 Defines boost::hana::remove_range and boost::hana::remove_range_c.
 
file  repeat.hpp
 Defines boost::hana::repeat.
 
file  replace.hpp
 Defines boost::hana::replace.
 
file  replace_if.hpp
 Defines boost::hana::replace_if.
 
file  replicate.hpp
 Defines boost::hana::replicate.
 
file  reverse.hpp
 Defines boost::hana::reverse.
 
file  reverse_fold.hpp
 Defines boost::hana::reverse_fold.
 
file  scan_left.hpp
 Defines boost::hana::scan_left.
 
file  scan_right.hpp
 Defines boost::hana::scan_right.
 
file  second.hpp
 Defines boost::hana::second.
 
file  set.hpp
 Defines boost::hana::set.
 
file  size.hpp
 Defines boost::hana::size.
 
file  slice.hpp
 Defines boost::hana::slice and boost::hana::slice_c.
 
file  sort.hpp
 Defines boost::hana::sort.
 
file  span.hpp
 Defines boost::hana::span.
 
file  string.hpp
 Defines boost::hana::string.
 
file  suffix.hpp
 Defines boost::hana::suffix.
 
file  sum.hpp
 Defines boost::hana::sum.
 
file  symmetric_difference.hpp
 Defines boost::hana::symmetric_difference.
 
file  take_back.hpp
 Defines boost::hana::take_back.
 
file  take_front.hpp
 Defines boost::hana::take_front and boost::hana::take_front_c.
 
file  take_while.hpp
 Defines boost::hana::take_while.
 
file  tap.hpp
 Defines boost::hana::tap.
 
file  then.hpp
 Defines boost::hana::then.
 
file  traits.hpp
 Defines function-like equivalents to the standard <type_traits>, and also to some utilities like std::declval.
 
file  transform.hpp
 Defines boost::hana::transform.
 
file  tuple.hpp
 Defines boost::hana::tuple.
 
file  type.hpp
 Defines boost::hana::type and related utilities.
 
file  unfold_left.hpp
 Defines boost::hana::unfold_left.
 
file  unfold_right.hpp
 Defines boost::hana::unfold_right.
 
file  union.hpp
 Defines boost::hana::union.
 
file  unique.hpp
 Defines boost::hana::unique.
 
file  unpack.hpp
 Defines boost::hana::unpack.
 
file  value.hpp
 Defines boost::hana::value.
 
file  version.hpp
 Defines macros for tracking the version of the library.
 
file  while.hpp
 Defines boost::hana::while_.
 
file  zero.hpp
 Defines boost::hana::zero.
 
file  zip.hpp
 Defines boost::hana::zip.
 
file  zip_shortest.hpp
 Defines boost::hana::zip_shortest.
 
file  zip_shortest_with.hpp
 Defines boost::hana::zip_shortest_with.
 
file  zip_with.hpp
 Defines boost::hana::zip_with.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.js b/boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.js new file mode 100644 index 0000000..e5b023e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_daf74c896eae580804ddb7810f485dad.js @@ -0,0 +1,163 @@ +var dir_daf74c896eae580804ddb7810f485dad = +[ + [ "concept", "dir_a6bcc969367a2b1bb27eb51c9ff4f3b4.html", "dir_a6bcc969367a2b1bb27eb51c9ff4f3b4" ], + [ "core", "dir_579efcf19f0a51e7b529b5b94ff4dd6f.html", "dir_579efcf19f0a51e7b529b5b94ff4dd6f" ], + [ "detail", "dir_0a4844ac9cb2026bd07faf42b116b549.html", "dir_0a4844ac9cb2026bd07faf42b116b549" ], + [ "experimental", "dir_323f3a97cf58df541572718162fe1793.html", "dir_323f3a97cf58df541572718162fe1793" ], + [ "ext", "dir_97491a7940b2b44461a547afe712abd2.html", "dir_97491a7940b2b44461a547afe712abd2" ], + [ "functional", "dir_cf196044773ad9db3b539387dd944c9e.html", "dir_cf196044773ad9db3b539387dd944c9e" ], + [ "fwd", "dir_cc4d96287a8e6ea2980c75f79e8c5cd4.html", "dir_cc4d96287a8e6ea2980c75f79e8c5cd4" ], + [ "accessors.hpp", "accessors_8hpp.html", null ], + [ "adapt_adt.hpp", "adapt__adt_8hpp.html", null ], + [ "adapt_struct.hpp", "adapt__struct_8hpp.html", null ], + [ "adjust.hpp", "adjust_8hpp.html", null ], + [ "adjust_if.hpp", "adjust__if_8hpp.html", null ], + [ "all.hpp", "all_8hpp.html", null ], + [ "all_of.hpp", "all__of_8hpp.html", null ], + [ "and.hpp", "and_8hpp.html", null ], + [ "any.hpp", "any_8hpp.html", null ], + [ "any_of.hpp", "any__of_8hpp.html", null ], + [ "ap.hpp", "ap_8hpp.html", null ], + [ "append.hpp", "append_8hpp.html", null ], + [ "assert.hpp", "assert_8hpp.html", "assert_8hpp" ], + [ "at.hpp", "at_8hpp.html", null ], + [ "at_key.hpp", "at__key_8hpp.html", [ + [ "advance_until", "structboost_1_1hana_1_1at__key__detail_1_1advance__until.html", null ] + ] ], + [ "back.hpp", "back_8hpp.html", null ], + [ "basic_tuple.hpp", "basic__tuple_8hpp.html", null ], + [ "bool.hpp", "bool_8hpp.html", "bool_8hpp" ], + [ "cartesian_product.hpp", "cartesian__product_8hpp.html", null ], + [ "chain.hpp", "chain_8hpp.html", null ], + [ "comparing.hpp", "comparing_8hpp.html", null ], + [ "concat.hpp", "concat_8hpp.html", null ], + [ "concept.hpp", "concept_8hpp.html", null ], + [ "config.hpp", "config_8hpp.html", "config_8hpp" ], + [ "contains.hpp", "contains_8hpp.html", null ], + [ "core.hpp", "core_8hpp.html", null ], + [ "count.hpp", "count_8hpp.html", null ], + [ "count_if.hpp", "count__if_8hpp.html", null ], + [ "cycle.hpp", "cycle_8hpp.html", null ], + [ "define_struct.hpp", "define__struct_8hpp.html", null ], + [ "difference.hpp", "difference_8hpp.html", null ], + [ "div.hpp", "div_8hpp.html", null ], + [ "drop_back.hpp", "drop__back_8hpp.html", null ], + [ "drop_front.hpp", "drop__front_8hpp.html", null ], + [ "drop_front_exactly.hpp", "drop__front__exactly_8hpp.html", null ], + [ "drop_while.hpp", "drop__while_8hpp.html", null ], + [ "duplicate.hpp", "duplicate_8hpp.html", null ], + [ "empty.hpp", "empty_8hpp.html", null ], + [ "equal.hpp", "equal_8hpp.html", null ], + [ "erase_key.hpp", "erase__key_8hpp.html", null ], + [ "eval.hpp", "eval_8hpp.html", null ], + [ "eval_if.hpp", "eval__if_8hpp.html", null ], + [ "extend.hpp", "extend_8hpp.html", null ], + [ "extract.hpp", "extract_8hpp.html", null ], + [ "fill.hpp", "fill_8hpp.html", null ], + [ "filter.hpp", "filter_8hpp.html", null ], + [ "find.hpp", "find_8hpp.html", null ], + [ "find_if.hpp", "find__if_8hpp.html", null ], + [ "first.hpp", "first_8hpp.html", null ], + [ "flatten.hpp", "flatten_8hpp.html", null ], + [ "fold.hpp", "fold_8hpp.html", null ], + [ "fold_left.hpp", "fold__left_8hpp.html", null ], + [ "fold_right.hpp", "fold__right_8hpp.html", null ], + [ "for_each.hpp", "for__each_8hpp.html", null ], + [ "front.hpp", "front_8hpp.html", null ], + [ "functional.hpp", "functional_8hpp.html", null ], + [ "fuse.hpp", "fuse_8hpp.html", null ], + [ "greater.hpp", "greater_8hpp.html", null ], + [ "greater_equal.hpp", "greater__equal_8hpp.html", null ], + [ "group.hpp", "group_8hpp.html", null ], + [ "hash.hpp", "hash_8hpp.html", null ], + [ "if.hpp", "if_8hpp.html", null ], + [ "insert.hpp", "insert_8hpp.html", null ], + [ "insert_range.hpp", "insert__range_8hpp.html", null ], + [ "integral_constant.hpp", "integral__constant_8hpp.html", null ], + [ "intersection.hpp", "intersection_8hpp.html", null ], + [ "intersperse.hpp", "intersperse_8hpp.html", null ], + [ "is_disjoint.hpp", "is__disjoint_8hpp.html", null ], + [ "is_empty.hpp", "is__empty_8hpp.html", null ], + [ "is_subset.hpp", "is__subset_8hpp.html", null ], + [ "keys.hpp", "keys_8hpp.html", null ], + [ "lazy.hpp", "lazy_8hpp.html", null ], + [ "length.hpp", "length_8hpp.html", null ], + [ "less.hpp", "less_8hpp.html", null ], + [ "less_equal.hpp", "less__equal_8hpp.html", null ], + [ "lexicographical_compare.hpp", "lexicographical__compare_8hpp.html", null ], + [ "lift.hpp", "lift_8hpp.html", null ], + [ "map.hpp", "map_8hpp.html", null ], + [ "max.hpp", "max_8hpp.html", null ], + [ "maximum.hpp", "maximum_8hpp.html", null ], + [ "members.hpp", "members_8hpp.html", null ], + [ "min.hpp", "min_8hpp.html", null ], + [ "minimum.hpp", "minimum_8hpp.html", null ], + [ "minus.hpp", "minus_8hpp.html", null ], + [ "mod.hpp", "mod_8hpp.html", null ], + [ "monadic_compose.hpp", "monadic__compose_8hpp.html", null ], + [ "monadic_fold_left.hpp", "monadic__fold__left_8hpp.html", null ], + [ "monadic_fold_right.hpp", "monadic__fold__right_8hpp.html", null ], + [ "mult.hpp", "mult_8hpp.html", null ], + [ "negate.hpp", "negate_8hpp.html", null ], + [ "none.hpp", "none_8hpp.html", null ], + [ "none_of.hpp", "none__of_8hpp.html", null ], + [ "not.hpp", "not_8hpp.html", null ], + [ "not_equal.hpp", "not__equal_8hpp.html", null ], + [ "one.hpp", "one_8hpp.html", null ], + [ "optional.hpp", "optional_8hpp.html", null ], + [ "or.hpp", "or_8hpp.html", null ], + [ "ordering.hpp", "ordering_8hpp.html", null ], + [ "pair.hpp", "pair_8hpp.html", null ], + [ "partition.hpp", "partition_8hpp.html", null ], + [ "permutations.hpp", "permutations_8hpp.html", null ], + [ "plus.hpp", "plus_8hpp.html", null ], + [ "power.hpp", "power_8hpp.html", null ], + [ "prefix.hpp", "prefix_8hpp.html", null ], + [ "prepend.hpp", "prepend_8hpp.html", null ], + [ "product.hpp", "product_8hpp.html", null ], + [ "range.hpp", "range_8hpp.html", null ], + [ "remove.hpp", "remove_8hpp.html", null ], + [ "remove_at.hpp", "remove__at_8hpp.html", null ], + [ "remove_if.hpp", "remove__if_8hpp.html", null ], + [ "remove_range.hpp", "remove__range_8hpp.html", null ], + [ "repeat.hpp", "repeat_8hpp.html", null ], + [ "replace.hpp", "replace_8hpp.html", null ], + [ "replace_if.hpp", "replace__if_8hpp.html", null ], + [ "replicate.hpp", "replicate_8hpp.html", null ], + [ "reverse.hpp", "reverse_8hpp.html", null ], + [ "reverse_fold.hpp", "reverse__fold_8hpp.html", null ], + [ "scan_left.hpp", "scan__left_8hpp.html", null ], + [ "scan_right.hpp", "scan__right_8hpp.html", null ], + [ "second.hpp", "second_8hpp.html", null ], + [ "set.hpp", "set_8hpp.html", null ], + [ "size.hpp", "size_8hpp.html", null ], + [ "slice.hpp", "slice_8hpp.html", null ], + [ "sort.hpp", "sort_8hpp.html", null ], + [ "span.hpp", "span_8hpp.html", null ], + [ "string.hpp", "string_8hpp.html", "string_8hpp" ], + [ "suffix.hpp", "suffix_8hpp.html", null ], + [ "sum.hpp", "sum_8hpp.html", null ], + [ "symmetric_difference.hpp", "symmetric__difference_8hpp.html", null ], + [ "take_back.hpp", "take__back_8hpp.html", null ], + [ "take_front.hpp", "take__front_8hpp.html", null ], + [ "take_while.hpp", "take__while_8hpp.html", null ], + [ "tap.hpp", "tap_8hpp.html", null ], + [ "then.hpp", "then_8hpp.html", null ], + [ "traits.hpp", "traits_8hpp.html", null ], + [ "transform.hpp", "transform_8hpp.html", null ], + [ "tuple.hpp", "tuple_8hpp.html", null ], + [ "type.hpp", "type_8hpp.html", null ], + [ "unfold_left.hpp", "unfold__left_8hpp.html", null ], + [ "unfold_right.hpp", "unfold__right_8hpp.html", null ], + [ "union.hpp", "union_8hpp.html", null ], + [ "unique.hpp", "unique_8hpp.html", null ], + [ "unpack.hpp", "unpack_8hpp.html", null ], + [ "value.hpp", "value_8hpp.html", null ], + [ "version.hpp", "version_8hpp.html", "version_8hpp" ], + [ "while.hpp", "while_8hpp.html", null ], + [ "zero.hpp", "zero_8hpp.html", null ], + [ "zip.hpp", "zip_8hpp.html", null ], + [ "zip_shortest.hpp", "zip__shortest_8hpp.html", null ], + [ "zip_shortest_with.hpp", "zip__shortest__with_8hpp.html", null ], + [ "zip_with.hpp", "zip__with_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dir_e68e8157741866f444e17edd764ebbae.html b/boost_1_63_0/libs/hana/doc/html/dir_e68e8157741866f444e17edd764ebbae.html new file mode 100644 index 0000000..d1da44f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_e68e8157741866f444e17edd764ebbae.html @@ -0,0 +1,148 @@ + + + + + + + + + +Boost.Hana: /home/travis/build/boostorg/hana/doc Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
doc Directory Reference
+
+
+ + +

+Files

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.html b/boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.html new file mode 100644 index 0000000..48dae7e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std Directory Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  array.hpp
 Adapts std::array for use with Hana.
 
file  integer_sequence.hpp
 Adapts std::integer_sequence for use with Hana.
 
file  integral_constant.hpp
 Adapts std::integral_constant for use with Hana.
 
file  pair.hpp
 Adapts std::pair for use with Hana.
 
file  ratio.hpp
 Adapts std::ratio for use with Hana.
 
file  tuple.hpp
 Adapts std::tuple for use with Hana.
 
file  vector.hpp
 Adapts std::vector for use with Hana.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.js b/boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.js new file mode 100644 index 0000000..1785452 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dir_f021aaf8cb4047f6c82c8c8a57a9e0c7.js @@ -0,0 +1,10 @@ +var dir_f021aaf8cb4047f6c82c8c8a57a9e0c7 = +[ + [ "array.hpp", "ext_2std_2array_8hpp.html", null ], + [ "integer_sequence.hpp", "integer__sequence_8hpp.html", null ], + [ "integral_constant.hpp", "ext_2std_2integral__constant_8hpp.html", null ], + [ "pair.hpp", "ext_2std_2pair_8hpp.html", null ], + [ "ratio.hpp", "ratio_8hpp.html", null ], + [ "tuple.hpp", "ext_2std_2tuple_8hpp.html", null ], + [ "vector.hpp", "std_2vector_8hpp.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/dispatch_8hpp.html b/boost_1_63_0/libs/hana/doc/html/dispatch_8hpp.html new file mode 100644 index 0000000..754a93f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dispatch_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/core/dispatch.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
dispatch.hpp File Reference
+
+
+ +

Includes all the headers needed to setup tag-dispatching. +More...

+

Detailed Description

+

Includes all the headers needed to setup tag-dispatching.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.html new file mode 100644 index 0000000..6631498 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/dispatch_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
dispatch_if.hpp File Reference
+
+
+ +

Defines BOOST_HANA_DISPATCH_IF. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Macros

#define BOOST_HANA_DISPATCH_IF(IMPL, ...)   IMPL
 Dispatch to the given implementation method only when a condition is satisfied. More...
 
+

Detailed Description

+

Defines BOOST_HANA_DISPATCH_IF.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.js new file mode 100644 index 0000000..92f51d5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dispatch__if_8hpp.js @@ -0,0 +1,4 @@ +var dispatch__if_8hpp = +[ + [ "BOOST_HANA_DISPATCH_IF", "group__group-details.html#ga5de7a0132a80e37c73d544ece1e6dd4e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/div_8hpp.html b/boost_1_63_0/libs/hana/doc/html/div_8hpp.html new file mode 100644 index 0000000..0f9d9c7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/div_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/div.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
div.hpp File Reference
+
+
+ +

Defines boost::hana::div. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::div.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/doc.png b/boost_1_63_0/libs/hana/doc/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..973a030e1e0dadee7b174cb0907ee039dc104794 GIT binary patch literal 752 zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U=ZVAV_;yoRU6a6z`(TK)5S5Qg7NL#)A>Qs zBFF06nZJC{+Tzt6&^@th?Xs7L-A%7%n1l(tA6wEVdo{2)oo{I{`##dmAGkuU^C9BMa3F zm`xs4e_I>7I`qc+Xmt;lZ zPv0*+2q!^crxw}MYx@Nlby|4GB^qeDD9Adub|J(e}Pu26= zyyvfPX=g@W5WD94Hf!#I3En|_>pTN)Z+PAF!Mpm=o*&O8mwGv>f2=$#Qg%Hcmz7VZ zPb%f}|5PhxL)n7r{MhYhUVq#ie(T7mmKQuS!e4}5yttI~x;iFr(ZohI-CJ8utd-s} zr*^UA5~1*)n|^ICn|A+I*rQbqQ%_o85Da`ycA%k|jh%RYSP z4JPe!UsFB7@MgUHZ|}_^ddvk*(rjN7qhsb>*9p05DY?Oo_evCVM&tcm9+?JpS+l-; zlNnv;-D284G#tsovQd(!u6p3@%jI!|8U;@cObu_ Ty?74;0|SGntDnm{r-UW|L{@Fl literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/doxygen.css b/boost_1_63_0/libs/hana/doc/html/doxygen.css new file mode 100644 index 0000000..51febe4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/doxygen.css @@ -0,0 +1,1474 @@ +/* The standard CSS for doxygen 1.8.11 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #BACB87; + color: #697B35; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #F3F6EB; + border: 1px solid #CAD7A3; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #788C3D; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #8BA246; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #C6D49C; + color: #ffffff; + border: 1px double #B9CA86; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FDFDFB; + border: 1px solid #DDE5C4; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #F3F6EB; + font-weight: bold; + border: 1px solid #DDE5C4; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #F3F6EB; + border: 1px solid #DDE5C4; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #F5F7EE; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #FAFBF7; + border-left: 2px solid #C6D49C; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #CAD7A3; +} + +th.dirtab { + background: #F3F6EB; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #92AA4A; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FBFCF9; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #8BA246; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #8BA246; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #F3F6EB; + border: 1px solid #CAD7A3; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #CDD9A8; + border-left: 1px solid #CDD9A8; + border-right: 1px solid #CDD9A8; + padding: 6px 0px 6px 0px; + color: #495525; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #EEF2E2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #CDD9A8; + border-left: 1px solid #CDD9A8; + border-right: 1px solid #CDD9A8; + padding: 6px 10px 2px 10px; + background-color: #FDFDFB; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #ADC172; + border-top:1px solid #9CB453; + border-left:1px solid #9CB453; + border-right:1px solid #DDE5C4; + border-bottom:1px solid #DDE5C4; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #C6D49C; + border-bottom: 1px solid #C6D49C; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #FAFBF7; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #788C3D; +} + +.arrow { + color: #C6D49C; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #ADC172; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #54612A; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #59682D; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #6D7F37; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #CDD9A8; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #CDD9A8; + border-bottom: 1px solid #CDD9A8; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #CDD9A8; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #EEF2E2; + font-size: 90%; + color: #495525; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #CDD9A8; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#BBCC8A; + border:solid 1px #DCE4C2; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#6B7C36; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #505D28; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#A8BD68; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#6B7C36; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FBFCF9; + margin: 0px; + border-bottom: 1px solid #DDE5C4; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #9CB453; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #BFCE90; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#647533; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F9FAF4; + border: 1px solid #E8EED8; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #8BA246; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} diff --git a/boost_1_63_0/libs/hana/doc/html/doxygen.png b/boost_1_63_0/libs/hana/doc/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..15078e2f2f4647ec2fec242590f8a7d0e40b8a1e GIT binary patch literal 3875 zcmeAS@N?(olHy`uVBq!ia0y~yV8~!#V36lvV_;z5w(hvWz`*y))5S5Qg7Ix^ZA@>v z{Qplgrc0hWous&sM_BR@NBbI1U*lxoO_PQ9%36s`Rh+m;C@k#OC!w?6Ey;%GnlJ9z z(v$1knW9r|BQh^H&h7mB^73=F?|#oYwE6t!O}6vjt;>JDZ~g1mL-bj(Ktti1vpMHmRx&OSWB4%t;AWwg<5T+?4)B5VPuu73Xd`&tWUQJH_YoEm{p7>d6eXUgG#;fIC zH;!HWD}Kr6$qoN}hD#Iui$v9m+AMhZZyVoO7q;H&_Lg<4)%>=d-IQazTI#mylH{}is zTPtH{X#Cam-&mV%Hg(f0PNOsYrEiTUS5JMPlO8?$+TRPSBGnWB9edlYvA3>^`O1a# zQxE4HnyQlRSa<4|Wi+!vU$Fc7jdO%g&bfTsN9OA`+3!{#cZNjt^~LHiO0>tV=Y1J^ zC1v)tyBV?WubsaXR(+6@HqX&JQt>8b+odaJ^^@bwF9~}p)#hLO{-wBJOYKVioHf5X zKHZ=GE_{yupT5!=Irm-*?(K{8d20TCV+_~({0WnHPtfm6KEKa@s!J5tM3pb)nvTZ5 z`E#X>;{R$&nI>#nJdpBMb_ z((_GkySDDTD6(d0-u-fJ4|nr2mkEdV&HdO^b5o!9VezBT6yt{6RcZWTz9DNwuh;L5 zZ`8aT`{4CrxAW&}UaXpD`z_HUV$xcby%ziaPOgnHc(!%vqhB{4>AbmZ7Vo*QTQkt| z;ls}7x0@ z6yqaT((b6|KivFQJSlXRqoS~g=c7McrQ?&kwqKvwe5;sQQ!n?^Etl5V-HDHWh0T=@ zdep~yVYPF_lIdO_U*#}VXnlL;mhg1aUBMLdzBg6EmM0%N&Q3Ml_&)yKROeUc3p7k# zwMH&^?YXPV{MhYG)8KN31Hp+m_ytWa6f{qncPep1#lcy5N1P33?)p<9A||%Td%9kM zv;Zf=RmY{@_}!bIOLgzMo;SzUFK^F>cUA^7{G$CI&P|QDR`0gq)q#2I@3{3kngy+KREo*##Dn4!xJNx#Y+N47^R9-f_{meJVWnpf6^Mq*yO4H(gc4ZZB@@F*Q3;$mC=W?%E?1rkB>2AyU z^9~=+*U7v0qm-?Fd&X6b%GgVJCadoIOyT6IW)|PK`(|&>v8H~M9SKN6mA$H`t6SCZVM}2(;r$$MSo}Zlb^JAWT&i^0Q z{*z8F`ugq3{({I7rZv%FcTIk3?(R*M*DCz=VymRe{B_%322Q@u>b<<$qI9;>x%U=} zmNl1kot}NjgzvD_O<(2Nvl@1;ckg|*KOp9Qd6MEao!jR*xA8<81Rmag-s4^1!hR3= zcgyFl?Dt4*`s3Wn{NPiX`dgj%zG>MZ$L_pX_GH<*=+_!|>z#g8|ELKUb?g#+C%g5P z=AnD7&mV2oH!wDs!@FDZ(-!sD8Vrvm9xJj4J(PbX^z@ZU{G9WaJ0;|g)yO%1a!OXU zJZpTS;=AORpifN?d>AG;>PvfX;`aG7J@@veIaZeKL8@GszUO-p{Y39+_GR zGNk-?6eIL#aoN%dYc}o+d08>RuPx;Gmh#*itB;-IyU zac^H7{{Px615O9s+MfX)#Pt-2Wn2Cwjs}w@-{!k*sf>vv=`-JNoy)uBptsy!a-nu=@l|Te~;a@yw#H z3_Xv3Uy@l;zlT-T_351DMe`QdXt?=qI6NWl^2G2RHy6|&yJG&Em$y%h)9CEMcIl>q zC&tQ-*-qkqK~}f+@*c1_l_$!vKX=w=MFs^)VO!fD%LNs+GVW=dJrG`#!g*Hzme!u{ z+vY1M>wmvp8X>w@U)5OI+t*BJIV*n%Z++>uGwDwjsRpp_;mov|zJC6Z7+;?GUp$wb z-aae2UH98GH&~tQPg?J>RP!T_~gd zHdyuUa+7Dj`QLH9myNQX`O?_&+&Z(U{UPF<8 zIrinQTT|PF^Q_)mRyH**_*Rm|rTnaY(br(Jy18aTTP@o1oy32Ad2w@nX^F>zKQ71D z@g2Gud_8@_*(a*q(-+<3zILo>o_zn77GX_E>Fr&AJ059xc=>IZda7`b*HVAhlbla| zm0tVWO>VAPyy~v{arL{+_u^S@b}HZfW+H0zyLtOrJ|l(@_GUX_lZqw1Wxt+0eH5iB zC}O7Wr;_oqsP~YY(}i2T#UG9~25qnU^}cwze#jBIA4RDh-v1p;R@`?<%ZPndr86(T z&a3s`hQ!ZPPsY7J7qKTJa+Cjoj4y9=?&vT~c$iZtc5Us=?yl(XX$A3{GwvBw&Dze^ zuU#*k$~Qmq6&X#P--1zNr>cwKF-sO2Kk_G&}>jnmHy5#Amu|GyP@9y55+e-|$ zdndnKnBIP6n_bwp?A4ll9F^H!%@J;=^TZrxmr5OWzx~+NySkGtJmHsr*_Yowk%BvU zo89LH@fFJT>AiJlXppSiRT`&}*#2$abN_t@x3O6-N}YV;$L*3n`NO)-8u_uGdreeu4jx&BUI>#nz5l?ek~OdRg=M_5|H~%nUOcbF41)FIACGYiDA} zYO1x?RA*3VcL4?g>A-DS&b%b|R{)a~~4C0E%P z{>?aX{dz<>=+kCf! z*UjgxcTo+9?6fL<#pJMcN5NNvP3F%R-zzRX{3TfT&i&V2VrOqL9jKQHuh%))IQLE{ z!$bv!ADb71&VK&!Mc~rSf37Yfw0?a{d)hs%{_onzT+R1??HwS_u1b1YZS6I z?FcSqYxvI`Qd+k_mf?@z9F+(`D~1FAIgYwaSQq#1p!T1ImzlvGO@S+SG{N0I`=j=Z Z?!VZ#F3}HPz`(%3;OXk;vd$@?2>|{CfV%(y literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/drop__back_8hpp.html b/boost_1_63_0/libs/hana/doc/html/drop__back_8hpp.html new file mode 100644 index 0000000..fb7dd51 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/drop__back_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/drop_back.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_back.hpp File Reference
+
+
+ +

Defines boost::hana::drop_back. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::drop_back.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/drop__front_8hpp.html b/boost_1_63_0/libs/hana/doc/html/drop__front_8hpp.html new file mode 100644 index 0000000..861fdff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/drop__front_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/drop_front.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_front.hpp File Reference
+
+
+ +

Defines boost::hana::drop_front. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::drop_front.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/drop__front__exactly_8hpp.html b/boost_1_63_0/libs/hana/doc/html/drop__front__exactly_8hpp.html new file mode 100644 index 0000000..d4b403d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/drop__front__exactly_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/drop_front_exactly.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_front_exactly.hpp File Reference
+
+
+ +

Defines boost::hana::drop_front_exactly. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::drop_front_exactly.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/drop__into_8hpp.html b/boost_1_63_0/libs/hana/doc/html/drop__into_8hpp.html new file mode 100644 index 0000000..6a8cc93 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/drop__into_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/drop_into.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_into.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::drop_into. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::drop_into.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/drop__while_8hpp.html b/boost_1_63_0/libs/hana/doc/html/drop__while_8hpp.html new file mode 100644 index 0000000..4831299 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/drop__while_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/drop_while.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_while.hpp File Reference
+
+
+ +

Defines boost::hana::drop_while. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::drop_while.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/duplicate_8hpp.html b/boost_1_63_0/libs/hana/doc/html/duplicate_8hpp.html new file mode 100644 index 0000000..5f0800d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/duplicate_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/duplicate.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
duplicate.hpp File Reference
+
+
+ +

Defines boost::hana::duplicate. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::duplicate.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/dynsections.js b/boost_1_63_0/libs/hana/doc/html/dynsections.js new file mode 100644 index 0000000..9d6f320 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/dynsections.js @@ -0,0 +1,96 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + + + +Boost.Hana: boost/hana/empty.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
empty.hpp File Reference
+
+
+ +

Defines boost::hana::empty. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::empty.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/equal_8hpp.html new file mode 100644 index 0000000..6d86117 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/equal_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
equal.hpp File Reference
+
+
+ +

Defines boost::hana::equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/erase__key_8hpp.html b/boost_1_63_0/libs/hana/doc/html/erase__key_8hpp.html new file mode 100644 index 0000000..1cb9860 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/erase__key_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/erase_key.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
erase_key.hpp File Reference
+
+
+ +

Defines boost::hana::erase_key. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::erase_key.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/eval_8hpp.html b/boost_1_63_0/libs/hana/doc/html/eval_8hpp.html new file mode 100644 index 0000000..daf5384 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/eval_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/eval.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
eval.hpp File Reference
+
+
+ +

Defines boost::hana::eval. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::eval.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/eval__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/eval__if_8hpp.html new file mode 100644 index 0000000..443fd03 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/eval__if_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/eval_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
eval_if.hpp File Reference
+
+
+ +

Defines boost::hana::eval_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::eval_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2detail_2common_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2detail_2common_8hpp.html new file mode 100644 index 0000000..fd90c16 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2detail_2common_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion/detail/common.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
common.hpp File Reference
+
+
+ +

Defines common methods for all Boost.Fusion sequences. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines common methods for all Boost.Fusion sequences.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2tuple_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2tuple_8hpp.html new file mode 100644 index 0000000..2d0e252 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ext_2boost_2fusion_2tuple_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion/tuple.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tuple.hpp File Reference
+
+
+ +

Adapts boost::fusion::tuple for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::fusion::tuple< T >
 Adapter for Boost.Fusion tuples. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts boost::fusion::tuple for use with Hana.

+

In the current version of Boost.Fusion, boost::fusion::tuple is basically an alias to boost::fusion::vector, so both data types share the same implementation in Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ext_2boost_2tuple_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ext_2boost_2tuple_8hpp.html new file mode 100644 index 0000000..edf5b11 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ext_2boost_2tuple_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/tuple.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tuple.hpp File Reference
+
+
+ +

Adapts boost::tuple for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::tuple< T >
 Adapter for boost::tuples. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts boost::tuple for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ext_2std_2array_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ext_2std_2array_8hpp.html new file mode 100644 index 0000000..6320e94 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ext_2std_2array_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std/array.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
array.hpp File Reference
+
+
+ +

Adapts std::array for use with Hana. +More...

+ + + + + +

+Classes

struct  std::array< T, N >
 Adaptation of std::array for Hana. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts std::array for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ext_2std_2integral__constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ext_2std_2integral__constant_8hpp.html new file mode 100644 index 0000000..d4f483c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ext_2std_2integral__constant_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std/integral_constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
integral_constant.hpp File Reference
+
+
+ +

Adapts std::integral_constant for use with Hana. +More...

+ + + + + +

+Classes

struct  std::integral_constant< T, v >
 Adapter for std::integral_constants. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts std::integral_constant for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ext_2std_2pair_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ext_2std_2pair_8hpp.html new file mode 100644 index 0000000..08ba712 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ext_2std_2pair_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std/pair.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
pair.hpp File Reference
+
+
+ +

Adapts std::pair for use with Hana. +More...

+ + + + + +

+Classes

struct  std::pair< First, Second >
 Adaptation of std::pair for Hana. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts std::pair for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ext_2std_2tuple_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ext_2std_2tuple_8hpp.html new file mode 100644 index 0000000..7cce9e2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ext_2std_2tuple_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std/tuple.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tuple.hpp File Reference
+
+
+ +

Adapts std::tuple for use with Hana. +More...

+ + + + + +

+Classes

struct  std::tuple< T >
 Adapter for std::tuples. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts std::tuple for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/extend_8hpp.html b/boost_1_63_0/libs/hana/doc/html/extend_8hpp.html new file mode 100644 index 0000000..264f128 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/extend_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/extend.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
extend.hpp File Reference
+
+
+ +

Defines boost::hana::extend. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::extend.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/extract_8hpp.html b/boost_1_63_0/libs/hana/doc/html/extract_8hpp.html new file mode 100644 index 0000000..d0d5577 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/extract_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/extract.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
extract.hpp File Reference
+
+
+ +

Defines boost::hana::extract. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::extract.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fast__and_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fast__and_8hpp.html new file mode 100644 index 0000000..07a5999 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fast__and_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/fast_and.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fast_and.hpp File Reference
+
+
+ +

Defines boost::hana::detail::fast_and. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::fast_and.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/files.html b/boost_1_63_0/libs/hana/doc/html/files.html new file mode 100644 index 0000000..93e00cd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/files.html @@ -0,0 +1,611 @@ + + + + + + + + + +Boost.Hana: Headers + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Headers
+
+
+
This is a list of all the headers provided by the library.
+
[detail level 1234567]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  boost
  hana
  concept
 applicative.hppDefines boost::hana::Applicative
 comonad.hppDefines boost::hana::Comonad
 comparable.hppDefines boost::hana::Comparable
 constant.hppDefines boost::hana::Constant
 euclidean_ring.hppDefines boost::hana::EuclideanRing
 foldable.hppDefines boost::hana::Foldable
 functor.hppDefines boost::hana::Functor
 group.hppDefines boost::hana::Group
 hashable.hppDefines boost::hana::Hashable
 integral_constant.hppDefines boost::hana::IntegralConstant
 iterable.hppDefines boost::hana::Iterable
 logical.hppDefines boost::hana::Logical
 metafunction.hppDefines boost::hana::Metafunction
 monad.hppDefines boost::hana::Monad
 monad_plus.hppDefines boost::hana::MonadPlus
 monoid.hppDefines boost::hana::Monoid
 orderable.hppDefines boost::hana::Orderable
 product.hppDefines boost::hana::Product
 ring.hppDefines boost::hana::Ring
 searchable.hppDefines boost::hana::Searchable
 sequence.hppDefines boost::hana::Sequence
 struct.hppDefines boost::hana::Struct
  core
 common.hppDefines boost::hana::common and boost::hana::common_t
 default.hppDefines boost::hana::default_ and boost::hana::is_default
 dispatch.hppIncludes all the headers needed to setup tag-dispatching
 is_a.hppDefines boost::hana::is_a and boost::hana::is_an
 make.hppDefines boost::hana::make
 tag_of.hppDefines boost::hana::tag_of and boost::hana::tag_of_t
 to.hppDefines boost::hana::to and related utilities
 when.hppDefines boost::hana::when and boost::hana::when_valid
  detail
  operators
 adl.hppDefines boost::hana::detail::operators::adl
 arithmetic.hppDefines arithmetic operators
 comparable.hppDefines operators for Comparables
 iterable.hppDefines operators for Iterables
 logical.hppDefines logical operators
 monad.hppDefines operators for Monads
 orderable.hppDefines operators for Orderables
 searchable.hppDefines operators for Searchables
  variadic
  reverse_apply
 flat.hppDefines boost::hana::detail::variadic::reverse_apply_flat
 unrolled.hppDefines boost::hana::detail::variadic::reverse_apply_unrolled
 at.hppDefines boost::hana::detail::variadic::at
 drop_into.hppDefines boost::hana::detail::variadic::drop_into
 foldl1.hppDefines boost::hana::detail::variadic::foldl1
 foldr1.hppDefines boost::hana::detail::variadic::foldr1
 reverse_apply.hppDefines boost::hana::detail::variadic::reverse_apply
 split_at.hppDefines boost::hana::detail::variadic::split_at
 take.hppDefines boost::hana::detail::variadic::take
 algorithm.hppDefines several constexpr algorithms
 any_of.hppDefines boost::hana::detail::any_of
 array.hppDefines boost::hana::detail::array
 canonical_constant.hppDefines boost::hana::detail::CanonicalConstant
 concepts.hppDefines concepts from the Standard library
 create.hppDefines boost::hana::detail::create
 decay.hppDefines a replacement for std::decay, which is sometimes too slow at compile-time
 dependent_on.hppDefines boost::hana::detail::dependent_on
 dispatch_if.hppDefines BOOST_HANA_DISPATCH_IF
 fast_and.hppDefines boost::hana::detail::fast_and
 first_unsatisfied_index.hppDefines boost::hana::detail::first_unsatisfied_index
 has_common_embedding.hppDefines boost::hana::detail::has_[nontrivial_]common_embedding
 has_duplicates.hppDefines boost::hana::detail::has_duplicates
 hash_table.hppDefines boost::hana::detail::hash_table
 index_if.hppDefines boost::hana::detail::index_if
 integral_constant.hppDefines the barebones boost::hana::integral_constant template, but no operations on it
 intrinsics.hppDefines macros for commonly used type traits
 nested_by.hppDefines boost::hana::detail::nested_by
 nested_by_fwd.hppForward declares boost::hana::detail::nested_by
 nested_than.hppDefines boost::hana::detail::nested_than
 nested_than_fwd.hppForward declares boost::hana::detail::nested_than
 nested_to.hppDefines boost::hana::detail::nested_to
 nested_to_fwd.hppForward declares boost::hana::detail::nested_to
 preprocessor.hppDefines generally useful preprocessor macros
 std_common_type.hppDefines a SFINAE-friendly version of std::common_type
 struct_macros.hppDefines the BOOST_HANA_DEFINE_STRUCT, BOOST_HANA_ADAPT_STRUCT, and BOOST_HANA_ADAPT_ADT macros
 type_at.hppDefines boost::hana::detail::type_at
 type_foldl1.hppDefines boost::hana::detail::type_foldl1
 type_foldr1.hppDefines boost::hana::detail::type_foldr1
 unpack_flatten.hppDefines boost::hana::detail::unpack_flatten
 void_t.hppDefines an equivalent to the proposed std::void_t
 wrong.hppDefines boost::hana::detail::wrong
  experimental
 types.hppDefines boost::hana::experimental::types
  ext
  boost
  fusion
  detail
 common.hppDefines common methods for all Boost.Fusion sequences
 deque.hppAdapts boost::fusion::deque for use with Hana
 list.hppAdapts boost::fusion::list for use with Hana
 tuple.hppAdapts boost::fusion::tuple for use with Hana
 vector.hppAdapts boost::fusion::vector for use with Hana
  mpl
 integral_c.hppAdapts Boost.MPL IntegralConstants for use with Hana
 list.hppAdapts boost::mpl::list for use with Hana
 vector.hppAdapts boost::mpl::vector for use with Hana
 fusion.hppIncludes all the adaptors for the Boost.Fusion library
 mpl.hppIncludes all the adaptors for the Boost.MPL library
 tuple.hppAdapts boost::tuple for use with Hana
  std
 array.hppAdapts std::array for use with Hana
 integer_sequence.hppAdapts std::integer_sequence for use with Hana
 integral_constant.hppAdapts std::integral_constant for use with Hana
 pair.hppAdapts std::pair for use with Hana
 ratio.hppAdapts std::ratio for use with Hana
 tuple.hppAdapts std::tuple for use with Hana
 vector.hppAdapts std::vector for use with Hana
 boost.hppIncludes all the adaptors for external Boost libraries
 std.hppIncludes all the adaptors for the standard library
  functional
 always.hppDefines boost::hana::always
 apply.hppDefines boost::hana::apply
 arg.hppDefines boost::hana::arg
 capture.hppDefines boost::hana::capture
 compose.hppDefines boost::hana::compose
 curry.hppDefines boost::hana::curry
 demux.hppDefines boost::hana::demux
 fix.hppDefines boost::hana::fix
 flip.hppDefines boost::hana::flip
 id.hppDefines boost::hana::id
 infix.hppDefines boost::hana::infix
 iterate.hppDefines boost::hana::iterate
 lockstep.hppDefines boost::hana::lockstep
 on.hppDefines boost::hana::on
 overload.hppDefines boost::hana::overload
 overload_linearly.hppDefines boost::hana::overload_linearly
 partial.hppDefines boost::hana::partial
 placeholder.hppDefines boost::hana::_
 reverse_partial.hppDefines boost::hana::reverse_partial
  fwd
  concept
 applicative.hppForward declares boost::hana::Applicative
 comonad.hppForward declares boost::hana::Comonad
 comparable.hppForward declares boost::hana::Comparable
 constant.hppForward declares boost::hana::Constant
 euclidean_ring.hppForward declares boost::hana::EuclideanRing
 foldable.hppForward declares boost::hana::Foldable
 functor.hppForward declares boost::hana::Functor
 group.hppForward declares boost::hana::Group
 hashable.hppForward declares boost::hana::Hashable
 integral_constant.hppForward declares boost::hana::IntegralConstant
 iterable.hppForward declares boost::hana::Iterable
 logical.hppForward declares boost::hana::Logical
 metafunction.hppForward declares boost::hana::Metafunction
 monad.hppForward declares boost::hana::Monad
 monad_plus.hppForward declares boost::hana::MonadPlus
 monoid.hppForward declares boost::hana::Monoid
 orderable.hppForward declares boost::hana::Orderable
 product.hppForward declares boost::hana::Product
 ring.hppForward declares boost::hana::Ring
 searchable.hppForward declares boost::hana::Searchable
 sequence.hppForward declares boost::hana::Sequence
 struct.hppForward declares boost::hana::Struct
  core
 common.hppForward declares boost::hana::common and boost::hana::common_t
 default.hppForward declares boost::hana::default_ and boost::hana::is_default
 is_a.hppForward declares boost::hana::is_a and boost::hana::is_an
 make.hppForward declares boost::hana::make
 tag_of.hppForward declares boost::hana::tag_of and boost::hana::tag_of_t
 to.hppForward declares boost::hana::to and related utilities
 when.hppForward declares boost::hana::when and boost::hana::when_valid
 accessors.hppForward declares boost::hana::accessors
 adapt_adt.hppDocuments the BOOST_HANA_ADAPT_ADT macro
 adapt_struct.hppDocuments the BOOST_HANA_ADAPT_STRUCT macro
 adjust.hppForward declares boost::hana::adjust
 adjust_if.hppForward declares boost::hana::adjust_if
 all.hppForward declares boost::hana::all
 all_of.hppForward declares boost::hana::all_of
 and.hppForward declares boost::hana::and_
 any.hppForward declares boost::hana::any
 any_of.hppForward declares boost::hana::any_of
 ap.hppForward declares boost::hana::ap
 append.hppForward declares boost::hana::append
 at.hppForward declares boost::hana::at and boost::hana::at_c
 at_key.hppForward declares boost::hana::at_key
 back.hppForward declares boost::hana::back
 basic_tuple.hppForward declares boost::hana::basic_tuple
 bool.hppIncludes boost/hana/fwd/integral_constant.hpp
 cartesian_product.hppForward declares boost::hana::cartesian_product
 chain.hppForward declares boost::hana::chain
 comparing.hppForward declares boost::hana::comparing
 concat.hppForward declares boost::hana::concat
 contains.hppForward declares boost::hana::contains and boost::hana::in
 core.hppForward declares the Core module
 count.hppForward declares boost::hana::count
 count_if.hppForward declares boost::hana::count_if
 cycle.hppForward declares boost::hana::cycle
 define_struct.hppDocuments the BOOST_HANA_DEFINE_STRUCT macro
 difference.hppForward declares boost::hana::difference
 div.hppForward declares boost::hana::div
 drop_back.hppForward declares boost::hana::drop_back
 drop_front.hppForward declares boost::hana::drop_front
 drop_front_exactly.hppForward declares boost::hana::drop_front_exactly
 drop_while.hppForward declares boost::hana::drop_while
 duplicate.hppForward declares boost::hana::duplicate
 empty.hppForward declares boost::hana::empty
 equal.hppForward declares boost::hana::equal
 erase_key.hppForward declares boost::hana::erase_key
 eval.hppForward declares boost::hana::eval
 eval_if.hppForward declares boost::hana::eval_if
 extend.hppForward declares boost::hana::extend
 extract.hppForward declares boost::hana::extract
 fill.hppForward declares boost::hana::fill
 filter.hppForward declares boost::hana::filter
 find.hppForward declares boost::hana::find
 find_if.hppForward declares boost::hana::find_if
 first.hppForward declares boost::hana::first
 flatten.hppForward declares boost::hana::flatten
 fold.hppForward declares boost::hana::fold
 fold_left.hppForward declares boost::hana::fold_left
 fold_right.hppForward declares boost::hana::fold_right
 for_each.hppForward declares boost::hana::for_each
 front.hppForward declares boost::hana::front
 fuse.hppForward declares boost::hana::fuse
 greater.hppForward declares boost::hana::greater
 greater_equal.hppForward declares boost::hana::greater_equal
 group.hppForward declares boost::hana::group
 hash.hppForward declares boost::hana::hash
 if.hppForward declares boost::hana::if_
 insert.hppForward declares boost::hana::insert
 insert_range.hppForward declares boost::hana::insert_range
 integral_constant.hppForward declares boost::hana::integral_constant
 intersection.hppForward declares boost::hana::intersection
 intersperse.hppForward declares boost::hana::intersperse
 is_disjoint.hppForward declares boost::hana::is_disjoint
 is_empty.hppForward declares boost::hana::is_empty
 is_subset.hppForward declares boost::hana::is_subset
 keys.hppForward declares boost::hana::keys
 lazy.hppForward declares boost::hana::lazy
 length.hppForward declares boost::hana::length
 less.hppForward declares boost::hana::less
 less_equal.hppForward declares boost::hana::less_equal
 lexicographical_compare.hppForward declares boost::hana::lexicographical_compare
 lift.hppForward declares boost::hana::lift
 map.hppForward declares boost::hana::map
 max.hppForward declares boost::hana::max
 maximum.hppForward declares boost::hana::maximum
 members.hppForward declares boost::hana::members
 min.hppForward declares boost::hana::min
 minimum.hppForward declares boost::hana::minimum
 minus.hppForward declares boost::hana::minus
 mod.hppForward declares boost::hana::mod
 monadic_compose.hppForward declares boost::hana::monadic_compose
 monadic_fold_left.hppForward declares boost::hana::monadic_fold_left
 monadic_fold_right.hppForward declares boost::hana::monadic_fold_right
 mult.hppForward declares boost::hana::mult
 negate.hppForward declares boost::hana::negate
 none.hppForward declares boost::hana::none
 none_of.hppForward declares boost::hana::none_of
 not.hppForward declares boost::hana::not_
 not_equal.hppForward declares boost::hana::not_equal
 one.hppForward declares boost::hana::one
 optional.hppForward declares boost::hana::optional
 or.hppForward declares boost::hana::or_
 ordering.hppForward declares boost::hana::ordering
 pair.hppForward declares boost::hana::pair
 partition.hppForward declares boost::hana::partition
 permutations.hppForward declares boost::hana::permutations
 plus.hppForward declares boost::hana::plus
 power.hppForward declares boost::hana::power
 prefix.hppForward declares boost::hana::prefix
 prepend.hppForward declares boost::hana::prepend
 product.hppForward declares boost::hana::product
 range.hppForward declares boost::hana::range
 remove.hppForward declares boost::hana::remove
 remove_at.hppForward declares boost::hana::remove_at and boost::hana::remove_at_c
 remove_if.hppForward declares boost::hana::remove_if
 remove_range.hppForward declares boost::hana::remove_range and boost::hana::remove_range_c
 repeat.hppForward declares boost::hana::repeat
 replace.hppForward declares boost::hana::replace
 replace_if.hppForward declares boost::hana::replace_if
 replicate.hppForward declares boost::hana::replicate
 reverse.hppForward declares boost::hana::reverse
 reverse_fold.hppForward declares boost::hana::reverse_fold
 scan_left.hppForward declares boost::hana::scan_left
 scan_right.hppForward declares boost::hana::scan_right
 second.hppForward declares boost::hana::second
 set.hppForward declares boost::hana::set
 size.hppForward declares boost::hana::size
 slice.hppForward declares boost::hana::slice and boost::hana::slice_c
 sort.hppForward declares boost::hana::sort
 span.hppForward declares boost::hana::span
 string.hppForward declares boost::hana::string
 suffix.hppForward declares boost::hana::suffix
 sum.hppForward declares boost::hana::sum
 symmetric_difference.hppForward declares boost::hana::symmetric_difference
 take_back.hppForward declares boost::hana::take_back
 take_front.hppForward declares boost::hana::take_front and boost::hana::take_front_c
 take_while.hppForward declares boost::hana::take_while
 tap.hppForward declares boost::hana::tap
 then.hppForward declares boost::hana::then
 transform.hppForward declares boost::hana::transform
 tuple.hppForward declares boost::hana::tuple
 type.hppForward declares boost::hana::type and related utilities
 unfold_left.hppForward declares boost::hana::unfold_left
 unfold_right.hppForward declares boost::hana::unfold_right
 union.hppForward declares boost::hana::union_
 unique.hppForward declares boost::hana::unique
 unpack.hppForward declares boost::hana::unpack
 value.hppForward declares boost::hana::value
 while.hppForward declares boost::hana::while_
 zero.hppForward declares boost::hana::zero
 zip.hppForward declares boost::hana::zip
 zip_shortest.hppForward declares boost::hana::zip_shortest
 zip_shortest_with.hppForward declares boost::hana::zip_shortest_with
 zip_with.hppForward declares boost::hana::zip_with
 accessors.hppDefines boost::hana::accessors
 adapt_adt.hppDefines the BOOST_HANA_ADAPT_ADT macro
 adapt_struct.hppDefines the BOOST_HANA_ADAPT_STRUCT macro
 adjust.hppDefines boost::hana::adjust
 adjust_if.hppDefines boost::hana::adjust_if
 all.hppDefines boost::hana::all
 all_of.hppDefines boost::hana::all_of
 and.hppDefines boost::hana::and_
 any.hppDefines boost::hana::any
 any_of.hppDefines boost::hana::any_of
 ap.hppDefines boost::hana::ap
 append.hppDefines boost::hana::append
 assert.hppDefines macros to perform different kinds of assertions
 at.hppDefines boost::hana::at and boost::hana::at_c
 at_key.hppDefines boost::hana::at_key
 back.hppDefines boost::hana::back
 basic_tuple.hppDefines boost::hana::basic_tuple
 bool.hppDefines the Logical and Comparable models of boost::hana::integral_constant
 cartesian_product.hppDefines boost::hana::cartesian_product
 chain.hppDefines boost::hana::chain
 comparing.hppDefines boost::hana::comparing
 concat.hppDefines boost::hana::concat
 concept.hppMaster header for the boost/hana/concept/ subdirectory
 config.hppDefines configuration macros used throughout the library
 contains.hppDefines boost::hana::contains and boost::hana::in
 core.hppDefines the Core module
 count.hppDefines boost::hana::count
 count_if.hppDefines boost::hana::count_if
 cycle.hppDefines boost::hana::cycle
 define_struct.hppDefines the BOOST_HANA_DEFINE_STRUCT macro
 difference.hppDefines boost::hana::difference
 div.hppDefines boost::hana::div
 drop_back.hppDefines boost::hana::drop_back
 drop_front.hppDefines boost::hana::drop_front
 drop_front_exactly.hppDefines boost::hana::drop_front_exactly
 drop_while.hppDefines boost::hana::drop_while
 duplicate.hppDefines boost::hana::duplicate
 empty.hppDefines boost::hana::empty
 equal.hppDefines boost::hana::equal
 erase_key.hppDefines boost::hana::erase_key
 eval.hppDefines boost::hana::eval
 eval_if.hppDefines boost::hana::eval_if
 extend.hppDefines boost::hana::extend
 extract.hppDefines boost::hana::extract
 fill.hppDefines boost::hana::fill
 filter.hppDefines boost::hana::filter
 find.hppDefines boost::hana::find
 find_if.hppDefines boost::hana::find_if
 first.hppDefines boost::hana::first
 flatten.hppDefines boost::hana::flatten
 fold.hppDefines boost::hana::fold
 fold_left.hppDefines boost::hana::fold_left
 fold_right.hppDefines boost::hana::fold_right
 for_each.hppDefines boost::hana::for_each
 front.hppDefines boost::hana::front
 functional.hppDefines the Functional module
 fuse.hppDefines boost::hana::fuse
 greater.hppDefines boost::hana::greater
 greater_equal.hppDefines boost::hana::greater_equal
 group.hppDefines boost::hana::group
 hash.hppDefines boost::hana::hash
 if.hppDefines boost::hana::if_
 insert.hppDefines boost::hana::insert
 insert_range.hppDefines boost::hana::insert_range
 integral_constant.hppDefines boost::hana::integral_constant
 intersection.hppDefines boost::hana::intersection
 intersperse.hppDefines boost::hana::intersperse
 is_disjoint.hppDefines boost::hana::is_disjoint
 is_empty.hppDefines boost::hana::is_empty
 is_subset.hppDefines boost::hana::is_subset
 keys.hppDefines boost::hana::keys
 lazy.hppDefines boost::hana::lazy
 length.hppDefines boost::hana::length
 less.hppDefines boost::hana::less
 less_equal.hppDefines boost::hana::less_equal
 lexicographical_compare.hppDefines boost::hana::lexicographical_compare
 lift.hppDefines boost::hana::lift
 map.hppDefines boost::hana::map
 max.hppDefines boost::hana::max
 maximum.hppDefines boost::hana::maximum
 members.hppDefines boost::hana::members
 min.hppDefines boost::hana::min
 minimum.hppDefines boost::hana::minimum
 minus.hppDefines boost::hana::minus
 mod.hppDefines boost::hana::mod
 monadic_compose.hppDefines boost::hana::monadic_compose
 monadic_fold_left.hppDefines boost::hana::monadic_fold_left
 monadic_fold_right.hppDefines boost::hana::monadic_fold_right
 mult.hppDefines boost::hana::mult
 negate.hppDefines boost::hana::negate
 none.hppDefines boost::hana::none
 none_of.hppDefines boost::hana::none_of
 not.hppDefines boost::hana::not_
 not_equal.hppDefines boost::hana::not_equal
 one.hppDefines boost::hana::one
 optional.hppDefines boost::hana::optional
 or.hppDefines boost::hana::or_
 ordering.hppDefines boost::hana::ordering
 pair.hppDefines boost::hana::pair
 partition.hppDefines boost::hana::partition
 permutations.hppDefines boost::hana::permutations
 plus.hppDefines boost::hana::plus
 power.hppDefines boost::hana::power
 prefix.hppDefines boost::hana::prefix
 prepend.hppDefines boost::hana::prepend
 product.hppDefines boost::hana::product
 range.hppDefines boost::hana::range
 remove.hppDefines boost::hana::remove
 remove_at.hppDefines boost::hana::remove_at and boost::hana::remove_at_c
 remove_if.hppDefines boost::hana::remove_if
 remove_range.hppDefines boost::hana::remove_range and boost::hana::remove_range_c
 repeat.hppDefines boost::hana::repeat
 replace.hppDefines boost::hana::replace
 replace_if.hppDefines boost::hana::replace_if
 replicate.hppDefines boost::hana::replicate
 reverse.hppDefines boost::hana::reverse
 reverse_fold.hppDefines boost::hana::reverse_fold
 scan_left.hppDefines boost::hana::scan_left
 scan_right.hppDefines boost::hana::scan_right
 second.hppDefines boost::hana::second
 set.hppDefines boost::hana::set
 size.hppDefines boost::hana::size
 slice.hppDefines boost::hana::slice and boost::hana::slice_c
 sort.hppDefines boost::hana::sort
 span.hppDefines boost::hana::span
 string.hppDefines boost::hana::string
 suffix.hppDefines boost::hana::suffix
 sum.hppDefines boost::hana::sum
 symmetric_difference.hppDefines boost::hana::symmetric_difference
 take_back.hppDefines boost::hana::take_back
 take_front.hppDefines boost::hana::take_front and boost::hana::take_front_c
 take_while.hppDefines boost::hana::take_while
 tap.hppDefines boost::hana::tap
 then.hppDefines boost::hana::then
 traits.hppDefines function-like equivalents to the standard <type_traits>, and also to some utilities like std::declval
 transform.hppDefines boost::hana::transform
 tuple.hppDefines boost::hana::tuple
 type.hppDefines boost::hana::type and related utilities
 unfold_left.hppDefines boost::hana::unfold_left
 unfold_right.hppDefines boost::hana::unfold_right
 union.hppDefines boost::hana::union
 unique.hppDefines boost::hana::unique
 unpack.hppDefines boost::hana::unpack
 value.hppDefines boost::hana::value
 version.hppDefines macros for tracking the version of the library
 while.hppDefines boost::hana::while_
 zero.hppDefines boost::hana::zero
 zip.hppDefines boost::hana::zip
 zip_shortest.hppDefines boost::hana::zip_shortest
 zip_shortest_with.hppDefines boost::hana::zip_shortest_with
 zip_with.hppDefines boost::hana::zip_with
 hana.hppIncludes all the library components except the adapters for external libraries
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/files.js b/boost_1_63_0/libs/hana/doc/html/files.js new file mode 100644 index 0000000..0c35884 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/files.js @@ -0,0 +1,4 @@ +var files = +[ + [ "boost", "dir_1878a3f4746a95c6aad317458cc7ef80.html", "dir_1878a3f4746a95c6aad317458cc7ef80" ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fill_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fill_8hpp.html new file mode 100644 index 0000000..e566d65 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fill_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fill.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fill.hpp File Reference
+
+
+ +

Defines boost::hana::fill. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::fill.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/filter_8hpp.html b/boost_1_63_0/libs/hana/doc/html/filter_8hpp.html new file mode 100644 index 0000000..8a046f2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/filter_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/filter.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
filter.hpp File Reference
+
+
+ +

Defines boost::hana::filter. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::filter.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/find_8hpp.html b/boost_1_63_0/libs/hana/doc/html/find_8hpp.html new file mode 100644 index 0000000..6d066c8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/find_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/find.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
find.hpp File Reference
+
+
+ +

Defines boost::hana::find. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::find.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/find__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/find__if_8hpp.html new file mode 100644 index 0000000..8e0289c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/find__if_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/find_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
find_if.hpp File Reference
+
+
+ +

Defines boost::hana::find_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::find_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/first_8hpp.html b/boost_1_63_0/libs/hana/doc/html/first_8hpp.html new file mode 100644 index 0000000..334805b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/first_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/first.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
first.hpp File Reference
+
+
+ +

Defines boost::hana::first. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::first.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/first__unsatisfied__index_8hpp.html b/boost_1_63_0/libs/hana/doc/html/first__unsatisfied__index_8hpp.html new file mode 100644 index 0000000..63fd61d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/first__unsatisfied__index_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/first_unsatisfied_index.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
first_unsatisfied_index.hpp File Reference
+
+
+ +

Defines boost::hana::detail::first_unsatisfied_index. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::first_unsatisfied_index< Pred >
 Returns the index of the first element which does not satisfy Pred, or sizeof...(Xs) if no such element exists. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::first_unsatisfied_index.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fix_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fix_8hpp.html new file mode 100644 index 0000000..b1b677e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fix_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/fix.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fix.hpp File Reference
+
+
+ +

Defines boost::hana::fix. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::fix
 Return a function computing the fixed point of a function. More...
 
+

Detailed Description

+

Defines boost::hana::fix.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fix_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fix_8hpp.js new file mode 100644 index 0000000..48e7b56 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fix_8hpp.js @@ -0,0 +1,4 @@ +var fix_8hpp = +[ + [ "fix", "fix_8hpp.html#ga1393f40da2e8da6e0c12fce953e56a6c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/flat_8hpp.html b/boost_1_63_0/libs/hana/doc/html/flat_8hpp.html new file mode 100644 index 0000000..6e81966 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/flat_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/reverse_apply/flat.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
flat.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::reverse_apply_flat. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::reverse_apply_flat.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/flatten_8hpp.html b/boost_1_63_0/libs/hana/doc/html/flatten_8hpp.html new file mode 100644 index 0000000..746bbeb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/flatten_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/flatten.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
flatten.hpp File Reference
+
+
+ +

Defines boost::hana::flatten. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::flatten.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/flip_8hpp.html b/boost_1_63_0/libs/hana/doc/html/flip_8hpp.html new file mode 100644 index 0000000..f76baa2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/flip_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/flip.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
flip.hpp File Reference
+
+
+ +

Defines boost::hana::flip. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::flip
 Invoke a function with its two first arguments reversed. More...
 
+

Detailed Description

+

Defines boost::hana::flip.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/flip_8hpp.js b/boost_1_63_0/libs/hana/doc/html/flip_8hpp.js new file mode 100644 index 0000000..3862f6e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/flip_8hpp.js @@ -0,0 +1,4 @@ +var flip_8hpp = +[ + [ "flip", "flip_8hpp.html#ga004f884cdbb85c2efe3383c1db450094", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fold_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fold_8hpp.html new file mode 100644 index 0000000..447e68b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fold_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/fold.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
fold.hpp File Reference
+
+
+ +

Defines boost::hana::fold. +More...

+

Detailed Description

+

Defines boost::hana::fold.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fold__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fold__left_8hpp.html new file mode 100644 index 0000000..28bdbd3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fold__left_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fold_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fold_left.hpp File Reference
+
+
+ +

Defines boost::hana::fold_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::fold_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fold__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fold__right_8hpp.html new file mode 100644 index 0000000..61f57ec --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fold__right_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fold_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fold_right.hpp File Reference
+
+
+ +

Defines boost::hana::fold_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::fold_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/folderclosed.png b/boost_1_63_0/libs/hana/doc/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..918060a30863b5a15edf5ecbbdb5da184a2491b0 GIT binary patch literal 636 zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U=ZVAV_;yoRU6a6z`*3}>Eakt!T5HrZ?}GLeB@eI^h#Zg6<3c0b?JrvVSg91vuv>ki|YsdAL=Ztt;3UCj`L60 zRj_!=!Sy17f;zKO)_qS-n{<+AVpHUf89VdO-KkDLSADMX{ob2VP8&s1!qZ=X8DYnw##)J)+$VNusom6-&X5=?`v;(7ej*ghAP*(Jyq^Czc=XpJKg;(3I^B5bQ zPrLUyYDv&-h9nOK0h4I^r|U0l4ZrriMSbqd)52>DeD1G0^Y%W2p-S3<#g`_|E|Qu% zMcH{lj=QySUK+!qj?S9@Cru4wtyC|YseXtpvGh}#*q1Z=yL|Q>&HEi4GRhGvV?`(X z9kuxSys6yB^43B=L8g_LZ%t31qkI32f5G}P*Pebk)34vMWil47Sy^ARU$d#|G3#@! z?Z1TY)RshwJe~9AEH7Gfms)w>c+dPr$!)=+hymc7w5t7_R&p+G6*&a*uKU(2y0HwrtG*TpcrbE!Kx_ssOCHLl6^i6`f3 z>7CrE{O&{FndW_xCq6$HIjH APXGV_ literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/folderopen.png b/boost_1_63_0/libs/hana/doc/html/folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..fad1251bb8f7454e4e42a0bbba0631d17a9328dc GIT binary patch literal 640 zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U=ZVAV_;yoRU6a6z`*40>Eakt!T2`TF^!rVd7Eyo@%0H@wKYWhR_0pSWD!hcbrtyEXz#S~k-SD|%7I|V zfC*em8xL+fHY+Tn>`$86?00462b*m<-knRn_a^23?Dw+dIU zFkISj@t4ZA?f0BH4?S-s)<&Cs2^;ZonW zgo(CBS-L(Eo__vm+>bf~euZm7npGcvtt&Vqd|}IhhCo$s#Z;&5Ycx(aeG&M)yV&I4 zzt7xy=kE6})kxg%zIn-(u4wRWgm+Z4wvYlPa&#=hXZRh@n zFXycM%%E^hh`pC@YVi6w&$oWkk>BoLyuHHf;6}B|n{%FQtBm=YS2#;v^Xvz$zssJ@ zc`Q8D^4+v$l`9QC7A3H#)G;&s6Z`jnG2;P;KWuv>{v3_X&x>GSU|{fc^>bP0l+XkK D^7b$* literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/foldl1_8hpp.html b/boost_1_63_0/libs/hana/doc/html/foldl1_8hpp.html new file mode 100644 index 0000000..a81827d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/foldl1_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/foldl1.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
foldl1.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::foldl1. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::foldl1.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/foldr1_8hpp.html b/boost_1_63_0/libs/hana/doc/html/foldr1_8hpp.html new file mode 100644 index 0000000..a979bb9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/foldr1_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/foldr1.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
foldr1.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::foldr1. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::foldr1.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/for__each_8hpp.html b/boost_1_63_0/libs/hana/doc/html/for__each_8hpp.html new file mode 100644 index 0000000..0d23546 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/for__each_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/for_each.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
for_each.hpp File Reference
+
+
+ +

Defines boost::hana::for_each. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::for_each.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/front_8hpp.html b/boost_1_63_0/libs/hana/doc/html/front_8hpp.html new file mode 100644 index 0000000..d0d345b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/front_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/front.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
front.hpp File Reference
+
+
+ +

Defines boost::hana::front. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::front.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/functional_8hpp.html b/boost_1_63_0/libs/hana/doc/html/functional_8hpp.html new file mode 100644 index 0000000..a6ce820 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/functional_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
functional.hpp File Reference
+
+
+ +

Defines the Functional module. +More...

+

Detailed Description

+

Defines the Functional module.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/functions.html b/boost_1_63_0/libs/hana/doc/html/functions.html new file mode 100644 index 0000000..d614c85 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/functions.html @@ -0,0 +1,575 @@ + + + + + + + + + +Boost.Hana: Class Members + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Alphabetical index of everything provided in the library.
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- j -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/functions_func.html b/boost_1_63_0/libs/hana/doc/html/functions_func.html new file mode 100644 index 0000000..31cfb94 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/functions_func.html @@ -0,0 +1,221 @@ + + + + + + + + + +Boost.Hana: Class Members - Functions + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ + + + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/functions_rela.html b/boost_1_63_0/libs/hana/doc/html/functions_rela.html new file mode 100644 index 0000000..5efd273 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/functions_rela.html @@ -0,0 +1,230 @@ + + + + + + + + + +Boost.Hana: Class Members - Related Functions + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+ + +

- o -

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/functions_type.html b/boost_1_63_0/libs/hana/doc/html/functions_type.html new file mode 100644 index 0000000..697ff7b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/functions_type.html @@ -0,0 +1,180 @@ + + + + + + + + + +Boost.Hana: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ + + + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/functions_vars.html b/boost_1_63_0/libs/hana/doc/html/functions_vars.html new file mode 100644 index 0000000..87f715b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/functions_vars.html @@ -0,0 +1,395 @@ + + + + + + + + + +Boost.Hana: Class Members - Variables + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- j -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fuse_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fuse_8hpp.html new file mode 100644 index 0000000..bade3ef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fuse_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fuse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fuse.hpp File Reference
+
+
+ +

Defines boost::hana::fuse. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::fuse.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fusion_2list_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fusion_2list_8hpp.html new file mode 100644 index 0000000..b76e6af --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fusion_2list_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion/list.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
list.hpp File Reference
+
+
+ +

Adapts boost::fusion::list for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::fusion::list< T >
 Adapter for Boost.Fusion lists. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts boost::fusion::list for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fusion_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fusion_8hpp.html new file mode 100644 index 0000000..a7cef39 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fusion_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/fusion.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
fusion.hpp File Reference
+
+
+ +

Includes all the adaptors for the Boost.Fusion library. +More...

+

Detailed Description

+

Includes all the adaptors for the Boost.Fusion library.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.html new file mode 100644 index 0000000..1e335ed --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/accessors.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
accessors.hpp File Reference
+
+
+ +

Forward declares boost::hana::accessors. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename S >
constexpr auto boost::hana::accessors
 Returns a Sequence of pairs representing the accessors of the data structure.Given a Struct S, accessors<S>() is a Sequence of Products where the first element of each pair is the "name" of a member of the Struct, and the second element of each pair is a function that can be used to access that member when given an object of the proper data type. As described in the global documentation for Struct, the accessor functions in this sequence must be move-independent. More...
 
+

Detailed Description

+

Forward declares boost::hana::accessors.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.js new file mode 100644 index 0000000..13d79d2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2accessors_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2accessors_8hpp = +[ + [ "accessors", "fwd_2accessors_8hpp.html#ga983a55dbd93d766fd37689ea32e4ddfb", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.html new file mode 100644 index 0000000..ef76ac1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/adapt_adt.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adapt_adt.hpp File Reference
+
+
+ +

Documents the BOOST_HANA_ADAPT_ADT macro. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Functions

auto boost::hana::BOOST_HANA_ADAPT_ADT (...)
 Defines a model of Struct with the given accessors.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike BOOST_HANA_ADAPT_STRUCT, this macro requires specifying the way to retrieve each member by providing a function that does the extraction. More...
 
+

Detailed Description

+

Documents the BOOST_HANA_ADAPT_ADT macro.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.js new file mode 100644 index 0000000..8b50c48 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__adt_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2adapt__adt_8hpp = +[ + [ "BOOST_HANA_ADAPT_ADT", "fwd_2adapt__adt_8hpp.html#ga141761435a7826b3cbe646b4f59eaf0a", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.html new file mode 100644 index 0000000..ccd151d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/adapt_struct.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adapt_struct.hpp File Reference
+
+
+ +

Documents the BOOST_HANA_ADAPT_STRUCT macro. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Functions

auto boost::hana::BOOST_HANA_ADAPT_STRUCT (...)
 Defines a model of Struct with the given members.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike the BOOST_HANA_DEFINE_STRUCT macro, this macro does not require the types of the members to be specified. More...
 
+

Detailed Description

+

Documents the BOOST_HANA_ADAPT_STRUCT macro.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.js new file mode 100644 index 0000000..6a6f84d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adapt__struct_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2adapt__struct_8hpp = +[ + [ "BOOST_HANA_ADAPT_STRUCT", "fwd_2adapt__struct_8hpp.html#gaba3b4d2cf342bfca773e90fc20bfae91", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.html new file mode 100644 index 0000000..0f75250 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/adjust.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adjust.hpp File Reference
+
+
+ +

Forward declares boost::hana::adjust. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::adjust
 Apply a function on all the elements of a structure that compare equal to some value. More...
 
+

Detailed Description

+

Forward declares boost::hana::adjust.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.js new file mode 100644 index 0000000..65b3415 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2adjust_8hpp = +[ + [ "adjust", "fwd_2adjust_8hpp.html#ga7cc731e67ebc1f5303be1a97b2d5e0cd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.html new file mode 100644 index 0000000..7d5fe91 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/adjust_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
adjust_if.hpp File Reference
+
+
+ +

Forward declares boost::hana::adjust_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::adjust_if
 Apply a function on all the elements of a structure satisfying a predicate.Given a Functor, a predicate pred and a function f, adjust_if will adjust the elements of the Functor that satisfy the predicate with the function f. In other words, adjust_if will return a new Functor equal to the original one, except that the elements satisfying the predicate will be transformed with the given function. Elements for which the predicate is not satisfied are left untouched, and they are kept as-is in the resulting Functor. More...
 
+

Detailed Description

+

Forward declares boost::hana::adjust_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.js new file mode 100644 index 0000000..8473d10 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2adjust__if_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2adjust__if_8hpp = +[ + [ "adjust_if", "fwd_2adjust__if_8hpp.html#gaa0490f57047c1b0d75fbe233688358f4", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.html new file mode 100644 index 0000000..a944116 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/all.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
all.hpp File Reference
+
+
+ +

Forward declares boost::hana::all. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::all
 Returns whether all the keys of the structure are true-valued.The keys of the structure must be Logicals. If the structure is not finite, a false-valued key must appear at a finite "index" in order for this method to finish. More...
 
+

Detailed Description

+

Forward declares boost::hana::all.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.js new file mode 100644 index 0000000..dc82bbf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2all_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2all_8hpp = +[ + [ "all", "fwd_2all_8hpp.html#ga81ae9764dd7818ad36270c6419fb1082", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.html new file mode 100644 index 0000000..d939431 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/all_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
all_of.hpp File Reference
+
+
+ +

Forward declares boost::hana::all_of. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::all_of
 Returns whether all the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a false- valued Logical after looking at a finite number of keys for this method to finish. More...
 
+

Detailed Description

+

Forward declares boost::hana::all_of.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.js new file mode 100644 index 0000000..c16647d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2all__of_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2all__of_8hpp = +[ + [ "all_of", "fwd_2all__of_8hpp.html#ga3a168950082f38afd9edf256f336c8ba", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.html new file mode 100644 index 0000000..23c9e27 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/and.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
and.hpp File Reference
+
+
+ +

Forward declares boost::hana::and_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::and_
 Return whether all the arguments are true-valued.and_ can be called with one argument or more. When called with two arguments, and_ uses tag-dispatching to find the right implementation. Otherwise,. More...
 
+

Detailed Description

+

Forward declares boost::hana::and_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.js new file mode 100644 index 0000000..564dad2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2and_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2and_8hpp = +[ + [ "and_", "fwd_2and_8hpp.html#ga14066f5672867c123524e0e0978069eb", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.html new file mode 100644 index 0000000..4a89279 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/any.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
any.hpp File Reference
+
+
+ +

Forward declares boost::hana::any. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::any
 Returns whether any key of the structure is true-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish. More...
 
+

Detailed Description

+

Forward declares boost::hana::any.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.js new file mode 100644 index 0000000..415f708 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2any_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2any_8hpp = +[ + [ "any", "fwd_2any_8hpp.html#gab7d632b9319b10b1eb7e98f9e1cf8a28", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.html new file mode 100644 index 0000000..4f4dda1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/any_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
any_of.hpp File Reference
+
+
+ +

Forward declares boost::hana::any_of. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::any_of
 Returns whether any key of the structure satisfies the predicate.If the structure is not finite, predicate has to be satisfied after looking at a finite number of keys for this method to finish. More...
 
+

Detailed Description

+

Forward declares boost::hana::any_of.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.js new file mode 100644 index 0000000..7682fc5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2any__of_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2any__of_8hpp = +[ + [ "any_of", "fwd_2any__of_8hpp.html#ga5f7ff0125c448983e1b96c3ffb84f646", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.html new file mode 100644 index 0000000..072344b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/ap.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ap.hpp File Reference
+
+
+ +

Forward declares boost::hana::ap. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::ap
 Lifted application.Specifically, ap applies a structure containing functions to a structure containing values, and returns a new structure containing values. The exact way in which the functions are applied to the values depends on the Applicative. More...
 
+

Detailed Description

+

Forward declares boost::hana::ap.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.js new file mode 100644 index 0000000..44ced65 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2ap_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2ap_8hpp = +[ + [ "ap", "fwd_2ap_8hpp.html#ga6176a32953dbbdee96e3ab3c73e4c890", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.html new file mode 100644 index 0000000..f860a9c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/append.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
append.hpp File Reference
+
+
+ +

Forward declares boost::hana::append. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::append
 Append an element to a monadic structure.Given an element x and a monadic structure xs, append returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the right) with xs. In other words,. More...
 
+

Detailed Description

+

Forward declares boost::hana::append.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.js new file mode 100644 index 0000000..0b5db1e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2append_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2append_8hpp = +[ + [ "append", "fwd_2append_8hpp.html#ga08624924fe05f0cfbfbd6e439db01873", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.html new file mode 100644 index 0000000..a2f4638 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/at.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
at.hpp File Reference
+
+
+ +

Forward declares boost::hana::at and boost::hana::at_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + +

+Variables

constexpr auto boost::hana::at
 Returns the nth element of an iterable.Given an Iterable and an IntegralConstant index, at returns the element located at the index in the linearization of the iterable. Specifically, given an iterable xs with a linearization of [x1, ..., xN], at(xs, k) is equivalent to xk. More...
 
template<std::size_t n>
constexpr auto boost::hana::at_c
 Equivalent to at; provided for convenience. More...
 
+

Detailed Description

+

Forward declares boost::hana::at and boost::hana::at_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.js new file mode 100644 index 0000000..6756cfe --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2at_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2at_8hpp = +[ + [ "at", "fwd_2at_8hpp.html#ga8a484304380eae38f3d9663d98860129", null ], + [ "at_c", "fwd_2at_8hpp.html#ga4cb99cfbef936cb267e76f66f40f529c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.html new file mode 100644 index 0000000..8cb1f03 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/at_key.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
at_key.hpp File Reference
+
+
+ +

Forward declares boost::hana::at_key. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::at_key
 Returns the value associated to the given key in a structure, or fail.Given a key and a Searchable structure, at_key returns the first value whose key is equal to the given key, and fails at compile-time if no such key exists. This requires the key to be compile-time Comparable, exactly like for find. at_key satisfies the following: More...
 
+

Detailed Description

+

Forward declares boost::hana::at_key.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.js new file mode 100644 index 0000000..b542875 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2at__key_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2at__key_8hpp = +[ + [ "at_key", "fwd_2at__key_8hpp.html#ga3c1826aee6c6eb577810bb99c5c3e53d", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.html new file mode 100644 index 0000000..28a4243 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/back.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
back.hpp File Reference
+
+
+ +

Forward declares boost::hana::back. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::back
 Returns the last element of a non-empty and finite iterable.Given a non-empty and finite iterable xs with a linearization of [x1, ..., xN], back(xs) is equal to xN. Equivalently, back(xs) must be equivalent to at_c<N-1>(xs), and that regardless of the value category of xs (back must respect the reference semantics of at). More...
 
+

Detailed Description

+

Forward declares boost::hana::back.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.js new file mode 100644 index 0000000..1822f0d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2back_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2back_8hpp = +[ + [ "back", "fwd_2back_8hpp.html#gab3f4d0035345a453284e46303862d463", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2basic__tuple_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2basic__tuple_8hpp.html new file mode 100644 index 0000000..afebec2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2basic__tuple_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/basic_tuple.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
basic_tuple.hpp File Reference
+
+
+ +

Forward declares boost::hana::basic_tuple. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::basic_tuple< Xs >
 Stripped down version of hana::tuple. More...
 
struct  boost::hana::basic_tuple_tag
 Tag representing hana::basic_tuple. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::basic_tuple.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2bool_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2bool_8hpp.html new file mode 100644 index 0000000..55389c1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2bool_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/bool.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bool.hpp File Reference
+
+
+ +

Includes boost/hana/fwd/integral_constant.hpp. +More...

+

Detailed Description

+

Includes boost/hana/fwd/integral_constant.hpp.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.html new file mode 100644 index 0000000..a761f41 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/cartesian_product.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
cartesian_product.hpp File Reference
+
+
+ +

Forward declares boost::hana::cartesian_product. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::cartesian_product
 Computes the cartesian product of a sequence of sequences.Given a sequence of sequences, cartesian_product returns a new sequence of sequences containing the cartesian product of the original sequences. For this method to finish, a finite number of finite sequences must be provided. More...
 
+

Detailed Description

+

Forward declares boost::hana::cartesian_product.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.js new file mode 100644 index 0000000..a0e0004 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2cartesian__product_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2cartesian__product_8hpp = +[ + [ "cartesian_product", "fwd_2cartesian__product_8hpp.html#ga66599f0e1f0749daba759dc661946bdc", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.html new file mode 100644 index 0000000..92ba864 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/chain.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
chain.hpp File Reference
+
+
+ +

Forward declares boost::hana::chain. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::chain
 Feed a monadic value into a monadic computation.Given a monadic value and a monadic function, chain feeds the monadic value into the function, thus performing some Monad-specific effects, and returns the result. An implementation of chain must satisfy. More...
 
+

Detailed Description

+

Forward declares boost::hana::chain.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.js new file mode 100644 index 0000000..d86b776 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2chain_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2chain_8hpp = +[ + [ "chain", "fwd_2chain_8hpp.html#ga05fdc2f887cb9967357487a432ace98b", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.html new file mode 100644 index 0000000..6f86a70 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/comparing.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
comparing.hpp File Reference
+
+
+ +

Forward declares boost::hana::comparing. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::comparing
 Returns a function performing equal after applying a transformation to both arguments.comparing creates an equivalence relation based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent an equivalence relation. More...
 
+

Detailed Description

+

Forward declares boost::hana::comparing.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.js new file mode 100644 index 0000000..38c241f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2comparing_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2comparing_8hpp = +[ + [ "comparing", "fwd_2comparing_8hpp.html#ga9c2ffe2e51780e57a38d9e7e31b87cdc", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.html new file mode 100644 index 0000000..1f17d2f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concat.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
concat.hpp File Reference
+
+
+ +

Forward declares boost::hana::concat. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::concat
 Combine two monadic structures together.Given two monadic structures, concat combines them together and returns a new monadic structure. The exact definition of concat will depend on the exact model of MonadPlus at hand, but for sequences it corresponds intuitively to simple concatenation. More...
 
+

Detailed Description

+

Forward declares boost::hana::concat.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.js new file mode 100644 index 0000000..4c70796 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concat_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2concat_8hpp = +[ + [ "concat", "fwd_2concat_8hpp.html#ga1946e96c3b4c178c7ae8703724c29c37", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2applicative_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2applicative_8hpp.html new file mode 100644 index 0000000..cde59e6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2applicative_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/applicative.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
applicative.hpp File Reference
+
+
+ +

Forward declares boost::hana::Applicative. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Applicative.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comonad_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comonad_8hpp.html new file mode 100644 index 0000000..5d86dca --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comonad_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/comonad.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
comonad.hpp File Reference
+
+
+ +

Forward declares boost::hana::Comonad. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Comonad.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comparable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comparable_8hpp.html new file mode 100644 index 0000000..0744836 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2comparable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/comparable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
comparable.hpp File Reference
+
+
+ +

Forward declares boost::hana::Comparable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Comparable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2constant_8hpp.html new file mode 100644 index 0000000..ff78bb1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2constant_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
constant.hpp File Reference
+
+
+ +

Forward declares boost::hana::Constant. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Constant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2euclidean__ring_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2euclidean__ring_8hpp.html new file mode 100644 index 0000000..fb452c8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2euclidean__ring_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/euclidean_ring.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
euclidean_ring.hpp File Reference
+
+
+ +

Forward declares boost::hana::EuclideanRing. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::EuclideanRing.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2foldable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2foldable_8hpp.html new file mode 100644 index 0000000..56454f9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2foldable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/foldable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
foldable.hpp File Reference
+
+
+ +

Forward declares boost::hana::Foldable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Foldable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2functor_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2functor_8hpp.html new file mode 100644 index 0000000..6cd11e7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2functor_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/functor.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
functor.hpp File Reference
+
+
+ +

Forward declares boost::hana::Functor. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Functor.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2group_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2group_8hpp.html new file mode 100644 index 0000000..16fd998 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2group_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/group.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
group.hpp File Reference
+
+
+ +

Forward declares boost::hana::Group. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Group.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2hashable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2hashable_8hpp.html new file mode 100644 index 0000000..4316d18 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2hashable_8hpp.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/hashable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
hashable.hpp File Reference
+
+
+ +

Forward declares boost::hana::Hashable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Hashable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2integral__constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2integral__constant_8hpp.html new file mode 100644 index 0000000..2a9ae59 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2integral__constant_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/integral_constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
integral_constant.hpp File Reference
+
+
+ +

Forward declares boost::hana::IntegralConstant. +More...

+ + + + + +

+Classes

struct  boost::hana::IntegralConstant< C >
 The IntegralConstant concept represents compile-time integral values. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::IntegralConstant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2iterable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2iterable_8hpp.html new file mode 100644 index 0000000..e59ca0c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2iterable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/iterable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
iterable.hpp File Reference
+
+
+ +

Forward declares boost::hana::Iterable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Iterable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2logical_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2logical_8hpp.html new file mode 100644 index 0000000..2b800f7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2logical_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/logical.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
logical.hpp File Reference
+
+
+ +

Forward declares boost::hana::Logical. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Logical.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2metafunction_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2metafunction_8hpp.html new file mode 100644 index 0000000..b0c08f1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2metafunction_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/metafunction.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
metafunction.hpp File Reference
+
+
+ +

Forward declares boost::hana::Metafunction. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Metafunction.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad_8hpp.html new file mode 100644 index 0000000..b84ad7c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/monad.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monad.hpp File Reference
+
+
+ +

Forward declares boost::hana::Monad. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Monad.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad__plus_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad__plus_8hpp.html new file mode 100644 index 0000000..029388c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monad__plus_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/monad_plus.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monad_plus.hpp File Reference
+
+
+ +

Forward declares boost::hana::MonadPlus. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::MonadPlus.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monoid_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monoid_8hpp.html new file mode 100644 index 0000000..8fd6dee --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2monoid_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/monoid.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monoid.hpp File Reference
+
+
+ +

Forward declares boost::hana::Monoid. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Monoid.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2orderable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2orderable_8hpp.html new file mode 100644 index 0000000..1568eb8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2orderable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/orderable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
orderable.hpp File Reference
+
+
+ +

Forward declares boost::hana::Orderable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Orderable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2product_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2product_8hpp.html new file mode 100644 index 0000000..e4ebb64 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2product_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/product.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
product.hpp File Reference
+
+
+ +

Forward declares boost::hana::Product. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Product.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2ring_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2ring_8hpp.html new file mode 100644 index 0000000..a446a8b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2ring_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/ring.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ring.hpp File Reference
+
+
+ +

Forward declares boost::hana::Ring. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Ring.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2searchable_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2searchable_8hpp.html new file mode 100644 index 0000000..2174af7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2searchable_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/searchable.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
searchable.hpp File Reference
+
+
+ +

Forward declares boost::hana::Searchable. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Searchable.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2sequence_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2sequence_8hpp.html new file mode 100644 index 0000000..12ed83b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2sequence_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/sequence.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sequence.hpp File Reference
+
+
+ +

Forward declares boost::hana::Sequence. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Sequence.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2struct_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2struct_8hpp.html new file mode 100644 index 0000000..fe4533f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2concept_2struct_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/concept/struct.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
struct.hpp File Reference
+
+
+ +

Forward declares boost::hana::Struct. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::Struct.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.html new file mode 100644 index 0000000..5ffb29d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/contains.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
contains.hpp File Reference
+
+
+ +

Forward declares boost::hana::contains and boost::hana::in. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + +

+Variables

constexpr auto boost::hana::contains
 Returns whether the key occurs in the structure.Given a Searchable structure xs and a key, contains returns whether any of the keys of the structure is equal to the given key. If the structure is not finite, an equal key has to appear at a finite position in the structure for this method to finish. For convenience, contains can also be applied in infix notation. More...
 
constexpr auto boost::hana::in = hana::infix(hana::flip(hana::contains))
 Return whether the key occurs in the structure.Specifically, this is equivalent to contains, except in takes its arguments in reverse order. Like contains, in can also be applied in infix notation for increased expressiveness. This function is not a method that can be overriden; it is just a convenience function provided with the concept. More...
 
+

Detailed Description

+

Forward declares boost::hana::contains and boost::hana::in.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.js new file mode 100644 index 0000000..32d1800 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2contains_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2contains_8hpp = +[ + [ "contains", "fwd_2contains_8hpp.html#ga38e7748956cbc9f3d9bb035ac8577906", null ], + [ "in", "fwd_2contains_8hpp.html#ga0d9456ceda38b6ca664998e79d7c45b7", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.html new file mode 100644 index 0000000..f7ea065 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.html @@ -0,0 +1,179 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core/common.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
common.hpp File Reference
+
+
+ +

Forward declares boost::hana::common and boost::hana::common_t. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::common< T, U, enabler >
 Metafunction returning the common data type between two data types. More...
 
struct  boost::hana::has_common< T, U, typename >
 Metafunction returning whether two data types share a common data type. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Typedefs

template<typename T , typename U >
using boost::hana::common_t = typename common< T, U >::type
 Alias to common<T, U>::type, provided for convenience. More...
 
+

Detailed Description

+

Forward declares boost::hana::common and boost::hana::common_t.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.js new file mode 100644 index 0000000..b533e23 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2common_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2core_2common_8hpp = +[ + [ "common_t", "fwd_2core_2common_8hpp.html#ga4da46c97755c0f430b063711b66ca05b", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2default_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2default_8hpp.html new file mode 100644 index 0000000..e6db730 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2default_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core/default.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
default.hpp File Reference
+
+
+ +

Forward declares boost::hana::default_ and boost::hana::is_default. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::default_
 Mark a tag-dispatched method implementation as a default implementation. More...
 
struct  boost::hana::is_default< Method, typename >
 Returns whether a tag-dispatched method implementation is a default implementation. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::default_ and boost::hana::is_default.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.html new file mode 100644 index 0000000..5758ddd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.html @@ -0,0 +1,174 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core/is_a.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_a.hpp File Reference
+
+
+ +

Forward declares boost::hana::is_a and boost::hana::is_an. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + + +

+Variables

template<typename Tag , typename optional_T >
constexpr auto boost::hana::is_a = see-documentation
 Returns whether the tag of an object matches a given tag. More...
 
+template<typename Tag , typename... T>
constexpr auto boost::hana::is_an = is_a<Tag, T...>
 Equivalent to is_a; provided for consistency with the rules of the English language.
 
+

Detailed Description

+

Forward declares boost::hana::is_a and boost::hana::is_an.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.js new file mode 100644 index 0000000..b2ca378 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2is__a_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2core_2is__a_8hpp = +[ + [ "is_a", "fwd_2core_2is__a_8hpp.html#ga38cf78e1e3e262f7f1c71ddd9ca70cd9", null ], + [ "is_an", "fwd_2core_2is__a_8hpp.html#ga7fdbde52f5fe384a816c6f39ff272df9", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.html new file mode 100644 index 0000000..9cad4eb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core/make.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
make.hpp File Reference
+
+
+ +

Forward declares boost::hana::make. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename Tag >
constexpr auto boost::hana::make
 Create an object of the given tag with the given arguments. More...
 
+

Detailed Description

+

Forward declares boost::hana::make.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.js new file mode 100644 index 0000000..48c2c48 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2make_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2core_2make_8hpp = +[ + [ "make", "fwd_2core_2make_8hpp.html#ga1d92480f0af1029878e773dafa3e2f60", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.html new file mode 100644 index 0000000..98e4ab6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.html @@ -0,0 +1,176 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core/tag_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tag_of.hpp File Reference
+
+
+ +

Forward declares boost::hana::tag_of and boost::hana::tag_of_t. +More...

+ + + + + +

+Classes

struct  boost::hana::tag_of< T, enabler >
 Metafunction returning the tag associated to T. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Typedefs

template<typename T >
using boost::hana::tag_of_t = typename hana::tag_of< T >::type
 Alias to tag_of<T>::type, provided for convenience. More...
 
+

Detailed Description

+

Forward declares boost::hana::tag_of and boost::hana::tag_of_t.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.js new file mode 100644 index 0000000..ec8a99c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2tag__of_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2core_2tag__of_8hpp = +[ + [ "tag_of_t", "fwd_2core_2tag__of_8hpp.html#ga686d1236161b5690ab302500077988e1", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.html new file mode 100644 index 0000000..622d4a9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.html @@ -0,0 +1,182 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core/to.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
to.hpp File Reference
+
+
+ +

Forward declares boost::hana::to and related utilities. +More...

+ + + + + + + + + + + +

+Classes

struct  boost::hana::is_convertible< From, To, typename >
 Returns whether there is a Hana-conversion from a data type to another. More...
 
struct  boost::hana::embedding< bool >
 Marks a conversion between data types as being an embedding. More...
 
struct  boost::hana::is_embedded< From, To, typename >
 Returns whether a data type can be embedded into another data type. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename To >
constexpr auto boost::hana::to
 Converts an object from one data type to another. More...
 
+

Detailed Description

+

Forward declares boost::hana::to and related utilities.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.js new file mode 100644 index 0000000..577852b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2to_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2core_2to_8hpp = +[ + [ "to", "fwd_2core_2to_8hpp.html#gadc70755c1d059139297814fb3bfeb91e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.html new file mode 100644 index 0000000..e0cdf14 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.html @@ -0,0 +1,176 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core/when.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
when.hpp File Reference
+
+
+ +

Forward declares boost::hana::when and boost::hana::when_valid. +More...

+ + + + + +

+Classes

struct  boost::hana::when< condition >
 Enable a partial specialization only if a boolean condition is true. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Typedefs

template<typename... >
using boost::hana::when_valid = when< true >
 Variant of when allowing specializations to be enabled only if an expression is well-formed. More...
 
+

Detailed Description

+

Forward declares boost::hana::when and boost::hana::when_valid.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.js new file mode 100644 index 0000000..1687db3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_2when_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2core_2when_8hpp = +[ + [ "when_valid", "fwd_2core_2when_8hpp.html#ga0f5d717bbf6646619bb6219b104384dc", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2core_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2core_8hpp.html new file mode 100644 index 0000000..2eedc4a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2core_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/core.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
core.hpp File Reference
+
+
+ +

Forward declares the Core module. +More...

+

Detailed Description

+

Forward declares the Core module.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.html new file mode 100644 index 0000000..5184ed6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/count.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
count.hpp File Reference
+
+
+ +

Forward declares boost::hana::count. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::count
 Return the number of elements in the structure that compare equal to a given value.Given a Foldable structure xs and a value value, count returns an unsigned integral, or a Constant thereof, representing the number of elements of xs that compare equal to value. For this method to be well-defined, all the elements of the structure must be Comparable with the given value. More...
 
+

Detailed Description

+

Forward declares boost::hana::count.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.js new file mode 100644 index 0000000..f630413 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2count_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2count_8hpp = +[ + [ "count", "fwd_2count_8hpp.html#ga3159cfa41be18a396926741b0a3fdefd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.html new file mode 100644 index 0000000..4abf315 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/count_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
count_if.hpp File Reference
+
+
+ +

Forward declares boost::hana::count_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::count_if
 Return the number of elements in the structure for which the predicate is satisfied.Specifically, returns an object of an unsigned integral type, or a Constant holding such an object, which represents the number of elements in the structure satisfying the given predicate. More...
 
+

Detailed Description

+

Forward declares boost::hana::count_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.js new file mode 100644 index 0000000..2d56b37 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2count__if_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2count__if_8hpp = +[ + [ "count_if", "fwd_2count__if_8hpp.html#ga39d71be65d5b98e7d035a3e5c607e1b4", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.html new file mode 100644 index 0000000..e5f5d16 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/cycle.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
cycle.hpp File Reference
+
+
+ +

Forward declares boost::hana::cycle. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::cycle
 Combine a monadic structure with itself n times.Given a monadic structure xs and a non-negative number n, cycle returns a new monadic structure which is the result of combining xs with itself n times using the concat operation. In other words,. More...
 
+

Detailed Description

+

Forward declares boost::hana::cycle.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.js new file mode 100644 index 0000000..bd7602e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2cycle_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2cycle_8hpp = +[ + [ "cycle", "fwd_2cycle_8hpp.html#gaaf46c168f721da9effcc7336a997f5d6", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.html new file mode 100644 index 0000000..d40a60f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/define_struct.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
define_struct.hpp File Reference
+
+
+ +

Documents the BOOST_HANA_DEFINE_STRUCT macro. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Functions

auto boost::hana::BOOST_HANA_DEFINE_STRUCT (...)
 Defines members of a structure, while at the same time modeling Struct.Using this macro in the body of a user-defined type will define the given members inside that type, and will also provide a model of the Struct concept for that user-defined type. This macro is often the easiest way to define a model of the Struct concept. More...
 
+

Detailed Description

+

Documents the BOOST_HANA_DEFINE_STRUCT macro.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.js new file mode 100644 index 0000000..72ac78b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2define__struct_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2define__struct_8hpp = +[ + [ "BOOST_HANA_DEFINE_STRUCT", "fwd_2define__struct_8hpp.html#gab9efb238a82207d91643994c5295cf8c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2difference_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2difference_8hpp.html new file mode 100644 index 0000000..0bf8cd0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2difference_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/difference.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
difference.hpp File Reference
+
+
+ +

Forward declares boost::hana::difference. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::difference.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.html new file mode 100644 index 0000000..5d71930 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/div.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
div.hpp File Reference
+
+
+ +

Forward declares boost::hana::div. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::div
 Generalized integer division. More...
 
+

Detailed Description

+

Forward declares boost::hana::div.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.js new file mode 100644 index 0000000..8c4eb3e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2div_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2div_8hpp = +[ + [ "div", "fwd_2div_8hpp.html#ga4225a7988ce98903228913dde53762df", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.html new file mode 100644 index 0000000..22e6bc7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/drop_back.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_back.hpp File Reference
+
+
+ +

Forward declares boost::hana::drop_back. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::drop_back
 Drop the last n elements of a finite sequence, and return the rest.Given a finite Sequence xs with a linearization of [x1, ..., xm] and a non-negative IntegralConstant n, drop_back(xs, n) is a sequence with the same tag as xs whose linearization is [x1, ..., xm-n]. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
+

Detailed Description

+

Forward declares boost::hana::drop_back.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.js new file mode 100644 index 0000000..6611461 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__back_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2drop__back_8hpp = +[ + [ "drop_back", "fwd_2drop__back_8hpp.html#gac10231310abc86b056585ea0d0e96ef7", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.html new file mode 100644 index 0000000..e85139c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/drop_front.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_front.hpp File Reference
+
+
+ +

Forward declares boost::hana::drop_front. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::drop_front
 Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
+

Detailed Description

+

Forward declares boost::hana::drop_front.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.js new file mode 100644 index 0000000..d911c9f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2drop__front_8hpp = +[ + [ "drop_front", "fwd_2drop__front_8hpp.html#gad23ce0a4906e2bb0a52f38837b134757", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.html new file mode 100644 index 0000000..6a49523 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/drop_front_exactly.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_front_exactly.hpp File Reference
+
+
+ +

Forward declares boost::hana::drop_front_exactly. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::drop_front_exactly
 Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front_exactly(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
+

Detailed Description

+

Forward declares boost::hana::drop_front_exactly.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.js new file mode 100644 index 0000000..78769e1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__front__exactly_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2drop__front__exactly_8hpp = +[ + [ "drop_front_exactly", "fwd_2drop__front__exactly_8hpp.html#ga4dbc6a82f03ca35b7ac418ca30889cc4", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.html new file mode 100644 index 0000000..cc49461 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/drop_while.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
drop_while.hpp File Reference
+
+
+ +

Forward declares boost::hana::drop_while. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::drop_while
 Drop elements from an iterable up to, but excluding, the first element for which the predicate is not satisfied.Specifically, drop_while returns an iterable containing all the elements of the original iterable except for those in the range delimited by [head, e), where head is the first element and e is the first element for which the predicate is not satisfied. If the iterable is not finite, the predicate has to return a false- valued Logical at a finite index for this method to return. More...
 
+

Detailed Description

+

Forward declares boost::hana::drop_while.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.js new file mode 100644 index 0000000..f5196d2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2drop__while_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2drop__while_8hpp = +[ + [ "drop_while", "fwd_2drop__while_8hpp.html#ga9f1d02c74a6bdc1db260e0d6a8f1ee56", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.html new file mode 100644 index 0000000..44c058c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/duplicate.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
duplicate.hpp File Reference
+
+
+ +

Forward declares boost::hana::duplicate. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::duplicate
 Add an extra layer of comonadic context to a comonadic value.Given a value already in a comonadic context, duplicate wraps this value with an additional layer of comonadic context. This can be seen as the dual operation to flatten from the Monad concept. More...
 
+

Detailed Description

+

Forward declares boost::hana::duplicate.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.js new file mode 100644 index 0000000..654d1af --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2duplicate_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2duplicate_8hpp = +[ + [ "duplicate", "fwd_2duplicate_8hpp.html#ga181751278bd19a4bfc3c08bd7ddef399", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.html new file mode 100644 index 0000000..5caf9c5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/empty.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
empty.hpp File Reference
+
+
+ +

Forward declares boost::hana::empty. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename M >
constexpr auto boost::hana::empty
 Identity of the monadic combination concat.

Signature

+Given a MonadPlus M, the signature is \( \mathtt{empty}_M : \emptyset \to M(T) \). More...
 
+

Detailed Description

+

Forward declares boost::hana::empty.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.js new file mode 100644 index 0000000..e3a628f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2empty_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2empty_8hpp = +[ + [ "empty", "fwd_2empty_8hpp.html#gaa6be1e83ad72b9d69b43b4bada0f3a75", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.html new file mode 100644 index 0000000..971c655 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
equal.hpp File Reference
+
+
+ +

Forward declares boost::hana::equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::equal
 Returns a Logical representing whether x is equal to y.The equal function can be called in two different ways. First, it can be called like a normal function: More...
 
+

Detailed Description

+

Forward declares boost::hana::equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.js new file mode 100644 index 0000000..19d6f0a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2equal_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2equal_8hpp = +[ + [ "equal", "fwd_2equal_8hpp.html#gacaf1ebea6b3ab96ac9dcb82f0e64e547", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2erase__key_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2erase__key_8hpp.html new file mode 100644 index 0000000..990566c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2erase__key_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/erase_key.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
erase_key.hpp File Reference
+
+
+ +

Forward declares boost::hana::erase_key. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::erase_key.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2eval_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2eval_8hpp.html new file mode 100644 index 0000000..4cbecf0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2eval_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/eval.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
eval.hpp File Reference
+
+
+ +

Forward declares boost::hana::eval. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::eval.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.html new file mode 100644 index 0000000..bbd63c1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/eval_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
eval_if.hpp File Reference
+
+
+ +

Forward declares boost::hana::eval_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::eval_if
 Conditionally execute one of two branches based on a condition.Given a condition and two branches in the form of lambdas or hana::lazys, eval_if will evaluate the branch selected by the condition with eval and return the result. The exact requirements for what the branches may be are the same requirements as those for the eval function. More...
 
+

Detailed Description

+

Forward declares boost::hana::eval_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.js new file mode 100644 index 0000000..494fbb0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2eval__if_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2eval__if_8hpp = +[ + [ "eval_if", "fwd_2eval__if_8hpp.html#gab64636f84de983575aac0208f5fa840c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.html new file mode 100644 index 0000000..6256eef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/extend.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
extend.hpp File Reference
+
+
+ +

Forward declares boost::hana::extend. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::extend
 Comonadic application of a function to a comonadic value.Given a comonadic value and a function accepting a comonadic input, extend returns the result of applying the function to that input inside the comonadic context. More...
 
+

Detailed Description

+

Forward declares boost::hana::extend.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.js new file mode 100644 index 0000000..adc71e4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2extend_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2extend_8hpp = +[ + [ "extend", "fwd_2extend_8hpp.html#gaf44692351fd9fe4e76815dfef6ff4478", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.html new file mode 100644 index 0000000..9bfc7f0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/extract.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
extract.hpp File Reference
+
+
+ +

Forward declares boost::hana::extract. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::extract
 Extract a value in a given comonadic context.Given a value inside a comonadic context, extract it from that context, performing whatever effects are mandated by that context. This can be seen as the dual operation to the lift method of the Applicative concept. More...
 
+

Detailed Description

+

Forward declares boost::hana::extract.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.js new file mode 100644 index 0000000..4bdf7e3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2extract_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2extract_8hpp = +[ + [ "extract", "fwd_2extract_8hpp.html#ga307479a91a21b7ab06a2bc746b003dcc", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.html new file mode 100644 index 0000000..5a73ce7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/fill.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fill.hpp File Reference
+
+
+ +

Forward declares boost::hana::fill. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::fill
 Replace all the elements of a structure with a fixed value. More...
 
+

Detailed Description

+

Forward declares boost::hana::fill.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.js new file mode 100644 index 0000000..4bad050 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fill_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2fill_8hpp = +[ + [ "fill", "fwd_2fill_8hpp.html#ga2ce68d315f981ef35751c4dc25ad5642", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.html new file mode 100644 index 0000000..7d54826 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/filter.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
filter.hpp File Reference
+
+
+ +

Forward declares boost::hana::filter. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::filter
 Filter a monadic structure using a custom predicate.Given a monadic structure and a predicate, filter returns a new monadic structure containing only those elements that satisfy the predicate. This is a generalization of the usual filter function for sequences; it works for any MonadPlus. Intuitively, filter is somewhat equivalent to: More...
 
+

Detailed Description

+

Forward declares boost::hana::filter.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.js new file mode 100644 index 0000000..8fb3c47 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2filter_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2filter_8hpp = +[ + [ "filter", "fwd_2filter_8hpp.html#ga65cc6d9f522fb9e8e3b28d80ee5c822a", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.html new file mode 100644 index 0000000..62c833b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/find.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
find.hpp File Reference
+
+
+ +

Forward declares boost::hana::find. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::find
 Finds the value associated to the given key in a structure.Given a key and a Searchable structure, find returns the just the first value whose key is equal to the given key, or nothing if there is no such key. Comparison is done with equal. find satisfies the following: More...
 
+

Detailed Description

+

Forward declares boost::hana::find.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.js new file mode 100644 index 0000000..23c6123 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2find_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2find_8hpp = +[ + [ "find", "fwd_2find_8hpp.html#ga6b6cdd69942b0fe3bf5254247f9c861e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.html new file mode 100644 index 0000000..e40ea0c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/find_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
find_if.hpp File Reference
+
+
+ +

Forward declares boost::hana::find_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::find_if
 Finds the value associated to the first key satisfying a predicate.Given a Searchable structure xs and a predicate pred, find_if(xs, pred) returns just the first element whose key satisfies the predicate, or nothing if there is no such element. More...
 
+

Detailed Description

+

Forward declares boost::hana::find_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.js new file mode 100644 index 0000000..b9cf229 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2find__if_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2find__if_8hpp = +[ + [ "find_if", "fwd_2find__if_8hpp.html#ga7f99b80672aa80a7eb8b223955ce546f", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.html new file mode 100644 index 0000000..a766b5e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/first.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
first.hpp File Reference
+
+
+ +

Forward declares boost::hana::first. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::first
 Returns the first element of a pair.Note that if the Product actually stores the elements it contains, hana::first is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the first element, where the type of reference must match that of the pair passed to first. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped. More...
 
+

Detailed Description

+

Forward declares boost::hana::first.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.js new file mode 100644 index 0000000..d15b44c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2first_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2first_8hpp = +[ + [ "first", "fwd_2first_8hpp.html#ga34bbf4281de06dc3540441e8b2bd24f4", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.html new file mode 100644 index 0000000..f985198 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/flatten.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
flatten.hpp File Reference
+
+
+ +

Forward declares boost::hana::flatten. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::flatten
 Collapse two levels of monadic structure into a single level.Given a monadic value wrapped into two levels of monad, flatten removes one such level. An implementation of flatten must satisfy. More...
 
+

Detailed Description

+

Forward declares boost::hana::flatten.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.js new file mode 100644 index 0000000..bb67272 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2flatten_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2flatten_8hpp = +[ + [ "flatten", "fwd_2flatten_8hpp.html#gaa5fec6fb418de5da3ecb500fd6cc54dd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.html new file mode 100644 index 0000000..4adbb50 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/fold.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fold.hpp File Reference
+
+
+ +

Forward declares boost::hana::fold. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::fold = fold_left
 Equivalent to fold_left; provided for convenience.fold is equivalent to fold_left. However, it is not tag-dispatched on its own because it is just an alias to fold_left. Also note that fold can be called with or without an initial state, just like fold_left: More...
 
+

Detailed Description

+

Forward declares boost::hana::fold.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.js new file mode 100644 index 0000000..4c7381d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fold_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2fold_8hpp = +[ + [ "fold", "fwd_2fold_8hpp.html#gaa0fde17f3b947a0678a1c0c01232f2cc", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.html new file mode 100644 index 0000000..82b6960 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/fold_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fold_left.hpp File Reference
+
+
+ +

Forward declares boost::hana::fold_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::fold_left
 Left-fold of a structure using a binary operation and an optional initial reduction state.fold_left is a left-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_left applies f as follows. More...
 
+

Detailed Description

+

Forward declares boost::hana::fold_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.js new file mode 100644 index 0000000..f9ecc2c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__left_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2fold__left_8hpp = +[ + [ "fold_left", "fwd_2fold__left_8hpp.html#ga38c6b3f6b1cbadb9b8432a05ff16b7d2", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.html new file mode 100644 index 0000000..c8228aa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/fold_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fold_right.hpp File Reference
+
+
+ +

Forward declares boost::hana::fold_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::fold_right
 Right-fold of a structure using a binary operation and an optional initial reduction state.fold_right is a right-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_right applies f as follows. More...
 
+

Detailed Description

+

Forward declares boost::hana::fold_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.js new file mode 100644 index 0000000..aefbbd2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fold__right_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2fold__right_8hpp = +[ + [ "fold_right", "fwd_2fold__right_8hpp.html#ga77d43badebd59b046cf93598733649b4", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.html new file mode 100644 index 0000000..766ba1f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/for_each.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
for_each.hpp File Reference
+
+
+ +

Forward declares boost::hana::for_each. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::for_each
 Perform an action on each element of a foldable, discarding the result each time.Iteration is done from left to right, i.e. in the same order as when using fold_left. If the structure is not finite, this method will not terminate. More...
 
+

Detailed Description

+

Forward declares boost::hana::for_each.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.js new file mode 100644 index 0000000..016ee20 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2for__each_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2for__each_8hpp = +[ + [ "for_each", "fwd_2for__each_8hpp.html#ga2af382f7e644ce3707710bbad313e9c2", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.html new file mode 100644 index 0000000..be79b62 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/front.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
front.hpp File Reference
+
+
+ +

Forward declares boost::hana::front. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::front
 Returns the first element of a non-empty iterable.Given a non-empty Iterable xs with a linearization of [x1, ..., xN], front(xs) is equal to x1. If xs is empty, it is an error to use this function. Equivalently, front(xs) must be equivalent to at_c<0>(xs), and that regardless of the value category of xs (front must respect the reference semantics of at). More...
 
+

Detailed Description

+

Forward declares boost::hana::front.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.js new file mode 100644 index 0000000..c68ca5f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2front_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2front_8hpp = +[ + [ "front", "fwd_2front_8hpp.html#ga8a67ea10e8082dbe6705e573fa978444", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.html new file mode 100644 index 0000000..1752d60 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/fuse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
fuse.hpp File Reference
+
+
+ +

Forward declares boost::hana::fuse. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::fuse
 Transform a function taking multiple arguments into a function that can be called with a compile-time Foldable. More...
 
+

Detailed Description

+

Forward declares boost::hana::fuse.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.js new file mode 100644 index 0000000..306bcd3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2fuse_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2fuse_8hpp = +[ + [ "fuse", "fwd_2fuse_8hpp.html#ga19fcf61d8d1179903952c0f564c538aa", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.html new file mode 100644 index 0000000..4ab261a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/greater.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
greater.hpp File Reference
+
+
+ +

Forward declares boost::hana::greater. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::greater
 Returns a Logical representing whether x is greater than y. More...
 
+

Detailed Description

+

Forward declares boost::hana::greater.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.js new file mode 100644 index 0000000..8016ac7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2greater_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2greater_8hpp = +[ + [ "greater", "fwd_2greater_8hpp.html#gaf9a073eafebbe514fb19dff82318f198", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.html new file mode 100644 index 0000000..354ca8c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/greater_equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
greater_equal.hpp File Reference
+
+
+ +

Forward declares boost::hana::greater_equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::greater_equal
 Returns a Logical representing whether x is greater than or equal to y. More...
 
+

Detailed Description

+

Forward declares boost::hana::greater_equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.js new file mode 100644 index 0000000..166b570 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2greater__equal_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2greater__equal_8hpp = +[ + [ "greater_equal", "fwd_2greater__equal_8hpp.html#ga6023631e7d0a01e16dc3fa4221fbd703", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.html new file mode 100644 index 0000000..65079d1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/group.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
group.hpp File Reference
+
+
+ +

Forward declares boost::hana::group. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::group
 Group adjacent elements of a sequence that all respect a binary predicate, by default equality.Given a finite Sequence and an optional predicate (by default equal), group returns a sequence of subsequences representing groups of adjacent elements that are "equal" with respect to the predicate. In other words, the groups are such that the predicate is satisfied when it is applied to any two adjacent elements in that group. The sequence returned by group is such that the concatenation of its elements is equal to the original sequence, which is equivalent to saying that the order of the elements is not changed. More...
 
+

Detailed Description

+

Forward declares boost::hana::group.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.js new file mode 100644 index 0000000..903b59e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2group_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2group_8hpp = +[ + [ "group", "fwd_2group_8hpp.html#gacefca884b3580664b63238cf8ba33fd3", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.html new file mode 100644 index 0000000..8d13884 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/hash.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
hash.hpp File Reference
+
+
+ +

Forward declares boost::hana::hash. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::hash
 Returns a hana::type representing the compile-time hash of an object.Given an arbitrary object x, hana::hash returns a hana::type representing the hash of x. In normal programming, hashes are usually numerical values that can be used e.g. as indices in an array as part of the implementation of a hash table. In the context of metaprogramming, we are interested in type-level hashes instead. Thus, hana::hash must return a hana::type object instead of an integer. This hana::type must somehow summarize the object being hashed, but that summary may of course lose some information. More...
 
+

Detailed Description

+

Forward declares boost::hana::hash.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.js new file mode 100644 index 0000000..dfcbe70 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2hash_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2hash_8hpp = +[ + [ "hash", "fwd_2hash_8hpp.html#ga6e906f44f47b210615491385e5c8a7b5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.html new file mode 100644 index 0000000..0f0f727 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
if.hpp File Reference
+
+
+ +

Forward declares boost::hana::if_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::if_
 Conditionally return one of two values based on a condition.Specifically, then is returned iff cond is true-valued, and else_ is returned otherwise. Note that some Logical models may allow then and else_ to have different types, while others may require both values to have the same type. More...
 
+

Detailed Description

+

Forward declares boost::hana::if_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.js new file mode 100644 index 0000000..154ca3f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2if_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2if_8hpp = +[ + [ "if_", "fwd_2if_8hpp.html#gafd655d2222367131e7a63616e93dd080", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.html new file mode 100644 index 0000000..72d9969 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/insert.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
insert.hpp File Reference
+
+
+ +

Forward declares boost::hana::insert. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr insert_t boost::hana::insert {}
 Insert a value at a given index in a sequence.Given a sequence, an index and an element to insert, insert inserts the element at the given index. More...
 
+

Detailed Description

+

Forward declares boost::hana::insert.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.js new file mode 100644 index 0000000..76cdf93 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2insert_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2insert_8hpp = +[ + [ "insert", "fwd_2insert_8hpp.html#gae22a1a184b1b2dd550fa4fa619bed2e9", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.html new file mode 100644 index 0000000..3e64c42 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/insert_range.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
insert_range.hpp File Reference
+
+
+ +

Forward declares boost::hana::insert_range. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::insert_range
 Insert several values at a given index in a sequence.Given a sequence, an index and any Foldable containing elements to insert, insert_range inserts the elements in the Foldable at the given index of the sequence. More...
 
+

Detailed Description

+

Forward declares boost::hana::insert_range.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.js new file mode 100644 index 0000000..9664012 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2insert__range_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2insert__range_8hpp = +[ + [ "insert_range", "fwd_2insert__range_8hpp.html#ga3410ba833cf1ff1d929fcfda4df2eae1", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.html new file mode 100644 index 0000000..bb53632 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/integral_constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
integral_constant.hpp File Reference
+
+
+ +

Forward declares boost::hana::integral_constant. +More...

+ + + + + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
 boost::hana::literals
 Namespace containing C++14 user-defined literals provided by Hana.
 
+ + + + + +

+Functions

template<char... c>
constexpr auto boost::hana::literals::operator""_c ()
 Creates a hana::integral_constant from a literal. More...
 
+

Detailed Description

+

Forward declares boost::hana::integral_constant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.js new file mode 100644 index 0000000..15cfe9c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2integral__constant_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2integral__constant_8hpp = +[ + [ "operator\"\"_c", "fwd_2integral__constant_8hpp.html#a85ac3c47d02722a334181aab540e732c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2intersection_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2intersection_8hpp.html new file mode 100644 index 0000000..fcaa03e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2intersection_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/intersection.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
intersection.hpp File Reference
+
+
+ +

Forward declares boost::hana::intersection. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::intersection.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.html new file mode 100644 index 0000000..5b3ffa2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/intersperse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
intersperse.hpp File Reference
+
+
+ +

Forward declares boost::hana::intersperse. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::intersperse
 Insert a value between each pair of elements in a finite sequence.Given a finite Sequence xs with a linearization of [x1, x2, ..., xn], intersperse(xs, z) is a new sequence with a linearization of [x1, z, x2, z, x3, ..., xn-1, z, xn]. In other words, it inserts the z element between every pair of elements of the original sequence. If the sequence is empty or has a single element, intersperse returns the sequence as-is. In all cases, the sequence must be finite. More...
 
+

Detailed Description

+

Forward declares boost::hana::intersperse.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.js new file mode 100644 index 0000000..02d902e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2intersperse_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2intersperse_8hpp = +[ + [ "intersperse", "fwd_2intersperse_8hpp.html#gaa18061cd0f63cfaae89abf43ff92b79e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.html new file mode 100644 index 0000000..a278d7b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/is_disjoint.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_disjoint.hpp File Reference
+
+
+ +

Forward declares boost::hana::is_disjoint. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::is_disjoint
 Returns whether two Searchables are disjoint.Given two Searchables xs and ys, is_disjoint returns a Logical representing whether the keys in xs are disjoint from the keys in ys, i.e. whether both structures have no keys in common. More...
 
+

Detailed Description

+

Forward declares boost::hana::is_disjoint.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.js new file mode 100644 index 0000000..7f81c07 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2is__disjoint_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2is__disjoint_8hpp = +[ + [ "is_disjoint", "fwd_2is__disjoint_8hpp.html#ga3b8269d4f5cdd6dd549fae32280795a0", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.html new file mode 100644 index 0000000..73b7b13 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/is_empty.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_empty.hpp File Reference
+
+
+ +

Forward declares boost::hana::is_empty. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::is_empty
 Returns whether the iterable is empty.Given an Iterable xs, is_empty returns whether xs contains no more elements. In other words, it returns whether trying to extract the tail of xs would be an error. In the current version of the library, is_empty must return an IntegralConstant holding a value convertible to bool. This is because only compile-time Iterables are supported right now. More...
 
+

Detailed Description

+

Forward declares boost::hana::is_empty.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.js new file mode 100644 index 0000000..58fdb02 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2is__empty_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2is__empty_8hpp = +[ + [ "is_empty", "fwd_2is__empty_8hpp.html#ga2a05f564f8a7e4afa04fcbc07ad8f394", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.html new file mode 100644 index 0000000..5e4774e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/is_subset.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_subset.hpp File Reference
+
+
+ +

Forward declares boost::hana::is_subset. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::is_subset
 Returns whether a structure contains a subset of the keys of another structure.Given two Searchables xs and ys, is_subset returns a Logical representing whether xs is a subset of ys. In other words, it returns whether all the keys of xs are also present in ys. This method does not return whether xs is a strict subset of ys; if xs and ys are equal, all the keys of xs are also present in ys, and is_subset returns true. More...
 
+

Detailed Description

+

Forward declares boost::hana::is_subset.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.js new file mode 100644 index 0000000..dabc3cd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2is__subset_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2is__subset_8hpp = +[ + [ "is_subset", "fwd_2is__subset_8hpp.html#gadccfc79f1acdd8043d2baa16df16ec9f", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.html new file mode 100644 index 0000000..e09d44d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/keys.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
keys.hpp File Reference
+
+
+ +

Forward declares boost::hana::keys. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr keys_t boost::hana::keys {}
 Returns a Sequence containing the name of the members of the data structure.Given a Struct object, keys returns a Sequence containing the name of all the members of the Struct, in the same order as they appear in the accessors sequence. More...
 
+

Detailed Description

+

Forward declares boost::hana::keys.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.js new file mode 100644 index 0000000..7a55352 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2keys_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2keys_8hpp = +[ + [ "keys", "fwd_2keys_8hpp.html#gaf8c7199742581e6e66c8397def68e2d3", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2lazy_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2lazy_8hpp.html new file mode 100644 index 0000000..109e0cb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2lazy_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/lazy.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lazy.hpp File Reference
+
+
+ +

Forward declares boost::hana::lazy. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::lazy< implementation_defined >
 hana::lazy implements superficial laziness via a monadic interface. More...
 
struct  boost::hana::lazy_tag
 Tag representing hana::lazy. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::lazy.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.html new file mode 100644 index 0000000..ee4b1eb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/length.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
length.hpp File Reference
+
+
+ +

Forward declares boost::hana::length. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::length
 Return the number of elements in a foldable structure.Given a Foldable xs, length(xs) must return an object of an unsigned integral type, or an IntegralConstant holding such an object, which represents the number of elements in the structure. More...
 
+

Detailed Description

+

Forward declares boost::hana::length.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.js new file mode 100644 index 0000000..1026c9e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2length_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2length_8hpp = +[ + [ "length", "fwd_2length_8hpp.html#gaf0f8f717245620dc28cd7d7fa44d7475", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.html new file mode 100644 index 0000000..499b7ed --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/less.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
less.hpp File Reference
+
+
+ +

Forward declares boost::hana::less. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::less
 Returns a Logical representing whether x is less than y. More...
 
+

Detailed Description

+

Forward declares boost::hana::less.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.js new file mode 100644 index 0000000..2af1be2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2less_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2less_8hpp = +[ + [ "less", "fwd_2less_8hpp.html#gad510011602bdb14686f1c4ec145301c9", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.html new file mode 100644 index 0000000..f092a11 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/less_equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
less_equal.hpp File Reference
+
+
+ +

Forward declares boost::hana::less_equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::less_equal
 Returns a Logical representing whether x is less than or equal to y. More...
 
+

Detailed Description

+

Forward declares boost::hana::less_equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.js new file mode 100644 index 0000000..86b25ee --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2less__equal_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2less__equal_8hpp = +[ + [ "less_equal", "fwd_2less__equal_8hpp.html#ga9917dd82beb67151bf5657245d37b851", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.html new file mode 100644 index 0000000..0a81ac7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/lexicographical_compare.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lexicographical_compare.hpp File Reference
+
+
+ +

Forward declares boost::hana::lexicographical_compare. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::lexicographical_compare
 Short-circuiting lexicographical comparison of two Iterables with an optional custom predicate, by default hana::less.Given two Iterables xs and ys and a binary predicate pred, lexicographical_compare returns whether xs is to be considered less than ys in a lexicographical ordering. Specifically, let's denote the linearizations of xs and ys by [x1, x2, ...] and [y1, y2, ...], respectively. If the first couple satisfying the predicate is of the form xi, yi, lexicographical_compare returns true. Otherwise, if the first couple to satisfy the predicate is of the form yi, xi, lexicographical_compare returns false. If no such couple can be found, lexicographical_compare returns whether xs has fewer elements than ys. More...
 
+

Detailed Description

+

Forward declares boost::hana::lexicographical_compare.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.js new file mode 100644 index 0000000..ee29c16 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2lexicographical__compare_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2lexicographical__compare_8hpp = +[ + [ "lexicographical_compare", "fwd_2lexicographical__compare_8hpp.html#ga660b2649d63ac71dacc64c3852c981e5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.html new file mode 100644 index 0000000..c72f191 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/lift.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lift.hpp File Reference
+
+
+ +

Forward declares boost::hana::lift. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename A >
constexpr auto boost::hana::lift
 Lift a value into an Applicative structure.lift<A> takes a normal value and embeds it into a structure whose shape is represented by the A Applicative. Note that the value may be a function, in which case the created structure may be applied to another Applicative structure containing values. More...
 
+

Detailed Description

+

Forward declares boost::hana::lift.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.js new file mode 100644 index 0000000..d216e43 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2lift_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2lift_8hpp = +[ + [ "lift", "fwd_2lift_8hpp.html#ga712038d7abbc7159f8792788f7cd0c73", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2map_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2map_8hpp.html new file mode 100644 index 0000000..a36a99e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2map_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/map.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
map.hpp File Reference
+
+
+ +

Forward declares boost::hana::map. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::map_tag
 Tag representing hana::maps. More...
 
struct  boost::hana::map< Pairs >
 Basic associative container requiring unique, Comparable and Hashable keys. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::map.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.html new file mode 100644 index 0000000..a6cf8e1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/max.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
max.hpp File Reference
+
+
+ +

Forward declares boost::hana::max. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::max
 Returns the greatest of its arguments according to the less ordering. More...
 
+

Detailed Description

+

Forward declares boost::hana::max.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.js new file mode 100644 index 0000000..6ec9608 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2max_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2max_8hpp = +[ + [ "max", "fwd_2max_8hpp.html#ga999eee8ca8750f9b1afa0d7a1db28030", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.html new file mode 100644 index 0000000..4011d15 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/maximum.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
maximum.hpp File Reference
+
+
+ +

Forward declares boost::hana::maximum. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::maximum
 Return the greatest element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), maximum returns the greatest element of the structure, i.e. an element which is greater than or equal to every other element in the structure, according to the predicate. More...
 
+

Detailed Description

+

Forward declares boost::hana::maximum.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.js new file mode 100644 index 0000000..b9837aa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2maximum_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2maximum_8hpp = +[ + [ "maximum", "fwd_2maximum_8hpp.html#gaf3861a91607203b63a12708e18a4eac5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.html new file mode 100644 index 0000000..3cb33fe --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/members.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
members.hpp File Reference
+
+
+ +

Forward declares boost::hana::members. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::members
 Returns a Sequence containing the members of a Struct.Given a Struct object, members returns a Sequence containing all the members of the Struct, in the same order as their respective accessor appears in the accessors sequence. More...
 
+

Detailed Description

+

Forward declares boost::hana::members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.js new file mode 100644 index 0000000..03024a6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2members_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2members_8hpp = +[ + [ "members", "fwd_2members_8hpp.html#gad301dd8e9fb4639d7874619c97d6d427", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.html new file mode 100644 index 0000000..9793cc5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/min.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
min.hpp File Reference
+
+
+ +

Forward declares boost::hana::min. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::min
 Returns the smallest of its arguments according to the less ordering. More...
 
+

Detailed Description

+

Forward declares boost::hana::min.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.js new file mode 100644 index 0000000..847aeea --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2min_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2min_8hpp = +[ + [ "min", "fwd_2min_8hpp.html#ga2d54f189ea6f57fb2c0d772169440c5c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.html new file mode 100644 index 0000000..043b208 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/minimum.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
minimum.hpp File Reference
+
+
+ +

Forward declares boost::hana::minimum. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::minimum
 Return the least element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), minimum returns the least element of the structure, i.e. an element which is less than or equal to every other element in the structure, according to the predicate. More...
 
+

Detailed Description

+

Forward declares boost::hana::minimum.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.js new file mode 100644 index 0000000..321b7e3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2minimum_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2minimum_8hpp = +[ + [ "minimum", "fwd_2minimum_8hpp.html#ga347429451fdb15f9f7a7fc0de293be1a", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.html new file mode 100644 index 0000000..d4d3c75 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/minus.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
minus.hpp File Reference
+
+
+ +

Forward declares boost::hana::minus. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::minus
 Subtract two elements of a group.Specifically, this performs the Monoid operation on the first argument and on the inverse of the second argument, thus being equivalent to: More...
 
+

Detailed Description

+

Forward declares boost::hana::minus.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.js new file mode 100644 index 0000000..94e2e18 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2minus_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2minus_8hpp = +[ + [ "minus", "fwd_2minus_8hpp.html#ga2020c526324f361a2b990fe8d1b07c20", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.html new file mode 100644 index 0000000..72e316f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/mod.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mod.hpp File Reference
+
+
+ +

Forward declares boost::hana::mod. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::mod
 Generalized integer modulus.Given two elements of an EuclideanRing x and y, with y nonzero, mod returns the modulus of the division of x by y. In other words, mod can be seen as an equivalent to %. More...
 
+

Detailed Description

+

Forward declares boost::hana::mod.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.js new file mode 100644 index 0000000..01264bb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2mod_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2mod_8hpp = +[ + [ "mod", "fwd_2mod_8hpp.html#ga9b47b223d5b02db933b3c93b5bd1a062", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.html new file mode 100644 index 0000000..c142a60 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/monadic_compose.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monadic_compose.hpp File Reference
+
+
+ +

Forward declares boost::hana::monadic_compose. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::monadic_compose
 Composition of monadic functions.Given two monadic functions f and g, monadic_compose returns a new function equivalent to the composition of f with g, except the result of g is chained into f instead of simply passed to it, as with normal composition. monadic_compose satisfies. More...
 
+

Detailed Description

+

Forward declares boost::hana::monadic_compose.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.js new file mode 100644 index 0000000..80291ec --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__compose_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2monadic__compose_8hpp = +[ + [ "monadic_compose", "fwd_2monadic__compose_8hpp.html#gaec3fe26c7378fd3057af83e03bd9b104", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.html new file mode 100644 index 0000000..1188457 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/monadic_fold_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monadic_fold_left.hpp File Reference
+
+
+ +

Forward declares boost::hana::monadic_fold_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename M >
constexpr auto boost::hana::monadic_fold_left
 Monadic left-fold of a structure with a binary operation and an optional initial reduction state. More...
 
+

Detailed Description

+

Forward declares boost::hana::monadic_fold_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.js new file mode 100644 index 0000000..dae022e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__left_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2monadic__fold__left_8hpp = +[ + [ "monadic_fold_left", "fwd_2monadic__fold__left_8hpp.html#gac14edbff755244aa02b57a6383dcebc6", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.html new file mode 100644 index 0000000..cc6fb14 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/monadic_fold_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monadic_fold_right.hpp File Reference
+
+
+ +

Forward declares boost::hana::monadic_fold_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename M >
constexpr auto boost::hana::monadic_fold_right
 Monadic right-fold of a structure with a binary operation and an optional initial reduction state. More...
 
+

Detailed Description

+

Forward declares boost::hana::monadic_fold_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.js new file mode 100644 index 0000000..0909b93 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2monadic__fold__right_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2monadic__fold__right_8hpp = +[ + [ "monadic_fold_right", "fwd_2monadic__fold__right_8hpp.html#gaa058d91f3e1294f0d3c71bedf33e2360", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.html new file mode 100644 index 0000000..35b19a7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/mult.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mult.hpp File Reference
+
+
+ +

Forward declares boost::hana::mult. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::mult
 Associative operation of a Ring. More...
 
+

Detailed Description

+

Forward declares boost::hana::mult.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.js new file mode 100644 index 0000000..caf1252 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2mult_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2mult_8hpp = +[ + [ "mult", "fwd_2mult_8hpp.html#ga052d31c269a6a438cc8004c9ad1efdfa", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.html new file mode 100644 index 0000000..8d0375c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/negate.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
negate.hpp File Reference
+
+
+ +

Forward declares boost::hana::negate. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::negate
 Return the inverse of an element of a group. More...
 
+

Detailed Description

+

Forward declares boost::hana::negate.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.js new file mode 100644 index 0000000..68c47a7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2negate_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2negate_8hpp = +[ + [ "negate", "fwd_2negate_8hpp.html#ga02e81002f40ba52eac4cf1974c7e0cdb", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.html new file mode 100644 index 0000000..f67478f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/none.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
none.hpp File Reference
+
+
+ +

Forward declares boost::hana::none. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::none
 Returns whether all of the keys of the structure are false-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish. More...
 
+

Detailed Description

+

Forward declares boost::hana::none.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.js new file mode 100644 index 0000000..dd16ec2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2none_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2none_8hpp = +[ + [ "none", "fwd_2none_8hpp.html#ga614ff1e575806f59246b17006e19d479", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.html new file mode 100644 index 0000000..5780f50 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/none_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
none_of.hpp File Reference
+
+
+ +

Forward declares boost::hana::none_of. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::none_of
 Returns whether none of the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a true- valued Logical after looking at a finite number of keys for this method to finish. More...
 
+

Detailed Description

+

Forward declares boost::hana::none_of.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.js new file mode 100644 index 0000000..4cfe8c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2none__of_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2none__of_8hpp = +[ + [ "none_of", "fwd_2none__of_8hpp.html#ga43954c791b5b1351fb009e2a643d00f5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.html new file mode 100644 index 0000000..cff6f6c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/not.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
not.hpp File Reference
+
+
+ +

Forward declares boost::hana::not_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::not_
 Negates a Logical.This method returns a Logical with the same tag, but whose truth-value is negated. Specifically, not_(x) returns a false-valued Logical if x is a true-valued Logical, and a true-valued one otherwise. More...
 
+

Detailed Description

+

Forward declares boost::hana::not_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.js new file mode 100644 index 0000000..0729489 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2not_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2not_8hpp = +[ + [ "not_", "fwd_2not_8hpp.html#ga4a7c9d7037601d5e553fd20777958980", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.html new file mode 100644 index 0000000..ceb414e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/not_equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
not_equal.hpp File Reference
+
+
+ +

Forward declares boost::hana::not_equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::not_equal
 Returns a Logical representing whether x is not equal to y.The not_equal function can be called in two different ways. First, it can be called like a normal function: More...
 
+

Detailed Description

+

Forward declares boost::hana::not_equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.js new file mode 100644 index 0000000..f6fb8b3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2not__equal_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2not__equal_8hpp = +[ + [ "not_equal", "fwd_2not__equal_8hpp.html#gae33be2e0d5e04f19082f4b7740dfc9cd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.html new file mode 100644 index 0000000..c6b974a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/one.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
one.hpp File Reference
+
+
+ +

Forward declares boost::hana::one. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename R >
constexpr auto boost::hana::one
 Identity of the Ring multiplication. More...
 
+

Detailed Description

+

Forward declares boost::hana::one.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.js new file mode 100644 index 0000000..8ca6f3f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2one_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2one_8hpp = +[ + [ "one", "fwd_2one_8hpp.html#gadea531feb3b0a1c5c3d777f7ab45e932", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2optional_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2optional_8hpp.html new file mode 100644 index 0000000..efd4d5f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2optional_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/optional.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
optional.hpp File Reference
+
+
+ +

Forward declares boost::hana::optional. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::optional< T >
 Optional value whose optional-ness is known at compile-time. More...
 
struct  boost::hana::optional_tag
 Tag representing a hana::optional. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::optional.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.html new file mode 100644 index 0000000..5932d59 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/or.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
or.hpp File Reference
+
+
+ +

Forward declares boost::hana::or_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::or_
 Return whether any of the arguments is true-valued.or_ can be called with one argument or more. When called with two arguments, or_ uses tag-dispatching to find the right implementation. Otherwise,. More...
 
+

Detailed Description

+

Forward declares boost::hana::or_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.js new file mode 100644 index 0000000..2711b32 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2or_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2or_8hpp = +[ + [ "or_", "fwd_2or_8hpp.html#ga68c00efbeb69339bfa157a78ebdd3f87", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.html new file mode 100644 index 0000000..5851d5a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/ordering.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ordering.hpp File Reference
+
+
+ +

Forward declares boost::hana::ordering. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::ordering
 Returns a function performing less after applying a transformation to both arguments.ordering creates a total order based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent a total order. More...
 
+

Detailed Description

+

Forward declares boost::hana::ordering.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.js new file mode 100644 index 0000000..5049909 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2ordering_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2ordering_8hpp = +[ + [ "ordering", "fwd_2ordering_8hpp.html#gaf7e94ba859710cd6ba6152e5dc18977d", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2pair_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2pair_8hpp.html new file mode 100644 index 0000000..d1b6904 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2pair_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/pair.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
pair.hpp File Reference
+
+
+ +

Forward declares boost::hana::pair. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::pair< First, Second >
 Generic container for two elements. More...
 
struct  boost::hana::pair_tag
 Tag representing hana::pair. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::pair.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.html new file mode 100644 index 0000000..5f0b2f1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/partition.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
partition.hpp File Reference
+
+
+ +

Forward declares boost::hana::partition. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::partition
 Partition a sequence based on a predicate.Specifically, returns an unspecified Product whose first element is a sequence of the elements satisfying the predicate, and whose second element is a sequence of the elements that do not satisfy the predicate. More...
 
+

Detailed Description

+

Forward declares boost::hana::partition.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.js new file mode 100644 index 0000000..bbca0f7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2partition_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2partition_8hpp = +[ + [ "partition", "fwd_2partition_8hpp.html#ga5e84ac3f1eb09c637b6b38ef42dccd8d", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.html new file mode 100644 index 0000000..69290ff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/permutations.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
permutations.hpp File Reference
+
+
+ +

Forward declares boost::hana::permutations. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::permutations
 Return a sequence of all the permutations of the given sequence.Specifically, permutations(xs) is a sequence whose elements are permutations of the original sequence xs. The permutations are not guaranteed to be in any specific order. Also note that the number of permutations grows very rapidly as the length of the original sequence increases. The growth rate is O(length(xs)!); with a sequence xs of length only 8, permutations(xs) contains over 40 000 elements! More...
 
+

Detailed Description

+

Forward declares boost::hana::permutations.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.js new file mode 100644 index 0000000..85f6800 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2permutations_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2permutations_8hpp = +[ + [ "permutations", "fwd_2permutations_8hpp.html#gac1e182ac088f1990edd739424d30ea07", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.html new file mode 100644 index 0000000..9ea0d46 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/plus.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
plus.hpp File Reference
+
+
+ +

Forward declares boost::hana::plus. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::plus
 Associative binary operation on a Monoid. More...
 
+

Detailed Description

+

Forward declares boost::hana::plus.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.js new file mode 100644 index 0000000..57dfed2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2plus_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2plus_8hpp = +[ + [ "plus", "fwd_2plus_8hpp.html#gaeb5d4a1e967e319712f9e4791948896c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.html new file mode 100644 index 0000000..1245a23 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/power.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
power.hpp File Reference
+
+
+ +

Forward declares boost::hana::power. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::power
 Elevate a ring element to its nth power.Specifically, power(x, n), is equivalent to multiplying x with itself n times using the Ring's multiplication. If the power is equal to zero, the Ring's identity (one) is returned. More...
 
+

Detailed Description

+

Forward declares boost::hana::power.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.js new file mode 100644 index 0000000..b8c0665 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2power_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2power_8hpp = +[ + [ "power", "fwd_2power_8hpp.html#ga0ee3cff9ec646bcc7217f00ee6099b72", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.html new file mode 100644 index 0000000..7069d64 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/prefix.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
prefix.hpp File Reference
+
+
+ +

Forward declares boost::hana::prefix. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::prefix
 Inserts a value before each element of a monadic structure.Given a monadic structure xs and a value z called the prefix, prefix returns a new monadic structure. prefix satisfies. More...
 
+

Detailed Description

+

Forward declares boost::hana::prefix.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.js new file mode 100644 index 0000000..e35d251 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2prefix_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2prefix_8hpp = +[ + [ "prefix", "fwd_2prefix_8hpp.html#ga3022fdfe454dc9bc1f79b5dfeba13b5e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.html new file mode 100644 index 0000000..f38e8d8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/prepend.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
prepend.hpp File Reference
+
+
+ +

Forward declares boost::hana::prepend. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::prepend
 Prepend an element to a monadic structure.Given a monadic structure xs and an element x, prepend returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the left) with xs. In other words,. More...
 
+

Detailed Description

+

Forward declares boost::hana::prepend.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.js new file mode 100644 index 0000000..eac5904 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2prepend_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2prepend_8hpp = +[ + [ "prepend", "fwd_2prepend_8hpp.html#ga69afbfd4e91125e3e52fcb409135ca7c", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.html new file mode 100644 index 0000000..f783ee1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/product.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
product.hpp File Reference
+
+
+ +

Forward declares boost::hana::product. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::product = see documentation
 Compute the product of the numbers of a structure.More generally, product will take any foldable structure containing objects forming a Ring and reduce them using the Ring's binary operation. The initial state for folding is the identity of the Ring's operation. It is sometimes necessary to specify the Ring to use; this is possible by using product<R>. If no Ring is specified, the structure will use the Ring formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,. More...
 
+

Detailed Description

+

Forward declares boost::hana::product.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.js new file mode 100644 index 0000000..06a56c1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2product_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2product_8hpp = +[ + [ "product", "fwd_2product_8hpp.html#ga17fe9c1982c882807f3358b4138c5744", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2range_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2range_8hpp.html new file mode 100644 index 0000000..c469aa5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2range_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/range.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
range.hpp File Reference
+
+
+ +

Forward declares boost::hana::range. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::range< T, from, to >
 Compile-time half-open interval of hana::integral_constants. More...
 
struct  boost::hana::range_tag
 Tag representing a hana::range. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::range.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.html new file mode 100644 index 0000000..211afd3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/remove.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove.hpp File Reference
+
+
+ +

Forward declares boost::hana::remove. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::remove
 Remove all the elements of a monadic structure that are equal to some value.Given a monadic structure xs and a value, remove returns a new monadic structure equal to xs without all its elements that are equal to the given value. remove is equivalent to remove_if with the equal.to(value) predicate, i.e. More...
 
+

Detailed Description

+

Forward declares boost::hana::remove.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.js new file mode 100644 index 0000000..7766954 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2remove_8hpp = +[ + [ "remove", "fwd_2remove_8hpp.html#gae3cc0d6e0d8feb3d677bd1da64da6f43", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.html new file mode 100644 index 0000000..9a7c668 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/remove_at.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove_at.hpp File Reference
+
+
+ +

Forward declares boost::hana::remove_at and boost::hana::remove_at_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + +

+Variables

constexpr auto boost::hana::remove_at
 Remove the element at a given index from a sequence.remove_at returns a new sequence identical to the original, except that the element at the given index is removed. Specifically, remove_at([x0, ..., xn-1, xn, xn+1, ..., xm], n) is a new sequence equivalent to [x0, ..., xn-1, xn+1, ..., xm]. More...
 
template<std::size_t n>
constexpr auto boost::hana::remove_at_c
 Equivalent to remove_at; provided for convenience. More...
 
+

Detailed Description

+

Forward declares boost::hana::remove_at and boost::hana::remove_at_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.js new file mode 100644 index 0000000..b470233 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__at_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2remove__at_8hpp = +[ + [ "remove_at", "fwd_2remove__at_8hpp.html#ga80724ec8ecf319a1e695988a69e22f87", null ], + [ "remove_at_c", "fwd_2remove__at_8hpp.html#gae70b0815645c7d81bb636a1eed1a65c6", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.html new file mode 100644 index 0000000..6265f26 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/remove_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove_if.hpp File Reference
+
+
+ +

Forward declares boost::hana::remove_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::remove_if
 Remove all the elements of a monadic structure that satisfy some predicate.Given a monadic structure xs and a unary predicate, remove_if returns a new monadic structure equal to xs without all its elements that satisfy the predicate. This is equivalent to filter with a negated predicate, i.e. More...
 
+

Detailed Description

+

Forward declares boost::hana::remove_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.js new file mode 100644 index 0000000..eecbe91 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__if_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2remove__if_8hpp = +[ + [ "remove_if", "fwd_2remove__if_8hpp.html#ga9700169a45664d50377c1be9d58accd3", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.html new file mode 100644 index 0000000..68bf155 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/remove_range.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove_range.hpp File Reference
+
+
+ +

Forward declares boost::hana::remove_range and boost::hana::remove_range_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + +

+Variables

constexpr auto boost::hana::remove_range
 Remove the elements inside a given range of indices from a sequence.remove_range returns a new sequence identical to the original, except that elements at indices in the provided range are removed. Specifically, remove_range([x0, ..., xn], from, to) is a new sequence equivalent to [x0, ..., x_from-1, x_to, ..., xn]. More...
 
template<std::size_t from, std::size_t to>
constexpr auto boost::hana::remove_range_c
 Equivalent to remove_range; provided for convenience. More...
 
+

Detailed Description

+

Forward declares boost::hana::remove_range and boost::hana::remove_range_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.js new file mode 100644 index 0000000..b34b340 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2remove__range_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2remove__range_8hpp = +[ + [ "remove_range", "fwd_2remove__range_8hpp.html#ga6f6d5c1f335780c91d29626fde615c78", null ], + [ "remove_range_c", "fwd_2remove__range_8hpp.html#ga4696efcdee7d95ab4a391bb896a840b5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.html new file mode 100644 index 0000000..8a32a62 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/repeat.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
repeat.hpp File Reference
+
+
+ +

Forward declares boost::hana::repeat. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::repeat
 Invokes a nullary function n times.Given an IntegralConstant n and a nullary function f, repeat(n, f) will call f n times. In particular, any decent compiler should expand repeat(n, f) to. More...
 
+

Detailed Description

+

Forward declares boost::hana::repeat.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.js new file mode 100644 index 0000000..04a776c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2repeat_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2repeat_8hpp = +[ + [ "repeat", "fwd_2repeat_8hpp.html#a405f3dd84fc6f5003e64f8da104a1b54", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.html new file mode 100644 index 0000000..436d853 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/replace.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
replace.hpp File Reference
+
+
+ +

Forward declares boost::hana::replace. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::replace
 Replace all the elements of a structure that compare equal to some value with some new fixed value. More...
 
+

Detailed Description

+

Forward declares boost::hana::replace.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.js new file mode 100644 index 0000000..1fe2c9b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2replace_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2replace_8hpp = +[ + [ "replace", "fwd_2replace_8hpp.html#ga94cd3a75d59d70d77cfce144c4acf8ab", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.html new file mode 100644 index 0000000..38b1aee --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/replace_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
replace_if.hpp File Reference
+
+
+ +

Forward declares boost::hana::replace_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::replace_if
 Replace all the elements of a structure satisfying a predicate with a fixed value. More...
 
+

Detailed Description

+

Forward declares boost::hana::replace_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.js new file mode 100644 index 0000000..d0d0dac --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2replace__if_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2replace__if_8hpp = +[ + [ "replace_if", "fwd_2replace__if_8hpp.html#ga1d21b4bccd16367d164fbe0d9ef52150", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.html new file mode 100644 index 0000000..c311fe5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/replicate.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
replicate.hpp File Reference
+
+
+ +

Forward declares boost::hana::replicate. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename M >
constexpr auto boost::hana::replicate
 Create a monadic structure by combining a lifted value with itself n times.Given a value x, a non-negative IntegralConstant n and the tag of a monadic structure M, replicate creates a new monadic structure which is the result of combining x with itself n times inside the monadic structure. In other words, replicate simply lifts x into the monadic structure, and then combines that with itself n times: More...
 
+

Detailed Description

+

Forward declares boost::hana::replicate.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.js new file mode 100644 index 0000000..d59f4e3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2replicate_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2replicate_8hpp = +[ + [ "replicate", "fwd_2replicate_8hpp.html#gad5f48c79d11923d6c1d70b18b7dd3f19", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.html new file mode 100644 index 0000000..27ffc40 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/reverse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
reverse.hpp File Reference
+
+
+ +

Forward declares boost::hana::reverse. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::reverse
 Reverse a sequence.Specifically, reverse(xs) is a new sequence containing the same elements as xs, except in reverse order. More...
 
+

Detailed Description

+

Forward declares boost::hana::reverse.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.js new file mode 100644 index 0000000..a4522bf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2reverse_8hpp = +[ + [ "reverse", "fwd_2reverse_8hpp.html#ga28037560e8f224c53cf6ac168d03a067", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.html new file mode 100644 index 0000000..cf151db --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/reverse_fold.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
reverse_fold.hpp File Reference
+
+
+ +

Forward declares boost::hana::reverse_fold. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::reverse_fold
 Equivalent to reverse_fold in Boost.Fusion and Boost.MPL.This method has the same semantics as reverse_fold in Boost.Fusion and Boost.MPL, with the extension that an initial state is not required. This method is equivalent to fold_right, except that the accumulating function must take its arguments in reverse order, to match the order used in Fusion. In other words,. More...
 
+

Detailed Description

+

Forward declares boost::hana::reverse_fold.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.js new file mode 100644 index 0000000..3d908a8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2reverse__fold_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2reverse__fold_8hpp = +[ + [ "reverse_fold", "fwd_2reverse__fold_8hpp.html#ga947602718a53bd7fcd5c20477694cdcd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.html new file mode 100644 index 0000000..271e800 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/scan_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
scan_left.hpp File Reference
+
+
+ +

Forward declares boost::hana::scan_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::scan_left
 Fold a Sequence to the left and return a list containing the successive reduction states.Like fold_left, scan_left reduces a sequence to a single value using a binary operation. However, unlike fold_left, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_left, scan_left can be used with or without an initial reduction state. More...
 
+

Detailed Description

+

Forward declares boost::hana::scan_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.js new file mode 100644 index 0000000..8cb8a53 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__left_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2scan__left_8hpp = +[ + [ "scan_left", "fwd_2scan__left_8hpp.html#gaec484fb349500149d90717f6e68f7bcd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.html new file mode 100644 index 0000000..5394935 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/scan_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
scan_right.hpp File Reference
+
+
+ +

Forward declares boost::hana::scan_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::scan_right
 Fold a Sequence to the right and return a list containing the successive reduction states.Like fold_right, scan_right reduces a sequence to a single value using a binary operation. However, unlike fold_right, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_right, scan_right can be used with or without an initial reduction state. More...
 
+

Detailed Description

+

Forward declares boost::hana::scan_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.js new file mode 100644 index 0000000..e8173dd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2scan__right_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2scan__right_8hpp = +[ + [ "scan_right", "fwd_2scan__right_8hpp.html#ga54d141f901866dfab29b052857123bab", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.html new file mode 100644 index 0000000..f1bb3e2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/second.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
second.hpp File Reference
+
+
+ +

Forward declares boost::hana::second. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::second
 Returns the second element of a pair.Note that if the Product actually stores the elements it contains, hana::second is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the second element, where the type of reference must match that of the pair passed to second. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped. More...
 
+

Detailed Description

+

Forward declares boost::hana::second.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.js new file mode 100644 index 0000000..b9e0539 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2second_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2second_8hpp = +[ + [ "second", "fwd_2second_8hpp.html#ga7bb979d59ffc3ab862cb7d9dc7730077", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2set_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2set_8hpp.html new file mode 100644 index 0000000..65cfe9f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2set_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/set.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
set.hpp File Reference
+
+
+ +

Forward declares boost::hana::set. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::set< implementation_defined >
 Basic unordered container requiring unique, Comparable and Hashable keys. More...
 
struct  boost::hana::set_tag
 Tag representing the hana::set container. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::set.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.html new file mode 100644 index 0000000..c083cb3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/size.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
size.hpp File Reference
+
+
+ +

Forward declares boost::hana::size. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::size = hana::length
 Equivalent to length; provided for consistency with the standard library.This method is an alias to length provided for convenience and consistency with the standard library. As an alias, size is not tag-dispatched on its own and length should be customized instead. More...
 
+

Detailed Description

+

Forward declares boost::hana::size.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.js new file mode 100644 index 0000000..e5ea43a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2size_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2size_8hpp = +[ + [ "size", "fwd_2size_8hpp.html#ga8ec3ac9a6f5014db943f61ebc9e1e36e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.html new file mode 100644 index 0000000..e1bd920 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/slice.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
slice.hpp File Reference
+
+
+ +

Forward declares boost::hana::slice and boost::hana::slice_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + +

+Variables

constexpr auto boost::hana::slice
 Extract the elements of a Sequence at the given indices.Given an arbitrary sequence of indices, slice returns a new sequence of the elements of the original sequence that appear at those indices. In other words,. More...
 
template<std::size_t from, std::size_t to>
constexpr auto boost::hana::slice_c
 Shorthand to slice a contiguous range of elements.slice_c is simply a shorthand to slice a contiguous range of elements. In particular, slice_c<from, to>(xs) is equivalent to slice(xs, range_c<std::size_t, from, to>), which simply slices all the elements of xs contained in the half-open interval delimited by [from, to). Like for slice, the indices used with slice_c are 0-based and they must be in the bounds of the sequence being sliced. More...
 
+

Detailed Description

+

Forward declares boost::hana::slice and boost::hana::slice_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.js new file mode 100644 index 0000000..b6fa230 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2slice_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2slice_8hpp = +[ + [ "slice", "fwd_2slice_8hpp.html#ga245d8abaf6ba67e64020be51c8366081", null ], + [ "slice_c", "fwd_2slice_8hpp.html#gae1f6a2a9cb70564d43c6b3c663b25dd7", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.html new file mode 100644 index 0000000..7d95ead --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/sort.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sort.hpp File Reference
+
+
+ +

Forward declares boost::hana::sort. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::sort
 Sort a sequence, optionally based on a custom predicate.Given a Sequence and an optional predicate (by default less), sort returns a new sequence containing the same elements as the original, except they are ordered in such a way that if x comes before y in the sequence, then either predicate(x, y) is true, or both predicate(x, y) and predicate(y, x) are false. More...
 
+

Detailed Description

+

Forward declares boost::hana::sort.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.js new file mode 100644 index 0000000..40c7acc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2sort_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2sort_8hpp = +[ + [ "sort", "fwd_2sort_8hpp.html#gac000a79eb7b9d44ecc8982c93daa40e5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.html new file mode 100644 index 0000000..bd836f5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/span.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
span.hpp File Reference
+
+
+ +

Forward declares boost::hana::span. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::span
 Returns a Product containing the longest prefix of a sequence satisfying a predicate, and the rest of the sequence.The first component of the returned Product is a sequence for which all elements satisfy the given predicate. The second component of the returned Product is a sequence containing the remainder of the argument. Both or either sequences may be empty, depending on the input argument. More specifically,. More...
 
+

Detailed Description

+

Forward declares boost::hana::span.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.js new file mode 100644 index 0000000..65d7beb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2span_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2span_8hpp = +[ + [ "span", "fwd_2span_8hpp.html#ga9bdde56d805517bce8e387f5bcd1887e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.html new file mode 100644 index 0000000..cfff0f7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.html @@ -0,0 +1,182 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/string.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
string.hpp File Reference
+
+
+ +

Forward declares boost::hana::string. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::string< implementation_defined >
 Compile-time string. More...
 
struct  boost::hana::string_tag
 Tag representing a compile-time string. More...
 
+ + + + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
 boost::hana::literals
 Namespace containing C++14 user-defined literals provided by Hana.
 
+ + + + + +

+Functions

template<typename CharT , CharT... s>
constexpr auto boost::hana::literals::operator""_s ()
 Creates a compile-time string from a string literal. More...
 
+

Detailed Description

+

Forward declares boost::hana::string.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.js new file mode 100644 index 0000000..849319b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2string_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2string_8hpp = +[ + [ "string_tag", "structboost_1_1hana_1_1string__tag.html", null ], + [ "operator\"\"_s", "fwd_2string_8hpp.html#a325859c7db2c3f8e6a4bfab5a81a6dcb", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.html new file mode 100644 index 0000000..36c3b34 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/suffix.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
suffix.hpp File Reference
+
+
+ +

Forward declares boost::hana::suffix. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::suffix
 Inserts a value after each element of a monadic structure.Given a monadic structure xs and a value z (called the suffix), suffix returns a new monadic structure such that. More...
 
+

Detailed Description

+

Forward declares boost::hana::suffix.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.js new file mode 100644 index 0000000..651d151 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2suffix_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2suffix_8hpp = +[ + [ "suffix", "fwd_2suffix_8hpp.html#ga61dab15f6ecf379121d4096fe0c8ab13", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.html new file mode 100644 index 0000000..be490ad --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/sum.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sum.hpp File Reference
+
+
+ +

Forward declares boost::hana::sum. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::sum = see documentation
 Compute the sum of the numbers of a structure.More generally, sum will take any foldable structure containing objects forming a Monoid and reduce them using the Monoid's binary operation. The initial state for folding is the identity of the Monoid. It is sometimes necessary to specify the Monoid to use; this is possible by using sum<M>. If no Monoid is specified, the structure will use the Monoid formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,. More...
 
+

Detailed Description

+

Forward declares boost::hana::sum.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.js new file mode 100644 index 0000000..bc4e835 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2sum_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2sum_8hpp = +[ + [ "sum", "fwd_2sum_8hpp.html#ga650def4b2e98f4273d8b9b7aa5a2fc28", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2symmetric__difference_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2symmetric__difference_8hpp.html new file mode 100644 index 0000000..8654a52 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2symmetric__difference_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/symmetric_difference.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
symmetric_difference.hpp File Reference
+
+
+ +

Forward declares boost::hana::symmetric_difference. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::symmetric_difference.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.html new file mode 100644 index 0000000..f4b45ad --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/take_back.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
take_back.hpp File Reference
+
+
+ +

Forward declares boost::hana::take_back. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::take_back
 Returns the last n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_back(xs, n) is a new sequence containing the last n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered. More...
 
+

Detailed Description

+

Forward declares boost::hana::take_back.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.js new file mode 100644 index 0000000..54a28fa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2take__back_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2take__back_8hpp = +[ + [ "take_back", "fwd_2take__back_8hpp.html#ga8d302de01b94b4b17f3bd81e09f42920", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.html new file mode 100644 index 0000000..33d7bc1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/take_front.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
take_front.hpp File Reference
+
+
+ +

Forward declares boost::hana::take_front and boost::hana::take_front_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + +

+Variables

constexpr auto boost::hana::take_front
 Returns the first n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_front(xs, n) is a new sequence containing the first n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered. More...
 
template<std::size_t n>
constexpr auto boost::hana::take_front_c
 Equivalent to take_front; provided for convenience. More...
 
+

Detailed Description

+

Forward declares boost::hana::take_front and boost::hana::take_front_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.js new file mode 100644 index 0000000..d3567ed --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2take__front_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2take__front_8hpp = +[ + [ "take_front", "fwd_2take__front_8hpp.html#ga5112e6070d29b4f7fde3f44825da3316", null ], + [ "take_front_c", "fwd_2take__front_8hpp.html#ga3779f62fea92af00113a9290f1c680eb", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.html new file mode 100644 index 0000000..c8dc7fa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/take_while.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
take_while.hpp File Reference
+
+
+ +

Forward declares boost::hana::take_while. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::take_while
 Take elements from a sequence while the predicate is satisfied.Specifically, take_while returns a new sequence containing the longest prefix of xs in which all the elements satisfy the given predicate. More...
 
+

Detailed Description

+

Forward declares boost::hana::take_while.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.js new file mode 100644 index 0000000..6d25868 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2take__while_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2take__while_8hpp = +[ + [ "take_while", "fwd_2take__while_8hpp.html#ga2d4db4ec5ec5bc16fe74f57de12697fd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.html new file mode 100644 index 0000000..021e0dc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/tap.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tap.hpp File Reference
+
+
+ +

Forward declares boost::hana::tap. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename M >
constexpr auto boost::hana::tap
 Tap inside a monadic chain.Given a function f, tap<M> returns a new function which performs f on its argument and then returns the argument lifted in the M Monad. Combined with the property that chain(m, lift<M>) == m, this provides a way of executing an action inside a monadic chain without influencing its overall result. This is useful to e.g. insert debug statements or perform actions that are not tied to the chain but that need to be executed inside of it. More...
 
+

Detailed Description

+

Forward declares boost::hana::tap.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.js new file mode 100644 index 0000000..b1e3359 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2tap_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2tap_8hpp = +[ + [ "tap", "fwd_2tap_8hpp.html#ga5e0735de01a24f681c55aedfeb6d13bf", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.html new file mode 100644 index 0000000..04e671f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/then.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
then.hpp File Reference
+
+
+ +

Forward declares boost::hana::then. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::then
 Sequentially compose two monadic actions, discarding any value produced by the first but not its effects. More...
 
+

Detailed Description

+

Forward declares boost::hana::then.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.js new file mode 100644 index 0000000..dc74d7a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2then_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2then_8hpp = +[ + [ "then", "fwd_2then_8hpp.html#gaaddd3789de43cf989babb10cdc0b447a", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.html new file mode 100644 index 0000000..6344ea6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/transform.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
transform.hpp File Reference
+
+
+ +

Forward declares boost::hana::transform. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::transform
 Map a function over a Functor. More...
 
+

Detailed Description

+

Forward declares boost::hana::transform.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.js new file mode 100644 index 0000000..b1c9adf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2transform_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2transform_8hpp = +[ + [ "transform", "fwd_2transform_8hpp.html#ga5a8975f6e55375d5b6038a9c36ee63e7", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2tuple_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2tuple_8hpp.html new file mode 100644 index 0000000..8069043 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2tuple_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/tuple.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tuple.hpp File Reference
+
+
+ +

Forward declares boost::hana::tuple. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::tuple< Xn >
 General purpose index-based heterogeneous sequence with a fixed length. More...
 
struct  boost::hana::tuple_tag
 Tag representing hana::tuples. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::tuple.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.html new file mode 100644 index 0000000..e806a1c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.html @@ -0,0 +1,197 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/type.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
type.hpp File Reference
+
+
+ +

Forward declares boost::hana::type and related utilities. +More...

+ + + + + + + + + + + +

+Classes

struct  boost::hana::basic_type< T >
 Base class of hana::type; used for pattern-matching. More...
 
struct  boost::hana::type< T >
 C++ type in value-level representation. More...
 
struct  boost::hana::type_tag
 Tag representing hana::type. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + + + + + + + + + + + + + +

+Variables

template<template< typename... > class F>
constexpr auto boost::hana::template_
 Lift a template to a Metafunction.Given a template class or template alias f, template_<f> is a Metafunction satisfying. More...
 
template<template< typename... > class F>
constexpr auto boost::hana::metafunction
 Lift a MPL-style metafunction to a Metafunction.Given a MPL-style metafunction, metafunction<f> is a Metafunction satisfying. More...
 
template<typename F >
constexpr auto boost::hana::metafunction_class
 Lift a MPL-style metafunction class to a Metafunction.Given a MPL-style metafunction class, metafunction_class<f> is a Metafunction satisfying. More...
 
constexpr auto boost::hana::integral
 Turn a Metafunction into a function taking types and returning a default-constructed object.Given a Metafunction f, integral returns a new Metafunction that default-constructs an object of the type returned by f. More specifically, the following holds: More...
 
template<template< typename... > class F>
constexpr auto boost::hana::trait = hana::integral(hana::metafunction<F>)
 Alias to integral(metafunction<F>), provided for convenience. More...
 
+

Detailed Description

+

Forward declares boost::hana::type and related utilities.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.js new file mode 100644 index 0000000..418e2c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2type_8hpp.js @@ -0,0 +1,10 @@ +var fwd_2type_8hpp = +[ + [ "basic_type", "structboost_1_1hana_1_1basic__type.html", null ], + [ "type_tag", "structboost_1_1hana_1_1type__tag.html", null ], + [ "template_", "fwd_2type_8hpp.html#ga246419f6c3263b648412f346106e6543", null ], + [ "metafunction", "fwd_2type_8hpp.html#gaaa4f85cb8cbce21f5c04ef40ca35cc6a", null ], + [ "metafunction_class", "fwd_2type_8hpp.html#gacec153d7f86aa7cf1efd813b3fd212b4", null ], + [ "integral", "fwd_2type_8hpp.html#gaf7045fe6a627f88f5f646dad22d37aae", null ], + [ "trait", "fwd_2type_8hpp.html#ga6d4093318f46472e62f9539a4dc998a9", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.html new file mode 100644 index 0000000..2f6325d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/unfold_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unfold_left.hpp File Reference
+
+
+ +

Forward declares boost::hana::unfold_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename S >
constexpr auto boost::hana::unfold_left
 Dual operation to fold_left for sequences.While fold_left reduces a structure to a summary value from the left, unfold_left builds a sequence from a seed value and a function, starting from the left. More...
 
+

Detailed Description

+

Forward declares boost::hana::unfold_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.js new file mode 100644 index 0000000..185e565 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__left_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2unfold__left_8hpp = +[ + [ "unfold_left", "fwd_2unfold__left_8hpp.html#gaf2128be91ad6d32e45db1b8c61f79818", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.html new file mode 100644 index 0000000..604c13b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/unfold_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unfold_right.hpp File Reference
+
+
+ +

Forward declares boost::hana::unfold_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename S >
constexpr auto boost::hana::unfold_right
 Dual operation to fold_right for sequences.While fold_right reduces a structure to a summary value from the right, unfold_right builds a sequence from a seed value and a function, starting from the right. More...
 
+

Detailed Description

+

Forward declares boost::hana::unfold_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.js new file mode 100644 index 0000000..1399c6a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unfold__right_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2unfold__right_8hpp = +[ + [ "unfold_right", "fwd_2unfold__right_8hpp.html#ga497286bf277e6f8e89ddb18661e1033e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2union_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2union_8hpp.html new file mode 100644 index 0000000..e5b7e8a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2union_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/union.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
union.hpp File Reference
+
+
+ +

Forward declares boost::hana::union_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::union_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.html new file mode 100644 index 0000000..b9bd119 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/unique.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unique.hpp File Reference
+
+
+ +

Forward declares boost::hana::unique. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::unique
 Removes all consecutive duplicate elements from a Sequence.Given a Sequence and an optional binary predicate, unique returns a new sequence containing only the first element of every subrange of the original sequence whose elements are all equal. In other words, it turns a sequence of the form [a, a, b, c, c, c, d, d, d, a] into a sequence [a, b, c, d, a]. The equality of two elements is determined by the provided predicate, or by equal if no predicate is provided. More...
 
+

Detailed Description

+

Forward declares boost::hana::unique.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.js new file mode 100644 index 0000000..07b6e3a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unique_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2unique_8hpp = +[ + [ "unique", "fwd_2unique_8hpp.html#ga35349be79e646c4f5bdd74ec96a846ab", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.html new file mode 100644 index 0000000..37c59cf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/unpack.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unpack.hpp File Reference
+
+
+ +

Forward declares boost::hana::unpack. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::unpack
 Invoke a function with the elements of a Foldable as arguments.Given a function and a foldable structure whose length can be known at compile-time, unpack invokes the function with the contents of that structure. In other words, unpack(xs, f) is equivalent to f(x...), where x... are the elements of the structure. The length of the structure must be known at compile-time, because the version of f's operator() that will be compiled depends on the number of arguments it is called with, which has to be known at compile-time. More...
 
+

Detailed Description

+

Forward declares boost::hana::unpack.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.js new file mode 100644 index 0000000..1c7f402 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2unpack_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2unpack_8hpp = +[ + [ "unpack", "fwd_2unpack_8hpp.html#ga7b0c23944364ce61136e10b978ae2170", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.html new file mode 100644 index 0000000..30a76b7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/value.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
value.hpp File Reference
+
+
+ +

Forward declares boost::hana::value. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + +

+Variables

template<typename T >
constexpr auto boost::hana::value
 Return the compile-time value associated to a constant.This function returns the value associated to a Constant. That value is always a constant expression. The normal way of using value on an object c is. More...
 
constexpr auto boost::hana::value_of
 Equivalent to value, but can be passed to higher-order algorithms.This function object is equivalent to value, except it can be passed to higher order algorithms because it is a function object. value can't be passed to higher-order algorithms because it is implemented as an overloaded function. More...
 
+

Detailed Description

+

Forward declares boost::hana::value.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.js new file mode 100644 index 0000000..db88550 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2value_8hpp.js @@ -0,0 +1,5 @@ +var fwd_2value_8hpp = +[ + [ "value", "fwd_2value_8hpp.html#ga1687520692a6b0c49e3a69de2980f388", null ], + [ "value_of", "fwd_2value_8hpp.html#gab46a092deeb205f2c92c335d4312a991", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.html new file mode 100644 index 0000000..b79b8b5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/while.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
while.hpp File Reference
+
+
+ +

Forward declares boost::hana::while_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::while_
 Apply a function to an initial state while some predicate is satisfied.This method is a natural extension of the while language construct to manipulate a state whose type may change from one iteration to another. However, note that having a state whose type changes from one iteration to the other is only possible as long as the predicate returns a Logical whose truth value is known at compile-time. More...
 
+

Detailed Description

+

Forward declares boost::hana::while_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.js new file mode 100644 index 0000000..cf6226b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2while_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2while_8hpp = +[ + [ "while_", "fwd_2while_8hpp.html#ga08a767b86c330cac67daa891406d2730", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.html new file mode 100644 index 0000000..b3585a1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/zero.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zero.hpp File Reference
+
+
+ +

Forward declares boost::hana::zero. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<typename M >
constexpr auto boost::hana::zero
 Identity of plus. More...
 
+

Detailed Description

+

Forward declares boost::hana::zero.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.js new file mode 100644 index 0000000..7e046fb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zero_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2zero_8hpp = +[ + [ "zero", "fwd_2zero_8hpp.html#gad459ac17b6bab8ead1cae7de0032f3c6", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.html new file mode 100644 index 0000000..06e1212 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/zip.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip.hpp File Reference
+
+
+ +

Forward declares boost::hana::zip. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::zip
 Zip one sequence or more.Given n sequences s1, ..., sn, zip produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip produces a sequence of the form. More...
 
+

Detailed Description

+

Forward declares boost::hana::zip.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.js new file mode 100644 index 0000000..9f708ea --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2zip_8hpp = +[ + [ "zip", "fwd_2zip_8hpp.html#gaa5a378d4e71a91e0d6cd3959d9818e8a", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.html new file mode 100644 index 0000000..86b3dbf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/zip_shortest.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip_shortest.hpp File Reference
+
+
+ +

Forward declares boost::hana::zip_shortest. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::zip_shortest
 Zip one sequence or more.Given n sequences s1, ..., sn, zip_shortest produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest produces a sequence of the form. More...
 
+

Detailed Description

+

Forward declares boost::hana::zip_shortest.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.js new file mode 100644 index 0000000..ce8577b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2zip__shortest_8hpp = +[ + [ "zip_shortest", "fwd_2zip__shortest_8hpp.html#gade78593b3ff51fc5479e1da97142fef5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.html new file mode 100644 index 0000000..b475ab8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/zip_shortest_with.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip_shortest_with.hpp File Reference
+
+
+ +

Forward declares boost::hana::zip_shortest_with. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::zip_shortest_with
 Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_shortest_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest_with produces a sequence of the form. More...
 
+

Detailed Description

+

Forward declares boost::hana::zip_shortest_with.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.js new file mode 100644 index 0000000..ac9ecb0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__shortest__with_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2zip__shortest__with_8hpp = +[ + [ "zip_shortest_with", "fwd_2zip__shortest__with_8hpp.html#gae7a51104a77db79a0407d7d67b034667", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.html b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.html new file mode 100644 index 0000000..aaf5986 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/fwd/zip_with.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip_with.hpp File Reference
+
+
+ +

Forward declares boost::hana::zip_with. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::zip_with
 Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_with produces a sequence of the form. More...
 
+

Detailed Description

+

Forward declares boost::hana::zip_with.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.js b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.js new file mode 100644 index 0000000..c68fa8c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/fwd_2zip__with_8hpp.js @@ -0,0 +1,4 @@ +var fwd_2zip__with_8hpp = +[ + [ "zip_with", "fwd_2zip__with_8hpp.html#ga6a4bf8549ce69b5b5b7377aec225a0e3", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/globals.html b/boost_1_63_0/libs/hana/doc/html/globals.html new file mode 100644 index 0000000..63e411b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/globals.html @@ -0,0 +1,242 @@ + + + + + + + + + +Boost.Hana: File Members + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented file members with links to the documentation:
+ +

- b -

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/globals_defs.html b/boost_1_63_0/libs/hana/doc/html/globals_defs.html new file mode 100644 index 0000000..da3b186 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/globals_defs.html @@ -0,0 +1,242 @@ + + + + + + + + + +Boost.Hana: File Members + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/greater_8hpp.html b/boost_1_63_0/libs/hana/doc/html/greater_8hpp.html new file mode 100644 index 0000000..174e1da --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/greater_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/greater.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
greater.hpp File Reference
+
+
+ +

Defines boost::hana::greater. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::greater.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/greater__equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/greater__equal_8hpp.html new file mode 100644 index 0000000..e0074f8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/greater__equal_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/greater_equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
greater_equal.hpp File Reference
+
+
+ +

Defines boost::hana::greater_equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::greater_equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group_8hpp.html b/boost_1_63_0/libs/hana/doc/html/group_8hpp.html new file mode 100644 index 0000000..2443e34 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/group.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
group.hpp File Reference
+
+
+ +

Defines boost::hana::group. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::group.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Applicative.html b/boost_1_63_0/libs/hana/doc/html/group__group-Applicative.html new file mode 100644 index 0000000..23dc3e2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Applicative.html @@ -0,0 +1,243 @@ + + + + + + + + + +Boost.Hana: Applicative + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Applicative
+
+
+

Description

+

The Applicative concept represents Functors with the ability to lift values and combine computations.

+

A Functor can only take a normal function and map it over a structure containing values to obtain a new structure containing values. Intuitively, an Applicative can also take a value and lift it into the structure. In addition, an Applicative can take a structure containing functions and apply it to a structure containing values to obtain a new structure containing values. By currying the function(s) inside the structure, it is then also possible to apply n-ary functions to n structures containing values.

+
Note
This documentation does not go into much details about the nature of applicatives. However, the Typeclassopedia is a nice Haskell-oriented resource where such information can be found.
+

Minimal complete definition

+

lift and ap satisfying the laws below. An Applicative must also be a Functor.

+

Laws

+

Given an Applicative F, the following laws must be satisfied:

    +
  1. Identity
    +For all objects xs of tag F(A),
    ap(lift<F>(id), xs) == xs
  2. +
  3. Composition
    +For all objects xs of tag F(A) and functions-in-an-applicative \( fs : F(B \to C) \), \( gs : F(A \to B) \),
    ap(ap(lift<F>(compose), fs, gs), xs) == ap(fs, ap(gs, xs))
  4. +
  5. Homomorphism
    +For all objects x of tag A and functions \( f : A \to B \),
    ap(lift<F>(f), lift<F>(x)) == lift<F>(f(x))
  6. +
  7. Interchange
    +For all objects x of tag A and functions-in-an-applicative \( fs : F(A \to B) \),
    ap(fs, lift<F>(x)) == ap(lift<F>(apply(-, x)), fs)
    where apply(-, x) denotes the partial application of the apply function from the Functional module to the x argument.
  8. +
+

As a consequence of these laws, the model of Functor for F will satisfy the following for all objects xs of tag F(A) and functions \( f : A \to B \):

transform(xs, f) == ap(lift<F>(f), xs)

Refined concept

+
    +
  1. Functor (free model)
    +As a consequence of the laws, any Applicative F can be made a Functor by setting
    transform(xs, f) = ap(lift<F>(f), xs)
  2. +
+

Concrete models

+

hana::lazy, hana::optional, hana::tuple

+

Structure-preserving functions

+

An applicative transformation is a function \( t : F(X) \to G(X) \) between two Applicatives F and G, where X can be any tag, and which preserves the operations of an Applicative. In other words, for all objects x of tag X, functions-in-an-applicative \( fs : F(X \to Y) \) and objects xs of tag F(X),

t(lift<F>(x)) == lift<G>(x)
t(ap(fs, xs)) == ap(t(fs), t(xs))
+ + + + + + + + +

+Variables

constexpr auto boost::hana::ap
 Lifted application.Specifically, ap applies a structure containing functions to a structure containing values, and returns a new structure containing values. The exact way in which the functions are applied to the values depends on the Applicative. More...
 
template<typename A >
constexpr auto boost::hana::lift
 Lift a value into an Applicative structure.lift<A> takes a normal value and embeds it into a structure whose shape is represented by the A Applicative. Note that the value may be a function, in which case the created structure may be applied to another Applicative structure containing values. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::ap
+
+ +

#include <boost/hana/fwd/ap.hpp>

+Initial value:
= [](auto&& f, auto&& ...x) -> decltype(auto) {
return tag-dispatched;
}
+

Lifted application.Specifically, ap applies a structure containing functions to a structure containing values, and returns a new structure containing values. The exact way in which the functions are applied to the values depends on the Applicative.

+

ap can be called with two arguments or more; the functions in the f structure are curried and then applied to the values in each x... structure using the binary form of ap. Note that this requires the number of x... must match the arity of the functions in the f structure. In other words, ap(f, x1, ..., xN) is equivalent to

((f' <ap> x1) <ap> x2) ... <ap> xN

where f' is f but containing curried functions instead and x <ap> y is just ap(x, y) written in infix notation to emphasize the left associativity.

+

Signature

+

Given an Applicative A, the signature is \( \mathtt{ap} : A(T_1 \times \cdots \times T_n \to U) \times A(T_1) \times \cdots \times A(T_n) \to A(U) \).

+
Parameters
+ + + +
fA structure containing function(s).
x...Structure(s) containing value(s) and on which f is applied. The number of structures must match the arity of the functions in the f structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <functional>
namespace hana = boost::hana;
int main() {
// with tuples
static_assert(
hana::ap(hana::make_tuple(std::plus<>{}), hana::make_tuple(1, 2),
hana::make_tuple(3, 4, 5))
==
hana::make_tuple(
1 + 3, 1 + 4, 1 + 5,
2 + 3, 2 + 4, 2 + 5
)
, "");
// with optional values
BOOST_HANA_CONSTEXPR_LAMBDA auto multiply = [](auto a, auto b, auto c) {
return a * b * c;
};
hana::ap(hana::just(multiply), hana::just(1),
hana::just(2),
hana::just(3))
==
hana::just(1 * 2 * 3)
);
hana::ap(hana::just(multiply), hana::just(1),
hana::nothing,
hana::just(3))
==
hana::nothing
);
}
Todo:
Consider giving access to all the arguments to the tag-dispatched implementation for performance purposes.
+ +
+
+ +
+
+
+template<typename A >
+ + + + +
constexpr auto boost::hana::lift
+
+ +

#include <boost/hana/fwd/lift.hpp>

+Initial value:
= [](auto&& x) {
return tag-dispatched;
}
+

Lift a value into an Applicative structure.lift<A> takes a normal value and embeds it into a structure whose shape is represented by the A Applicative. Note that the value may be a function, in which case the created structure may be applied to another Applicative structure containing values.

+

Signature

+

Given an Applicative A, the signature is \( \mathtt{lift}_A : T \to A(T) \).

+
Template Parameters
+ + +
AA tag representing the Applicative into which the value is lifted.
+
+
+
Parameters
+ + +
xThe value to lift into the applicative.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::lift<hana::tuple_tag>('x') == hana::make_tuple('x'), "");
static_assert(hana::lift<hana::optional_tag>('x') == hana::just('x'), "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Applicative.js b/boost_1_63_0/libs/hana/doc/html/group__group-Applicative.js new file mode 100644 index 0000000..e068eed --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Applicative.js @@ -0,0 +1,5 @@ +var group__group_Applicative = +[ + [ "ap", "group__group-Applicative.html#ga6176a32953dbbdee96e3ab3c73e4c890", null ], + [ "lift", "group__group-Applicative.html#ga712038d7abbc7159f8792788f7cd0c73", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Comonad.html b/boost_1_63_0/libs/hana/doc/html/group__group-Comonad.html new file mode 100644 index 0000000..0410878 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Comonad.html @@ -0,0 +1,259 @@ + + + + + + + + + +Boost.Hana: Comonad + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Comonad
+
+
+

Description

+

The Comonad concept represents context-sensitive computations and data.

+

Formally, the Comonad concept is dual to the Monad concept. But unless you're a mathematician, you don't care about that and it's fine. So intuitively, a Comonad represents context sensitive values and computations. First, Comonads make it possible to extract context-sensitive values from their context with extract. In contrast, Monads make it possible to wrap raw values into a given context with lift (from Applicative).

+

Secondly, Comonads make it possible to apply context-sensitive values to functions accepting those, and to return the result as a context-sensitive value using extend. In contrast, Monads make it possible to apply a monadic value to a function accepting a normal value and returning a monadic value, and to return the result as a monadic value (with chain).

+

Finally, Comonads make it possible to wrap a context-sensitive value into an extra layer of context using duplicate, while Monads make it possible to take a value with an extra layer of context and to strip it with flatten.

+

Whereas lift, chain and flatten from Applicative and Monad have signatures

+\begin{align*} \mathtt{lift}_M &: T \to M(T) \\ \mathtt{chain} &: M(T) \times (T \to M(U)) \to M(U) \\ \mathtt{flatten} &: M(M(T)) \to M(T) \end{align*} +

+

extract, extend and duplicate from Comonad have signatures

+\begin{align*} \mathtt{extract} &: W(T) \to T \\ \mathtt{extend} &: W(T) \times (W(T) \to U) \to W(U) \\ \mathtt{duplicate} &: W(T) \to W(W(T)) \end{align*} +

+

Notice how the "arrows" are reversed. This symmetry is essentially what we mean by Comonad being the dual of Monad.

+
Note
The Typeclassopedia is a nice Haskell-oriented resource for further reading about Comonads.
+

Minimal complete definition

+

extract and (extend or duplicate) satisfying the laws below. A Comonad must also be a Functor.

+

Laws

+

For all Comonads w, the following laws must be satisfied:

Note
There are several equivalent ways of defining Comonads, and this one is just one that was picked arbitrarily for simplicity.
+

Refined concept

+
    +
  1. Functor
    +Every Comonad is also required to be a Functor. At first, one might think that it should instead be some imaginary concept CoFunctor. However, it turns out that a CoFunctor is the same as a Functor, hence the requirement that a Comonad also is a Functor.
  2. +
+

Concrete models

+

hana::lazy

+ + + + + + + + + + + +

+Variables

constexpr auto boost::hana::duplicate
 Add an extra layer of comonadic context to a comonadic value.Given a value already in a comonadic context, duplicate wraps this value with an additional layer of comonadic context. This can be seen as the dual operation to flatten from the Monad concept. More...
 
constexpr auto boost::hana::extend
 Comonadic application of a function to a comonadic value.Given a comonadic value and a function accepting a comonadic input, extend returns the result of applying the function to that input inside the comonadic context. More...
 
constexpr auto boost::hana::extract
 Extract a value in a given comonadic context.Given a value inside a comonadic context, extract it from that context, performing whatever effects are mandated by that context. This can be seen as the dual operation to the lift method of the Applicative concept. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::duplicate
+
+ +

#include <boost/hana/fwd/duplicate.hpp>

+Initial value:
= [](auto&& w) -> decltype(auto) {
return tag-dispatched;
}
+

Add an extra layer of comonadic context to a comonadic value.Given a value already in a comonadic context, duplicate wraps this value with an additional layer of comonadic context. This can be seen as the dual operation to flatten from the Monad concept.

+

Signature

+

Given a Comonad W, the signature is \( \mathtt{duplicate} : W(T) \to W(W(T)) \)

+
Parameters
+ + +
wThe value to wrap in an additional level of comonadic context.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto very_lazy = hana::duplicate(hana::make_lazy(3));
static_assert(hana::extract(hana::extract(very_lazy)) == 3, "");
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::extend
+
+ +

#include <boost/hana/fwd/extend.hpp>

+Initial value:
= [](auto&& w, auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Comonadic application of a function to a comonadic value.Given a comonadic value and a function accepting a comonadic input, extend returns the result of applying the function to that input inside the comonadic context.

+

Signature

+

Given a Comonad W and a function of type \( W(T) \to U \), the signature is \( \mathtt{extend} : W(T) \times (W(T) \to U) \to W(U) \)

+
Parameters
+ + + +
wA comonadic value to call the function with.
fA function of signature \( W(T) \to U \) to be applied to its comonadic argument inside the comonadic context.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <functional>
#include <istream>
#include <sstream>
namespace hana = boost::hana;
template <typename T>
T read_one(std::istream& s) {
T value;
s >> value;
return value;
}
int main() {
std::stringstream s;
s << "1 2 3";
auto from_stream = hana::extend(hana::make_lazy(read_one<int>)(std::ref(s)), [](auto i) {
return hana::eval(i) + 1;
});
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::extract
+
+ +

#include <boost/hana/fwd/extract.hpp>

+Initial value:
= [](auto&& w) -> decltype(auto) {
return tag-dispatched;
}
+

Extract a value in a given comonadic context.Given a value inside a comonadic context, extract it from that context, performing whatever effects are mandated by that context. This can be seen as the dual operation to the lift method of the Applicative concept.

+

Signature

+

Given a Comonad W, the signature is \( \mathtt{extract} : W(T) \to T \)

+
Parameters
+ + +
wThe value to be extracted inside a comonadic context.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::extract(hana::make_lazy(1)) == 1, "");
static_assert(hana::extract(hana::make_lazy(hana::_ + 1)(3)) == 4, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Comonad.js b/boost_1_63_0/libs/hana/doc/html/group__group-Comonad.js new file mode 100644 index 0000000..6097d7f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Comonad.js @@ -0,0 +1,6 @@ +var group__group_Comonad = +[ + [ "duplicate", "group__group-Comonad.html#ga181751278bd19a4bfc3c08bd7ddef399", null ], + [ "extend", "group__group-Comonad.html#gaf44692351fd9fe4e76815dfef6ff4478", null ], + [ "extract", "group__group-Comonad.html#ga307479a91a21b7ab06a2bc746b003dcc", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Comparable.html b/boost_1_63_0/libs/hana/doc/html/group__group-Comparable.html new file mode 100644 index 0000000..e2a125f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Comparable.html @@ -0,0 +1,269 @@ + + + + + + + + + +Boost.Hana: Comparable + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Comparable
+
+
+

Description

+

The Comparable concept defines equality and inequality.

+

Intuitively, Comparable objects must define a binary predicate named equal that returns whether both objects represent the same abstract value. In other words, equal must check for deep equality. Since "representing the same abstract value" is difficult to express formally, the exact meaning of equality is partially left to interpretation by the programmer with the following guidelines:
+

    +
  1. Equality should be compatible with copy construction; copy constructing a value yields an equal value.
  2. +
  3. Equality should be independent of representation; an object representing a fraction as 4/8 should be equal to an object representing a fraction as 2/4, because they both represent the mathematical object 1/2.
  4. +
+

Moreover, equal must exhibit properties that make it intuitive to use for determining the equivalence of objects, which is formalized by the laws for Comparable.

+

Minimal complete definition

+
    +
  1. equal
    +When equal is defined, not_equal is implemented by default as its complement. For all objects x, y of a Comparable tag,
    not_equal(x, y) == not_(equal(x, y))
  2. +
+

Laws

+

equal must define an equivalence relation, and not_equal must be its complement. In other words, for all objects a, b, c with a Comparable tag, the following must hold:

equal(a, a) // Reflexivity
if equal(a, b) then equal(b, a) // Symmetry
if equal(a, b) && equal(b, c) then equal(a, c) // Transitivity
not_equal(a, b) is equivalent to not_(equal(a, b))

Concrete models

+

hana::integral_constant, hana::map, hana::optional, hana::pair, hana::range, hana::set, hana::string, hana::tuple, hana::type

+

Free model for EqualityComparable data types

+

Two data types T and U that model the cross-type EqualityComparable concept presented in N3351 automatically model the Comparable concept by setting

equal(x, y) = (x == y)

Note that this also makes EqualityComparable types in the usual sense models of Comparable in the same way.

+

Equality-preserving functions

+

Let A and B be two Comparable tags. A function \(f : A \to B\) is said to be equality-preserving if it preserves the structure of the Comparable concept, which can be rigorously stated as follows. For all objects x, y of tag A,

if equal(x, y) then equal(f(x), f(y))

Equivalently, we simply require that f is a function in the usual mathematical sense. Another property is injectivity, which can be viewed as being a "lossless" mapping. This property can be stated as

if equal(f(x), f(y)) then equal(x, y)

This is equivalent to saying that f maps distinct elements to distinct elements, hence the "lossless" analogy. In other words, f will not collapse distinct elements from its domain into a single element in its image, thus losing information.

+

These functions are very important, especially equality-preserving ones, because they allow us to reason simply about programs. Also note that the property of being equality-preserving is taken for granted in mathematics because it is part of the definition of a function. We feel it is important to make the distinction here because programming has evolved differently and as a result programmers are used to work with functions that do not preserve equality.

+

Cross-type version of the methods

+

The equal and not_equal methods are "overloaded" to handle distinct tags with certain properties. Specifically, they are defined for distinct tags A and B such that

    +
  1. A and B share a common tag C, as determined by the common metafunction
  2. +
  3. A, B and C are all Comparable when taken individually
  4. +
  5. \( \mathtt{to<C>} : A \to C \) and \(\mathtt{to<C>} : B \to C\) are both equality-preserving and injective (i.e. they are embeddings), as determined by the is_embedding metafunction.
  6. +
+

The method definitions for tags satisfying the above properties are

equal(x, y) = equal(to<C>(x), to<C>(y))
not_equal(x, y) = not_equal(to<C>(x), to<C>(y))

Important note: special behavior of equal

+

In the context of programming with heterogeneous values, it is useful to have unrelated objects compare false instead of triggering an error. For this reason, equal adopts a special behavior for unrelated objects of tags T and U that do not satisfy the above requirements for the cross-type overloads. Specifically, when T and U are unrelated (i.e. T can't be converted to U and vice-versa), comparing objects with those tags yields a compile-time false value. This has the effect that unrelated objects like float and std::string will compare false, while comparing related objects that can not be safely embedded into the same super structure (like long long and float because of the precision loss) will trigger a compile-time assertion. Also note that for any tag T for which the minimal complete definition of Comparable is not provided, a compile-time assertion will also be triggered because T and T trivially share the common tag T, which is the expected behavior. This design choice aims to provide more flexibility for comparing objects, while still rejecting usage patterns that are most likely programming errors.

+ + + + + + + + + + + +

+Variables

constexpr auto boost::hana::comparing
 Returns a function performing equal after applying a transformation to both arguments.comparing creates an equivalence relation based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent an equivalence relation. More...
 
constexpr auto boost::hana::equal
 Returns a Logical representing whether x is equal to y.The equal function can be called in two different ways. First, it can be called like a normal function: More...
 
constexpr auto boost::hana::not_equal
 Returns a Logical representing whether x is not equal to y.The not_equal function can be called in two different ways. First, it can be called like a normal function: More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::comparing
+
+ +

#include <boost/hana/fwd/comparing.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& x, auto&& y) {
return equal(f(forwarded(x)), f(forwarded(y)));
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
constexpr auto equal
Returns a Logical representing whether x is equal to y.The equal function can be called in two differ...
Definition: equal.hpp:64
+
+

Returns a function performing equal after applying a transformation to both arguments.comparing creates an equivalence relation based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent an equivalence relation.

+

Specifically, comparing is such that

comparing(f) == equal ^on^ f

or, equivalently,

comparing(f)(x, y) == equal(f(x), f(y))
Note
This is not a tag-dispatched method (hence it can't be customized), but just a convenience function provided with the Comparable concept.
+

Signature

+

Given a Logical Bool and a Comparable B, the signature is \( \mathtt{comparing} : (A \to B) \to (A \times A \to Bool) \).

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto sequences = hana::make_tuple(
hana::make_tuple(1, 2, 3),
hana::make_tuple('x', 'y', 'z'),
hana::range_c<long, 0, 1>,
hana::tuple_t<char, int>,
hana::range_c<int, 0, 2>,
hana::make_tuple(123.4, nullptr)
);
constexpr auto grouped = hana::group.by(hana::comparing(hana::length), sequences);
static_assert(grouped == hana::make_tuple(
hana::make_tuple(
hana::make_tuple(1, 2, 3),
hana::make_tuple('x', 'y', 'z')
),
hana::make_tuple(
hana::range_c<long, 0, 1>
),
hana::make_tuple(
hana::tuple_t<char, int>,
hana::range_c<int, 0, 2>,
hana::make_tuple(123.4, nullptr)
)
), "");
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::equal
+
+ +

#include <boost/hana/fwd/equal.hpp>

+Initial value:
= [](auto&& x, auto&& y) {
return tag-dispatched;
}
+

Returns a Logical representing whether x is equal to y.The equal function can be called in two different ways. First, it can be called like a normal function:

+
equal(x, y)

However, it may also be partially applied to an argument by using equal.to:

equal.to(x)(y) == equal(x, y)

In other words, equal.to(x) is a function object that is equivalent to partial(equal, x). This is provided to enhance the readability of some constructs, especially when using higher order algorithms.

+

Signature

+

Given a Logical Bool and two Comparables A and B that share a common embedding, the signature is \( \mathtt{equal} : A \times B \to Bool \).

+
Parameters
+ + +
x,yTwo objects to compare for equality.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
static_assert(hana::equal(hana::make_tuple(1, 2), hana::make_tuple(1, 2)), "");
static_assert(!hana::equal('x', 'y'), "");
BOOST_HANA_CONSTANT_CHECK(!hana::equal(hana::make_tuple(1, 2), 'y'));
static_assert(hana::any_of(hana::make_tuple(1, 2, 3), hana::equal.to(2)), "");
}
+

Rationale for the arity of equal

+

It is a valid question whether equal should accept more than 2 arguments and have semantics matching those of Python's ==. This is not supported right now for the following reasons:

    +
  • It was implemented in the MPL11, but it was not shown to be useful so far.
  • +
  • It does not make sense for not_equal to have an arity of more than 2, only equal could maybe have those semantics, which would break symmetry.
  • +
+
+ +
+
+ +
+
+ + + + +
constexpr auto boost::hana::not_equal
+
+ +

#include <boost/hana/fwd/not_equal.hpp>

+Initial value:
= [](auto&& x, auto&& y) {
return tag-dispatched;
}
+

Returns a Logical representing whether x is not equal to y.The not_equal function can be called in two different ways. First, it can be called like a normal function:

+
not_equal(x, y)

However, it may also be partially applied to an argument by using not_equal.to:

not_equal.to(x)(y) == not_equal(x, y)

In other words, not_equal.to(x) is a function object that is equivalent to partial(not_equal, x). This is provided to enhance the readability of some constructs, especially when using higher order algorithms.

+

Signature

+

Given a Logical Bool and two Comparables A and B that share a common embedding, the signature is \( \mathtt{not\_equal} : A \times B \to Bool \).

+
Parameters
+ + +
x,yTwo objects to compare for inequality.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
static_assert(hana::not_equal(hana::make_tuple(1, 2), hana::make_tuple(3)), "");
static_assert(hana::not_equal('x', 'y'), "");
BOOST_HANA_CONSTANT_CHECK(hana::not_equal(hana::make_tuple(1, 2), 'y'));
static_assert(hana::all_of(hana::make_tuple(1, 2, 3), hana::not_equal.to(5)), "");
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Comparable.js b/boost_1_63_0/libs/hana/doc/html/group__group-Comparable.js new file mode 100644 index 0000000..a94bca0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Comparable.js @@ -0,0 +1,6 @@ +var group__group_Comparable = +[ + [ "comparing", "group__group-Comparable.html#ga9c2ffe2e51780e57a38d9e7e31b87cdc", null ], + [ "equal", "group__group-Comparable.html#gacaf1ebea6b3ab96ac9dcb82f0e64e547", null ], + [ "not_equal", "group__group-Comparable.html#gae33be2e0d5e04f19082f4b7740dfc9cd", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Constant.html b/boost_1_63_0/libs/hana/doc/html/group__group-Constant.html new file mode 100644 index 0000000..a799f93 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Constant.html @@ -0,0 +1,222 @@ + + + + + + + + + +Boost.Hana: Constant + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Constant
+
+
+

Description

+

The Constant concept represents data that can be manipulated at compile-time.

+

At its core, Constant is simply a generalization of the principle behind std::integral_constant to all types that can be constructed at compile-time, i.e. to all types with a constexpr constructor (also called Literal types). More specifically, a Constant is an object from which a constexpr value may be obtained (through the value method) regardless of the constexprness of the object itself.

+

All Constants must be somewhat equivalent, in the following sense. Let C(T) and D(U) denote the tags of Constants holding objects of type T and U, respectively. Then, an object with tag D(U) must be convertible to an object with tag C(T) whenever U is convertible to T, has determined by is_convertible. The interpretation here is that a Constant is just a box holding an object of some type, and it should be possible to swap between boxes whenever the objects inside the boxes can be swapped.

+

Because of this last requirement, one could be tempted to think that specialized "boxes" like std::integral_constant are prevented from being Constants because they are not able to hold objects of any type T (std::integral_constant may only hold integral types). This is false; the requirement should be interpreted as saying that whenever C(T) is meaningful (e.g. only when T is integral for std::integral_constant) and there exists a conversion from U to T, then a conversion from D(U) to C(T) should also exist. The precise requirements for being a Constant are embodied in the following laws.

+

Minimal complete definition

+

value and to, satisfying the laws below.

+

Laws

+

Let c be an object of with tag C, which represents a Constant holding an object with tag T. The first law ensures that the value of the wrapped object is always a constant expression by requiring the following to be well-formed:

constexpr auto x = hana::value<decltype(x)>();

This means that the value function must return an object that can be constructed at compile-time. It is important to note how value only receives the type of the object and not the object itself. This is the core of the Constant concept; it means that the only information required to implement value must be stored in the type of its argument, and hence be available statically.

+

The second law that must be satisfied ensures that Constants are basically dumb boxes, which makes it possible to provide models for many concepts without much work from the user. The law simply asks for the following expression to be valid:

to<C>(i)

where, i is an arbitrary Constant holding an internal value with a tag that can be converted to T, as determined by the hana::is_convertible metafunction. In other words, whenever U is convertible to T, a Constant holding a U is convertible to a Constant holding a T, if such a Constant can be created.

+

Finally, the tag C must provide a nested value_type alias to T, which allows us to query the tag of the inner value held by objects with tag C. In other words, the following must be true for any object c with tag C:

std::is_same<
C::value_type,
tag_of<decltype(hana::value(c))>::type

Refined concepts

+

In certain cases, a Constant can automatically be made a model of another concept. In particular, if a Constant C is holding an object of tag T, and if T models a concept X, then C may in most cases model X by simply performing whatever operation is required on its underlying value, and then wrapping the result back in a C.

+

More specifically, if a Constant C has an underlying value (C::value_type) which is a model of Comparable, Orderable, Logical, or Monoid up to EuclideanRing, then C must also be a model of those concepts. In other words, when C::value_type models one of the listed concepts, C itself must also model that concept. However, note that free models are provided for all of those concepts, so no additional work must be done.

+

While it would be possible in theory to provide models for concepts like Foldable too, only a couple of concepts are useful to have as Constant in practice. Providing free models for the concepts listed above is useful because it allows various types of integral constants (std::integral_constant, mpl::integral_c, etc...) to easily have models for them just by defining the Constant concept.

+
Remarks
An interesting observation is that Constant is actually the canonical embedding of the subcategory of constexpr things into the Hana category, which contains everything in this library. Hence, whatever is true in that subcategory is also true here, via this functor. This is why we can provide models of any concept that works on constexpr things for Constants, by simply passing them through that embedding.
+

Concrete models

+

hana::integral_constant

+

Provided conversion to the tag of the underlying value

+

Any Constant c holding an underlying value of tag T is convertible to any tag U such that T is convertible to U. Specifically, the conversion is equivalent to

to<U>(c) == to<U>(value<decltype(c)>())

Also, those conversions are marked as an embedding whenever the conversion of underlying types is an embedding. This is to allow Constants to inter-operate with constexpr objects easily:

plus(int_<1>, 1) == 2

Strictly speaking, this is sometimes a violation of what it means to be an embedding. Indeed, while there exists an embedding from any Constant to a constexpr object (since Constant is just the canonical inclusion), there is no embedding from a Constant to a runtime object since we would lose the ability to define the value method (the constexprness of the object would have been lost). Since there is no way to distinguish constexpr and non-constexpr objects based on their type, Hana has no way to know whether the conversion is to a constexpr object of not. In other words, the to method has no way to differentiate between

constexpr int i = hana::to<int>(int_<1>);

which is an embedding, and

int i = hana::to<int>(int_<1>);

which isn't. To be on the safer side, we could mark the conversion as not-an-embedding. However, if e.g. the conversion from integral_constant_tag<int> to int was not marked as an embedding, we would have to write plus(to<int>(int_<1>), 1) instead of just plus(int_<1>, 1), which is cumbersome. Hence, the conversion is marked as an embedding, but this also means that code like

int i = 1;
plus(int_<1>, i);

will be considered valid, which implicitly loses the fact that int_<1> is a Constant, and hence does not follow the usual rules for cross-type operations in Hana.

+

Provided common data type

+

Because of the requirement that Constants be interchangeable when their contents are compatible, two Constants A and B will have a common data type whenever A::value_type and B::value_type have one. Their common data type is an unspecified Constant C such that C::value_type is exactly common_t<A::value_type, B::value_type>. A specialization of the common metafunction is provided for Constants to reflect this.

+

In the same vein, a common data type is also provided from any constant A to a type T such that A::value_type and T share a common type. The common type between A and T is obviously the common type between A::value_type and T. As explained above in the section on conversions, this is sometimes a violation of the definition of a common type, because there must be an embedding to the common type, which is not always the case. For the same reasons as explained above, this common type is still provided.

+ + + + + + + + + +

+Variables

template<typename T >
constexpr auto boost::hana::value
 Return the compile-time value associated to a constant.This function returns the value associated to a Constant. That value is always a constant expression. The normal way of using value on an object c is. More...
 
constexpr auto boost::hana::value_of
 Equivalent to value, but can be passed to higher-order algorithms.This function object is equivalent to value, except it can be passed to higher order algorithms because it is a function object. value can't be passed to higher-order algorithms because it is implemented as an overloaded function. More...
 
+

Variable Documentation

+ +
+
+
+template<typename T >
+ + + + +
constexpr auto boost::hana::value
+
+ +

#include <boost/hana/fwd/value.hpp>

+Initial value:
= []() -> decltype(auto) {
return tag-dispatched;
}
+

Return the compile-time value associated to a constant.This function returns the value associated to a Constant. That value is always a constant expression. The normal way of using value on an object c is.

+
constexpr auto result = hana::value<decltype(c)>();

However, for convenience, an overload of value is provided so that it can be called as:

constexpr auto result = hana::value(c);

This overload works by taking a const& to its argument, and then forwarding to the first version of value. Since it does not use its argument, the result can still be a constant expression, even if the argument is not a constant expression.

+
Note
value<T>() is tag-dispatched as value_impl<C>::apply<T>(), where C is the tag of T.
+
+hana::value is an overloaded function, not a function object. Hence, it can't be passed to higher-order algorithms. If you need an equivalent function object, use hana::value_of instead.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
auto i = hana::integral_c<int, 3>; // notice no constexpr
static_assert(hana::value<decltype(i)>() == 3, "");
static_assert(hana::value(i) == 3, "value(i) is always a constant expression!");
}
+

Referenced by boost::hana::literals::operator""_c(), boost::hana::literals::operator""_s(), and boost::hana::optional< T >::optional().

+ +
+
+ +
+
+ + + + +
constexpr auto boost::hana::value_of
+
+ +

#include <boost/hana/fwd/value.hpp>

+Initial value:
= [](auto const& c) -> decltype(auto) {
return hana::value(c);
}
+

Equivalent to value, but can be passed to higher-order algorithms.This function object is equivalent to value, except it can be passed to higher order algorithms because it is a function object. value can't be passed to higher-order algorithms because it is implemented as an overloaded function.

+
Note
This function is a simple alias to value, and hence it is not tag-dispatched and can't be customized.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto xs = hana::tuple_c<int, 1, 2, 3, 4, 5>;
constexpr auto vs = hana::transform(xs, hana::value_of);
static_assert(vs == hana::make_tuple(1, 2, 3, 4, 5), "");
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Constant.js b/boost_1_63_0/libs/hana/doc/html/group__group-Constant.js new file mode 100644 index 0000000..fab0c44 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Constant.js @@ -0,0 +1,5 @@ +var group__group_Constant = +[ + [ "value", "group__group-Constant.html#ga1687520692a6b0c49e3a69de2980f388", null ], + [ "value_of", "group__group-Constant.html#gab46a092deeb205f2c92c335d4312a991", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.html b/boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.html new file mode 100644 index 0000000..f84d393 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.html @@ -0,0 +1,217 @@ + + + + + + + + + +Boost.Hana: Euclidean Ring + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Euclidean Ring
+
+
+

Description

+

The EuclideanRing concept represents a commutative Ring that can also be endowed with a division algorithm.

+

A Ring defines a binary operation often called multiplication that can be used to combine two elements of the ring into a new element of the ring. An Euclidean ring, also called an Euclidean domain, adds the ability to define a special function that generalizes the Euclidean division of integers.

+

However, an Euclidean ring must also satisfy one more property, which is that of having no non-zero zero divisors. In a Ring (R, +, *), it follows quite easily from the axioms that x * 0 == 0 for any ring element x. However, there is nothing that mandates 0 to be the only ring element sending other elements to 0. Hence, in some Rings, it is possible to have elements x and y such that x * y == 0 while not having x == 0 nor y == 0. We call these elements divisors of zero, or zero divisors. For example, this situation arises in the Ring of integers modulo 4 (the set {0, 1, 2, 3}) with addition and multiplication mod 4 as binary operations. In this case, we have that

2 * 2 == 4
== 0 (mod 4)

even though 2 != 0 (mod 4).

+

Following this line of thought, an Euclidean ring requires its only zero divisor is zero itself. In other words, the multiplication in an Euclidean won't send two non-zero elements to zero. Also note that since multiplication in a Ring is not necessarily commutative, it is not always the case that

x * y == 0 implies y * x == 0

To be rigorous, we should then distinguish between elements that are zero divisors when multiplied to the right and to the left. Fortunately, the concept of an Euclidean ring requires the Ring multiplication to be commutative. Hence,

x * y == y * x

and we do not have to distinguish between left and right zero divisors.

+

Typical examples of Euclidean rings include integers and polynomials over a field. The method names used here refer to the Euclidean ring of integers under the usual addition, multiplication and division operations.

+

Minimal complete definition

+

div and mod satisfying the laws below

+

Laws

+

To simplify the reading, we will use the +, *, / and % operators with infix notation to denote the application of the corresponding methods in Monoid, Group, Ring and EuclideanRing. For all objects a and b of an EuclideanRing R, the following laws must be satisfied:

a * b == b * a // commutativity
(a / b) * b + a % b == a if b is non-zero
zero<R>() % b == zero<R>() if b is non-zero

Refined concepts

+

Monoid, Group, Ring

+

Concrete models

+

hana::integral_constant

+

Free model for non-boolean integral data types

+

A data type T is integral if std::is_integral<T>::value is true. For a non-boolean integral data type T, a model of EuclideanRing is automatically defined by using the Ring model provided for arithmetic data types and setting

div(x, y) = (x / y)
mod(x, y) = (x % y)
Note
The rationale for not providing an EuclideanRing model for bool is the same as for not providing Monoid, Group and Ring models.
+ + + + + + + + +

+Variables

constexpr auto boost::hana::div
 Generalized integer division. More...
 
constexpr auto boost::hana::mod
 Generalized integer modulus.Given two elements of an EuclideanRing x and y, with y nonzero, mod returns the modulus of the division of x by y. In other words, mod can be seen as an equivalent to %. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::div
+
+ +

#include <boost/hana/fwd/div.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Generalized integer division.

+

Cross-type version of the method

+

The div method is "overloaded" to handle distinct data types with certain properties. Specifically, div is defined for distinct data types A and B such that

    +
  1. A and B share a common data type C, as determined by the common metafunction
  2. +
  3. A, B and C are all EuclideanRings when taken individually
  4. +
  5. to<C> : A -> B and to<C> : B -> C are Ring-embeddings, as determined by the is_embedding metafunction.
  6. +
+

In that case, the div method is defined as

div(x, y) = div(to<C>(x), to<C>(y))

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::div(hana::int_c<6>, hana::int_c<3>) == hana::int_c<2>);
BOOST_HANA_CONSTANT_CHECK(hana::div(hana::int_c<6>, hana::int_c<4>) == hana::int_c<1>);
static_assert(hana::div(6, 3) == 2, "");
static_assert(hana::div(6, 4) == 1, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::mod
+
+ +

#include <boost/hana/fwd/mod.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Generalized integer modulus.Given two elements of an EuclideanRing x and y, with y nonzero, mod returns the modulus of the division of x by y. In other words, mod can be seen as an equivalent to %.

+

Cross-type version of the method

+

The mod method is "overloaded" to handle distinct data types with certain properties. Specifically, mod is defined for distinct data types A and B such that

    +
  1. A and B share a common data type C, as determined by the common metafunction
  2. +
  3. A, B and C are all EuclideanRings when taken individually
  4. +
  5. to<C> : A -> B and to<C> : B -> C are Ring-embeddings, as determined by the is_embedding metafunction.
  6. +
+

In that case, mod is defined as

mod(x, y) = mod(to<C>(x), to<C>(y))

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::mod(hana::int_c<6>, hana::int_c<4>) == hana::int_c<2>);
BOOST_HANA_CONSTANT_CHECK(hana::mod(hana::int_c<-6>, hana::int_c<4>) == hana::int_c<-2>);
static_assert(hana::mod(6, 4) == 2, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.js b/boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.js new file mode 100644 index 0000000..ed5c935 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-EuclideanRing.js @@ -0,0 +1,5 @@ +var group__group_EuclideanRing = +[ + [ "div", "group__group-EuclideanRing.html#ga4225a7988ce98903228913dde53762df", null ], + [ "mod", "group__group-EuclideanRing.html#ga9b47b223d5b02db933b3c93b5bd1a062", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Foldable.html b/boost_1_63_0/libs/hana/doc/html/group__group-Foldable.html new file mode 100644 index 0000000..2354bc0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Foldable.html @@ -0,0 +1,706 @@ + + + + + + + + + +Boost.Hana: Foldable + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Foldable
+
+
+

Description

+

The Foldable concept represents data structures that can be reduced to a single value.

+

Generally speaking, folding refers to the concept of summarizing a complex structure as a single value, by successively applying a binary operation which reduces two elements of the structure to a single value. Folds come in many flavors; left folds, right folds, folds with and without an initial reduction state, and their monadic variants. This concept is able to express all of these fold variants.

+

Another way of seeing Foldable is as data structures supporting internal iteration with the ability to accumulate a result. By internal iteration, we mean that the loop control is in the hand of the structure, not the caller. Hence, it is the structure who decides when the iteration stops, which is normally when the whole structure has been consumed. Since C++ is an eager language, this requires Foldable structures to be finite, or otherwise one would need to loop indefinitely to consume the whole structure.

+
Note
While the fact that Foldable only works for finite structures may seem overly restrictive in comparison to the Haskell definition of Foldable, a finer grained separation of the concepts should mitigate the issue. For iterating over possibly infinite data structures, see the Iterable concept. For searching a possibly infinite data structure, see the Searchable concept.
+

Minimal complete definition

+

fold_left or unpack

+

However, please note that a minimal complete definition provided through unpack will be much more compile-time efficient than one provided through fold_left.

+

Concrete models

+

hana::map, hana::optional, hana::pair, hana::set, hana::range, hana::tuple

+

The linearization of a Foldable

+

Intuitively, for a Foldable structure xs, the linearization of xs is the sequence of all the elements in xs as if they had been put in a list:

linearization(xs) = [x1, x2, ..., xn]

Note that it is always possible to produce such a linearization for a finite Foldable by setting

linearization(xs) = fold_left(xs, [], flip(prepend))

for an appropriate definition of [] and prepend. The notion of linearization is useful for expressing various properties of Foldable structures, and is used across the documentation. Also note that Iterables define an extended version of this allowing for infinite structures.

+

Compile-time Foldables

+

A compile-time Foldable is a Foldable whose total length is known at compile-time. In other words, it is a Foldable whose length method returns a Constant of an unsigned integral type. When folding a compile-time Foldable, the folding can be unrolled, because the final number of steps of the algorithm is known at compile-time.

+

Additionally, the unpack method is only available to compile-time Foldables. This is because the return type of unpack depends on the number of objects in the structure. Being able to resolve unpack's return type at compile-time hence requires the length of the structure to be known at compile-time too.

+

In the current version of the library, only compile-time Foldables are supported. While it would be possible in theory to support runtime Foldables too, doing so efficiently requires more research.

+

Provided conversion to Sequences

+

Given a tag S which is a Sequence, an object whose tag is a model of the Foldable concept can be converted to an object of tag S. In other words, a Foldable can be converted to a Sequence S, by simply taking the linearization of the Foldable and creating the sequence with that. More specifically, given a Foldable xs with a linearization of [x1, ..., xn] and a Sequence tag S, to<S>(xs) is equivalent to make<S>(x1, ..., xn).

// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
static_assert(hana::to<hana::tuple_tag>(hana::just(1)) == hana::make_tuple(1), "");
BOOST_HANA_CONSTANT_CHECK(hana::to<hana::tuple_tag>(hana::nothing) == hana::make_tuple());
hana::to<hana::tuple_tag>(hana::make_range(hana::int_c<3>, hana::int_c<6>))
==
hana::tuple_c<int, 3, 4, 5>
);
}

Free model for builtin arrays

+

Builtin arrays whose size is known can be folded as-if they were homogeneous tuples. However, note that builtin arrays can't be made more than Foldable (e.g. Iterable) because they can't be empty and they also can't be returned from functions.

+

Primer on monadic folds

+

A monadic fold is a fold in which subsequent calls to the binary function are chained with the monadic chain operator of the corresponding Monad. This allows a structure to be folded in a custom monadic context. For example, performing a monadic fold with the hana::optional monad would require the binary function to return the result as a hana::optional, and the fold would abort and return nothing whenever one of the accumulation step would fail (i.e. return nothing). If, however, all the reduction steps succeed, then just the result would be returned. Different monads will of course result in different effects.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::count
 Return the number of elements in the structure that compare equal to a given value.Given a Foldable structure xs and a value value, count returns an unsigned integral, or a Constant thereof, representing the number of elements of xs that compare equal to value. For this method to be well-defined, all the elements of the structure must be Comparable with the given value. More...
 
constexpr auto boost::hana::count_if
 Return the number of elements in the structure for which the predicate is satisfied.Specifically, returns an object of an unsigned integral type, or a Constant holding such an object, which represents the number of elements in the structure satisfying the given predicate. More...
 
constexpr auto boost::hana::fold = fold_left
 Equivalent to fold_left; provided for convenience.fold is equivalent to fold_left. However, it is not tag-dispatched on its own because it is just an alias to fold_left. Also note that fold can be called with or without an initial state, just like fold_left: More...
 
constexpr auto boost::hana::fold_left
 Left-fold of a structure using a binary operation and an optional initial reduction state.fold_left is a left-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_left applies f as follows. More...
 
constexpr auto boost::hana::fold_right
 Right-fold of a structure using a binary operation and an optional initial reduction state.fold_right is a right-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_right applies f as follows. More...
 
constexpr auto boost::hana::for_each
 Perform an action on each element of a foldable, discarding the result each time.Iteration is done from left to right, i.e. in the same order as when using fold_left. If the structure is not finite, this method will not terminate. More...
 
constexpr auto boost::hana::fuse
 Transform a function taking multiple arguments into a function that can be called with a compile-time Foldable. More...
 
constexpr auto boost::hana::length
 Return the number of elements in a foldable structure.Given a Foldable xs, length(xs) must return an object of an unsigned integral type, or an IntegralConstant holding such an object, which represents the number of elements in the structure. More...
 
constexpr auto boost::hana::maximum
 Return the greatest element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), maximum returns the greatest element of the structure, i.e. an element which is greater than or equal to every other element in the structure, according to the predicate. More...
 
constexpr auto boost::hana::minimum
 Return the least element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), minimum returns the least element of the structure, i.e. an element which is less than or equal to every other element in the structure, according to the predicate. More...
 
template<typename M >
constexpr auto boost::hana::monadic_fold_left
 Monadic left-fold of a structure with a binary operation and an optional initial reduction state. More...
 
template<typename M >
constexpr auto boost::hana::monadic_fold_right
 Monadic right-fold of a structure with a binary operation and an optional initial reduction state. More...
 
constexpr auto boost::hana::product = see documentation
 Compute the product of the numbers of a structure.More generally, product will take any foldable structure containing objects forming a Ring and reduce them using the Ring's binary operation. The initial state for folding is the identity of the Ring's operation. It is sometimes necessary to specify the Ring to use; this is possible by using product<R>. If no Ring is specified, the structure will use the Ring formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,. More...
 
constexpr auto boost::hana::reverse_fold
 Equivalent to reverse_fold in Boost.Fusion and Boost.MPL.This method has the same semantics as reverse_fold in Boost.Fusion and Boost.MPL, with the extension that an initial state is not required. This method is equivalent to fold_right, except that the accumulating function must take its arguments in reverse order, to match the order used in Fusion. In other words,. More...
 
constexpr auto boost::hana::size = hana::length
 Equivalent to length; provided for consistency with the standard library.This method is an alias to length provided for convenience and consistency with the standard library. As an alias, size is not tag-dispatched on its own and length should be customized instead. More...
 
constexpr auto boost::hana::sum = see documentation
 Compute the sum of the numbers of a structure.More generally, sum will take any foldable structure containing objects forming a Monoid and reduce them using the Monoid's binary operation. The initial state for folding is the identity of the Monoid. It is sometimes necessary to specify the Monoid to use; this is possible by using sum<M>. If no Monoid is specified, the structure will use the Monoid formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,. More...
 
constexpr auto boost::hana::unpack
 Invoke a function with the elements of a Foldable as arguments.Given a function and a foldable structure whose length can be known at compile-time, unpack invokes the function with the contents of that structure. In other words, unpack(xs, f) is equivalent to f(x...), where x... are the elements of the structure. The length of the structure must be known at compile-time, because the version of f's operator() that will be compiled depends on the number of arguments it is called with, which has to be known at compile-time. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::count
+
+ +

#include <boost/hana/fwd/count.hpp>

+Initial value:
= [](auto&& xs, auto&& value) {
return tag-dispatched;
}
constexpr auto value
Return the compile-time value associated to a constant.This function returns the value associated to ...
Definition: value.hpp:54
+
+

Return the number of elements in the structure that compare equal to a given value.Given a Foldable structure xs and a value value, count returns an unsigned integral, or a Constant thereof, representing the number of elements of xs that compare equal to value. For this method to be well-defined, all the elements of the structure must be Comparable with the given value.

+
Parameters
+ + + +
xsThe structure whose elements are counted.
valueA value compared with each element in the structure. Elements that compare equal to this value are counted, others are not.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto ints = hana::tuple_c<int, 1, 2, 3, 2, 2, 4, 2>;
BOOST_HANA_CONSTANT_CHECK(hana::count(ints, hana::int_c<2>) == hana::size_c<4>);
static_assert(hana::count(ints, 2) == 4, "");
constexpr auto types = hana::tuple_t<int, char, long, short, char, double>;
BOOST_HANA_CONSTANT_CHECK(hana::count(types, hana::type_c<char>) == hana::size_c<2>);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::count_if
+
+ +

#include <boost/hana/fwd/count_if.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Return the number of elements in the structure for which the predicate is satisfied.Specifically, returns an object of an unsigned integral type, or a Constant holding such an object, which represents the number of elements in the structure satisfying the given predicate.

+
Parameters
+ + + +
xsThe structure whose elements are counted.
predicateA function called as predicate(x), where x is an element of the structure, and returning a Logical representing whether x should be counted.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
using namespace hana::literals;
auto is_odd = [](auto x) {
return x % 2_c != 0_c;
};
int main() {
constexpr auto ints = hana::tuple_c<int, 1, 2, 3>;
BOOST_HANA_CONSTANT_CHECK(hana::count_if(ints, is_odd) == hana::size_c<2>);
constexpr auto types = hana::tuple_t<int, char, long, short, char, double>;
BOOST_HANA_CONSTANT_CHECK(hana::count_if(types, hana::trait<std::is_floating_point>) == hana::size_c<1>);
BOOST_HANA_CONSTANT_CHECK(hana::count_if(types, hana::equal.to(hana::type_c<char>)) == hana::size_c<2>);
BOOST_HANA_CONSTANT_CHECK(hana::count_if(types, hana::equal.to(hana::type_c<void>)) == hana::size_c<0>);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::fold = fold_left
+
+ +

#include <boost/hana/fwd/fold.hpp>

+ +

Equivalent to fold_left; provided for convenience.fold is equivalent to fold_left. However, it is not tag-dispatched on its own because it is just an alias to fold_left. Also note that fold can be called with or without an initial state, just like fold_left:

+
fold(xs, state, f) == fold_left(xs, state, f)
fold(xs, f) == fold_left(xs, f)

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
#include <string>
namespace hana = boost::hana;
auto to_string = [](auto x) {
std::ostringstream ss;
ss << x;
return ss.str();
};
int main() {
auto f = [=](std::string s, auto element) {
return "f(" + s + ", " + to_string(element) + ")";
};
// with an initial state
hana::fold(hana::make_tuple(2, '3', 4, 5.0), "1", f)
==
"f(f(f(f(1, 2), 3), 4), 5)"
);
// without initial state
hana::fold(hana::make_tuple("1", 2, '3', 4, 5.0), f)
==
"f(f(f(f(1, 2), 3), 4), 5)"
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::fold_left
+
+ +

#include <boost/hana/fwd/fold_left.hpp>

+Initial value:
= [](auto&& xs[, auto&& state], auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Left-fold of a structure using a binary operation and an optional initial reduction state.fold_left is a left-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_left applies f as follows.

+
f(... f(f(f(x1, x2), x3), x4) ..., xn) // without state
f(... f(f(f(f(state, x1), x2), x3), x4) ..., xn) // with state

When the structure is empty, two things may arise. If an initial state was provided, it is returned as-is. Otherwise, if the no-state version of the function was used, an error is triggered. When the stucture contains a single element and the no-state version of the function was used, that single element is returned as is.

+

Signature

+

Given a Foldable F and an optional initial state of tag S, the signatures for fold_left are

+\[ \mathtt{fold\_left} : F(T) \times S \times (S \times T \to S) \to S \] +

+

for the variant with an initial state, and

+\[ \mathtt{fold\_left} : F(T) \times (T \times T \to T) \to T \] +

+

for the variant without an initial state.

+
Parameters
+ + + + +
xsThe structure to fold.
stateThe initial value used for folding.
fA binary function called as f(state, x), where state is the result accumulated so far and x is an element in the structure. For left folds without an initial state, the function is called as f(x1, x2), where x1 and x2 are elements of the structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
#include <string>
namespace hana = boost::hana;
auto to_string = [](auto x) {
std::ostringstream ss;
ss << x;
return ss.str();
};
int main() {
auto f = [=](std::string s, auto element) {
return "f(" + s + ", " + to_string(element) + ")";
};
// with an initial state
hana::fold_left(hana::make_tuple(2, '3', 4, 5.0), "1", f)
==
"f(f(f(f(1, 2), 3), 4), 5)"
);
// without initial state
hana::fold_left(hana::make_tuple("1", 2, '3', 4, 5.0), f)
==
"f(f(f(f(1, 2), 3), 4), 5)"
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::fold_right
+
+ +

#include <boost/hana/fwd/fold_right.hpp>

+Initial value:
= [](auto&& xs[, auto&& state], auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Right-fold of a structure using a binary operation and an optional initial reduction state.fold_right is a right-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_right applies f as follows.

+
f(x1, f(x2, f(x3, f(x4, ... f(xn-1, xn) ... )))) // without state
f(x1, f(x2, f(x3, f(x4, ... f(xn, state) ... )))) // with state
Note
It is worth noting that the order in which the binary function should expect its arguments is reversed from fold_left.
+

When the structure is empty, two things may arise. If an initial state was provided, it is returned as-is. Otherwise, if the no-state version of the function was used, an error is triggered. When the stucture contains a single element and the no-state version of the function was used, that single element is returned as is.

+

Signature

+

Given a Foldable F and an optional initial state of tag S, the signatures for fold_right are

+\[ \mathtt{fold\_right} : F(T) \times S \times (T \times S \to S) \to S \] +

+

for the variant with an initial state, and

+\[ \mathtt{fold\_right} : F(T) \times (T \times T \to T) \to T \] +

+

for the variant without an initial state.

+
Parameters
+ + + + +
xsThe structure to fold.
stateThe initial value used for folding.
fA binary function called as f(x, state), where state is the result accumulated so far and x is an element in the structure. For right folds without an initial state, the function is called as f(x1, x2), where x1 and x2 are elements of the structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
#include <string>
namespace hana = boost::hana;
auto to_string = [](auto x) {
std::ostringstream ss;
ss << x;
return ss.str();
};
int main() {
auto f = [=](auto element, std::string s) {
return "f(" + to_string(element) + ", " + s + ")";
};
// with an initial state
hana::fold_right(hana::make_tuple(1, '2', 3.0, 4), "5", f)
==
"f(1, f(2, f(3, f(4, 5))))"
);
// without initial state
hana::fold_right(hana::make_tuple(1, '2', 3.0, 4, "5"), f)
==
"f(1, f(2, f(3, f(4, 5))))"
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::for_each
+
+ +

#include <boost/hana/fwd/for_each.hpp>

+Initial value:
= [](auto&& xs, auto&& f) -> void {
tag-dispatched;
}
+

Perform an action on each element of a foldable, discarding the result each time.Iteration is done from left to right, i.e. in the same order as when using fold_left. If the structure is not finite, this method will not terminate.

+
Parameters
+ + + +
xsThe structure to iterate over.
fA function called as f(x) for each element x of the structure. The result of f(x), whatever it is, is ignored.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
namespace hana = boost::hana;
int main() {
std::stringstream ss;
hana::for_each(hana::make_tuple(0, '1', "234", 5.5), [&](auto x) {
ss << x << ' ';
});
BOOST_HANA_RUNTIME_CHECK(ss.str() == "0 1 234 5.5 ");
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::fuse
+
+ +

#include <boost/hana/fwd/fuse.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& xs) -> decltype(auto) {
return unpack(forwarded(xs), forwarded(f));
};
}
constexpr auto unpack
Invoke a function with the elements of a Foldable as arguments.Given a function and a foldable struct...
Definition: unpack.hpp:79
+
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Transform a function taking multiple arguments into a function that can be called with a compile-time Foldable.

+

This function is provided for convenience as a different way of calling unpack. Specifically, fuse(f) is a function such that

fuse(f)(foldable) == unpack(foldable, f)
== f(x...)

where x... are the elements in the foldable. This function is useful when one wants to create a function that accepts a foldable which is not known yet.

+
Note
This function is not tag-dispatched; customize unpack instead.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
auto tie = [](auto& ...vars) {
return hana::fuse([&vars...](auto ...values) {
// Using an initializer list to sequence the assignments.
int dummy[] = {0, ((void)(vars = values), 0)...};
(void)dummy;
});
};
int main() {
int a = 0;
char b = '\0';
double c = 0;
tie(a, b, c)(hana::make_tuple(1, '2', 3.3));
BOOST_HANA_RUNTIME_CHECK(a == 1 && b == '2' && c == 3.3);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::length
+
+ +

#include <boost/hana/fwd/length.hpp>

+Initial value:
= [](auto const& xs) {
return tag-dispatched;
}
+

Return the number of elements in a foldable structure.Given a Foldable xs, length(xs) must return an object of an unsigned integral type, or an IntegralConstant holding such an object, which represents the number of elements in the structure.

+
Note
Since only compile-time Foldables are supported in the library right now, length must always return an IntegralConstant.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTANT_CHECK(hana::length(hana::make_tuple()) == hana::size_c<0>);
BOOST_HANA_CONSTANT_CHECK(hana::length(hana::make_tuple(1, '2', 3.0)) == hana::size_c<3>);
BOOST_HANA_CONSTANT_CHECK(hana::length(hana::nothing) == hana::size_c<0>);
BOOST_HANA_CONSTANT_CHECK(hana::length(hana::just('x')) == hana::size_c<1>);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::maximum
+
+ +

#include <boost/hana/fwd/maximum.hpp>

+Initial value:
= [](auto&& xs[, auto&& predicate]) -> decltype(auto) {
return tag-dispatched;
}
+

Return the greatest element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), maximum returns the greatest element of the structure, i.e. an element which is greater than or equal to every other element in the structure, according to the predicate.

+

If the structure contains heterogeneous objects, then the predicate must return a compile-time Logical. If no predicate is provided, the elements in the structure must be Orderable, or compile-time Orderable if the structure is heterogeneous.

+

Signature

+

Given a Foldable F, a Logical Bool and a predicate \( \mathtt{pred} : T \times T \to Bool \), maximum has the following signatures. For the variant with a provided predicate,

+\[ \mathtt{maximum} : F(T) \times (T \times T \to Bool) \to T \] +

+

for the variant without a custom predicate, T is required to be Orderable. The signature is then

+\[ \mathtt{maximum} : F(T) \to T \] +

+
Parameters
+ + + +
xsThe structure to find the greatest element of.
predicateA function called as predicate(x, y), where x and y are elements of the structure. predicate should be a strict weak ordering on the elements of the structure and its return value should be a Logical, or a compile-time Logical if the structure is heterogeneous.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
// without a predicate
hana::maximum(hana::tuple_c<int, -1, 0, 2, -4, 6, 9>) == hana::int_c<9>
);
// with a predicate
auto smallest = hana::maximum(hana::tuple_c<int, -1, 0, 2, -4, 6, 9>, [](auto x, auto y) {
return x > y; // order is reversed!
});
BOOST_HANA_CONSTANT_CHECK(smallest == hana::int_c<-4>);
}

Syntactic sugar (maximum.by)

+

maximum can be called in a third way, which provides a nice syntax especially when working with the ordering combinator:

maximum.by(predicate, xs) == maximum(xs, predicate)
maximum.by(predicate) == maximum(-, predicate)

where maximum(-, predicate) denotes the partial application of maximum to predicate.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
static_assert(
hana::maximum.by(hana::ordering(hana::length), hana::make_tuple(
hana::make_tuple(),
hana::make_tuple(1, '2'),
hana::make_tuple(3.3, nullptr, 4)
))
== hana::make_tuple(3.3, nullptr, 4)
, "");
}

Tag dispatching

+

Both the non-predicated version and the predicated versions of maximum are tag-dispatched methods, and hence they can be customized independently. One reason for this is that some structures are able to provide a much more efficient implementation of maximum when the less predicate is used. Here is how the different versions of maximum are dispatched:

maximum(xs, pred) -> maximum_pred_impl<tag of xs>::apply(xs, pred)

Also note that maximum.by is not tag-dispatched on its own, since it is just syntactic sugar for calling the corresponding maximum.

+ +
+
+ +
+
+ + + + +
constexpr auto boost::hana::minimum
+
+ +

#include <boost/hana/fwd/minimum.hpp>

+Initial value:
= [](auto&& xs[, auto&& predicate]) -> decltype(auto) {
return tag-dispatched;
}
+

Return the least element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), minimum returns the least element of the structure, i.e. an element which is less than or equal to every other element in the structure, according to the predicate.

+

If the structure contains heterogeneous objects, then the predicate must return a compile-time Logical. If no predicate is provided, the elements in the structure must be Orderable, or compile-time Orderable if the structure is heterogeneous.

+

Signature

+

Given a Foldable F, a Logical Bool and a predicate \( \mathtt{pred} : T \times T \to Bool \), minimum has the following signatures. For the variant with a provided predicate,

+\[ \mathtt{minimum} : F(T) \times (T \times T \to Bool) \to T \] +

+

for the variant without a custom predicate, T is required to be Orderable. The signature is then

+\[ \mathtt{minimum} : F(T) \to T \] +

+
Parameters
+ + + +
xsThe structure to find the least element of.
predicateA function called as predicate(x, y), where x and y are elements of the structure. predicate should be a strict weak ordering on the elements of the structure and its return value should be a Logical, or a compile-time Logical if the structure is heterogeneous.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
// without a predicate
hana::minimum(hana::tuple_c<int, -1, 0, 2, -4, 6, 9>) == hana::int_c<-4>
);
// with a predicate
auto largest = hana::minimum(hana::tuple_c<int, -1, 0, 2, -4, 6, 9>, [](auto x, auto y) {
return x > y; // order is reversed!
});
BOOST_HANA_CONSTANT_CHECK(largest == hana::int_c<9>);
}

Syntactic sugar (minimum.by)

+

minimum can be called in a third way, which provides a nice syntax especially when working with the ordering combinator:

minimum.by(predicate, xs) == minimum(xs, predicate)
minimum.by(predicate) == minimum(-, predicate)

where minimum(-, predicate) denotes the partial application of minimum to predicate.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
hana::minimum.by(hana::ordering(hana::length), hana::make_tuple(
hana::make_tuple(),
hana::make_tuple(1, '2'),
hana::make_tuple(3.3, nullptr, 4)
))
== hana::make_tuple()
);
}

Tag dispatching

+

Both the non-predicated version and the predicated versions of minimum are tag-dispatched methods, and hence they can be customized independently. One reason for this is that some structures are able to provide a much more efficient implementation of minimum when the less predicate is used. Here is how the different versions of minimum are dispatched:

minimum(xs, pred) -> minimum_pred_impl<tag of xs>::apply(xs, pred)

Also note that minimum.by is not tag-dispatched on its own, since it is just syntactic sugar for calling the corresponding minimum.

+ +
+
+ +
+
+
+template<typename M >
+ + + + +
constexpr auto boost::hana::monadic_fold_left
+
+ +

#include <boost/hana/fwd/monadic_fold_left.hpp>

+Initial value:
= [](auto&& xs[, auto&& state], auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Monadic left-fold of a structure with a binary operation and an optional initial reduction state.

+
Note
This assumes the reader to be accustomed to non-monadic left-folds as explained by hana::fold_left, and to have read the primer on monadic folds.
+

monadic_fold_left<M> is a left-associative monadic fold. Given a Foldable with linearization [x1, ..., xn], a function f and an optional initial state, monadic_fold_left<M> applies f as follows:

// with state
((((f(state, x1) | f(-, x2)) | f(-, x3)) | ...) | f(-, xn))
// without state
((((f(x1, x2) | f(-, x3)) | f(-, x4)) | ...) | f(-, xn))

where f(-, xk) denotes the partial application of f to xk, and | is just the operator version of the monadic chain.

+

When the structure is empty, one of two things may happen. If an initial state was provided, it is lifted to the given Monad and returned as-is. Otherwise, if the no-state version of the function was used, an error is triggered. When the stucture contains a single element and the no-state version of the function was used, that single element is lifted into the given Monad and returned as is.

+

Signature

+

Given a Monad M, a Foldable F, an initial state of tag S, and a function \( f : S \times T \to M(S) \), the signatures of monadic_fold_left<M> are

+\[ \mathtt{monadic\_fold\_left}_M : F(T) \times S \times (S \times T \to M(S)) \to M(S) \] +

+

for the version with an initial state, and

+\[ \mathtt{monadic\_fold\_left}_M : F(T) \times (T \times T \to M(T)) \to M(T) \] +

+

for the version without an initial state.

+
Template Parameters
+ + +
MThe Monad representing the monadic context in which the fold happens. The return type of f must be in that Monad.
+
+
+
Parameters
+ + + + +
xsThe structure to fold.
stateThe initial value used for folding. If the structure is empty, this value is lifted in to the M Monad and then returned as-is.
fA binary function called as f(state, x), where state is the result accumulated so far and x is an element in the structure. The function must return its result inside the M Monad.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
auto builtin_common_t = hana::sfinae([](auto&& t, auto&& u) -> decltype(hana::type_c<
std::decay_t<decltype(true ? hana::traits::declval(t) : hana::traits::declval(u))>
>) { return {}; });
template <typename ...T>
struct common_type { };
template <typename T, typename U>
struct common_type<T, U>
: std::conditional_t<std::is_same<std::decay_t<T>, T>{} &&
std::is_same<std::decay_t<U>, U>{},
decltype(builtin_common_t(hana::type_c<T>, hana::type_c<U>)),
common_type<std::decay_t<T>, std::decay_t<U>>
>
{ };
template <typename T1, typename ...Tn>
struct common_type<T1, Tn...>
: decltype(hana::monadic_fold_left<hana::optional_tag>(
hana::tuple_t<Tn...>,
hana::type_c<std::decay_t<T1>>,
hana::sfinae(hana::metafunction<common_type>)
))
{ };
template <typename ...Ts>
using common_type_t = typename common_type<Ts...>::type;
static_assert(std::is_same<
common_type_t<char, short, char, short>,
int
>{}, "");
static_assert(std::is_same<
common_type_t<char, double, short, char, short, double>,
double
>{}, "");
static_assert(std::is_same<
common_type_t<char, short, float, short>,
float
>{}, "");
static_assert(
hana::sfinae(hana::metafunction<common_type>)(
hana::type_c<int>, hana::type_c<int>, hana::type_c<int*>
) == hana::nothing
, "");
int main() { }
+
+
+ +
+
+
+template<typename M >
+ + + + +
constexpr auto boost::hana::monadic_fold_right
+
+ +

#include <boost/hana/fwd/monadic_fold_right.hpp>

+Initial value:
= [](auto&& xs[, auto&& state], auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Monadic right-fold of a structure with a binary operation and an optional initial reduction state.

+
Note
This assumes the reader to be accustomed to non-monadic right-folds as explained by hana::fold_right, and to have read the primer on monadic folds.
+

monadic_fold_right<M> is a right-associative monadic fold. Given a structure containing x1, ..., xn, a function f and an optional initial state, monadic_fold_right<M> applies f as follows

// with state
(f(x1, -) | (f(x2, -) | (f(x3, -) | (... | f(xn, state)))))
// without state
(f(x1, -) | (f(x2, -) | (f(x3, -) | (... | f(xn-1, xn)))))

where f(xk, -) denotes the partial application of f to xk, and | is just the operator version of the monadic chain. It is worth noting that the order in which the binary function should expect its arguments is reversed from monadic_fold_left<M>.

+

When the structure is empty, one of two things may happen. If an initial state was provided, it is lifted to the given Monad and returned as-is. Otherwise, if the no-state version of the function was used, an error is triggered. When the stucture contains a single element and the no-state version of the function was used, that single element is lifted into the given Monad and returned as is.

+

Signature

+

Given a Monad M, a Foldable F, an initial state of tag S, and a function \( f : T \times S \to M(S) \), the signatures of monadic_fold_right<M> are

+\[ \mathtt{monadic\_fold\_right}_M : F(T) \times S \times (T \times S \to M(S)) \to M(S) \] +

+

for the version with an initial state, and

+\[ \mathtt{monadic\_fold\_right}_M : F(T) \times (T \times T \to M(T)) \to M(T) \] +

+

for the version without an initial state.

+
Template Parameters
+ + +
MThe Monad representing the monadic context in which the fold happens. The return type of f must be in that Monad.
+
+
+
Parameters
+ + + + +
xsThe structure to fold.
stateThe initial value used for folding. If the structure is empty, this value is lifted in to the M Monad and then returned as-is.
fA binary function called as f(x, state), where state is the result accumulated so far and x is an element in the structure. The function must return its result inside the M Monad.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto safe_div = [](auto x, auto y) {
return hana::eval_if(y == hana::int_c<0>,
hana::make_lazy(hana::nothing),
[=](auto _) {
return hana::just(_(x) / y);
}
);
};
// with an initial state
hana::monadic_fold_right<hana::optional_tag>(
hana::tuple_c<int, 1000, 8, 4>, hana::int_c<2>, safe_div
)
==
hana::just(hana::int_c<1000> / (hana::int_c<8> / (hana::int_c<4> / hana::int_c<2>)))
);
hana::monadic_fold_right<hana::optional_tag>(
hana::tuple_c<int, 1000, 8, 4>, hana::int_c<0>, safe_div
)
==
hana::nothing
);
// without an initial state
hana::monadic_fold_right<hana::optional_tag>(
hana::tuple_c<int, 1000, 8, 4, 2>, safe_div
)
==
hana::just(hana::int_c<1000> / (hana::int_c<8> / (hana::int_c<4> / hana::int_c<2>)))
);
hana::monadic_fold_right<hana::optional_tag>(
hana::tuple_c<int, 1000, 8, 4, 0>, safe_div
)
==
hana::nothing
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::product = see documentation
+
+ +

#include <boost/hana/fwd/product.hpp>

+ +

Compute the product of the numbers of a structure.More generally, product will take any foldable structure containing objects forming a Ring and reduce them using the Ring's binary operation. The initial state for folding is the identity of the Ring's operation. It is sometimes necessary to specify the Ring to use; this is possible by using product<R>. If no Ring is specified, the structure will use the Ring formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,.

+
product<R>(xs) = fold_left(xs, one<R or inferred Ring>(), mult)
product<> = product<integral_constant_tag<int>>

For numbers, this will just compute the product of the numbers in the xs structure.

+
Note
The elements of the structure are not actually required to be in the same Ring, but it must be possible to perform mult on any two adjacent elements of the structure, which requires each pair of adjacent element to at least have a common Ring embedding. The meaning of "adjacent" as used here is that two elements of the structure x and y are adjacent if and only if they are adjacent in the linearization of that structure, as documented by the Iterable concept.
+
+See the documentation for sum to understand why the Ring must sometimes be specified explicitly.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
hana::product<>(hana::make_range(hana::int_c<1>, hana::int_c<6>)) == hana::int_c<1 * 2 * 3 * 4 * 5>
);
hana::product<>(hana::make_tuple(1, hana::int_c<3>, hana::long_c<-5>, 9)) == 1 * 3 * -5 * 9
);
hana::product<unsigned long>(hana::make_tuple(2ul, 3ul)) == 6ul
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::reverse_fold
+
+ +

#include <boost/hana/fwd/reverse_fold.hpp>

+Initial value:
= [](auto&& xs[, auto&& state], auto&& f) -> decltype(auto) {
return fold_right(forwarded(xs), forwarded(state), flip(forwarded(f)));
}
constexpr auto fold_right
Right-fold of a structure using a binary operation and an optional initial reduction state...
Definition: fold_right.hpp:73
+
constexpr auto flip
Invoke a function with its two first arguments reversed.
Definition: flip.hpp:31
+
+

Equivalent to reverse_fold in Boost.Fusion and Boost.MPL.This method has the same semantics as reverse_fold in Boost.Fusion and Boost.MPL, with the extension that an initial state is not required. This method is equivalent to fold_right, except that the accumulating function must take its arguments in reverse order, to match the order used in Fusion. In other words,.

+
reverse_fold(sequence, state, f) == fold_right(sequence, state, flip(f))
reverse_fold(sequence, f) == fold_right(sequence, flip(f))
Note
This method is a convenience alias to fold_right. As an alias, reverse_fold is not tag-dispatched on its own and fold_right should be customized instead.
+

Signature

+

Given a Foldable F and an optional initial state of tag S, the signatures for reverse_fold are

+\[ \mathtt{reverse\_fold} : F(T) \times S \times (S \times T \to S) \to S \] +

+

for the variant with an initial state, and

+\[ \mathtt{reverse\_fold} : F(T) \times (T \times T \to T) \to T \] +

+

for the variant without an initial state.

+
Parameters
+ + + + +
xsThe structure to fold.
stateThe initial value used for folding.
fA binary function called as f(state, x), where state is the result accumulated so far and x is an element in the structure. For reverse folds without an initial state, the function is called as f(x1, x2), where x1 and x2 are elements of the structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
#include <string>
namespace hana = boost::hana;
auto to_string = [](auto x) {
std::ostringstream ss;
ss << x;
return ss.str();
};
int main() {
auto f = [=](std::string s, auto element) {
return "f(" + s + ", " + to_string(element) + ")";
};
// With an initial state
hana::reverse_fold(hana::make_tuple(1, '2', 3.0, 4), "5", f)
==
"f(f(f(f(5, 4), 3), 2), 1)"
);
// Without an initial state
hana::reverse_fold(hana::make_tuple(1, '2', 3.0, 4, "5"), f)
==
"f(f(f(f(5, 4), 3), 2), 1)"
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::size = hana::length
+
+ +

#include <boost/hana/fwd/size.hpp>

+ +

Equivalent to length; provided for consistency with the standard library.This method is an alias to length provided for convenience and consistency with the standard library. As an alias, size is not tag-dispatched on its own and length should be customized instead.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTANT_CHECK(hana::size(hana::make_tuple()) == hana::size_c<0>);
BOOST_HANA_CONSTANT_CHECK(hana::size(hana::make_tuple(1, '2', 3.0)) == hana::size_c<3>);
BOOST_HANA_CONSTANT_CHECK(hana::size(hana::nothing) == hana::size_c<0>);
BOOST_HANA_CONSTANT_CHECK(hana::size(hana::just('x')) == hana::size_c<1>);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::sum = see documentation
+
+ +

#include <boost/hana/fwd/sum.hpp>

+ +

Compute the sum of the numbers of a structure.More generally, sum will take any foldable structure containing objects forming a Monoid and reduce them using the Monoid's binary operation. The initial state for folding is the identity of the Monoid. It is sometimes necessary to specify the Monoid to use; this is possible by using sum<M>. If no Monoid is specified, the structure will use the Monoid formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,.

+
sum<M>(xs) = fold_left(xs, zero<M or inferred Monoid>(), plus)
sum<> = sum<integral_constant_tag<int>>

For numbers, this will just compute the sum of the numbers in the xs structure.

+
Note
The elements of the structure are not actually required to be in the same Monoid, but it must be possible to perform plus on any two adjacent elements of the structure, which requires each pair of adjacent element to at least have a common Monoid embedding. The meaning of "adjacent" as used here is that two elements of the structure x and y are adjacent if and only if they are adjacent in the linearization of that structure, as documented by the Iterable concept.
+

Why must we sometimes specify the Monoid by using sum<M>?

+

This is because sequence tags like tuple_tag are not parameterized (by design). Hence, we do not know what kind of objects are in the sequence, so we can't know a 0 value of which type should be returned when the sequence is empty. Therefore, the type of the 0 to return in the empty case must be specified explicitly. Other foldable structures like hana::ranges will ignore the suggested Monoid because they know the tag of the objects they contain. This inconsistent behavior is a limitation of the current design with non-parameterized tags, but we have no good solution for now.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::sum<>(hana::make_range(hana::int_c<1>, hana::int_c<6>)) == hana::int_c<15>);
static_assert(hana::sum<>(hana::make_tuple(1, hana::int_c<3>, hana::long_c<-5>, 9)) == 8, "");
static_assert(hana::sum<unsigned long>(hana::make_tuple(1ul, 3ul)) == 4ul, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::unpack
+
+ +

#include <boost/hana/fwd/unpack.hpp>

+Initial value:
= [](auto&& xs, auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Invoke a function with the elements of a Foldable as arguments.Given a function and a foldable structure whose length can be known at compile-time, unpack invokes the function with the contents of that structure. In other words, unpack(xs, f) is equivalent to f(x...), where x... are the elements of the structure. The length of the structure must be known at compile-time, because the version of f's operator() that will be compiled depends on the number of arguments it is called with, which has to be known at compile-time.

+

To create a function that accepts a foldable instead of variadic arguments, see fuse instead.

+
Parameters
+ + + +
xsThe structure to expand into the function.
fA function to be invoked as f(x...), where x... are the elements of the structure as-if they had been linearized with to<tuple_tag>.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto add = [](auto x, auto y, auto z) {
return x + y + z;
};
BOOST_HANA_CONSTEXPR_CHECK(hana::unpack(hana::make_tuple(1, 2, 3), add) == 6);
}

Rationale: unpack's name and parameter order

+

It has been suggested a couple of times that unpack be called apply instead, and that the parameter order be reversed to match that of the proposed std::apply function. However, the name apply is already used to denote normal function application, an use which is consistent with the Boost MPL library and with the rest of the world, especially the functional programming community. Furthermore, the author of this library considers the proposed std::apply to have both an unfortunate name and an unfortunate parameter order. Indeed, taking the function as the first argument means that using std::apply with a lambda function looks like

std::apply([](auto ...args) {
use(args...);
}, tuple);

which is undeniably ugly because of the trailing , tuple) part on the last line. On the other hand, taking the function as a second argument allows one to write

hana::unpack(tuple, [](auto ...args) {
use(args...);
});

which looks much nicer. Because of these observations, the author of this library feels justified to use unpack instead of apply, and to use a sane parameter order.

+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Foldable.js b/boost_1_63_0/libs/hana/doc/html/group__group-Foldable.js new file mode 100644 index 0000000..ad8fb7c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Foldable.js @@ -0,0 +1,20 @@ +var group__group_Foldable = +[ + [ "count", "group__group-Foldable.html#ga3159cfa41be18a396926741b0a3fdefd", null ], + [ "count_if", "group__group-Foldable.html#ga39d71be65d5b98e7d035a3e5c607e1b4", null ], + [ "fold", "group__group-Foldable.html#gaa0fde17f3b947a0678a1c0c01232f2cc", null ], + [ "fold_left", "group__group-Foldable.html#ga38c6b3f6b1cbadb9b8432a05ff16b7d2", null ], + [ "fold_right", "group__group-Foldable.html#ga77d43badebd59b046cf93598733649b4", null ], + [ "for_each", "group__group-Foldable.html#ga2af382f7e644ce3707710bbad313e9c2", null ], + [ "fuse", "group__group-Foldable.html#ga19fcf61d8d1179903952c0f564c538aa", null ], + [ "length", "group__group-Foldable.html#gaf0f8f717245620dc28cd7d7fa44d7475", null ], + [ "maximum", "group__group-Foldable.html#gaf3861a91607203b63a12708e18a4eac5", null ], + [ "minimum", "group__group-Foldable.html#ga347429451fdb15f9f7a7fc0de293be1a", null ], + [ "monadic_fold_left", "group__group-Foldable.html#gac14edbff755244aa02b57a6383dcebc6", null ], + [ "monadic_fold_right", "group__group-Foldable.html#gaa058d91f3e1294f0d3c71bedf33e2360", null ], + [ "product", "group__group-Foldable.html#ga17fe9c1982c882807f3358b4138c5744", null ], + [ "reverse_fold", "group__group-Foldable.html#ga947602718a53bd7fcd5c20477694cdcd", null ], + [ "size", "group__group-Foldable.html#ga8ec3ac9a6f5014db943f61ebc9e1e36e", null ], + [ "sum", "group__group-Foldable.html#ga650def4b2e98f4273d8b9b7aa5a2fc28", null ], + [ "unpack", "group__group-Foldable.html#ga7b0c23944364ce61136e10b978ae2170", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Functor.html b/boost_1_63_0/libs/hana/doc/html/group__group-Functor.html new file mode 100644 index 0000000..7d0616f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Functor.html @@ -0,0 +1,350 @@ + + + + + + + + + +Boost.Hana: Functor + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Functor
+
+
+

Description

+

The Functor concept represents types that can be mapped over.

+

Intuitively, a Functor is some kind of box that can hold generic data and map a function over this data to create a new, transformed box. Because we are only interested in mapping a function over the contents of a black box, the only real requirement for being a functor is to provide a function which can do the mapping, along with a couple of guarantees that the mapping is well-behaved. Those requirements are made precise in the laws below. The pattern captured by Functor is very general, which makes it widely useful. A lot of objects can be made Functors in one way or another, the most obvious example being sequences with the usual mapping of the function on each element. While this documentation will not go into much more details about the nature of functors, the Typeclassopedia is a nice Haskell-oriented resource for such information.

+

Functors are parametric data types which are parameterized over the data type of the objects they contain. Like everywhere else in Hana, this parametricity is only at the documentation level and it is not enforced.

+

In this library, the mapping function is called transform after the std::transform algorithm, but other programming languages have given it different names (usually map).

+
Note
The word functor comes from functional programming, where the concept has been used for a while, notably in the Haskell programming language. Haskell people borrowed the term from category theory, which, broadly speaking, is a field of mathematics dealing with abstract structures and transformations between those structures.
+

Minimal complete definitions

+
    +
  1. transform
    +When transform is specified, adjust_if is defined analogously to
    adjust_if(xs, pred, f) = transform(xs, [](x){
    if pred(x) then f(x) else x
    })
  2. +
  3. adjust_if
    +When adjust_if is specified, transform is defined analogously to
    transform(xs, f) = adjust_if(xs, always(true), f)
  4. +
+

Laws

+

Let xs be a Functor with tag F(A), \( f : A \to B \) and \( g : B \to C \). The following laws must be satisfied:

transform(xs, id) == xs
transform(xs, compose(g, f)) == transform(transform(xs, f), g)

The first line says that mapping the identity function should not do anything, which precludes the functor from doing something nasty behind the scenes. The second line states that mapping the composition of two functions is the same as mapping the first function, and then the second on the result. While the usual functor laws are usually restricted to the above, this library includes other convenience methods and they should satisfy the following equations. Let xs be a Functor with tag F(A), \( f : A \to A \), \( \mathrm{pred} : A \to \mathrm{Bool} \) for some Logical Bool, and oldval, newval, value objects of tag A. Then,

adjust(xs, value, f) == adjust_if(xs, equal.to(value), f)
adjust_if(xs, pred, f) == transform(xs, [](x){
if pred(x) then f(x) else x
})
replace_if(xs, pred, value) == adjust_if(xs, pred, always(value))
replace(xs, oldval, newval) == replace_if(xs, equal.to(oldval), newval)
fill(xs, value) == replace_if(xs, always(true), value)

The default definition of the methods will satisfy these equations.

+

Concrete models

+

hana::lazy, hana::optional, hana::tuple

+

Structure-preserving functions for Functors

+

A mapping between two functors which also preserves the functor laws is called a natural transformation (the term comes from category theory). A natural transformation is a function f from a functor F to a functor G such that for every other function g with an appropriate signature and for every object xs of tag F(X),

f(transform(xs, g)) == transform(f(xs), g)

There are several examples of such transformations, like to<tuple_tag> when applied to an optional value. Indeed, for any function g and hana::optional opt,

to<tuple_tag>(transform(opt, g)) == transform(to<tuple_tag>(opt), g)

Of course, natural transformations are not limited to the to<...> functions. However, note that any conversion function between Functors should be natural for the behavior of the conversion to be intuitive.

+ + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::adjust
 Apply a function on all the elements of a structure that compare equal to some value. More...
 
constexpr auto boost::hana::adjust_if
 Apply a function on all the elements of a structure satisfying a predicate.Given a Functor, a predicate pred and a function f, adjust_if will adjust the elements of the Functor that satisfy the predicate with the function f. In other words, adjust_if will return a new Functor equal to the original one, except that the elements satisfying the predicate will be transformed with the given function. Elements for which the predicate is not satisfied are left untouched, and they are kept as-is in the resulting Functor. More...
 
constexpr auto boost::hana::fill
 Replace all the elements of a structure with a fixed value. More...
 
constexpr auto boost::hana::replace
 Replace all the elements of a structure that compare equal to some value with some new fixed value. More...
 
constexpr auto boost::hana::replace_if
 Replace all the elements of a structure satisfying a predicate with a fixed value. More...
 
constexpr auto boost::hana::transform
 Map a function over a Functor. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::adjust
+
+ +

#include <boost/hana/fwd/adjust.hpp>

+Initial value:
= [](auto&& xs, auto&& value, auto&& f) {
return tag-dispatched;
}
constexpr auto value
Return the compile-time value associated to a constant.This function returns the value associated to ...
Definition: value.hpp:54
+
+

Apply a function on all the elements of a structure that compare equal to some value.

+

Signature

+

Given F a Functor and U a type that can be compared with T's, the signature is \( \mathtt{adjust} : F(T) \times U \times (T \to T) \to F(T) \)

+
Parameters
+ + + + +
xsThe structure to adjust with f.
valueAn object that is compared with each element x of the structure. Elements of the structure that compare equal to value are adjusted with the f function.
fA function called as f(x) on the element(s) of the structure that compare equal to value.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto negate = [](auto x) {
return -x;
};
int main() {
hana::adjust(hana::make_tuple(1, 4, 9, 2, 3, 4), 4, negate)
==
hana::make_tuple(1, -4, 9, 2, 3, -4)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::adjust_if
+
+ +

#include <boost/hana/fwd/adjust_if.hpp>

+Initial value:
= [](auto&& xs, auto const& pred, auto const& f) {
return tag-dispatched;
}
+

Apply a function on all the elements of a structure satisfying a predicate.Given a Functor, a predicate pred and a function f, adjust_if will adjust the elements of the Functor that satisfy the predicate with the function f. In other words, adjust_if will return a new Functor equal to the original one, except that the elements satisfying the predicate will be transformed with the given function. Elements for which the predicate is not satisfied are left untouched, and they are kept as-is in the resulting Functor.

+

Signature

+

Given a Functor F and a Logical Bool, the signature is \( \mathtt{adjust_if} : F(T) \times (T \to Bool) \times (T \to T) \to F(T) \)

+
Parameters
+ + + + +
xsThe structure to adjust with f.
predA function called as pred(x) for each element of the Functor, and returning whether f should be applied on that element.
fA function called as f(x) on the element(s) of the Functor that satisfy the predicate.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto negative = [](auto x) {
return x < 0;
};
BOOST_HANA_CONSTEXPR_LAMBDA auto negate = [](auto x) {
return -x;
};
int main() {
hana::adjust_if(hana::make_tuple(-3, -2, -1, 0, 1, 2, 3), negative, negate)
==
hana::make_tuple(3, 2, 1, 0, 1, 2, 3)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::fill
+
+ +

#include <boost/hana/fwd/fill.hpp>

+Initial value:
= [](auto&& xs, auto&& value) {
return tag-dispatched;
}
constexpr auto value
Return the compile-time value associated to a constant.This function returns the value associated to ...
Definition: value.hpp:54
+
+

Replace all the elements of a structure with a fixed value.

+

Signature

+

Given F a Functor, the signature is \( \mathtt{fill} : F(T) \times U \to F(U) \)

+
Parameters
+ + + +
xsThe structure to fill with a value.
valueA value by which every element x of the structure is replaced, unconditionally.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
static_assert(
hana::fill(hana::make_tuple(1, '2', 3.3, nullptr), 'x')
==
hana::make_tuple('x', 'x', 'x', 'x')
, "");
BOOST_HANA_CONSTANT_CHECK(hana::fill(hana::nothing, 'x') == hana::nothing);
static_assert(hana::fill(hana::just('y'), 'x') == hana::just('x'), "");
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::replace
+
+ +

#include <boost/hana/fwd/replace.hpp>

+Initial value:
= [](auto&& xs, auto&& oldval, auto&& newval) {
return tag-dispatched;
}
+

Replace all the elements of a structure that compare equal to some value with some new fixed value.

+

Signature

+

Given F a Functor and U a type that can be compared with T, the signature is \( \mathtt{replace} : F(T) \times U \times T \to F(T) \)

+
Parameters
+ + + + +
xsThe structure to replace elements of.
oldvalAn object compared with each element of the structure. Elements of the structure that compare equal to oldval are replaced by newval in the new structure.
newvalA value by which every element x of the structure that compares equal to oldval is replaced.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::replace(hana::make_tuple(1, 1, 1, 2, 3, 1, 4, 5), 1, 0)
==
hana::make_tuple(0, 0, 0, 2, 3, 0, 4, 5)
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::replace_if
+
+ +

#include <boost/hana/fwd/replace_if.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate, auto&& value) {
return tag-dispatched;
}
constexpr auto value
Return the compile-time value associated to a constant.This function returns the value associated to ...
Definition: value.hpp:54
+
+

Replace all the elements of a structure satisfying a predicate with a fixed value.

+

Signature

+

Given F a Functor and Bool a Logical, the signature is \( \mathtt{replace_if} : F(T) \times (T \to Bool) \times T \to F(T) \)

+
Parameters
+ + + + +
xsThe structure to replace elements of.
predicateA function called as predicate(x) for element(s) x of the structure and returning a Logical representing whether x should be replaced by value.
valueA value by which every element x of the structure for which predicate returns a true-valued Logical is replaced.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto negative = [](auto x) {
return x < 0;
};
int main() {
hana::replace_if(hana::make_tuple(-3, -2, -1, 0, 1, 2, 3), negative, 0)
==
hana::make_tuple(0, 0, 0, 0, 1, 2, 3)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::transform
+
+ +

#include <boost/hana/fwd/transform.hpp>

+Initial value:
= [](auto&& xs, auto&& f) {
return tag-dispatched;
}
+

Map a function over a Functor.

+

Signature

+

Given F a Functor, the signature is \( \mathtt{transform} : F(T) \times (T \to U) \to F(U) \)

+
Parameters
+ + + +
xsThe structure to map f over.
fA function called as f(x) on element(s) x of the structure, and returning a new value to replace x in the structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
#include <string>
#include <type_traits>
namespace hana = boost::hana;
using namespace std::literals;
auto to_string = [](auto x) {
std::ostringstream ss;
ss << x;
return ss.str();
};
int main() {
hana::transform(hana::make_tuple(1, '2', "345", std::string{"67"}), to_string)
==
hana::make_tuple("1", "2", "345", "67")
);
BOOST_HANA_CONSTANT_CHECK(hana::transform(hana::nothing, to_string) == hana::nothing);
BOOST_HANA_RUNTIME_CHECK(hana::transform(hana::just(123), to_string) == hana::just("123"s));
hana::transform(hana::tuple_t<void, int(), char[10]>, hana::template_<std::add_pointer_t>)
==
hana::tuple_t<void*, int(*)(), char(*)[10]>
);
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Functor.js b/boost_1_63_0/libs/hana/doc/html/group__group-Functor.js new file mode 100644 index 0000000..f2c219f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Functor.js @@ -0,0 +1,9 @@ +var group__group_Functor = +[ + [ "adjust", "group__group-Functor.html#ga7cc731e67ebc1f5303be1a97b2d5e0cd", null ], + [ "adjust_if", "group__group-Functor.html#gaa0490f57047c1b0d75fbe233688358f4", null ], + [ "fill", "group__group-Functor.html#ga2ce68d315f981ef35751c4dc25ad5642", null ], + [ "replace", "group__group-Functor.html#ga94cd3a75d59d70d77cfce144c4acf8ab", null ], + [ "replace_if", "group__group-Functor.html#ga1d21b4bccd16367d164fbe0d9ef52150", null ], + [ "transform", "group__group-Functor.html#ga5a8975f6e55375d5b6038a9c36ee63e7", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Group.html b/boost_1_63_0/libs/hana/doc/html/group__group-Group.html new file mode 100644 index 0000000..64d3ee3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Group.html @@ -0,0 +1,215 @@ + + + + + + + + + +Boost.Hana: Group + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+

Description

+

The Group concept represents Monoids where all objects have an inverse w.r.t. the Monoid's binary operation.

+

A Group is an algebraic structure built on top of a Monoid which adds the ability to invert the action of the Monoid's binary operation on any element of the set. Specifically, a Group is a Monoid (S, +) such that every element s in S has an inverse (say s') which is such that

s + s' == s' + s == identity of the Monoid

There are many examples of Groups, one of which would be the additive Monoid on integers, where the inverse of any integer n is the integer -n. The method names used here refer to exactly this model.

+

Minimal complete definitions

+
    +
  1. minus
    +When minus is specified, the negate method is defaulted by setting
    negate(x) = minus(zero<G>(), x)
  2. +
  3. negate
    +When negate is specified, the minus method is defaulted by setting
    minus(x, y) = plus(x, negate(y))
  4. +
+

Laws

+

For all objects x of a Group G, the following laws must be satisfied:

plus(x, negate(x)) == zero<G>() // right inverse
plus(negate(x), x) == zero<G>() // left inverse

Refined concept

+

Monoid

+

Concrete models

+

hana::integral_constant

+

Free model for non-boolean arithmetic data types

+

A data type T is arithmetic if std::is_arithmetic<T>::value is true. For a non-boolean arithmetic data type T, a model of Group is automatically defined by setting

minus(x, y) = (x - y)
negate(x) = -x
Note
The rationale for not providing a Group model for bool is the same as for not providing a Monoid model.
+

Structure-preserving functions

+

Let A and B be two Groups. A function f : A -> B is said to be a Group morphism if it preserves the group structure between A and B. Rigorously, for all objects x, y of data type A,

f(plus(x, y)) == plus(f(x), f(y))

Because of the Group structure, it is easy to prove that the following will then also be satisfied:

f(negate(x)) == negate(f(x))
f(zero<A>()) == zero<B>()

Functions with these properties interact nicely with Groups, which is why they are given such a special treatment.

+ + + + + + + + +

+Variables

constexpr auto boost::hana::minus
 Subtract two elements of a group.Specifically, this performs the Monoid operation on the first argument and on the inverse of the second argument, thus being equivalent to: More...
 
constexpr auto boost::hana::negate
 Return the inverse of an element of a group. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::minus
+
+ +

#include <boost/hana/fwd/minus.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Subtract two elements of a group.Specifically, this performs the Monoid operation on the first argument and on the inverse of the second argument, thus being equivalent to:

+
minus(x, y) == plus(x, negate(y))

Cross-type version of the method

+

The minus method is "overloaded" to handle distinct data types with certain properties. Specifically, minus is defined for distinct data types A and B such that

    +
  1. A and B share a common data type C, as determined by the common metafunction
  2. +
  3. A, B and C are all Groups when taken individually
  4. +
  5. to<C> : A -> B and to<C> : B -> C are Group-embeddings, as determined by the is_embedding metafunction.
  6. +
+

The definition of minus for data types satisfying the above properties is obtained by setting

minus(x, y) = minus(to<C>(x), to<C>(y))

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTANT_CHECK(hana::minus(hana::int_c<3>, hana::int_c<5>) == hana::int_c<-2>);
static_assert(hana::minus(1, 2) == -1, "");
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::negate
+
+ +

#include <boost/hana/fwd/negate.hpp>

+Initial value:
= [](auto&& x) -> decltype(auto) {
return tag-dispatched;
}
+

Return the inverse of an element of a group.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTANT_CHECK(hana::negate(hana::int_c<3>) == hana::int_c<-3>);
static_assert(hana::negate(2) == -2, "");
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Group.js b/boost_1_63_0/libs/hana/doc/html/group__group-Group.js new file mode 100644 index 0000000..bca04e5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Group.js @@ -0,0 +1,5 @@ +var group__group_Group = +[ + [ "minus", "group__group-Group.html#ga2020c526324f361a2b990fe8d1b07c20", null ], + [ "negate", "group__group-Group.html#ga02e81002f40ba52eac4cf1974c7e0cdb", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Hashable.html b/boost_1_63_0/libs/hana/doc/html/group__group-Hashable.html new file mode 100644 index 0000000..b87e32f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Hashable.html @@ -0,0 +1,190 @@ + + + + + + + + + +Boost.Hana: Hashable + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Hashable
+
+
+

Description

+

The Hashable concept represents objects that can be normalized to a type-level hash.

+

In day to day programming, hashes are very important as a way to efficiently lookup objects in maps. While the implementation of maps is very different, the same idea of using hashes for efficient lookup applies in metaprogramming. The Hashable concept represents objects that can be summarized (possibly with loss of information) to a type, in a way suitable for use in hash-based data structures. Of course, in order for a hash to be well-behaved, it must obey some laws that are explained below.

+

Minimal complete definition

+

hash, satisfying the laws below

+

Laws

+

First, hana::hash must return a hana::type. Furthermore, for any two Hashable objects x and y, it must be the case that

x == y implies hash(x) == hash(y)

where == denotes hana::equal. In other words, any two objects that compare equal (with hana::equal) must also have the same hash. However, the reverse is not true, and two different objects may have the same hash. This situation of two different objects having the same hash is called a collision.

+

Concrete models

+

hana::integral_constant, hana::type, hana::string

+

Free model for IntegralConstants

+

Any IntegralConstant is Hashable, by normalizing its value to a hana::integral_constant. The type of the value held in the normalized integral_constant is unsigned long long for unsigned integral types, and signed long long for signed integral types.

+ + + + + +

+Variables

constexpr auto boost::hana::hash
 Returns a hana::type representing the compile-time hash of an object.Given an arbitrary object x, hana::hash returns a hana::type representing the hash of x. In normal programming, hashes are usually numerical values that can be used e.g. as indices in an array as part of the implementation of a hash table. In the context of metaprogramming, we are interested in type-level hashes instead. Thus, hana::hash must return a hana::type object instead of an integer. This hana::type must somehow summarize the object being hashed, but that summary may of course lose some information. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::hash
+
+ +

#include <boost/hana/fwd/hash.hpp>

+Initial value:
= [](auto const& x) {
return tag-dispatched;
}
+

Returns a hana::type representing the compile-time hash of an object.Given an arbitrary object x, hana::hash returns a hana::type representing the hash of x. In normal programming, hashes are usually numerical values that can be used e.g. as indices in an array as part of the implementation of a hash table. In the context of metaprogramming, we are interested in type-level hashes instead. Thus, hana::hash must return a hana::type object instead of an integer. This hana::type must somehow summarize the object being hashed, but that summary may of course lose some information.

+

In order for the hash function to be defined properly, it must be the case that whenever x is equal to y, then hash(x) is equal to hash(y). This ensures that hana::hash is a function in the mathematical sense of the term.

+

Signature

+

Given a Hashable H, the signature is \( \mathtt{hash} : H \to \mathtt{type\_tag} \)

+
Parameters
+ + +
xAn object whose hash is to be computed.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
#include <utility>
namespace hana = boost::hana;
// Sample implementation of a compile-time set data structure. Of course,
// this naive implementation only works when no two elements of the same
// set have the same hash.
template <typename T>
struct bucket { };
template <typename ...T>
struct set
: bucket<typename decltype(hana::hash(std::declval<T>()))::type>...
{ };
template <typename Set, typename T>
struct contains
: std::is_base_of<
bucket<typename decltype(hana::hash(std::declval<T>()))::type>,
Set
>
{ };
using Set = set<hana::int_<1>, hana::ulong<2>, hana::type<char>>;
static_assert(contains<Set, hana::int_<1>>{}, "");
static_assert(contains<Set, hana::ulong<2>>{}, "");
static_assert(contains<Set, hana::type<char>>{}, "");
static_assert(!contains<Set, hana::int_<3>>{}, "");
static_assert(!contains<Set, hana::type<float>>{}, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Hashable.js b/boost_1_63_0/libs/hana/doc/html/group__group-Hashable.js new file mode 100644 index 0000000..d2116c9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Hashable.js @@ -0,0 +1,4 @@ +var group__group_Hashable = +[ + [ "hash", "group__group-Hashable.html#ga6e906f44f47b210615491385e5c8a7b5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Iterable.html b/boost_1_63_0/libs/hana/doc/html/group__group-Iterable.html new file mode 100644 index 0000000..b4847c3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Iterable.html @@ -0,0 +1,411 @@ + + + + + + + + + +Boost.Hana: Iterable + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Iterable
+
+
+

Description

+

The Iterable concept represents data structures supporting external iteration.

+

Intuitively, an Iterable can be seen as a kind of container whose elements can be pulled out one at a time. An Iterable also provides a way to know when the container is empty, i.e. when there are no more elements to pull out.

+

Whereas Foldable represents data structures supporting internal iteration with the ability to accumulate a result, the Iterable concept allows inverting the control of the iteration. This is more flexible than Foldable, since it allows iterating over only some part of the structure. This, in turn, allows Iterable to work on infinite structures, while trying to fold such a structure would never finish.

+

Minimal complete definition

+

at, drop_front and is_empty

+

The linearization of an Iterable

+

Intuitively, for an Iterable structure xs, the linearization of xs is the sequence of all the elements in xs as if they had been put in a (possibly infinite) list:

linearization(xs) = [x1, x2, x3, ...]

The nth element of the linearization of an Iterable can be accessed with the at function. In other words, at(xs, n) == xn.

+

Note that this notion is precisely the extension of the linearization notion of Foldables to the infinite case. This notion is useful for expressing various properties of Iterables, and is used for that elsewhere in the documentation.

+

Compile-time Iterables

+

A compile-time Iterable is an Iterable for which is_empty returns a compile-time Logical. These structures allow iteration to be done at compile-time, in the sense that the "loop" doing the iteration can be unrolled because the total length of the structure is kown at compile-time.

+

In particular, note that being a compile-time Iterable has nothing to do with being finite or infinite. For example, it would be possible to create a sequence representing the Pythagorean triples as integral_constants. Such a sequence would be infinite, but iteration on the sequence would still be done at compile-time. However, if one tried to iterate over all the elements of the sequence, the compiler would loop indefinitely, in contrast to your program looping indefinitely if the sequence was a runtime one.

+

In the current version of the library, only compile-time Iterables are supported. While it would be possible in theory to support runtime Iterables, doing it efficiently is the subject of some research. In particular, follow this issue for the current status of runtime Iterables.

+

Laws

+

First, we require the equality of two Iterables to be related to the equality of the elements in their linearizations. More specifically, if xs and ys are two Iterables of data type It, then

xs == ys => at(xs, i) == at(ys, i) for all i

This conveys that two Iterables must have the same linearization in order to be considered equal.

+

Secondly, since every Iterable is also a Searchable, we require the models of Iterable and Searchable to be consistent. This is made precise by the following laws. For any Iterable xs with a linearization of [x1, x2, x3, ...],

any_of(xs, equal.to(z)) <=> xi == z

for some finite index i. Furthermore,

find_if(xs, pred) == just(the first xi such that pred(xi) is satisfied)

or nothing if no such xi exists.

+

Refined concepts

+
    +
  1. Searchable (free model)
    +Any Iterable gives rise to a model of Searchable, where the keys and the values are both the elements in the structure. Searching for a key is just doing a linear search through the elements of the structure.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    namespace hana = boost::hana;
    // First get the type of the object, and then call the trait on it.
    constexpr auto is_integral = hana::compose(hana::trait<std::is_integral>, hana::typeid_);
    constexpr auto is_class = hana::compose(hana::trait<std::is_class>, hana::typeid_);
    static_assert(
    hana::find_if(hana::make_tuple(1.0, 2, '3'), is_integral)
    ==
    hana::just(2)
    , "");
    hana::find_if(hana::make_tuple(1.0, 2, '3'), is_class)
    ==
    hana::nothing
    );
    hana::find(hana::make_tuple(hana::int_c<1>, hana::char_c<'c'>, hana::type_c<void>), hana::type_c<void>)
    ==
    hana::just(hana::type_c<void>)
    );
    hana::find(hana::make_tuple(hana::int_c<1>, hana::char_c<'c'>, hana::type_c<void>), hana::type_c<int>)
    ==
    hana::nothing
    );
    int main() { }
  2. +
  3. Foldable for finite Iterables
    +Every finite Iterable gives rise to a model of Foldable. For these models to be consistent, we require the models of both Foldable and Iterable to have the same linearization.
  4. +
+
Note
As explained above, Iterables are also Searchables and their models have to be consistent. By the laws presented here, it also means that the Foldable model for finite Iterables has to be consistent with the Searchable model.
+

For convenience, finite Iterables must only provide a definition of length to model the Foldable concept; defining the more powerful unpack or fold_left is not necessary (but still possible). The default implementation of unpack derived from Iterable + length uses the fact that at(xs, i) denotes the ith element of xs's linearization, and that the linearization of a finite Iterable must be the same as its linearization as a Foldable.

+

Concrete models

+

hana::tuple, hana::string, hana::range

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::at
 Returns the nth element of an iterable.Given an Iterable and an IntegralConstant index, at returns the element located at the index in the linearization of the iterable. Specifically, given an iterable xs with a linearization of [x1, ..., xN], at(xs, k) is equivalent to xk. More...
 
template<std::size_t n>
constexpr auto boost::hana::at_c
 Equivalent to at; provided for convenience. More...
 
constexpr auto boost::hana::back
 Returns the last element of a non-empty and finite iterable.Given a non-empty and finite iterable xs with a linearization of [x1, ..., xN], back(xs) is equal to xN. Equivalently, back(xs) must be equivalent to at_c<N-1>(xs), and that regardless of the value category of xs (back must respect the reference semantics of at). More...
 
constexpr auto boost::hana::drop_front
 Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
constexpr auto boost::hana::drop_front_exactly
 Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front_exactly(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
constexpr auto boost::hana::drop_while
 Drop elements from an iterable up to, but excluding, the first element for which the predicate is not satisfied.Specifically, drop_while returns an iterable containing all the elements of the original iterable except for those in the range delimited by [head, e), where head is the first element and e is the first element for which the predicate is not satisfied. If the iterable is not finite, the predicate has to return a false- valued Logical at a finite index for this method to return. More...
 
constexpr auto boost::hana::front
 Returns the first element of a non-empty iterable.Given a non-empty Iterable xs with a linearization of [x1, ..., xN], front(xs) is equal to x1. If xs is empty, it is an error to use this function. Equivalently, front(xs) must be equivalent to at_c<0>(xs), and that regardless of the value category of xs (front must respect the reference semantics of at). More...
 
constexpr auto boost::hana::is_empty
 Returns whether the iterable is empty.Given an Iterable xs, is_empty returns whether xs contains no more elements. In other words, it returns whether trying to extract the tail of xs would be an error. In the current version of the library, is_empty must return an IntegralConstant holding a value convertible to bool. This is because only compile-time Iterables are supported right now. More...
 
constexpr auto boost::hana::lexicographical_compare
 Short-circuiting lexicographical comparison of two Iterables with an optional custom predicate, by default hana::less.Given two Iterables xs and ys and a binary predicate pred, lexicographical_compare returns whether xs is to be considered less than ys in a lexicographical ordering. Specifically, let's denote the linearizations of xs and ys by [x1, x2, ...] and [y1, y2, ...], respectively. If the first couple satisfying the predicate is of the form xi, yi, lexicographical_compare returns true. Otherwise, if the first couple to satisfy the predicate is of the form yi, xi, lexicographical_compare returns false. If no such couple can be found, lexicographical_compare returns whether xs has fewer elements than ys. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::at
+
+ +

#include <boost/hana/fwd/at.hpp>

+Initial value:
= [](auto&& xs, auto const& n) -> decltype(auto) {
return tag-dispatched;
}
+

Returns the nth element of an iterable.Given an Iterable and an IntegralConstant index, at returns the element located at the index in the linearization of the iterable. Specifically, given an iterable xs with a linearization of [x1, ..., xN], at(xs, k) is equivalent to xk.

+

If the Iterable actually stores the elements it contains, at is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the matching element, where the type of reference must match that of the iterable passed to at. If the Iterable does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped.

+
Parameters
+ + + +
xsThe iterable in which an element is retrieved. The iterable must contain at least n + 1 elements.
nA non-negative IntegralConstant representing the 0-based index of the element to return. It is an error to call at with an index that out of bounds of the iterable.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.0);
static_assert(hana::at(xs, hana::size_c<0>) == 0, "");
static_assert(hana::at(xs, hana::size_c<1>) == '1', "");
static_assert(hana::at(xs, hana::size_c<2>) == 2.0, "");
int main() { }
+
+
+ +
+
+
+template<std::size_t n>
+ + + + +
constexpr auto boost::hana::at_c
+
+ +

#include <boost/hana/fwd/at.hpp>

+Initial value:
= [](auto&& xs) {
return hana::at(forwarded(xs), hana::size_c<n>);
}
constexpr auto at
Returns the nth element of an iterable.Given an Iterable and an IntegralConstant index, at returns the element located at the index in the linearization of the iterable. Specifically, given an iterable xs with a linearization of [x1, ..., xN], at(xs, k) is equivalent to xk.
Definition: at.hpp:50
+
+

Equivalent to at; provided for convenience.

+
Note
hana::at_c<n> is an overloaded function, not a function object. Hence, it can't be passed to higher-order algorithms. This is done for compile-time performance reasons.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.0);
static_assert(hana::at_c<0>(xs) == 0, "");
static_assert(hana::at_c<1>(xs) == '1', "");
static_assert(hana::at_c<2>(xs) == 2.0, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::back
+
+ +

#include <boost/hana/fwd/back.hpp>

+Initial value:
= [](auto&& xs) -> decltype(auto) {
return tag-dispatched;
}
+

Returns the last element of a non-empty and finite iterable.Given a non-empty and finite iterable xs with a linearization of [x1, ..., xN], back(xs) is equal to xN. Equivalently, back(xs) must be equivalent to at_c<N-1>(xs), and that regardless of the value category of xs (back must respect the reference semantics of at).

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::back(hana::make_tuple(1, '2', 3.3)) == 3.3, "");
static_assert(hana::back(hana::make_tuple(1, '2', 3.3, nullptr)) == nullptr, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::drop_front
+
+ +

#include <boost/hana/fwd/drop_front.hpp>

+Initial value:
= [](auto&& xs[, auto const& n]) {
return tag-dispatched;
}
+

Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1.

+

In case length(xs) <= n, drop_front will simply drop the whole iterable without failing, thus returning an empty iterable. This is different from drop_front_exactly, which expects n <= length(xs) but can be better optimized because of this additional guarantee.

+
Parameters
+ + + +
xsThe iterable from which elements are dropped.
nA non-negative IntegralConstant representing the number of elements to be dropped from the iterable. If n is not given, it defaults to an IntegralConstant with a value equal to 1.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.0);
static_assert(hana::drop_front(xs, hana::size_c<0>) == xs, "");
static_assert(hana::drop_front(xs, hana::size_c<1>) == hana::make_tuple('1', 2.0), "");
static_assert(hana::drop_front(xs, hana::size_c<2>) == hana::make_tuple(2.0), "");
BOOST_HANA_CONSTANT_CHECK(hana::drop_front(xs, hana::size_c<3>) == hana::make_tuple());
BOOST_HANA_CONSTANT_CHECK(hana::drop_front(xs, hana::size_c<4>) == hana::make_tuple());
// drop_front(xs) is equivalent to drop_front(xs, size_t<1>)
static_assert(hana::drop_front(xs) == hana::make_tuple('1', 2.0), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::drop_front_exactly
+
+ +

#include <boost/hana/fwd/drop_front_exactly.hpp>

+Initial value:
= [](auto&& xs[, auto const& n]) {
return tag-dispatched;
}
+

Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front_exactly(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1.

+

It is an error to use drop_front_exactly with n > length(xs). This additional guarantee allows drop_front_exactly to be better optimized than the drop_front function, which allows n > length(xs).

+
Parameters
+ + + +
xsThe iterable from which elements are dropped.
nA non-negative IntegralConstant representing the number of elements to be dropped from the iterable. In addition to being non-negative, n must be less than or equal to the number of elements in xs. If n is not given, it defaults to an IntegralConstant with a value equal to 1.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.0);
static_assert(hana::drop_front_exactly(xs, hana::size_c<1>) == hana::make_tuple('1', 2.0), "");
static_assert(hana::drop_front_exactly(xs, hana::size_c<2>) == hana::make_tuple(2.0), "");
BOOST_HANA_CONSTANT_CHECK(hana::drop_front_exactly(xs, hana::size_c<3>) == hana::make_tuple());
// drop_front_exactly(xs) is equivalent to drop_front_exactly(xs, size_t<1>)
static_assert(hana::drop_front_exactly(xs) == hana::make_tuple('1', 2.0), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::drop_while
+
+ +

#include <boost/hana/fwd/drop_while.hpp>

+Initial value:
= [](auto&& iterable, auto&& predicate) {
return tag-dispatched;
}
+

Drop elements from an iterable up to, but excluding, the first element for which the predicate is not satisfied.Specifically, drop_while returns an iterable containing all the elements of the original iterable except for those in the range delimited by [head, e), where head is the first element and e is the first element for which the predicate is not satisfied. If the iterable is not finite, the predicate has to return a false- valued Logical at a finite index for this method to return.

+
Parameters
+ + + +
iterableThe iterable from which elements are dropped.
predicateA function called as predicate(x), where x is an element of the structure, and returning a Logical representing whether x should be dropped from the structure. In the current version of the library, predicate should return a compile-time Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
using namespace hana::literals;
auto negative = [](auto x) {
return x < hana::int_c<0>;
};
hana::drop_while(hana::make_range(hana::int_c<-3>, hana::int_c<6>), negative)
==
hana::make_range(hana::int_c<0>, hana::int_c<6>)
);
hana::drop_while(hana::make_tuple(1_c, -2_c, 4_c, 5_c), negative)
==
hana::make_tuple(1_c, -2_c, 4_c, 5_c)
);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::front
+
+ +

#include <boost/hana/fwd/front.hpp>

+Initial value:
= [](auto&& xs) -> decltype(auto) {
return tag-dispatched;
}
+

Returns the first element of a non-empty iterable.Given a non-empty Iterable xs with a linearization of [x1, ..., xN], front(xs) is equal to x1. If xs is empty, it is an error to use this function. Equivalently, front(xs) must be equivalent to at_c<0>(xs), and that regardless of the value category of xs (front must respect the reference semantics of at).

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::front(hana::make_tuple(1, '2', 3.3, nullptr)) == 1, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::is_empty
+
+ +

#include <boost/hana/fwd/is_empty.hpp>

+Initial value:
= [](auto const& xs) {
return tag-dispatched;
}
+

Returns whether the iterable is empty.Given an Iterable xs, is_empty returns whether xs contains no more elements. In other words, it returns whether trying to extract the tail of xs would be an error. In the current version of the library, is_empty must return an IntegralConstant holding a value convertible to bool. This is because only compile-time Iterables are supported right now.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(!hana::is_empty(hana::make_tuple(1, '2')));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::lexicographical_compare
+
+ +

#include <boost/hana/fwd/lexicographical_compare.hpp>

+Initial value:
= [](auto const& xs, auto const& ys, auto const& pred = hana::less) {
return tag-dispatched;
}
constexpr auto less
Returns a Logical representing whether x is less than y.
Definition: less.hpp:37
+
+

Short-circuiting lexicographical comparison of two Iterables with an optional custom predicate, by default hana::less.Given two Iterables xs and ys and a binary predicate pred, lexicographical_compare returns whether xs is to be considered less than ys in a lexicographical ordering. Specifically, let's denote the linearizations of xs and ys by [x1, x2, ...] and [y1, y2, ...], respectively. If the first couple satisfying the predicate is of the form xi, yi, lexicographical_compare returns true. Otherwise, if the first couple to satisfy the predicate is of the form yi, xi, lexicographical_compare returns false. If no such couple can be found, lexicographical_compare returns whether xs has fewer elements than ys.

+
Note
This algorithm will short-circuit as soon as it can determine that one sequence is lexicographically less than the other. Hence, it can be used to compare infinite sequences. However, for the procedure to terminate on infinite sequences, the predicate has to be satisfied at a finite index.
+

Signature

+

Given two Iterables It1(T) and It2(T) and a predicate \( pred : T \times T \to Bool \) (where Bool is some Logical), lexicographical_compare has the following signatures. For the variant with a provided predicate,

+\[ \mathtt{lexicographical\_compare} : It1(T) \times It2(T) \times (T \times T \to Bool) \to Bool \] +

+

for the variant without a custom predicate, T is required to be Orderable. The signature is then

+\[ \mathtt{lexicographical\_compare} : It1(T) \times It2(T) \to Bool \] +

+
Parameters
+ + + +
xs,ysTwo Iterables to compare lexicographically.
predA binary function called as pred(x, y) and pred(y, x), where x and y are elements of xs and ys, respectively. pred must return a Logical representing whether its first argument is to be considered as less than its second argument. Also note that pred must define a total ordering as defined by the Orderable concept. When pred is not provided, it defaults to less.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
// works with elements whose `less` does not return a Constant
{
constexpr auto xs = hana::make_tuple(1, 2, 3, 4);
constexpr auto ys = hana::make_tuple(1, 6, 3, 4);
static_assert(hana::lexicographical_compare(xs, ys), "");
}
// and with those that do
{
auto xs = hana::make_tuple(hana::int_c<1>, hana::int_c<2>, hana::int_c<3>);
auto ys = hana::make_tuple(hana::int_c<1>, hana::int_c<5>, hana::int_c<3>);
}
// it also accepts a custom predicate
{
auto xs = hana::make_tuple(hana::type_c<int>, hana::type_c<char>, hana::type_c<void*>);
auto ys = hana::make_tuple(hana::type_c<int>, hana::type_c<long>, hana::type_c<void*>);
hana::lexicographical_compare(xs, ys, [](auto t, auto u) {
return hana::sizeof_(t) < hana::sizeof_(u);
})
);
}
}
+

Referenced by boost::hana::literals::operator""_s().

+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Iterable.js b/boost_1_63_0/libs/hana/doc/html/group__group-Iterable.js new file mode 100644 index 0000000..5e38a0c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Iterable.js @@ -0,0 +1,12 @@ +var group__group_Iterable = +[ + [ "at", "group__group-Iterable.html#ga8a484304380eae38f3d9663d98860129", null ], + [ "at_c", "group__group-Iterable.html#ga4cb99cfbef936cb267e76f66f40f529c", null ], + [ "back", "group__group-Iterable.html#gab3f4d0035345a453284e46303862d463", null ], + [ "drop_front", "group__group-Iterable.html#gad23ce0a4906e2bb0a52f38837b134757", null ], + [ "drop_front_exactly", "group__group-Iterable.html#ga4dbc6a82f03ca35b7ac418ca30889cc4", null ], + [ "drop_while", "group__group-Iterable.html#ga9f1d02c74a6bdc1db260e0d6a8f1ee56", null ], + [ "front", "group__group-Iterable.html#ga8a67ea10e8082dbe6705e573fa978444", null ], + [ "is_empty", "group__group-Iterable.html#ga2a05f564f8a7e4afa04fcbc07ad8f394", null ], + [ "lexicographical_compare", "group__group-Iterable.html#ga660b2649d63ac71dacc64c3852c981e5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Logical.html b/boost_1_63_0/libs/hana/doc/html/group__group-Logical.html new file mode 100644 index 0000000..62548c6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Logical.html @@ -0,0 +1,334 @@ + + + + + + + + + +Boost.Hana: Logical + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Logical
+
+
+

Description

+

The Logical concept represents types with a truth value.

+

Intuitively, a Logical is just a bool, or something that can act like one. However, in the context of programming with heterogeneous objects, it becomes extremely important to distinguish between those objects whose truth value is known at compile-time, and those whose truth value is only known at runtime. The reason why this is so important is because it is possible to branch at compile-time on a condition whose truth value is known at compile-time, and hence the return type of the enclosing function can depend on that truth value. However, if the truth value is only known at runtime, then the compiler has to compile both branches (because any or both of them may end up being used), which creates the additional requirement that both branches must evaluate to the same type.

+

More specifically, Logical (almost) represents a boolean algebra, which is a mathematical structure encoding the usual properties that allow us to reason with bool. The exact properties that must be satisfied by any model of Logical are rigorously stated in the laws below.

+

Truth, falsity and logical equivalence

+

A Logical x is said to be true-valued, or sometimes also just true as an abuse of notation, if

if_(x, true, false) == true

Similarly, x is false-valued, or sometimes just false, if

if_(x, true, false) == false

This provides a standard way of converting any Logical to a straight bool. The notion of truth value suggests another definition, which is that of logical equivalence. We will say that two Logicals x and y are logically equivalent if they have the same truth value. To denote that some expressions p and q of a Logical data type are logically equivalent, we will sometimes also write

p if and only if q

which is very common in mathematics. The intuition behind this notation is that whenever p is true-valued, then q should be; but when p is false-valued, then q should be too. Hence, p should be true-valued when (and only when) q is true-valued.

+

Minimal complete definition

+

eval_if, not_ and while_

+

All the other functions can be defined in those terms:

if_(cond, x, y) = eval_if(cond, lazy(x), lazy(y))
and_(x, y) = if_(x, y, x)
or_(x, y) = if_(x, x, y)
etc...

Laws

+

As outlined above, the Logical concept almost represents a boolean algebra. The rationale for this laxity is to allow things like integers to act like Logicals, which is aligned with C++, even though they do not form a boolean algebra. Even though we depart from the usual axiomatization of boolean algebras, we have found through experience that the definition of a Logical given here is largely compatible with intuition.

+

The following laws must be satisfied for any data type L modeling the Logical concept. Let a, b and c be objects of a Logical data type, and let t and f be arbitrary true-valued and false-valued Logicals of that data type, respectively. Then,

// associativity
or_(a, or_(b, c)) == or_(or_(a, b), c)
and_(a, and_(b, c)) == and_(and_(a, b), c)
// equivalence through commutativity
or_(a, b) if and only if or_(b, a)
and_(a, b) if and only if and_(b, a)
// absorption
or_(a, and_(a, b)) == a
and_(a, or_(a, b)) == a
// left identity
or_(a, f) == a
and_(a, t) == a
// distributivity
or_(a, and_(b, c)) == and_(or_(a, b), or_(a, c))
and_(a, or_(b, c)) == or_(and_(a, b), and_(a, c))
// complements
or_(a, not_(a)) is true-valued
and_(a, not_(a)) is false-valued
+

Why is the above not a boolean algebra?

+

If you look closely, you will find that we depart from the usual boolean algebras because:

    +
  1. we do not require the elements representing truth and falsity to be unique
  2. +
  3. we do not enforce commutativity of the and_ and or_ operations
  4. +
  5. because we do not enforce commutativity, the identity laws become left-identity laws
  6. +
+
+

Concrete models

+

hana::integral_constant

+

Free model for arithmetic data types

+

A data type T is arithmetic if std::is_arithmetic<T>::value is true. For an arithmetic data type T, a model of Logical is provided automatically by using the result of the builtin implicit conversion to bool as a truth value. Specifically, the minimal complete definition for those data types is

eval_if(cond, then, else_) = cond ? then(id) : else(id)
not_(cond) = static_cast<T>(cond ? false : true)
while_(pred, state, f) = equivalent to a normal while loop
+

Rationale for not providing a model for all contextually convertible to bool data types

+

The not_ method can not be implemented in a meaningful way for all of those types. For example, one can not cast a pointer type T* to bool and then back again to T* in a meaningful way. With an arithmetic type T, however, it is possible to cast from T to bool and then to T again; the result will be 0 or 1 depending on the truth value. If you want to use a pointer type or something similar in a conditional, it is suggested to explicitly convert it to bool by using to<bool>.

+
+ + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::and_
 Return whether all the arguments are true-valued.and_ can be called with one argument or more. When called with two arguments, and_ uses tag-dispatching to find the right implementation. Otherwise,. More...
 
constexpr auto boost::hana::eval_if
 Conditionally execute one of two branches based on a condition.Given a condition and two branches in the form of lambdas or hana::lazys, eval_if will evaluate the branch selected by the condition with eval and return the result. The exact requirements for what the branches may be are the same requirements as those for the eval function. More...
 
constexpr auto boost::hana::if_
 Conditionally return one of two values based on a condition.Specifically, then is returned iff cond is true-valued, and else_ is returned otherwise. Note that some Logical models may allow then and else_ to have different types, while others may require both values to have the same type. More...
 
constexpr auto boost::hana::not_
 Negates a Logical.This method returns a Logical with the same tag, but whose truth-value is negated. Specifically, not_(x) returns a false-valued Logical if x is a true-valued Logical, and a true-valued one otherwise. More...
 
constexpr auto boost::hana::or_
 Return whether any of the arguments is true-valued.or_ can be called with one argument or more. When called with two arguments, or_ uses tag-dispatching to find the right implementation. Otherwise,. More...
 
constexpr auto boost::hana::while_
 Apply a function to an initial state while some predicate is satisfied.This method is a natural extension of the while language construct to manipulate a state whose type may change from one iteration to another. However, note that having a state whose type changes from one iteration to the other is only possible as long as the predicate returns a Logical whose truth value is known at compile-time. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::and_
+
+ +

#include <boost/hana/fwd/and.hpp>

+Initial value:
= [](auto&& x, auto&& ...y) -> decltype(auto) {
return tag-dispatched;
}
+

Return whether all the arguments are true-valued.and_ can be called with one argument or more. When called with two arguments, and_ uses tag-dispatching to find the right implementation. Otherwise,.

+
and_(x) == x
and_(x, y, ...z) == and_(and_(x, y), z...)

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::and_(hana::true_c, hana::true_c, hana::true_c, hana::true_c));
static_assert(!hana::and_(hana::true_c, false, hana::true_c, hana::true_c), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::eval_if
+
+ +

#include <boost/hana/fwd/eval_if.hpp>

+Initial value:
= [](auto&& cond, auto&& then, auto&& else_) -> decltype(auto) {
return tag-dispatched;
}
constexpr auto then
Sequentially compose two monadic actions, discarding any value produced by the first but not its effe...
Definition: then.hpp:36
+
+

Conditionally execute one of two branches based on a condition.Given a condition and two branches in the form of lambdas or hana::lazys, eval_if will evaluate the branch selected by the condition with eval and return the result. The exact requirements for what the branches may be are the same requirements as those for the eval function.

+

Deferring compile-time evaluation inside eval_if

+

By passing a unary callable to eval_if, it is possible to defer the compile-time evaluation of selected expressions inside the lambda. This is useful when instantiating a branch would trigger a compile-time error; we only want the branch to be instantiated when that branch is selected. Here's how it can be achieved.

+

For simplicity, we'll use a unary lambda as our unary callable. Our lambda must accept a parameter (usually called _), which can be used to defer the compile-time evaluation of expressions as required. For example,

template <typename N>
auto fact(N n) {
return hana::eval_if(n == hana::int_c<0>,
[] { return hana::int_c<1>; },
[=](auto _) { return n * fact(_(n) - hana::int_c<1>); }
);
}

What happens here is that eval_if will call eval on the selected branch. In turn, eval will call the selected branch either with nothing – for the then branch – or with hana::id – for the else branch. Hence, _(x) is always the same as x, but the compiler can't tell until the lambda has been called! Hence, the compiler has to wait before it instantiates the body of the lambda and no infinite recursion happens. However, this trick to delay the instantiation of the lambda's body can only be used when the condition is known at compile-time, because otherwise both branches have to be instantiated inside the eval_if anyway.

+

There are several caveats to note with this approach to lazy branching. First, because we're using lambdas, it means that the function's result can't be used in a constant expression. This is a limitation of the current language.

+

The second caveat is that compilers currently have several bugs regarding deeply nested lambdas with captures. So you always risk crashing the compiler, but this is a question of time before it is not a problem anymore.

+

Finally, it means that conditionals can't be written directly inside unevaluated contexts. The reason is that a lambda can't appear in an unevaluated context, for example in decltype. One way to workaround this is to completely lift your type computations into variable templates instead. For example, instead of writing

template <typename T>
struct pointerize : decltype(
hana::eval_if(hana::traits::is_pointer(hana::type_c<T>),
[] { return hana::type_c<T>; },
[](auto _) { return _(hana::traits::add_pointer)(hana::type_c<T>); }
))
{ };

you could instead write

+
template <typename T>
auto pointerize_impl(T t) {
return hana::eval_if(hana::traits::is_pointer(t),
[] { return hana::type_c<T>; },
[](auto _) { return _(hana::traits::add_pointer)(hana::type_c<T>); }
);
}
template <typename T>
using pointerize = decltype(pointerize_impl(hana::type_c<T>));
+

Note: This example would actually be implemented more easily with partial specializations, but my bag of good examples is empty at the time of writing this.

+
+

Now, this hoop-jumping only has to be done in one place, because you should use normal function notation everywhere else in your metaprogram to perform type computations. So the syntactic cost is amortized over the whole program.

+

Another way to work around this limitation of the language would be to use hana::lazy for the branches. However, this is only suitable when the branches are not too complicated. With hana::lazy, you could write the previous example as

template <typename T>
struct pointerize : decltype(
hana::eval_if(hana::traits::is_pointer(hana::type_c<T>),
hana::make_lazy(hana::type_c<T>),
hana::make_lazy(hana::traits::add_pointer)(hana::type_c<T>)
))
{ };
Parameters
+ + + + +
condThe condition determining which of the two branches is selected.
thenAn expression called as eval(then) if cond is true-valued.
else_A function called as eval(else_) if cond is false-valued.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
// eval_if with heterogeneous branches and a Constant condition
BOOST_HANA_CONSTEXPR_LAMBDA auto safe_make_unsigned = [](auto t) {
return hana::eval_if(hana::traits::is_integral(t),
hana::make_lazy(hana::traits::make_unsigned)(t),
hana::make_lazy(t)
);
};
BOOST_HANA_CONSTANT_CHECK(safe_make_unsigned(hana::type_c<void>) == hana::type_c<void>);
BOOST_HANA_CONSTANT_CHECK(safe_make_unsigned(hana::type_c<int>) == hana::type_c<unsigned int>);
// eval_if with homogeneous branches and a constexpr or runtime condition
BOOST_HANA_CONSTEXPR_LAMBDA auto safe_divide = [](auto x, auto y) {
return hana::eval_if(y == 0,
[=](auto) { return 0; },
[=](auto _) { return _(x) / y; }
);
};
int main() {
BOOST_HANA_CONSTEXPR_CHECK(safe_divide(6, 3) == 2);
BOOST_HANA_CONSTEXPR_CHECK(safe_divide(6, 0) == 0);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::if_
+
+ +

#include <boost/hana/fwd/if.hpp>

+Initial value:
= [](auto&& cond, auto&& then, auto&& else_) -> decltype(auto) {
return tag-dispatched;
}
constexpr auto then
Sequentially compose two monadic actions, discarding any value produced by the first but not its effe...
Definition: then.hpp:36
+
+

Conditionally return one of two values based on a condition.Specifically, then is returned iff cond is true-valued, and else_ is returned otherwise. Note that some Logical models may allow then and else_ to have different types, while others may require both values to have the same type.

+
Parameters
+ + + + +
condThe condition determining which of the two values is returned.
thenThe value returned when cond is true-valued.
else_The value returned when cond is false-valued.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::if_(true, 1, 2) == 1, "");
static_assert(hana::if_(false, 1, 2) == 2, "");
static_assert(
hana::if_(hana::true_c,
hana::make_tuple('t', 'r', 'u', 'e'),
hana::make_tuple('f', 'a', 'l', 's', 'e')
)
==
hana::make_tuple('t', 'r', 'u', 'e')
, "");
int main() { }
+

Referenced by boost::hana::literals::operator""_s().

+ +
+
+ +
+
+ + + + +
constexpr auto boost::hana::not_
+
+ +

#include <boost/hana/fwd/not.hpp>

+Initial value:
= [](auto&& x) -> decltype(auto) {
return tag-dispatched;
}
+

Negates a Logical.This method returns a Logical with the same tag, but whose truth-value is negated. Specifically, not_(x) returns a false-valued Logical if x is a true-valued Logical, and a true-valued one otherwise.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::true_c) == hana::false_c);
static_assert(hana::not_(false) == true, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::or_
+
+ +

#include <boost/hana/fwd/or.hpp>

+Initial value:
= [](auto&& x, auto&& ...y) -> decltype(auto) {
return tag-dispatched;
}
+

Return whether any of the arguments is true-valued.or_ can be called with one argument or more. When called with two arguments, or_ uses tag-dispatching to find the right implementation. Otherwise,.

+
or_(x) == x
or_(x, y, ...z) == or_(or_(x, y), z...)

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::or_(hana::false_c, hana::false_c, hana::true_c));
BOOST_HANA_CONSTANT_CHECK(!hana::or_(hana::false_c, hana::false_c, hana::false_c));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::while_
+
+ +

#include <boost/hana/fwd/while.hpp>

+Initial value:
= [](auto&& pred, auto&& state, auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Apply a function to an initial state while some predicate is satisfied.This method is a natural extension of the while language construct to manipulate a state whose type may change from one iteration to another. However, note that having a state whose type changes from one iteration to the other is only possible as long as the predicate returns a Logical whose truth value is known at compile-time.

+

Specifically, while_(pred, state, f) is equivalent to

f(...f(f(state)))

where f is iterated as long as pred(f(...)) is a true-valued Logical.

+
Parameters
+ + + + +
predA predicate called on the state or on the result of applying f a certain number of times to the state, and returning whether f should be applied one more time.
stateThe initial state on which f is applied.
fA function that is iterated on the initial state. Note that the return type of f may change from one iteration to the other, but only while pred returns a compile-time Logical. In other words, decltype(f(stateN)) may differ from decltype(f(stateN+1)), but only if pred(f(stateN)) returns a compile-time Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <vector>
namespace hana = boost::hana;
using namespace hana::literals;
int main() {
// while_ with a Constant condition (loop is unrolled at compile-time)
{
std::vector<int> ints;
auto final_state = hana::while_(hana::less.than(10_c), 0_c, [&](auto i) {
ints.push_back(i);
return i + 1_c;
});
// The state is known at compile-time
BOOST_HANA_CONSTANT_CHECK(final_state == 10_c);
BOOST_HANA_RUNTIME_CHECK(ints == std::vector<int>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
}
// while_ with a constexpr or runtime condition (loop is not unrolled)
{
std::vector<int> ints;
int final_state = hana::while_(hana::less.than(10), 0, [&](int i) {
ints.push_back(i);
return i + 1;
});
// The state is known only at runtime, or at compile-time if constexpr
BOOST_HANA_RUNTIME_CHECK(final_state == 10);
BOOST_HANA_RUNTIME_CHECK(ints == std::vector<int>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
}
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Logical.js b/boost_1_63_0/libs/hana/doc/html/group__group-Logical.js new file mode 100644 index 0000000..326c074 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Logical.js @@ -0,0 +1,9 @@ +var group__group_Logical = +[ + [ "and_", "group__group-Logical.html#ga14066f5672867c123524e0e0978069eb", null ], + [ "eval_if", "group__group-Logical.html#gab64636f84de983575aac0208f5fa840c", null ], + [ "if_", "group__group-Logical.html#gafd655d2222367131e7a63616e93dd080", null ], + [ "not_", "group__group-Logical.html#ga4a7c9d7037601d5e553fd20777958980", null ], + [ "or_", "group__group-Logical.html#ga68c00efbeb69339bfa157a78ebdd3f87", null ], + [ "while_", "group__group-Logical.html#ga08a767b86c330cac67daa891406d2730", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.html b/boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.html new file mode 100644 index 0000000..5c88754 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.html @@ -0,0 +1,280 @@ + + + + + + + + + +Boost.Hana: Metafunction + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Metafunction
+
+
+

Description

+

A Metafunction is a function that takes hana::types as inputs and returns a hana::type as output.

+

A Metafunction is an object satisfying the FunctionObject concept, but with additional requirements. First, it must be possible to apply a Metafunction to arguments whose tag is type_tag, and the result of such an application must be an object whose tag is also type_tag. Note that hana::type and hana::basic_type are the only such types.

+

Secondly, a Metafunction must provide a nested ::apply template which allows performing the same type-level computation as is done by the call operator. In Boost.MPL parlance, a Metafunction F is hence a MetafunctionClass in addition to being a FunctionObject. Rigorously, the following must be satisfied by any object f of type F which is a Metafunction, and for arbitrary types T...:

f(hana::type_c<T>...) == hana::type_c<F::apply<T...>::type>

Thirdly, to ease the inter-operation of values and types, Metafunctions must also allow being called with arguments that are not hana::types. In that case, the result is equivalent to calling the metafunction on the types of the arguments. Rigorously, this means that for arbitrary objects x...,

f(x...) == f(hana::type_c<decltype(x)>...)

Minimal complete definition

+

The Metafunction concept does not have a minimal complete definition in terms of tag-dispatched methods. Instead, the syntactic requirements documented above should be satisfied, and the Metafunction struct should be specialized explicitly in Hana's namespace.

+

Concrete models

+

hana::metafunction, hana::metafunction_class, hana::template_

+

Rationale: Why aren't Metafunctions Comparable?

+

When seeing hana::template_, a question that naturally arises is whether Metafunctions should be made Comparable. Indeed, it would seem to make sense to compare two templates F and G with template_<F> == template_<G>. However, in the case where F and/or G are alias templates, it makes sense to talk about two types of comparisons. The first one is shallow comparison, and it determines that two alias templates are equal if they are the same alias template. The second one is deep comparison, and it determines that two template aliases are equal if they alias the same type for any template argument. For example, given F and G defined as

template <typename T>
using F = void;
template <typename T>
using G = void;

shallow comparison would determine that F and G are different because they are two different template aliases, while deep comparison would determine that F and G are equal because they always expand to the same type, void. Unfortunately, deep comparison is impossible to implement because one would have to check F and G on all possible types. On the other hand, shallow comparison is not satisfactory because Metafunctions are nothing but functions on types, and the equality of two functions is normally defined with deep comparison. Hence, we adopt a conservative stance and avoid providing comparison for Metafunctions.

+ + + + + + + + + + + + + + + + + + + + + +

+Variables

template<template< typename... > class F>
constexpr auto boost::hana::template_
 Lift a template to a Metafunction.Given a template class or template alias f, template_<f> is a Metafunction satisfying. More...
 
template<template< typename... > class F>
constexpr auto boost::hana::metafunction
 Lift a MPL-style metafunction to a Metafunction.Given a MPL-style metafunction, metafunction<f> is a Metafunction satisfying. More...
 
template<typename F >
constexpr auto boost::hana::metafunction_class
 Lift a MPL-style metafunction class to a Metafunction.Given a MPL-style metafunction class, metafunction_class<f> is a Metafunction satisfying. More...
 
constexpr auto boost::hana::integral
 Turn a Metafunction into a function taking types and returning a default-constructed object.Given a Metafunction f, integral returns a new Metafunction that default-constructs an object of the type returned by f. More specifically, the following holds: More...
 
template<template< typename... > class F>
constexpr auto boost::hana::trait = hana::integral(hana::metafunction<F>)
 Alias to integral(metafunction<F>), provided for convenience. More...
 
+

Variable Documentation

+ +
+
+
+template<template< typename... > class F>
+ + + + +
constexpr auto boost::hana::template_
+
+ +

#include <boost/hana/fwd/type.hpp>

+Initial value:
= [](basic_type<T>...) {
return hana::type_c<F<T...>>;
}
+

Lift a template to a Metafunction.Given a template class or template alias f, template_<f> is a Metafunction satisfying.

+
template_<f>(type_c<x>...) == type_c<f<x...>>
decltype(template_<f>)::apply<x...>::type == f<x...>
Note
template_ can't be SFINAE-friendly right now because of Core issue 1430.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
template <typename ...> struct f;
struct x;
struct y;
BOOST_HANA_CONSTANT_CHECK(hana::template_<f>() == hana::type_c<f<>>);
BOOST_HANA_CONSTANT_CHECK(hana::template_<f>(hana::type_c<x>) == hana::type_c<f<x>>);
BOOST_HANA_CONSTANT_CHECK(hana::template_<f>(hana::type_c<x>, hana::type_c<y>) == hana::type_c<f<x, y>>);
static_assert(std::is_same<
decltype(hana::template_<f>)::apply<x, y>::type,
f<x, y>
>::value, "");
int main() { }
+
+
+ +
+
+
+template<template< typename... > class F>
+ + + + +
constexpr auto boost::hana::metafunction
+
+ +

#include <boost/hana/fwd/type.hpp>

+Initial value:
= [](basic_type<T>...) {
return hana::type_c<typename F<T...>::type>;
}
+

Lift a MPL-style metafunction to a Metafunction.Given a MPL-style metafunction, metafunction<f> is a Metafunction satisfying.

+
metafunction<f>(type_c<x>...) == type_c<f<x...>::type>
decltype(metafunction<f>)::apply<x...>::type == f<x...>::type

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
template <typename ...> struct f { struct type; };
struct x;
struct y;
BOOST_HANA_CONSTANT_CHECK(hana::metafunction<f>() == hana::type_c<f<>::type>);
BOOST_HANA_CONSTANT_CHECK(hana::metafunction<f>(hana::type_c<x>) == hana::type_c<f<x>::type>);
BOOST_HANA_CONSTANT_CHECK(hana::metafunction<f>(hana::type_c<x>, hana::type_c<y>) == hana::type_c<f<x, y>::type>);
static_assert(std::is_same<
decltype(hana::metafunction<f>)::apply<x, y>::type,
f<x, y>::type
>::value, "");
int main() { }
+
+
+ +
+
+
+template<typename F >
+ + + + +
constexpr auto boost::hana::metafunction_class
+
+ +

#include <boost/hana/fwd/type.hpp>

+Initial value:
= [](basic_type<T>...) {
return hana::type_c<typename F::template apply<T...>::type>;
}
constexpr auto apply
Invokes a Callable with the given arguments.
Definition: apply.hpp:40
+
+

Lift a MPL-style metafunction class to a Metafunction.Given a MPL-style metafunction class, metafunction_class<f> is a Metafunction satisfying.

+
metafunction_class<f>(type_c<x>...) == type_c<f::apply<x...>::type>
decltype(metafunction_class<f>)::apply<x...>::type == f::apply<x...>::type

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
struct f { template <typename ...> struct apply { struct type; }; };
struct x;
struct y;
BOOST_HANA_CONSTANT_CHECK(hana::metafunction_class<f>() == hana::type_c<f::apply<>::type>);
BOOST_HANA_CONSTANT_CHECK(hana::metafunction_class<f>(hana::type_c<x>) == hana::type_c<f::apply<x>::type>);
BOOST_HANA_CONSTANT_CHECK(hana::metafunction_class<f>(hana::type_c<x>, hana::type_c<y>) == hana::type_c<f::apply<x, y>::type>);
static_assert(std::is_same<
decltype(hana::metafunction_class<f>)::apply<x, y>::type,
f::apply<x, y>::type
>::value, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::integral
+
+ +

#include <boost/hana/fwd/type.hpp>

+Initial value:
= [](auto f) {
return [](basic_type<T>...) {
return decltype(f)::apply<T...>::type{};
};
}
constexpr auto apply
Invokes a Callable with the given arguments.
Definition: apply.hpp:40
+
+

Turn a Metafunction into a function taking types and returning a default-constructed object.Given a Metafunction f, integral returns a new Metafunction that default-constructs an object of the type returned by f. More specifically, the following holds:

+
integral(f)(t...) == decltype(f(t...))::type{}

The principal use case for integral is to transform Metafunctions returning a type that inherits from a meaningful base like std::integral_constant into functions returning e.g. a hana::integral_constant.

+
Note
    +
  • This is not a Metafunction because it does not return a type. As such, it would not make sense to make decltype(integral(f)) a MPL metafunction class like the usual Metafunctions are.
  • +
  • When using integral with metafunctions returning std::integral_constants, don't forget to include the boost/hana/ext/std/integral_constant.hpp header to ensure Hana can interoperate with the result.
  • +
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
constexpr auto is_void = hana::integral(hana::metafunction<std::is_void>);
BOOST_HANA_CONSTANT_CHECK(is_void(hana::type_c<void>));
BOOST_HANA_CONSTANT_CHECK(hana::not_(is_void(hana::type_c<int>)));
int main() { }
+
+
+ +
+
+
+template<template< typename... > class F>
+ + + + +
constexpr auto boost::hana::trait = hana::integral(hana::metafunction<F>)
+
+ +

#include <boost/hana/fwd/type.hpp>

+ +

Alias to integral(metafunction<F>), provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::trait<std::is_integral>(hana::type_c<int>));
BOOST_HANA_CONSTANT_CHECK(hana::not_(hana::trait<std::is_integral>(hana::type_c<float>)));
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.js b/boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.js new file mode 100644 index 0000000..f25fe14 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Metafunction.js @@ -0,0 +1,8 @@ +var group__group_Metafunction = +[ + [ "template_", "group__group-Metafunction.html#ga246419f6c3263b648412f346106e6543", null ], + [ "metafunction", "group__group-Metafunction.html#gaaa4f85cb8cbce21f5c04ef40ca35cc6a", null ], + [ "metafunction_class", "group__group-Metafunction.html#gacec153d7f86aa7cf1efd813b3fd212b4", null ], + [ "integral", "group__group-Metafunction.html#gaf7045fe6a627f88f5f646dad22d37aae", null ], + [ "trait", "group__group-Metafunction.html#ga6d4093318f46472e62f9539a4dc998a9", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Monad.html b/boost_1_63_0/libs/hana/doc/html/group__group-Monad.html new file mode 100644 index 0000000..3ea2d3c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Monad.html @@ -0,0 +1,330 @@ + + + + + + + + + +Boost.Hana: Monad + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+

Description

+

The Monad concept represents Applicatives with the ability to flatten nested levels of structure.

+

Historically, Monads are a construction coming from category theory, an abstract branch of mathematics. The functional programming community eventually discovered how Monads could be used to formalize several useful things like side effects, which led to the wide adoption of Monads in that community. However, even in a multi-paradigm language like C++, there are several constructs which turn out to be Monads, like std::optional, std::vector and others.

+

Everybody tries to introduce Monads with a different analogy, and most people fail. This is called the Monad tutorial fallacy. We will try to avoid this trap by not presenting a specific intuition, and we will instead present what monads are mathematically. For specific intuitions, we will let readers who are new to this concept read one of the many excellent tutorials available online. Understanding Monads might take time at first, but once you get it, a lot of patterns will become obvious Monads; this enlightening will be your reward for the hard work.

+

There are different ways of defining a Monad; Haskell uses a function called bind (>>=) and another one called return (it has nothing to do with C++'s return statement). They then introduce relationships that must be satisfied for a type to be a Monad with those functions. Mathematicians sometimes use a function called join and another one called unit, or they also sometimes use other category theoretic constructions like functor adjunctions and the Kleisli category.

+

This library uses a composite approach. First, we use the flatten function (equivalent to join) along with the lift function from Applicative (equivalent to unit) to introduce the notion of monadic function composition. We then write the properties that must be satisfied by a Monad using this monadic composition operator, because we feel it shows the link between Monads and Monoids more clearly than other approaches.

+

Roughly speaking, we will say that a Monad is an Applicative which also defines a way to compose functions returning a monadic result, as opposed to only being able to compose functions returning a normal result. We will then ask for this composition to be associative and to have a neutral element, just like normal function composition. For usual composition, the neutral element is the identity function id. For monadic composition, the neutral element is the lift function defined by Applicative. This construction is made clearer in the laws below.

+
Note
Monads are known to be a big chunk to swallow. However, it is out of the scope of this documentation to provide a full-blown explanation of the concept. The Typeclassopedia is a nice Haskell-oriented resource where more information about Monads can be found.
+

Minimal complete definitions

+

First, a Monad must be both a Functor and an Applicative. Also, an implementation of flatten or chain satisfying the laws below for monadic composition must be provided.

+
Note
The ap method for Applicatives may be derived from the minimal complete definition of Monad and Functor; see below for more information.
+

Laws

+

To simplify writing the laws, we use the comparison between functions. For two functions f and g, we define

f == g if and only if f(x) == g(x) for all x

With the usual composition of functions, we are given two functions \( f : A \to B \) and \( g : B \to C \), and we must produce a new function \( compose(g, f) : A \to C \). This composition of functions is associative, which means that

compose(h, compose(g, f)) == compose(compose(h, g), f)

Also, this composition has an identity element, which is the identity function. This simply means that

compose(f, id) == compose(id, f) == f

This is probably nothing new if you are reading the Monad laws. Now, we can observe that the above is equivalent to saying that functions with the composition operator form a Monoid, where the neutral element is the identity function.

+

Given an Applicative F, what if we wanted to compose two functions \( f : A \to F(B) \) and \( g : B \to F(C) \)? When the Applicative F is also a Monad, such functions taking normal values but returning monadic values are called monadic functions. To compose them, we obviously can't use normal function composition, since the domains and codomains of f and g do not match properly. Instead, we'll need a new operator – let's call it monadic_compose:

+\[ \mathtt{monadic\_compose} : (B \to F(C)) \times (A \to F(B)) \to (A \to F(C)) \] +

+

How could we go about implementing this function? Well, since we know F is an Applicative, the only functions we have are transform (from Functor), and lift and ap (from Applicative). Hence, the only thing we can do at this point while respecting the signatures of f and g is to set (for x of type A)

monadic_compose(g, f)(x) = transform(f(x), g)

Indeed, f(x) is of type F(B), so we can map g (which takes B's) on it. Doing so will leave us with a result of type F(F(C)), but what we wanted was a result of type F(C) to respect the signature of monadic_compose. If we had a joker of type \( F(F(C)) \to F(C) \), we could simply set

monadic_compose(g, f)(x) = joker(transform(f(x), g))

and we would be happy. It turns out that flatten is precisely this joker. Now, we'll want our joker to satisfy some properties to make sure this composition is associative, just like our normal composition was. These properties are slightly cumbersome to specify, so we won't do it here. Also, we'll need some kind of neutral element for the composition. This neutral element can't be the usual identity function, because it does not have the right type: our neutral element needs to be a function of type \( X \to F(X) \) but the identity function has type \( X \to X \). It is now the right time to observe that lift from Applicative has exactly the right signature, and so we'll take this for our neutral element.

+

We are now ready to formulate the Monad laws using this composition operator. For a Monad M and functions \( f : A \to M(B) \), \( g : B \to M(C) \) and \( h : C \to M(D) \), the following must be satisfied:

// associativity
// right identity
monadic_compose(f, lift<M(A)>) == f
// left identity
monadic_compose(lift<M(B)>, f) == f

which is to say that M along with monadic composition is a Monoid where the neutral element is lift.

+

Refined concepts

+
    +
  1. Functor
  2. +
  3. Applicative (free implementation of ap)
    +When the minimal complete definition for Monad and Functor are both satisfied, it is possible to implement ap by setting
    ap(fs, xs) = chain(fs, [](auto f) {
    return transform(xs, f);
    })
  4. +
+

Concrete models

+

hana::lazy, hana::optional, hana::tuple

+ + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::chain
 Feed a monadic value into a monadic computation.Given a monadic value and a monadic function, chain feeds the monadic value into the function, thus performing some Monad-specific effects, and returns the result. An implementation of chain must satisfy. More...
 
constexpr auto boost::hana::flatten
 Collapse two levels of monadic structure into a single level.Given a monadic value wrapped into two levels of monad, flatten removes one such level. An implementation of flatten must satisfy. More...
 
constexpr auto boost::hana::monadic_compose
 Composition of monadic functions.Given two monadic functions f and g, monadic_compose returns a new function equivalent to the composition of f with g, except the result of g is chained into f instead of simply passed to it, as with normal composition. monadic_compose satisfies. More...
 
template<typename M >
constexpr auto boost::hana::tap
 Tap inside a monadic chain.Given a function f, tap<M> returns a new function which performs f on its argument and then returns the argument lifted in the M Monad. Combined with the property that chain(m, lift<M>) == m, this provides a way of executing an action inside a monadic chain without influencing its overall result. This is useful to e.g. insert debug statements or perform actions that are not tied to the chain but that need to be executed inside of it. More...
 
constexpr auto boost::hana::then
 Sequentially compose two monadic actions, discarding any value produced by the first but not its effects. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::chain
+
+ +

#include <boost/hana/fwd/chain.hpp>

+Initial value:
= [](auto&& xs, auto&& f) -> decltype(auto) {
return tag-dispatched;
}
+

Feed a monadic value into a monadic computation.Given a monadic value and a monadic function, chain feeds the monadic value into the function, thus performing some Monad-specific effects, and returns the result. An implementation of chain must satisfy.

+
chain(xs, f) == flatten(transform(xs, f))

Signature

+

For a monad M, given a monadic value of type M(A) and a monadic function \( f : A \to M(B) \), chain has the signature \( \mathtt{chain} : M(A) \times (A \to M(B)) \to M(B) \).

+
Parameters
+ + + +
xsA monadic value to be fed to the function f.
fA function taking a normal value in the xs structure, and returning a monadic value. This function is called as f(x), where x is an element of the structure xs.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto deref = [](auto x) -> decltype(*x) {
return *x;
};
BOOST_HANA_CONSTEXPR_LAMBDA auto age = [](auto x) -> decltype(x.age) {
return x.age;
};
BOOST_HANA_CONSTEXPR_LAMBDA auto f = [](auto x) {
return hana::chain(hana::sfinae(deref)(x), hana::sfinae(age));
};
struct Person {
unsigned int age;
// ...
};
int main() {
Person john{30};
// Can't dereference a non-pointer.
BOOST_HANA_CONSTANT_CHECK(f(john) == hana::nothing);
// `int` has no member named `age`.
BOOST_HANA_CONSTANT_CHECK(f(1) == hana::nothing);
// All is good.
BOOST_HANA_CONSTEXPR_CHECK(f(&john) == hana::just(30u));
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::flatten
+
+ +

#include <boost/hana/fwd/flatten.hpp>

+Initial value:
= [](auto&& xs) {
return tag-dispatched;
}
+

Collapse two levels of monadic structure into a single level.Given a monadic value wrapped into two levels of monad, flatten removes one such level. An implementation of flatten must satisfy.

+
flatten(xs) == chain(xs, id)

For Sequences, this simply takes a Sequence of Sequences, and returns a (non-recursively) flattened Sequence.

+

Signature

+

For a Monad M, the signature of flatten is \( \mathtt{flatten} : M(M(T)) \to M(T) \)

+
Parameters
+ + +
xsA value with two levels of monadic structure, which should be collapsed into a single level of structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::flatten(hana::make_tuple(hana::make_tuple(1, 2, 3),
hana::make_tuple(4, 5),
hana::make_tuple(6, 7, 8, 9)))
==
hana::make_tuple(1, 2, 3, 4, 5, 6, 7, 8, 9)
, "");
BOOST_HANA_CONSTANT_CHECK(hana::flatten(hana::nothing) == hana::nothing);
static_assert(hana::flatten(hana::just(hana::just(1))) == hana::just(1), "");
BOOST_HANA_CONSTANT_CHECK(hana::flatten(hana::just(hana::nothing)) == hana::nothing);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::monadic_compose
+
+ +

#include <boost/hana/fwd/monadic_compose.hpp>

+Initial value:
= [](auto&& f, auto&& g) {
return [perfect-capture](auto&& x) -> decltype(auto) {
return hana::chain(forwarded(g)(forwarded(x)), forwarded(f));
};
}
constexpr auto chain
Feed a monadic value into a monadic computation.Given a monadic value and a monadic function...
Definition: chain.hpp:51
+
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Composition of monadic functions.Given two monadic functions f and g, monadic_compose returns a new function equivalent to the composition of f with g, except the result of g is chained into f instead of simply passed to it, as with normal composition. monadic_compose satisfies.

+
monadic_compose(f, g)(x) == chain(g(x), f)
Note
Unlike compose, monadic_compose does not generalize nicely to arities higher than one. Hence, only unary functions may be used with monadic_compose.
+

Signature

+

Given a Monad M and two functions \( f : B \to M(C) \) and \( g : A \to M(B) \), the signature is \( \mathtt{monadic\_compose} : (B \to M(C)) \times (A \to M(B)) \to (A \to M(C)) \).

+
Parameters
+ + + +
fA monadic function with signature \( B \to M(C) \).
gA monadic function with signature \( A \to M(B) \).
+
+
+
Note
This method is not tag-dispatched, so it can't be customized directly.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto block = [](auto ...types) {
return [=](auto x) {
return hana::if_(hana::contains(hana::make_tuple(types...), hana::typeid_(x)),
hana::nothing,
hana::just(x)
);
};
};
BOOST_HANA_CONSTEXPR_LAMBDA auto f = block(hana::type_c<double>);
BOOST_HANA_CONSTEXPR_LAMBDA auto g = block(hana::type_c<int>);
BOOST_HANA_CONSTEXPR_LAMBDA auto h = hana::monadic_compose(g, f);
BOOST_HANA_CONSTANT_CHECK(h(1) == hana::nothing); // fails inside g; 1 has type int
BOOST_HANA_CONSTANT_CHECK(h(1.2) == hana::nothing); // fails inside f; 1.2 has type double
BOOST_HANA_CONSTEXPR_CHECK(h('x') == hana::just('x')); // ok; 'x' has type char
}
+
+
+ +
+
+
+template<typename M >
+ + + + +
constexpr auto boost::hana::tap
+
+ +

#include <boost/hana/fwd/tap.hpp>

+Initial value:
= [](auto&& f) {
return tag-dispatched;
}
+

Tap inside a monadic chain.Given a function f, tap<M> returns a new function which performs f on its argument and then returns the argument lifted in the M Monad. Combined with the property that chain(m, lift<M>) == m, this provides a way of executing an action inside a monadic chain without influencing its overall result. This is useful to e.g. insert debug statements or perform actions that are not tied to the chain but that need to be executed inside of it.

+
Note
Since C++ is not a pure language, it is possible to perform side effects inside the f function. Actually, side effects are the only reason why one might want to use tap. However, one should not rely on the side effects being done in any specific order.
+
Template Parameters
+ + +
MThe tag (a Monad) of the monads in the tapped monadic chain.
+
+
+
Parameters
+ + +
fA function to be executed inside a monadic chain. It will be called as f(x), where x is a value inside the previous monad in the chain. The result of f is always discarded.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <set>
namespace hana = boost::hana;
int main() {
// We use a sorted container because the order in which the functions
// are called is unspecified.
std::set<int> before, after;
auto xs = hana::make_tuple(1, 2, 3)
| hana::tap<hana::tuple_tag>([&](int x) { before.insert(x); })
| [](auto x) { return hana::make_tuple(x, -x); }
| hana::tap<hana::tuple_tag>([&](int x) { after.insert(x); });
BOOST_HANA_RUNTIME_CHECK(before == std::set<int>{1, 2, 3});
BOOST_HANA_RUNTIME_CHECK(after == std::set<int>{1, -1, 2, -2, 3, -3});
BOOST_HANA_RUNTIME_CHECK(xs == hana::make_tuple(1, -1, 2, -2, 3, -3));
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::then
+
+ +

#include <boost/hana/fwd/then.hpp>

+Initial value:
= [](auto&& before, auto&& xs) -> decltype(auto) {
return tag-dispatched;
}
+

Sequentially compose two monadic actions, discarding any value produced by the first but not its effects.

+
Parameters
+ + + +
beforeThe first Monad in the monadic composition chain. The result of this monad is ignored, but its effects are combined with that of the second monad.
xsThe second Monad in the monadic composition chain.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
struct undefined { };
static_assert(
hana::then(hana::make_tuple(undefined{}, undefined{}), hana::make_tuple(1, 2, 3))
==
hana::make_tuple(
1, 2, 3,
1, 2, 3
)
, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Monad.js b/boost_1_63_0/libs/hana/doc/html/group__group-Monad.js new file mode 100644 index 0000000..4de3503 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Monad.js @@ -0,0 +1,8 @@ +var group__group_Monad = +[ + [ "chain", "group__group-Monad.html#ga05fdc2f887cb9967357487a432ace98b", null ], + [ "flatten", "group__group-Monad.html#gaa5fec6fb418de5da3ecb500fd6cc54dd", null ], + [ "monadic_compose", "group__group-Monad.html#gaec3fe26c7378fd3057af83e03bd9b104", null ], + [ "tap", "group__group-Monad.html#ga5e0735de01a24f681c55aedfeb6d13bf", null ], + [ "then", "group__group-Monad.html#gaaddd3789de43cf989babb10cdc0b447a", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.html b/boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.html new file mode 100644 index 0000000..7b3323f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.html @@ -0,0 +1,508 @@ + + + + + + + + + +Boost.Hana: MonadPlus + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MonadPlus
+
+
+

Description

+

The MonadPlus concept represents Monads with a monoidal structure.

+

Intuitively, whereas a Monad can be seen as some kind of container or context, a MonadPlus can be seen as a container or a context that can be concatenated with other containers or contexts. There must also be an identity element for this combining operation. For example, a tuple is a MonadPlus, because tuples can be concatenated and the empty tuple would act as an identity for concatenation. How is this different from a Monad which is also a Monoid? The answer is that the monoidal structure on a MonadPlus must not depend of the contents of the structure; it must not require the contents to be a Monoid in order to work.

+

While sequences are not the only possible model for MonadPlus, the method names used here refer to the MonadPlus of sequences under concatenation. Several useful functions generalizing operations on sequences are included with this concept, like append, prepend and filter.

+
Note
This documentation does not go into much details about the nature of the MonadPlus concept. However, there is a nice Haskell-oriented WikiBook going into further details.
+

Minimal complete definition

+

concat and empty

+

Laws

+

First, a MonadPlus is required to have a monoidal structure. Hence, it is no surprise that for any MonadPlus M, we require M(T) to be a valid monoid. However, we do not enforce that M(T) actually models the Monoid concept provided by Hana. Further, for all objects a, b, c of data type M(T),

// identity
concat(empty<M(T)>(), a) == a
concat(a, empty<M(T)>()) == a
// associativity
concat(a, concat(b, c)) == concat(concat(a, b), c)

Secondly, a MonadPlus is also required to obey the following laws, which represent the fact that empty<M(T)>() must be some kind of absorbing element for the chain operation. For all objects a of data type M(T) and functions \( f : T \to M(U) \),

chain(empty<M(T)>(), f) == empty<M(U)>()
chain(a, always(empty<M(T)>())) == empty<M(U)>()

Refined concepts

+

Functor, Applicative and Monad

+

Concrete models

+

hana::optional, hana::tuple

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::append
 Append an element to a monadic structure.Given an element x and a monadic structure xs, append returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the right) with xs. In other words,. More...
 
constexpr auto boost::hana::concat
 Combine two monadic structures together.Given two monadic structures, concat combines them together and returns a new monadic structure. The exact definition of concat will depend on the exact model of MonadPlus at hand, but for sequences it corresponds intuitively to simple concatenation. More...
 
constexpr auto boost::hana::cycle
 Combine a monadic structure with itself n times.Given a monadic structure xs and a non-negative number n, cycle returns a new monadic structure which is the result of combining xs with itself n times using the concat operation. In other words,. More...
 
template<typename M >
constexpr auto boost::hana::empty
 Identity of the monadic combination concat.

Signature

+Given a MonadPlus M, the signature is \( \mathtt{empty}_M : \emptyset \to M(T) \). More...
 
constexpr auto boost::hana::filter
 Filter a monadic structure using a custom predicate.Given a monadic structure and a predicate, filter returns a new monadic structure containing only those elements that satisfy the predicate. This is a generalization of the usual filter function for sequences; it works for any MonadPlus. Intuitively, filter is somewhat equivalent to: More...
 
constexpr auto boost::hana::prefix
 Inserts a value before each element of a monadic structure.Given a monadic structure xs and a value z called the prefix, prefix returns a new monadic structure. prefix satisfies. More...
 
constexpr auto boost::hana::prepend
 Prepend an element to a monadic structure.Given a monadic structure xs and an element x, prepend returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the left) with xs. In other words,. More...
 
constexpr auto boost::hana::remove
 Remove all the elements of a monadic structure that are equal to some value.Given a monadic structure xs and a value, remove returns a new monadic structure equal to xs without all its elements that are equal to the given value. remove is equivalent to remove_if with the equal.to(value) predicate, i.e. More...
 
constexpr auto boost::hana::remove_if
 Remove all the elements of a monadic structure that satisfy some predicate.Given a monadic structure xs and a unary predicate, remove_if returns a new monadic structure equal to xs without all its elements that satisfy the predicate. This is equivalent to filter with a negated predicate, i.e. More...
 
template<typename M >
constexpr auto boost::hana::replicate
 Create a monadic structure by combining a lifted value with itself n times.Given a value x, a non-negative IntegralConstant n and the tag of a monadic structure M, replicate creates a new monadic structure which is the result of combining x with itself n times inside the monadic structure. In other words, replicate simply lifts x into the monadic structure, and then combines that with itself n times: More...
 
constexpr auto boost::hana::suffix
 Inserts a value after each element of a monadic structure.Given a monadic structure xs and a value z (called the suffix), suffix returns a new monadic structure such that. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::append
+
+ +

#include <boost/hana/fwd/append.hpp>

+Initial value:
= [](auto&& xs, auto&& x) {
return tag-dispatched;
}
+

Append an element to a monadic structure.Given an element x and a monadic structure xs, append returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the right) with xs. In other words,.

+
append(xs, x) == concat(xs, lift<Xs>(x))

where Xs is the tag of xs. For sequences, this has the intuitive behavior of simply appending an element to the end of the sequence, hence the name.

+
+

Rationale for not calling this push_back

+

See the rationale for using prepend instead of push_front.

+
+

Signature

+

Given a MonadPlus M, the signature is \( \mathtt{append} : M(T) \times T \to M(T) \).

+
Parameters
+ + + +
xsA monadic structure that will be combined to the left of the element.
xAn element to combine to the right of the monadic structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::append(hana::make_tuple(), 1) == hana::make_tuple(1), "");
static_assert(hana::append(hana::make_tuple(1, '2'), 3.3) == hana::make_tuple(1, '2', 3.3), "");
static_assert(hana::append(hana::append(hana::append(hana::make_tuple(), 1), '2'), 3.3) == hana::make_tuple(1, '2', 3.3), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::concat
+
+ +

#include <boost/hana/fwd/concat.hpp>

+Initial value:
= [](auto&& xs, auto&& ys) {
return tag-dispatched;
}
+

Combine two monadic structures together.Given two monadic structures, concat combines them together and returns a new monadic structure. The exact definition of concat will depend on the exact model of MonadPlus at hand, but for sequences it corresponds intuitively to simple concatenation.

+

Also note that combination is not required to be commutative. In other words, there is no requirement that

concat(xs, ys) == concat(ys, xs)

and indeed it does not hold in general.

+

Signature

+

Given a MonadPlus M, the signature of concat is \( \mathtt{concat} : M(T) \times M(T) \to M(T) \).

+
Parameters
+ + +
xs,ysTwo monadic structures to combine together.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
using namespace hana::literals;
static_assert(
hana::concat(hana::make_tuple(1, '2'), hana::make_tuple(3.3, 4_c))
==
hana::make_tuple(1, '2', 3.3, 4_c)
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::cycle
+
+ +

#include <boost/hana/fwd/cycle.hpp>

+Initial value:
= [](auto&& xs, auto const& n) {
return tag-dispatched;
}
+

Combine a monadic structure with itself n times.Given a monadic structure xs and a non-negative number n, cycle returns a new monadic structure which is the result of combining xs with itself n times using the concat operation. In other words,.

+
cycle(xs, n) == concat(xs, concat(xs, ... concat(xs, xs)))
// ^^^^^ n times total

Also note that since concat is required to be associative, we could also have written

cycle(xs, n) == concat(concat(... concat(xs, xs), xs), xs)
// ^^^^^ n times total

If n is zero, then the identity of concat, empty, is returned. In the case of sequences, this boils down to returning a sequence containing n copies of itself; for other models it might differ.

+

Signature

+

Given an IntegralConstant C and a MonadPlus M, the signature is \( \mathrm{cycle} : M(T) \times C \to M(T) \).

+
Parameters
+ + + +
xsA monadic structure to combine with itself a certain number of times.
nA non-negative IntegralConstant representing the number of times to combine the monadic structure with itself. If n is zero, cycle returns empty.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::cycle(hana::make_tuple('x', 'y'), hana::size_c<2>) == hana::make_tuple('x', 'y', 'x', 'y'), "");
int main() { }
+
+
+ +
+
+
+template<typename M >
+ + + + +
constexpr auto boost::hana::empty
+
+ +

#include <boost/hana/fwd/empty.hpp>

+Initial value:
= []() {
return tag-dispatched;
}
+

Identity of the monadic combination concat.

Signature

+Given a MonadPlus M, the signature is \( \mathtt{empty}_M : \emptyset \to M(T) \).

+
Template Parameters
+ + +
MThe tag of the monadic structure to return. This must be a model of the MonadPlus concept.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::empty<hana::tuple_tag>() == hana::make_tuple());
BOOST_HANA_CONSTANT_CHECK(hana::empty<hana::optional_tag>() == hana::nothing);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::filter
+
+ +

#include <boost/hana/fwd/filter.hpp>

+Initial value:
= [](auto&& xs, auto&& pred) {
return tag-dispatched;
}
+

Filter a monadic structure using a custom predicate.Given a monadic structure and a predicate, filter returns a new monadic structure containing only those elements that satisfy the predicate. This is a generalization of the usual filter function for sequences; it works for any MonadPlus. Intuitively, filter is somewhat equivalent to:

+
filter(xs, pred) == flatten(transform(xs, [](auto x) {
return pred(x) ? lift<Xs>(x) : empty<Xs>();
})

In other words, we basically turn a monadic structure containing [x1, ..., xn] into a monadic structure containing

[
pred(x1) ? [x1] : [],
pred(x2) ? [x2] : [],
...
pred(xn) ? [xn] : []
]

and we then flatten that.

+

Signature

+

Given a MonadPlus M and an IntegralConstant Bool holding a value of type bool, the signature is \( \mathtt{filter} : M(T) \times (T \to \mathtt{Bool}) \to M(T) \).

+
Parameters
+ + + +
xsThe monadic structure to filter.
predA function called as pred(x) for each element x in the monadic structure and returning whether that element should be kept in the resulting structure. In the current version of the library, the predicate has to return an IntegralConstant holding a value convertible to a bool.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
// First take the type of an object, and then tell whether it's integral
constexpr auto is_integral = hana::compose(hana::trait<std::is_integral>, hana::typeid_);
static_assert(hana::filter(hana::make_tuple(1, 2.0, 3, 4.0), is_integral) == hana::make_tuple(1, 3), "");
static_assert(hana::filter(hana::just(3), is_integral) == hana::just(3), "");
BOOST_HANA_CONSTANT_CHECK(hana::filter(hana::just(3.0), is_integral) == hana::nothing);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::prefix
+
+ +

#include <boost/hana/fwd/prefix.hpp>

+Initial value:
= [](auto&& xs, auto&& pref) {
return tag-dispatched;
}
+

Inserts a value before each element of a monadic structure.Given a monadic structure xs and a value z called the prefix, prefix returns a new monadic structure. prefix satisfies.

+
prefix(xs, z) == flatten(transform(xs, [](auto x) {
return concat(lift<M>(z), lift<M>(x));
}))

For sequences, this simply corresponds to inserting the prefix before each element of the sequence. For example, given a sequence [x1, ..., xn], prefix will return

[z, x1, z, x2, ..., z, xn]

As explained above, this can be generalized to other MonadPlus models, with various levels of interest.

+

Signature

+

Given a MonadPlus M, the signature is \( \mathrm{prefix} : M(T) \times T \to M(T) \).

+
Parameters
+ + + +
xsA monadic structure.
prefA value (the prefix) to insert before each element of a monadic structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
hana::prefix(hana::make_tuple("dog"s, "car"s, "house"s), "my"s)
==
hana::make_tuple("my", "dog", "my", "car", "my", "house")
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::prepend
+
+ +

#include <boost/hana/fwd/prepend.hpp>

+Initial value:
= [](auto&& xs, auto&& x) {
return tag-dispatched;
}
+

Prepend an element to a monadic structure.Given a monadic structure xs and an element x, prepend returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the left) with xs. In other words,.

+
prepend(xs, x) == concat(lift<Xs>(x), xs)

For sequences, this has the intuitive behavior of simply prepending an element to the beginning of the sequence, hence the name.

+
+

Rationale for not calling this push_front

+

While push_front is the de-facto name used in the standard library, it also strongly suggests mutation of the underlying sequence, which is not the case here. The author also finds that push_front suggests too strongly the sole interpretation of putting an element to the front of a sequence, whereas prepend is slightly more nuanced and bears its name better for e.g. hana::optional.

+
+

Signature

+

Given a MonadPlus M, the signature is \( \mathtt{prepend} : M(T) \times T \to M(T) \).

+
Parameters
+ + + +
xsA monadic structure that will be combined to the right of the element.
xAn element to combine to the left of the monadic structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::prepend(hana::make_tuple(), 1) == hana::make_tuple(1), "");
static_assert(hana::prepend(hana::make_tuple('2', 3.3), 1) == hana::make_tuple(1, '2', 3.3), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::remove
+
+ +

#include <boost/hana/fwd/remove.hpp>

+Initial value:
= [](auto&& xs, auto&& value) {
return tag-dispatched;
}
constexpr auto value
Return the compile-time value associated to a constant.This function returns the value associated to ...
Definition: value.hpp:54
+
+

Remove all the elements of a monadic structure that are equal to some value.Given a monadic structure xs and a value, remove returns a new monadic structure equal to xs without all its elements that are equal to the given value. remove is equivalent to remove_if with the equal.to(value) predicate, i.e.

+
remove(xs, value) == remove_if(xs, equal.to(value))

Signature

+

Given a MonadPlus M and a value of type T, the signature is \( \mathrm{remove} : M(T) \times T \to M(T) \)

+
Parameters
+ + + +
xsA monadic structure to remove some elements from.
valueA value that is compared to every element x of the structure. Elements of the structure that are equal to that value are removed from the structure. This requires every element to be Comparable with value. Furthermore, in the current version of the library, comparing value with any element of the structure must yield a compile-time Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::remove(hana::tuple_t<int, char, float>, hana::type_c<char>) == hana::tuple_t<int, float>);
BOOST_HANA_CONSTANT_CHECK(hana::remove(hana::just(hana::type_c<int>), hana::type_c<char>) == hana::just(hana::type_c<int>));
BOOST_HANA_CONSTANT_CHECK(hana::remove(hana::just(hana::type_c<int>), hana::type_c<int>) == hana::nothing);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::remove_if
+
+ +

#include <boost/hana/fwd/remove_if.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Remove all the elements of a monadic structure that satisfy some predicate.Given a monadic structure xs and a unary predicate, remove_if returns a new monadic structure equal to xs without all its elements that satisfy the predicate. This is equivalent to filter with a negated predicate, i.e.

+
remove_if(xs, predicate) == filter(xs, negated predicated)

Signature

+

Given a MonadPlus M and a predicate of type \( T \to Bool \) for some compile-time Logical Bool, the signature is \( \mathrm{remove\_if} : M(T) \times (T \to Bool) \to M(T) \)

+
Parameters
+ + + +
xsA monadic structure to remove some elements from.
predicateA unary predicate called as predicate(x), where x is an element of the structure, and returning whether x should be removed from the structure. In the current version of the library, predicate must return a compile-time Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
// First get the type of the object, and then call the trait on it.
constexpr auto is_integral = hana::compose(hana::trait<std::is_integral>, hana::typeid_);
static_assert(hana::remove_if(hana::make_tuple(1, 2.0, 3, 4.0), is_integral) == hana::make_tuple(2.0, 4.0), "");
static_assert(hana::remove_if(hana::just(3.0), is_integral) == hana::just(3.0), "");
BOOST_HANA_CONSTANT_CHECK(hana::remove_if(hana::just(3), is_integral) == hana::nothing);
int main() { }
+
+
+ +
+
+
+template<typename M >
+ + + + +
constexpr auto boost::hana::replicate
+
+ +

#include <boost/hana/fwd/replicate.hpp>

+Initial value:
= [](auto&& x, auto const& n) {
return tag-dispatched;
}
+

Create a monadic structure by combining a lifted value with itself n times.Given a value x, a non-negative IntegralConstant n and the tag of a monadic structure M, replicate creates a new monadic structure which is the result of combining x with itself n times inside the monadic structure. In other words, replicate simply lifts x into the monadic structure, and then combines that with itself n times:

+
replicate<M>(x, n) == cycle(lift<M>(x), n)

If n is zero, then the identity of the concat operation is returned. In the case of sequences, this corresponds to creating a new sequence holding n copies of x.

+

Signature

+

Given an IntegralConstant C and MonadPlus M, the signature is \( \mathtt{replicate}_M : T \times C \to M(T) \).

+
Template Parameters
+ + +
MThe tag of the returned monadic structure. It must be a model of the MonadPlus concept.
+
+
+
Parameters
+ + + +
xThe value to lift into a monadic structure and then combine with itself.
nA non-negative IntegralConstant representing the number of times to combine lift<M>(x) with itself. If n == 0, replicate returns empty<M>().
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::replicate<hana::tuple_tag>('x', hana::size_c<2>) == hana::make_tuple('x', 'x'), "");
// Of course, there can't be more than one element in an `optional`.
static_assert(hana::replicate<hana::optional_tag>('x', hana::size_c<2>) == hana::just('x'), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::suffix
+
+ +

#include <boost/hana/fwd/suffix.hpp>

+Initial value:
= [](auto&& xs, auto&& sfx) {
return tag-dispatched;
}
+

Inserts a value after each element of a monadic structure.Given a monadic structure xs and a value z (called the suffix), suffix returns a new monadic structure such that.

+
suffix(xs, z) == flatten(transform(xs, [](auto x) {
return concat(lift<M>(x), lift<M>(z));
}))

For sequences, this simply corresponds to inserting the suffix after each element of the sequence. For example, given a sequence [x1, ..., xn], suffix will return

[x1, z, x2, z, ..., xn, z]

As explained above, this can be generalized to other MonadPlus models, with various levels of interest.

+

Signature

+

Given a MonadPlus M, the signature is \( \mathtt{suffix} : M(T) \times T \to M(T) \).

+
Parameters
+ + + +
xsA monadic structure.
sfxA value (the suffix) to insert after each element of a monadic structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::suffix(hana::make_tuple(1, 2, 3, 4), 0) == hana::make_tuple(1, 0, 2, 0, 3, 0, 4, 0)
, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.js b/boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.js new file mode 100644 index 0000000..ae38b3a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-MonadPlus.js @@ -0,0 +1,14 @@ +var group__group_MonadPlus = +[ + [ "append", "group__group-MonadPlus.html#ga08624924fe05f0cfbfbd6e439db01873", null ], + [ "concat", "group__group-MonadPlus.html#ga1946e96c3b4c178c7ae8703724c29c37", null ], + [ "cycle", "group__group-MonadPlus.html#gaaf46c168f721da9effcc7336a997f5d6", null ], + [ "empty", "group__group-MonadPlus.html#gaa6be1e83ad72b9d69b43b4bada0f3a75", null ], + [ "filter", "group__group-MonadPlus.html#ga65cc6d9f522fb9e8e3b28d80ee5c822a", null ], + [ "prefix", "group__group-MonadPlus.html#ga3022fdfe454dc9bc1f79b5dfeba13b5e", null ], + [ "prepend", "group__group-MonadPlus.html#ga69afbfd4e91125e3e52fcb409135ca7c", null ], + [ "remove", "group__group-MonadPlus.html#gae3cc0d6e0d8feb3d677bd1da64da6f43", null ], + [ "remove_if", "group__group-MonadPlus.html#ga9700169a45664d50377c1be9d58accd3", null ], + [ "replicate", "group__group-MonadPlus.html#gad5f48c79d11923d6c1d70b18b7dd3f19", null ], + [ "suffix", "group__group-MonadPlus.html#ga61dab15f6ecf379121d4096fe0c8ab13", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Monoid.html b/boost_1_63_0/libs/hana/doc/html/group__group-Monoid.html new file mode 100644 index 0000000..4adcbfd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Monoid.html @@ -0,0 +1,232 @@ + + + + + + + + + +Boost.Hana: Monoid + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Monoid
+
+
+

Description

+

The Monoid concept represents data types with an associative binary operation that has an identity.

+

Specifically, a Monoid is a basic algebraic structure typically used in mathematics to construct more complex algebraic structures like Groups, Rings and so on. They are useful in several contexts, notably to define the properties of numbers in a granular way. At its core, a Monoid is a set S of objects along with a binary operation (let's say +) that is associative and that has an identity in S. There are many examples of Monoids:

    +
  • strings with concatenation and the empty string as the identity
  • +
  • integers with addition and 0 as the identity
  • +
  • integers with multiplication and 1 as the identity
  • +
  • many others...
  • +
+

As you can see with the integers, there are some sets that can be viewed as a monoid in more than one way, depending on the choice of the binary operation and identity. The method names used here refer to the monoid of integers under addition; plus is the binary operation and zero is the identity element of that operation.

+

Minimal complete definition

+

plus and zero satisfying the laws

+

Laws

+

For all objects x, y and z of a Monoid M, the following laws must be satisfied:

plus(zero<M>(), x) == x // left zero
plus(x, zero<M>()) == x // right zero
plus(x, plus(y, z)) == plus(plus(x, y), z) // associativity

Concrete models

+

hana::integral_constant

+

Free model for non-boolean arithmetic data types

+

A data type T is arithmetic if std::is_arithmetic<T>::value is true. For a non-boolean arithmetic data type T, a model of Monoid is automatically defined by setting

plus(x, y) = (x + y)
zero<T>() = static_cast<T>(0)
+

Rationale for not making bool a Monoid by default

+

First, it makes no sense whatsoever to define an additive Monoid over the bool type. Also, it could make sense to define a Monoid with logical conjunction or disjunction. However, C++ allows bools to be added, and the method names of this concept really suggest addition. In line with the principle of least surprise, no model is provided by default.

+
+

Structure-preserving functions

+

Let A and B be two Monoids. A function f : A -> B is said to be a Monoid morphism if it preserves the monoidal structure between A and B. Rigorously, for all objects x, y of data type A,

f(plus(x, y)) == plus(f(x), f(y))
f(zero<A>()) == zero<B>()

Functions with these properties interact nicely with Monoids, which is why they are given such a special treatment.

+ + + + + + + + + +

+Variables

constexpr auto boost::hana::plus
 Associative binary operation on a Monoid. More...
 
template<typename M >
constexpr auto boost::hana::zero
 Identity of plus. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::plus
+
+ +

#include <boost/hana/fwd/plus.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Associative binary operation on a Monoid.

+
Parameters
+ + +
x,yTwo objects to combine with the Monoid's binary operation.
+
+
+

Cross-type version of the method

+

The plus method is "overloaded" to handle distinct data types with certain properties. Specifically, plus is defined for distinct data types A and B such that

    +
  1. A and B share a common data type C, as determined by the common metafunction
  2. +
  3. A, B and C are all Monoids when taken individually
  4. +
  5. to<C> : A -> B and to<C> : B -> C are Monoid-embeddings, as determined by the is_embedding metafunction.
  6. +
+

The definition of plus for data types satisfying the above properties is obtained by setting

plus(x, y) = plus(to<C>(x), to<C>(y))

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::plus(hana::int_c<3>, hana::int_c<5>) == hana::int_c<8>);
static_assert(hana::plus(1, 2) == 3, "");
static_assert(hana::plus(1.5f, 2.4) == 3.9, "");
int main() { }
+
+
+ +
+
+
+template<typename M >
+ + + + +
constexpr auto boost::hana::zero
+
+ +

#include <boost/hana/fwd/zero.hpp>

+Initial value:
= []() -> decltype(auto) {
return tag-dispatched;
}
+

Identity of plus.

+
Template Parameters
+ + +
MThe tag (a Monoid) of the returned identity.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::zero<hana::integral_constant_tag<int>>() == hana::int_c<0>);
static_assert(hana::zero<long>() == 0l, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Monoid.js b/boost_1_63_0/libs/hana/doc/html/group__group-Monoid.js new file mode 100644 index 0000000..3674efc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Monoid.js @@ -0,0 +1,5 @@ +var group__group_Monoid = +[ + [ "plus", "group__group-Monoid.html#gaeb5d4a1e967e319712f9e4791948896c", null ], + [ "zero", "group__group-Monoid.html#gad459ac17b6bab8ead1cae7de0032f3c6", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Orderable.html b/boost_1_63_0/libs/hana/doc/html/group__group-Orderable.html new file mode 100644 index 0000000..38144f5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Orderable.html @@ -0,0 +1,354 @@ + + + + + + + + + +Boost.Hana: Orderable + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Orderable
+
+
+

Description

+

The Orderable concept represents totally ordered data types.

+

Intuitively, Orderable objects must define a binary predicate named less returning whether the first argument is to be considered less than the second argument. The word "total" means that distinct objects must always be ordered; if a and b are not equal, then exactly one of less(a, b) and less(b, a) must be true. This is a contrast with weaker kinds of orders that would allow some objects to be incomparable (neither less than nor greater than). Also note that a non-strict total order may always be obtained from a strict total order (and vice-versa) by setting

a <= b = !(b < a)
a < b = !(b <= a)

The non-strict version is used in the description of the laws because it makes them easier to parse for humans, but they could be formulated equivalently using the strict order.

+

Minimal complete definition

+

less

+

When less is defined, the other methods are defined from it using the same definition as mandated in the laws below.

+

Laws

+

Rigorously speaking, a total order <= on a set S is a binary predicate \( <= \;: S \times S \to bool \) such that for all a, b, c in S,

if a <= b and b <= a then a == b // Antisymmetry
if a <= b and b <= c then a <= c // Transitivity
either a <= b or b <= a // Totality

Additionally, the less, greater and greater_equal methods should have the following intuitive meanings:

a < b if and only if !(b <= a)
a > b if and only if b < a
a >= b if and only if !(a < b)

Refined concept

+
    +
  1. Comparable (free model)
    +Since Orderable requires less_equal to be a total order, a model of Comparable may always be obtained by setting
    equal(x, y) = less_equal(x, y) && less_equal(y, x)
  2. +
+

Concrete models

+

hana::integral_constant, hana::optional, hana::pair, hana::string, hana::tuple

+

Free model for LessThanComparable data types

+

Two data types T and U that model the cross-type version of the usual LessThanComparable C++ concept are automatically a model of Orderable by setting

less(x, y) = (x < y)

The cross-type version of the LessThanComparable concept is analogous to the cross-type version of the EqualityComparable concept presented in N3351, which is compatible with the usual single type definition. However, note that the LessThanComparable concept only requires < to be a strict weak ordering, which is a weaker requirement than being a total order. Hence, if less is used with objects of a LessThanComparable data type that do not define a total order, some algorithms may have an unexpected behavior. It is the author's opinion that defining operator< as a non-total order is a bad idea, but this is debatable and so the design choice of providing a model for LessThanComparable data types is open to debate. Waiting for some user input.

+

Order-preserving functions

+

Let A and B be two Orderable data types. A function \( f : A \to B\) is said to be order-preserving (also called monotone) if it preserves the structure of the Orderable concept, which can be rigorously stated as follows. For all objects x, y of data type A,

if less(x, y) then less(f(x), f(y))

Another important property is that of being order-reflecting, which can be stated as

if less(f(x), f(y)) then less(x, y)

We say that a function is an order-embedding if it is both order-preserving and order-reflecting, i.e. if

less(x, y) if and only if less(f(x), f(y))

Cross-type version of the methods

+

The comparison methods (less, less_equal, greater and greater_equal) are "overloaded" to handle distinct data types with certain properties. Specifically, they are defined for distinct data types A and B such that

    +
  1. A and B share a common data type C, as determined by the common metafunction
  2. +
  3. A, B and C are all Orderable when taken individually
  4. +
  5. \(\mathrm{to<C>} : A \to C\) and \(\mathrm{to<C>} : B \to C\) are both order-embeddings as determined by the is_embedding metafunction.
  6. +
+

The method definitions for data types satisfying the above properties are

less(x, y) = less(to<C>(x), to<C>(y))
less_equal(x, y) = less_equal(to<C>(x), to<C>(y))
greater_equal(x, y) = greater_equal(to<C>(x), to<C>(y))
greater(x, y) = greater(to<C>(x), to<C>(y))

Partial application of the methods

+

The less, greater, less_equal and greater_equal methods can be called in two different ways. First, they can be called like normal functions:

less(x, y)
greater(x, y)

However, they may also be partially applied to an argument as follows:

less.than(x)(y) == less(y, x)
greater.than(x)(y) == greater(y, x)
less_equal.than(x)(y) == less_equal(y, x)
greater_equal.than(x)(y) == greater_equal(y, x)

Take good note that the order of the arguments is reversed, so for example less.than(x)(y) is equivalent to less(y, x), not less(x, y). This is because those variants are meant to be used with higher order algorithms, where the chosen application order makes sense.

+ + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::greater
 Returns a Logical representing whether x is greater than y. More...
 
constexpr auto boost::hana::greater_equal
 Returns a Logical representing whether x is greater than or equal to y. More...
 
constexpr auto boost::hana::less
 Returns a Logical representing whether x is less than y. More...
 
constexpr auto boost::hana::less_equal
 Returns a Logical representing whether x is less than or equal to y. More...
 
constexpr auto boost::hana::max
 Returns the greatest of its arguments according to the less ordering. More...
 
constexpr auto boost::hana::min
 Returns the smallest of its arguments according to the less ordering. More...
 
constexpr auto boost::hana::ordering
 Returns a function performing less after applying a transformation to both arguments.ordering creates a total order based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent a total order. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::greater
+
+ +

#include <boost/hana/fwd/greater.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Returns a Logical representing whether x is greater than y.

+

Signature

+

Given a Logical Bool and two Orderables A and B with a common embedding, the signature is \( \mathrm{greater} : A \times B \to Bool \).

+
Parameters
+ + +
x,yTwo objects to compare.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::greater(4, 1), "");
BOOST_HANA_CONSTANT_CHECK(!hana::greater(hana::int_c<1>, hana::int_c<3>));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::greater_equal
+
+ +

#include <boost/hana/fwd/greater_equal.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Returns a Logical representing whether x is greater than or equal to y.

+

Signature

+

Given a Logical Bool and two Orderables A and B with a common embedding, the signature is \( \mathrm{greater\_equal} : A \times B \to Bool \).

+
Parameters
+ + +
x,yTwo objects to compare.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::greater_equal(4, 1), "");
static_assert(hana::greater_equal(1, 1), "");
BOOST_HANA_CONSTANT_CHECK(!hana::greater_equal(hana::int_c<1>, hana::int_c<2>));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::less
+
+ +

#include <boost/hana/fwd/less.hpp>

+Initial value:
= [](auto&& x, auto&& y) {
return tag-dispatched;
}
+

Returns a Logical representing whether x is less than y.

+

Signature

+

Given a Logical Bool and two Orderables A and B with a common embedding, the signature is \( \mathrm{less} : A \times B \to Bool \).

+
Parameters
+ + +
x,yTwo objects to compare.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::less(1, 4), "");
BOOST_HANA_CONSTANT_CHECK(!hana::less(hana::int_c<3>, hana::int_c<2>));
// less.than is syntactic sugar
static_assert(hana::all_of(hana::tuple_c<int, 1, 2, 3, 4>, hana::less.than(5)), "");
BOOST_HANA_CONSTANT_CHECK(hana::all_of(hana::tuple_c<int, 1, 2, 3, 4>, hana::less_equal.than(hana::int_c<4>)));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::less_equal
+
+ +

#include <boost/hana/fwd/less_equal.hpp>

+Initial value:
= [](auto&& x, auto&& y) {
return tag-dispatched;
}
+

Returns a Logical representing whether x is less than or equal to y.

+

Signature

+

Given a Logical Bool and two Orderables A and B with a common embedding, the signature is \( \mathrm{less\_equal} : A \times B \to Bool \).

+
Parameters
+ + +
x,yTwo objects to compare.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::less_equal(1, 4), "");
static_assert(hana::less_equal(1, 1), "");
BOOST_HANA_CONSTANT_CHECK(!hana::less_equal(hana::int_c<3>, hana::int_c<2>));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::max
+
+ +

#include <boost/hana/fwd/max.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Returns the greatest of its arguments according to the less ordering.

+
Todo:
Can't specify the signature here either. See min for details.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::max(1, 4) == 4, "");
BOOST_HANA_CONSTANT_CHECK(hana::max(hana::int_c<7>, hana::int_c<5>) == hana::int_c<7>);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::min
+
+ +

#include <boost/hana/fwd/min.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Returns the smallest of its arguments according to the less ordering.

+
Todo:
We can't specify the signature right now, because the tag of the returned object depends on whether x < y or not. If we wanted to be mathematically correct, we should probably ask that if_(cond, x, y) returns a common data type of x and y, and then the behavior of min would follow naturally. However, I'm unsure whether this is desirable because that's a big requirement.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::min(1, 4) == 1, "");
BOOST_HANA_CONSTANT_CHECK(hana::min(hana::int_c<7>, hana::int_c<5>) == hana::int_c<5>);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::ordering
+
+ +

#include <boost/hana/fwd/ordering.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& x, auto&& y) -> decltype(auto) {
return less(f(forwarded(x)), f(forwarded(y)));
};
}
constexpr auto less
Returns a Logical representing whether x is less than y.
Definition: less.hpp:37
+
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Returns a function performing less after applying a transformation to both arguments.ordering creates a total order based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent a total order.

+

Specifically, ordering is such that

ordering(f) == less ^on^ f

or, equivalently,

ordering(f)(x, y) == less(f(x), f(y))
Note
This is not a tag-dispatched method (hence it can't be customized), but just a convenience function provided with the Orderable concept.
+

Signature

+

Given a Logical Bool and an Orderable B, the signature is \( \mathrm{ordering} : (A \to B) \to (A \times A \to Bool) \).

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto sorted = hana::sort.by(hana::ordering(hana::sizeof_),
hana::tuple_t<char[3], char[1], char[2], char[15]>
);
BOOST_HANA_CONSTANT_CHECK(sorted == hana::tuple_t<char[1], char[2], char[3], char[15]>);
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Orderable.js b/boost_1_63_0/libs/hana/doc/html/group__group-Orderable.js new file mode 100644 index 0000000..f65adc5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Orderable.js @@ -0,0 +1,10 @@ +var group__group_Orderable = +[ + [ "greater", "group__group-Orderable.html#gaf9a073eafebbe514fb19dff82318f198", null ], + [ "greater_equal", "group__group-Orderable.html#ga6023631e7d0a01e16dc3fa4221fbd703", null ], + [ "less", "group__group-Orderable.html#gad510011602bdb14686f1c4ec145301c9", null ], + [ "less_equal", "group__group-Orderable.html#ga9917dd82beb67151bf5657245d37b851", null ], + [ "max", "group__group-Orderable.html#ga999eee8ca8750f9b1afa0d7a1db28030", null ], + [ "min", "group__group-Orderable.html#ga2d54f189ea6f57fb2c0d772169440c5c", null ], + [ "ordering", "group__group-Orderable.html#gaf7e94ba859710cd6ba6152e5dc18977d", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Product.html b/boost_1_63_0/libs/hana/doc/html/group__group-Product.html new file mode 100644 index 0000000..7dbbed4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Product.html @@ -0,0 +1,214 @@ + + + + + + + + + +Boost.Hana: Product + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Product
+
+
+

Description

+

Represents types that are generic containers of two elements.

+

This concept basically represents types that are like std::pair. The motivation for making such a precise concept is similar to the motivation behind the Sequence concept; there are many different implementations of std::pair in different libraries, and we would like to manipulate any of them generically.

+

Since a Product is basically a pair, it is unsurprising that the operations provided by this concept are getting the first and second element of a pair, creating a pair from two elements and other simmilar operations.

+
Note
Mathematically, this concept represents types that are category theoretical products. This is also where the name comes from.
+

Minimal complete definition

+

first, second and make

+

first and second must obviously return the first and the second element of the pair, respectively. make must take two arguments x and y representing the first and the second element of the pair, and return a pair p such that first(p) == x and second(p) == y.

// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::first(hana::make<hana::pair_tag>(1, 'x')) == 1, "");
static_assert(hana::second(hana::make<hana::pair_tag>(1, 'x')) == 'x', "");
int main() { }

Laws

+

For a model P of Product, the following laws must be satisfied. For every data types X and Y, there must be a unique function \( \mathtt{make} : X \times Y \to P \) such that for every x, y,

x == first(make<P>(x, y))
y == second(make<P>(x, y))
Note
This law is less general than the universal property typically used to define category theoretical products, but it is vastly enough for what we need.
+

This is basically saying that a Product must be the most general object able to contain a pair of objects (P1, P2), but nothing more. Since the categorical product is defined by a universal property, all the models of this concept are isomorphic, and the isomorphism is unique. In other words, there is one and only one way to convert one Product to another.

+

Another property that must be satisfied by first and second is that of move-independence, which ensures that we can optimally decompose a Product into its two members without making redundant copies.

+

Refined concepts

+
    +
  1. Comparable (free model)
    +Two products x and y are equal iff they are equal element-wise, by comparing the first element before the second element.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <string>
    namespace hana = boost::hana;
    using namespace std::literals;
    int main() {
    BOOST_HANA_RUNTIME_CHECK(hana::make_pair(1, "234"s) == hana::make_pair(1ll, "234"s));
    static_assert(hana::make_pair('x', 2) != hana::make_pair('y', 2), "");
    }
  2. +
  3. Orderable (free model)
    +Products are ordered using a lexicographical ordering as-if they were 2-element tuples.
  4. +
  5. Foldable (free model)
    +Folding a Product p is equivalent to folding a list containing first(p) and second(p), in that order.
  6. +
+

Concrete models

+

hana::pair

+ + + + + + + + +

+Variables

constexpr auto boost::hana::first
 Returns the first element of a pair.Note that if the Product actually stores the elements it contains, hana::first is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the first element, where the type of reference must match that of the pair passed to first. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped. More...
 
constexpr auto boost::hana::second
 Returns the second element of a pair.Note that if the Product actually stores the elements it contains, hana::second is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the second element, where the type of reference must match that of the pair passed to second. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::first
+
+ +

#include <boost/hana/fwd/first.hpp>

+Initial value:
= [](auto&& product) -> decltype(auto) {
return tag-dispatched;
}
constexpr auto product
Compute the product of the numbers of a structure.More generally, product will take any foldable stru...
Definition: product.hpp:57
+
+

Returns the first element of a pair.Note that if the Product actually stores the elements it contains, hana::first is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the first element, where the type of reference must match that of the pair passed to first. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::first(hana::make_pair(1, 'x')) == 1, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::second
+
+ +

#include <boost/hana/fwd/second.hpp>

+Initial value:
= [](auto&& product) -> decltype(auto) {
return tag-dispatched;
}
constexpr auto product
Compute the product of the numbers of a structure.More generally, product will take any foldable stru...
Definition: product.hpp:57
+
+

Returns the second element of a pair.Note that if the Product actually stores the elements it contains, hana::second is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the second element, where the type of reference must match that of the pair passed to second. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::second(hana::make_pair(1, 'x')) == 'x', "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Product.js b/boost_1_63_0/libs/hana/doc/html/group__group-Product.js new file mode 100644 index 0000000..055d561 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Product.js @@ -0,0 +1,5 @@ +var group__group_Product = +[ + [ "first", "group__group-Product.html#ga34bbf4281de06dc3540441e8b2bd24f4", null ], + [ "second", "group__group-Product.html#ga7bb979d59ffc3ab862cb7d9dc7730077", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Ring.html b/boost_1_63_0/libs/hana/doc/html/group__group-Ring.html new file mode 100644 index 0000000..02b4689 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Ring.html @@ -0,0 +1,253 @@ + + + + + + + + + +Boost.Hana: Ring + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+

Description

+

The Ring concept represents Groups that also form a Monoid under a second binary operation that distributes over the first.

+

A Ring is an algebraic structure built on top of a Group which requires a monoidal structure with respect to a second binary operation. This second binary operation must distribute over the first one. Specifically, a Ring is a triple (S, +, *) such that (S, +) is a Group, (S, *) is a Monoid and * distributes over +, i.e.

x * (y + z) == (x * y) + (x * z)

The second binary operation is often written * with its identity written 1, in reference to the Ring of integers under multiplication. The method names used here refer to this exact ring.

+

Minimal complete definintion

+

one and mult satisfying the laws

+

Laws

+

For all objects x, y, z of a Ring R, the following laws must be satisfied:

mult(x, mult(y, z)) == mult(mult(x, y), z) // associativity
mult(x, one<R>()) == x // right identity
mult(one<R>(), x) == x // left identity
mult(x, plus(y, z)) == plus(mult(x, y), mult(x, z)) // distributivity

Refined concepts

+

Monoid, Group

+

Concrete models

+

hana::integral_constant

+

Free model for non-boolean arithmetic data types

+

A data type T is arithmetic if std::is_arithmetic<T>::value is true. For a non-boolean arithmetic data type T, a model of Ring is automatically defined by using the provided Group model and setting

mult(x, y) = (x * y)
one<T>() = static_cast<T>(1)
Note
The rationale for not providing a Ring model for bool is the same as for not providing Monoid and Group models.
+

Structure-preserving functions

+

Let A and B be two Rings. A function f : A -> B is said to be a Ring morphism if it preserves the ring structure between A and B. Rigorously, for all objects x, y of data type A,

f(plus(x, y)) == plus(f(x), f(y))
f(mult(x, y)) == mult(f(x), f(y))
f(one<A>()) == one<B>()

Because of the Ring structure, it is easy to prove that the following will then also be satisfied:

f(zero<A>()) == zero<B>()
f(negate(x)) == negate(f(x))

which is to say that f will then also be a Group morphism. Functions with these properties interact nicely with Rings, which is why they are given such a special treatment.

+ + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::mult
 Associative operation of a Ring. More...
 
template<typename R >
constexpr auto boost::hana::one
 Identity of the Ring multiplication. More...
 
constexpr auto boost::hana::power
 Elevate a ring element to its nth power.Specifically, power(x, n), is equivalent to multiplying x with itself n times using the Ring's multiplication. If the power is equal to zero, the Ring's identity (one) is returned. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::mult
+
+ +

#include <boost/hana/fwd/mult.hpp>

+Initial value:
= [](auto&& x, auto&& y) -> decltype(auto) {
return tag-dispatched;
}
+

Associative operation of a Ring.

+
Parameters
+ + +
x,yTwo Ring elements to combine with the Ring binary operation.
+
+
+

Cross-type version of the method

+

The mult method is "overloaded" to handle distinct data types with certain properties. Specifically, mult is defined for distinct data types A and B such that

    +
  1. A and B share a common data type C, as determined by the common metafunction
  2. +
  3. A, B and C are all Rings when taken individually
  4. +
  5. to<C> : A -> B and to<C> : B -> C are Ring-embeddings, as determined by the is_embedding metafunction.
  6. +
+

The definition of mult for data types satisfying the above properties is obtained by setting

mult(x, y) = mult(to<C>(x), to<C>(y))

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::mult(hana::int_c<3>, hana::int_c<5>) == hana::int_c<15>);
static_assert(hana::mult(4, 2) == 8, "");
int main() { }
+
+
+ +
+
+
+template<typename R >
+ + + + +
constexpr auto boost::hana::one
+
+ +

#include <boost/hana/fwd/one.hpp>

+Initial value:
= []() -> decltype(auto) {
return tag-dispatched;
}
+

Identity of the Ring multiplication.

+
Template Parameters
+ + +
RThe tag (must be a model of Ring) of the returned identity.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::one<hana::integral_constant_tag<int>>() == hana::int_c<1>);
static_assert(hana::one<long>() == 1l, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::power
+
+ +

#include <boost/hana/fwd/power.hpp>

+Initial value:
= [](auto&& x, auto const& n) -> decltype(auto) {
return tag-dispatched;
}
+

Elevate a ring element to its nth power.Specifically, power(x, n), is equivalent to multiplying x with itself n times using the Ring's multiplication. If the power is equal to zero, the Ring's identity (one) is returned.

+
Parameters
+ + + +
xA Ring element that is elevated to its nth power.
nA non-negative IntegralConstant representing the power to which x is elevated.
+
+
+
Note
Only the tag of x is used for tag-dispatching.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::power(hana::int_c<3>, hana::int_c<2>) == hana::int_c<3 * 3>);
static_assert(hana::power(2, hana::int_c<4>) == 16, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Ring.js b/boost_1_63_0/libs/hana/doc/html/group__group-Ring.js new file mode 100644 index 0000000..9872914 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Ring.js @@ -0,0 +1,6 @@ +var group__group_Ring = +[ + [ "mult", "group__group-Ring.html#ga052d31c269a6a438cc8004c9ad1efdfa", null ], + [ "one", "group__group-Ring.html#gadea531feb3b0a1c5c3d777f7ab45e932", null ], + [ "power", "group__group-Ring.html#ga0ee3cff9ec646bcc7217f00ee6099b72", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Searchable.html b/boost_1_63_0/libs/hana/doc/html/group__group-Searchable.html new file mode 100644 index 0000000..1ad60b4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Searchable.html @@ -0,0 +1,498 @@ + + + + + + + + + +Boost.Hana: Searchable + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Searchable
+
+
+

Description

+

The Searchable concept represents structures that can be searched.

+

Intuitively, a Searchable is any structure, finite or infinite, containing elements that can be searched using a predicate. Sometimes, Searchables will associate keys to values; one can search for a key with a predicate, and the value associated to it is returned. This gives rise to map-like data structures. Other times, the elements of the structure that are searched (i.e. those to which the predicate is applied) are the same that are returned, which gives rise to set-like data structures. In general, we will refer to the keys of a Searchable structure as those elements that are used for searching, and to the values of a Searchable as those elements that are returned when a search is successful. As was explained, there is no requirement that both notions differ, and it is often useful to have keys and values coincide (think about std::set).

+

Some methods like any_of, all_of and none_of allow simple queries to be performed on the keys of the structure, while other methods like find and find_if make it possible to find the value associated to a key. The most specific method should always be used if one cares about performance, because it is usually the case that heavy optimizations can be performed in more specific methods. For example, an associative data structure implemented as a hash table will be much faster to access using find than find_if, because in the second case it will have to do a linear search through all the entries. Similarly, using contains will likely be much faster than any_of with an equivalent predicate.

+
+

Insight
+In a lazy evaluation context, any Foldable can also become a model of Searchable because we can search lazily through the structure with fold_right. However, in the context of C++, some Searchables can not be folded; think for example of an infinite set.

+
+

Minimal complete definition

+

find_if and any_of

+

When find_if and any_of are provided, the other functions are implemented according to the laws explained below.

+
Note
We could implement any_of(xs, pred) by checking whether find_if(xs, pred) is an empty optional or not, and then reduce the minimal complete definition to find_if. However, this is not done because that implementation requires the predicate of any_of to return a compile-time Logical, which is more restrictive than what we have right now.
+

Laws

+

In order for the semantics of the methods to be consistent, some properties must be satisfied by any model of the Searchable concept. Rigorously, for any Searchables xs and ys and any predicate p, the following laws should be satisfied:

any_of(xs, p) <=> !all_of(xs, negated p)
<=> !none_of(xs, p)
contains(xs, x) <=> any_of(xs, equal.to(x))
find(xs, x) == find_if(xs, equal.to(x))
find_if(xs, always(false_)) == nothing
is_subset(xs, ys) <=> all_of(xs, [](auto x) { return contains(ys, x); })
is_disjoint(xs, ys) <=> none_of(xs, [](auto x) { return contains(ys, x); })

Additionally, if all the keys of the Searchable are Logicals, the following laws should be satisfied:

any(xs) <=> any_of(xs, id)
all(xs) <=> all_of(xs, id)
none(xs) <=> none_of(xs, id)

Concrete models

+

hana::map, hana::optional, hana::range, hana::set, hana::string, hana::tuple

+

Free model for builtin arrays

+

Builtin arrays whose size is known can be searched as-if they were homogeneous tuples. However, since arrays can only hold objects of a single type and the predicate to find_if must return a compile-time Logical, the find_if method is fairly useless. For similar reasons, the find method is also fairly useless. This model is provided mainly because of the any_of method & friends, which are both useful and compile-time efficient.

+

Structure preserving functions

+

Given two Searchables S1 and S2, a function \( f : S_1(X) \to S_2(X) \) is said to preserve the Searchable structure if for all xs of data type S1(X) and predicates \( \mathtt{pred} : X \to Bool \) (for a Logical Bool),

any_of(xs, pred) if and only if any_of(f(xs), pred)
find_if(xs, pred) == find_if(f(xs), pred)

This is really just a generalization of the following, more intuitive requirements. For all xs of data type S1(X) and x of data type X,

x ^in^ xs if and only if x ^in^ f(xs)
find(xs, x) == find(f(xs), x)

These requirements can be understood as saying that f does not change the content of xs, although it may reorder elements. As usual, such a structure-preserving transformation is said to be an embedding if it is also injective, i.e. if it is a lossless transformation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::all
 Returns whether all the keys of the structure are true-valued.The keys of the structure must be Logicals. If the structure is not finite, a false-valued key must appear at a finite "index" in order for this method to finish. More...
 
constexpr auto boost::hana::all_of
 Returns whether all the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a false- valued Logical after looking at a finite number of keys for this method to finish. More...
 
constexpr auto boost::hana::any
 Returns whether any key of the structure is true-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish. More...
 
constexpr auto boost::hana::any_of
 Returns whether any key of the structure satisfies the predicate.If the structure is not finite, predicate has to be satisfied after looking at a finite number of keys for this method to finish. More...
 
constexpr auto boost::hana::at_key
 Returns the value associated to the given key in a structure, or fail.Given a key and a Searchable structure, at_key returns the first value whose key is equal to the given key, and fails at compile-time if no such key exists. This requires the key to be compile-time Comparable, exactly like for find. at_key satisfies the following: More...
 
constexpr auto boost::hana::contains
 Returns whether the key occurs in the structure.Given a Searchable structure xs and a key, contains returns whether any of the keys of the structure is equal to the given key. If the structure is not finite, an equal key has to appear at a finite position in the structure for this method to finish. For convenience, contains can also be applied in infix notation. More...
 
constexpr auto boost::hana::in = hana::infix(hana::flip(hana::contains))
 Return whether the key occurs in the structure.Specifically, this is equivalent to contains, except in takes its arguments in reverse order. Like contains, in can also be applied in infix notation for increased expressiveness. This function is not a method that can be overriden; it is just a convenience function provided with the concept. More...
 
constexpr auto boost::hana::find
 Finds the value associated to the given key in a structure.Given a key and a Searchable structure, find returns the just the first value whose key is equal to the given key, or nothing if there is no such key. Comparison is done with equal. find satisfies the following: More...
 
constexpr auto boost::hana::find_if
 Finds the value associated to the first key satisfying a predicate.Given a Searchable structure xs and a predicate pred, find_if(xs, pred) returns just the first element whose key satisfies the predicate, or nothing if there is no such element. More...
 
constexpr auto boost::hana::is_disjoint
 Returns whether two Searchables are disjoint.Given two Searchables xs and ys, is_disjoint returns a Logical representing whether the keys in xs are disjoint from the keys in ys, i.e. whether both structures have no keys in common. More...
 
constexpr auto boost::hana::is_subset
 Returns whether a structure contains a subset of the keys of another structure.Given two Searchables xs and ys, is_subset returns a Logical representing whether xs is a subset of ys. In other words, it returns whether all the keys of xs are also present in ys. This method does not return whether xs is a strict subset of ys; if xs and ys are equal, all the keys of xs are also present in ys, and is_subset returns true. More...
 
constexpr auto boost::hana::none
 Returns whether all of the keys of the structure are false-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish. More...
 
constexpr auto boost::hana::none_of
 Returns whether none of the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a true- valued Logical after looking at a finite number of keys for this method to finish. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::all
+
+ +

#include <boost/hana/fwd/all.hpp>

+Initial value:
= [](auto&& xs) {
return tag-dispatched;
}
+

Returns whether all the keys of the structure are true-valued.The keys of the structure must be Logicals. If the structure is not finite, a false-valued key must appear at a finite "index" in order for this method to finish.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::all(hana::make_tuple(hana::true_c, true, hana::true_c)), "");
BOOST_HANA_CONSTANT_CHECK(!hana::all(hana::make_tuple(true, hana::false_c, hana::true_c)));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::all_of
+
+ +

#include <boost/hana/fwd/all_of.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Returns whether all the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a false- valued Logical after looking at a finite number of keys for this method to finish.

+
Parameters
+ + + +
xsThe structure to search.
predicateA function called as predicate(k), where k is a key of the structure, and returning a Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
using namespace hana::literals;
BOOST_HANA_CONSTEXPR_LAMBDA auto is_odd = [](auto x) {
return x % 2_c != 0_c;
};
int main() {
BOOST_HANA_CONSTEXPR_CHECK(hana::all_of(hana::make_tuple(1, 3), is_odd));
BOOST_HANA_CONSTANT_CHECK(!hana::all_of(hana::make_tuple(3_c, 4_c), is_odd));
!hana::all_of(hana::make_tuple(hana::type<void>{}, hana::type<char&>{}),
hana::traits::is_void)
);
hana::all_of(hana::make_tuple(hana::type_c<int>, hana::type_c<char>),
hana::traits::is_integral)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::any
+
+ +

#include <boost/hana/fwd/any.hpp>

+Initial value:
= [](auto&& xs) {
return tag-dispatched;
}
+

Returns whether any key of the structure is true-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::any(hana::make_tuple(false, hana::false_c, hana::true_c)));
static_assert(hana::any(hana::make_tuple(false, hana::false_c, true)), "");
static_assert(!hana::any(hana::make_tuple(false, hana::false_c, hana::false_c)), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::any_of
+
+ +

#include <boost/hana/fwd/any_of.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Returns whether any key of the structure satisfies the predicate.If the structure is not finite, predicate has to be satisfied after looking at a finite number of keys for this method to finish.

+
Parameters
+ + + +
xsThe structure to search.
predicateA function called as predicate(k), where k is a key of the structure, and returning a Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
using namespace hana::literals;
BOOST_HANA_CONSTEXPR_LAMBDA auto is_odd = [](auto x) {
return x % 2_c != 0_c;
};
int main() {
BOOST_HANA_CONSTEXPR_CHECK(hana::any_of(hana::make_tuple(1, 2), is_odd));
BOOST_HANA_CONSTANT_CHECK(!hana::any_of(hana::make_tuple(2_c, 4_c), is_odd));
hana::any_of(hana::make_tuple(hana::type<void>{}, hana::type<char&>{}),
hana::traits::is_void)
);
!hana::any_of(hana::make_tuple(hana::type<void>{}, hana::type<char&>{}),
hana::traits::is_integral)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::at_key
+
+ +

#include <boost/hana/fwd/at_key.hpp>

+Initial value:
= [](auto&& xs, auto const& key) -> decltype(auto) {
return tag-dispatched;
}
+

Returns the value associated to the given key in a structure, or fail.Given a key and a Searchable structure, at_key returns the first value whose key is equal to the given key, and fails at compile-time if no such key exists. This requires the key to be compile-time Comparable, exactly like for find. at_key satisfies the following:

+
at_key(xs, key) == find(xs, key).value()

If the Searchable actually stores the elements it contains, at_key is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the found value, where the type of reference must match that of the structure passed to at_key. If the Searchable does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped.

+
Parameters
+ + + +
xsThe structure to be searched.
keyA key to be searched for in the structure. The key has to be Comparable with the other keys of the structure. In the current version of the library, the comparison of key with any other key of the structure must return a compile-time Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
int main() {
auto m = hana::make_map(
hana::make_pair(hana::type_c<int>, std::string{"int"}),
hana::make_pair(hana::int_c<3>, std::string{"3"})
);
BOOST_HANA_RUNTIME_CHECK(hana::at_key(m, hana::type_c<int>) == "int");
// usage as operator[]
BOOST_HANA_RUNTIME_CHECK(m[hana::type_c<int>] == "int");
BOOST_HANA_RUNTIME_CHECK(m[hana::int_c<3>] == "3");
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::contains
+
+ +

#include <boost/hana/fwd/contains.hpp>

+Initial value:
= [](auto&& xs, auto&& key) {
return tag-dispatched;
}
+

Returns whether the key occurs in the structure.Given a Searchable structure xs and a key, contains returns whether any of the keys of the structure is equal to the given key. If the structure is not finite, an equal key has to appear at a finite position in the structure for this method to finish. For convenience, contains can also be applied in infix notation.

+
Parameters
+ + + +
xsThe structure to search.
keyA key to be searched for in the structure. The key has to be Comparable with the other keys of the structure.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::contains(hana::make_tuple(2, hana::int_c<2>, hana::int_c<3>, 'x'), hana::int_c<3>));
BOOST_HANA_CONSTANT_CHECK(hana::contains(hana::make_set(hana::int_c<3>, hana::type_c<void>), hana::type_c<void>));
// contains can be applied in infix notation
hana::make_tuple(2, hana::int_c<2>, hana::int_c<3>, 'x') ^hana::contains^ hana::int_c<2>
);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::in = hana::infix(hana::flip(hana::contains))
+
+ +

#include <boost/hana/fwd/contains.hpp>

+ +

Return whether the key occurs in the structure.Specifically, this is equivalent to contains, except in takes its arguments in reverse order. Like contains, in can also be applied in infix notation for increased expressiveness. This function is not a method that can be overriden; it is just a convenience function provided with the concept.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::int_c<2> ^hana::in^ hana::make_tuple(2, hana::int_c<2>, hana::int_c<3>, 'x'));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::find
+
+ +

#include <boost/hana/fwd/find.hpp>

+Initial value:
= [](auto&& xs, auto const& key) {
return tag-dispatched;
}
+

Finds the value associated to the given key in a structure.Given a key and a Searchable structure, find returns the just the first value whose key is equal to the given key, or nothing if there is no such key. Comparison is done with equal. find satisfies the following:

+
find(xs, key) == find_if(xs, equal.to(key))
Parameters
+ + + +
xsThe structure to be searched.
keyA key to be searched for in the structure. The key has to be Comparable with the other keys of the structure. In the current version of the library, the comparison of key with any other key of the structure must return a compile-time Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
hana::find(hana::make_tuple(hana::int_c<1>, hana::type_c<int>, '3'), hana::type_c<int>) == hana::just(hana::type_c<int>)
);
hana::find(hana::make_tuple(hana::int_c<1>, hana::type_c<int>, '3'), hana::type_c<void>) == hana::nothing
);
constexpr auto m = hana::make_map(
hana::make_pair(hana::int_c<2>, 2),
hana::make_pair(hana::type_c<float>, 3.3),
hana::make_pair(hana::type_c<char>, hana::type_c<int>)
);
static_assert(hana::find(m, hana::type_c<float>) == hana::just(3.3), "");
int main() { }
+

Referenced by boost::hana::literals::operator""_s().

+ +
+
+ +
+
+ + + + +
constexpr auto boost::hana::find_if
+
+ +

#include <boost/hana/fwd/find_if.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Finds the value associated to the first key satisfying a predicate.Given a Searchable structure xs and a predicate pred, find_if(xs, pred) returns just the first element whose key satisfies the predicate, or nothing if there is no such element.

+
Parameters
+ + + +
xsThe structure to be searched.
predicateA function called as predicate(k), where k is a key of the structure, and returning whether k is the key of the element being searched for. In the current version of the library, the predicate has to return an IntegralConstant holding a value that can be converted to bool.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
// First get the type of the object, and then call the trait on it.
constexpr auto is_integral = hana::compose(hana::trait<std::is_integral>, hana::typeid_);
constexpr auto is_class = hana::compose(hana::trait<std::is_class>, hana::typeid_);
static_assert(
hana::find_if(hana::make_tuple(1.0, 2, '3'), is_integral) == hana::just(2)
, "");
hana::find_if(hana::make_tuple(1.0, 2, '3'), is_class) == hana::nothing
);
constexpr auto types = hana::tuple_t<char, int, unsigned, long, unsigned long>;
hana::find_if(types, hana::equal.to(hana::type_c<unsigned>)) == hana::just(hana::type_c<unsigned>)
);
hana::find_if(types, hana::equal.to(hana::type_c<void>)) == hana::nothing
);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::is_disjoint
+
+ +

#include <boost/hana/fwd/is_disjoint.hpp>

+Initial value:
= [](auto const& xs, auto const& ys) {
return tag-dispatched;
}
+

Returns whether two Searchables are disjoint.Given two Searchables xs and ys, is_disjoint returns a Logical representing whether the keys in xs are disjoint from the keys in ys, i.e. whether both structures have no keys in common.

+
Parameters
+ + +
xs,ysTwo Searchables to test for disjointness.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
// Tuples
auto xs = hana::make_tuple(hana::int_c<1>, "alfa"s, hana::type_c<int>);
auto ys = hana::make_tuple(hana::type_c<void>, hana::int_c<3>, "bravo"s);
// Sets
auto s1 = hana::make_set(hana::int_c<1>, hana::type_c<void>, hana::int_c<2>);
auto s2 = hana::make_set(hana::type_c<char>, hana::type_c<int>, hana::int_c<1>);
// Maps
auto vowels = hana::make_map(
hana::make_pair(hana::char_c<'a'>, "alfa"s),
hana::make_pair(hana::char_c<'e'>, "echo"s),
hana::make_pair(hana::char_c<'i'>, "india"s)
// ...
);
auto consonants = hana::make_map(
hana::make_pair(hana::char_c<'b'>, "bravo"s),
hana::make_pair(hana::char_c<'c'>, "charlie"s),
hana::make_pair(hana::char_c<'f'>, "foxtrot"s)
// ...
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::is_subset
+
+ +

#include <boost/hana/fwd/is_subset.hpp>

+Initial value:
= [](auto&& xs, auto&& ys) {
return tag-dispatched;
}
+

Returns whether a structure contains a subset of the keys of another structure.Given two Searchables xs and ys, is_subset returns a Logical representing whether xs is a subset of ys. In other words, it returns whether all the keys of xs are also present in ys. This method does not return whether xs is a strict subset of ys; if xs and ys are equal, all the keys of xs are also present in ys, and is_subset returns true.

+
Note
For convenience, is_subset can also be applied in infix notation.
+

Cross-type version of the method

+

This method is tag-dispatched using the tags of both arguments. It can be called with any two Searchables sharing a common Searchable embedding, as defined in the main documentation of the Searchable concept. When Searchables with two different tags but sharing a common embedding are sent to is_subset, they are first converted to this common Searchable and the is_subset method of the common embedding is then used. Of course, the method can be overriden for custom Searchables for efficieny.

+
Note
While cross-type dispatching for is_subset is supported, it is not currently used by the library because there are no models of Searchable with a common embedding.
+
Parameters
+ + + +
xsThe structure to check whether it is a subset of ys.
ysThe structure to check whether it is a superset of xs.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::is_subset(hana::make_tuple(1, '2', 3.3), hana::make_tuple(3.3, 1, '2', nullptr))
, "");
// is_subset can be applied in infix notation
static_assert(
hana::make_tuple(1, '2', 3.3) ^hana::is_subset^ hana::make_tuple(3.3, 1, '2', nullptr)
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::none
+
+ +

#include <boost/hana/fwd/none.hpp>

+Initial value:
= [](auto&& xs) -> decltype(auto) {
return tag-dispatched;
}
+

Returns whether all of the keys of the structure are false-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::none(hana::make_tuple(false, hana::false_c, hana::false_c)), "");
static_assert(!hana::none(hana::make_tuple(false, hana::false_c, true)), "");
BOOST_HANA_CONSTANT_CHECK(!hana::none(hana::make_tuple(false, hana::false_c, hana::true_c)));
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::none_of
+
+ +

#include <boost/hana/fwd/none_of.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Returns whether none of the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a true- valued Logical after looking at a finite number of keys for this method to finish.

+
Parameters
+ + + +
xsThe structure to search.
predicateA function called as predicate(k), where k is a key of the structure, and returning a Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
using namespace hana::literals;
BOOST_HANA_CONSTEXPR_LAMBDA auto is_odd = [](auto x) {
return x % 2_c != 0_c;
};
int main() {
BOOST_HANA_CONSTANT_CHECK(hana::none_of(hana::make_tuple(2_c, 4_c), is_odd));
BOOST_HANA_CONSTEXPR_CHECK(!hana::none_of(hana::make_tuple(1, 2), is_odd));
!hana::none_of(hana::make_tuple(hana::type_c<void>, hana::type_c<char&>), hana::trait<std::is_void>)
);
hana::none_of(hana::make_tuple(hana::type_c<void>, hana::type_c<char&>), hana::trait<std::is_integral>)
);
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Searchable.js b/boost_1_63_0/libs/hana/doc/html/group__group-Searchable.js new file mode 100644 index 0000000..52a213b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Searchable.js @@ -0,0 +1,16 @@ +var group__group_Searchable = +[ + [ "all", "group__group-Searchable.html#ga81ae9764dd7818ad36270c6419fb1082", null ], + [ "all_of", "group__group-Searchable.html#ga3a168950082f38afd9edf256f336c8ba", null ], + [ "any", "group__group-Searchable.html#gab7d632b9319b10b1eb7e98f9e1cf8a28", null ], + [ "any_of", "group__group-Searchable.html#ga5f7ff0125c448983e1b96c3ffb84f646", null ], + [ "at_key", "group__group-Searchable.html#ga3c1826aee6c6eb577810bb99c5c3e53d", null ], + [ "contains", "group__group-Searchable.html#ga38e7748956cbc9f3d9bb035ac8577906", null ], + [ "in", "group__group-Searchable.html#ga0d9456ceda38b6ca664998e79d7c45b7", null ], + [ "find", "group__group-Searchable.html#ga6b6cdd69942b0fe3bf5254247f9c861e", null ], + [ "find_if", "group__group-Searchable.html#ga7f99b80672aa80a7eb8b223955ce546f", null ], + [ "is_disjoint", "group__group-Searchable.html#ga3b8269d4f5cdd6dd549fae32280795a0", null ], + [ "is_subset", "group__group-Searchable.html#gadccfc79f1acdd8043d2baa16df16ec9f", null ], + [ "none", "group__group-Searchable.html#ga614ff1e575806f59246b17006e19d479", null ], + [ "none_of", "group__group-Searchable.html#ga43954c791b5b1351fb009e2a643d00f5", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Sequence.html b/boost_1_63_0/libs/hana/doc/html/group__group-Sequence.html new file mode 100644 index 0000000..c10743d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Sequence.html @@ -0,0 +1,1057 @@ + + + + + + + + + +Boost.Hana: Sequence + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Sequence
+
+
+

Description

+

The Sequence concept represents generic index-based sequences.

+

Compared to other abstract concepts, the Sequence concept is very specific. It represents generic index-based sequences. The reason why such a specific concept is provided is because there are a lot of models that behave exactly the same while being implemented in wildly different ways. It is useful to regroup all those data types under the same umbrella for the purpose of generic programming.

+

In fact, models of this concept are not only similar. They are actually isomorphic, in a sense that we define below, which is a fancy way of rigorously saying that they behave exactly the same to an external observer.

+

Minimal complete definition

+

Iterable, Foldable, and make

+

The Sequence concept does not provide basic methods that could be used as a minimal complete definition; instead, it borrows methods from other concepts and add laws to them. For this reason, it is necessary to specialize the Sequence metafunction in Hana's namespace to tell Hana that a type is indeed a Sequence. Explicitly specializing the Sequence metafunction can be seen like a seal saying "this data type satisfies the additional laws of a `Sequence`", since those can't be checked by Hana automatically.

+

Laws

+

The laws for being a Sequence are simple, and their goal is to restrict the semantics that can be associated to the functions provided by other concepts. First, a Sequence must be a finite Iterable (thus a Foldable too). Secondly, for a Sequence tag S, make<S>(x1, ..., xn) must be an object of tag S and whose linearization is [x1, ..., xn]. This basically ensures that objects of tag S are equivalent to their linearization, and that they can be created from such a linearization (with make).

+

While it would be possible in theory to handle infinite sequences, doing so complicates the implementation of many algorithms. For simplicity, the current version of the library only handles finite sequences. However, note that this does not affect in any way the potential for having infinite Searchables and Iterables.

+

Refined concepts

+
    +
  1. Comparable (definition provided automatically)
    +Two Sequences are equal if and only if they contain the same number of elements and their elements at any given index are equal.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::make_tuple(1, 2, 3) == hana::make_tuple(1, 2, 3), "");
    BOOST_HANA_CONSTANT_CHECK(hana::make_tuple(1, 2, 3) != hana::make_tuple(1, 2, 3, 4));
    int main() { }
  2. +
  3. Orderable (definition provided automatically)
    +Sequences are ordered using the traditional lexicographical ordering.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::make_tuple(1, 2, 3) < hana::make_tuple(2, 3, 4), "");
    static_assert(hana::make_tuple(1, 2, 3) < hana::make_tuple(1, 2, 3, 4), "");
    int main() { }
  4. +
  5. Functor (definition provided automatically)
    +Sequences implement transform as the mapping of a function over each element of the sequence. This is somewhat equivalent to what std::transform does to ranges of iterators. Also note that mapping a function over an empty sequence returns an empty sequence and never applies the function, as would be expected.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <sstream>
    #include <string>
    namespace hana = boost::hana;
    auto to_string = [](auto x) {
    std::ostringstream ss;
    ss << x;
    return ss.str();
    };
    int main() {
    hana::transform(hana::make_tuple(1, '2', "345", std::string{"67"}), to_string) ==
    hana::make_tuple("1", "2", "345", "67")
    );
    }
  6. +
  7. Applicative (definition provided automatically)
    +First, lifting a value into a Sequence is the same as creating a singleton sequence containing that value. Second, applying a sequence of functions to a sequence of values will apply each function to all the values in the sequence, and then return a list of all the results. In other words,
    ap([f1, ..., fN], [x1, ..., xM]) == [
    f1(x1), ..., f1(xM),
    ...
    fN(x1), ..., fN(xM)
    ]
    Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <tuple>
    namespace hana = boost::hana;
    static_assert(hana::lift<hana::tuple_tag>('x') == hana::make_tuple('x'), "");
    static_assert(hana::equal(hana::lift<hana::ext::std::tuple_tag>('x'), std::make_tuple('x')), "");
    constexpr auto f = hana::make_pair;
    constexpr auto g = hana::flip(hana::make_pair);
    static_assert(
    hana::ap(hana::make_tuple(f, g), hana::make_tuple(1, 2, 3), hana::make_tuple('a', 'b'))
    ==
    hana::make_tuple(
    f(1, 'a'), f(1, 'b'), f(2, 'a'), f(2, 'b'), f(3, 'a'), f(3, 'b'),
    g(1, 'a'), g(1, 'b'), g(2, 'a'), g(2, 'b'), g(3, 'a'), g(3, 'b')
    )
    , "");
    int main() { }
  8. +
  9. Monad (definition provided automatically)
    +First, flatenning a Sequence takes a sequence of sequences and concatenates them to get a larger sequence. In other words,
    flatten([[a1, ..., aN], ..., [z1, ..., zM]]) == [
    a1, ..., aN, ..., z1, ..., zM
    ]
    This acts like a std::tuple_cat function, except it receives a sequence of sequences instead of a variadic pack of sequences to flatten.
    +Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(
    hana::flatten(hana::make_tuple(
    hana::make_tuple(1, 2),
    hana::make_tuple(3, 4),
    hana::make_tuple(hana::make_tuple(5, 6))
    ))
    == hana::make_tuple(1, 2, 3, 4, hana::make_tuple(5, 6))
    , "");
    int main() { }
    Also note that the model of Monad for Sequences can be seen as modeling nondeterminism. A nondeterministic computation can be modeled as a function which returns a sequence of possible results. In this line of thought, chaining a sequence of values into such a function will return a sequence of all the possible output values, i.e. a sequence of all the values applied to all the functions in the sequences.
    +Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    #include <utility>
    namespace hana = boost::hana;
    // Using the `tuple` Monad, we generate all the possible combinations of
    // cv-qualifiers and reference qualifiers. Then, we use the `optional`
    // Monad to make sure that our generic function can be called with
    // arguments of any of those types.
    // cv_qualifiers : type -> tuple(type)
    auto cv_qualifiers = [](auto t) {
    return hana::make_tuple(
    t,
    hana::traits::add_const(t),
    hana::traits::add_volatile(t),
    hana::traits::add_volatile(hana::traits::add_const(t))
    );
    };
    // ref_qualifiers : type -> tuple(type)
    auto ref_qualifiers = [](auto t) {
    return hana::make_tuple(
    hana::traits::add_lvalue_reference(t),
    hana::traits::add_rvalue_reference(t)
    );
    };
    auto possible_args = cv_qualifiers(hana::type_c<int>) | ref_qualifiers;
    possible_args == hana::make_tuple(
    hana::type_c<int&>,
    hana::type_c<int&&>,
    hana::type_c<int const&>,
    hana::type_c<int const&&>,
    hana::type_c<int volatile&>,
    hana::type_c<int volatile&&>,
    hana::type_c<int const volatile&>,
    hana::type_c<int const volatile&&>
    )
    );
    struct some_function {
    template <typename T>
    void operator()(T&&) const { }
    };
    int main() {
    hana::for_each(possible_args, [](auto t) {
    using T = typename decltype(t)::type;
    static_assert(decltype(hana::is_valid(some_function{})(std::declval<T>())){},
    "some_function should be callable with any type of argument");
    });
    }
  10. +
  11. MonadPlus (definition provided automatically)
    +Sequences are models of the MonadPlus concept by considering the empty sequence as the unit of concat, and sequence concatenation as concat.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <string>
    namespace hana = boost::hana;
    using namespace std::string_literals;
    BOOST_HANA_CONSTANT_CHECK(hana::empty<hana::tuple_tag>() == hana::make_tuple());
    static_assert(hana::append(hana::make_tuple(1, '2', 3.3), nullptr)
    == hana::make_tuple(1, '2', 3.3, nullptr), "");
    int main() {
    hana::concat(hana::make_tuple(1, '2', 3.3), hana::make_tuple("abcdef"s)) ==
    hana::make_tuple(1, '2', 3.3, "abcdef"s)
    );
    }
  12. +
  13. Foldable
    +The model of Foldable for Sequences is uniquely determined by the model of Iterable.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <sstream>
    namespace hana = boost::hana;
    auto to_string = [](auto x) {
    std::ostringstream ss;
    ss << x;
    return ss.str();
    };
    auto show = [](auto x, auto y) {
    return "(" + to_string(x) + " + " + to_string(y) + ")";
    };
    int main() {
    hana::fold_left(hana::make_tuple(2, "3", '4'), "1", show) == "(((1 + 2) + 3) + 4)"
    );
    }
  14. +
  15. Iterable
    +The model of Iterable for Sequences corresponds to iteration over each element of the sequence, in order. This model is not provided automatically, and it is in fact part of the minimal complete definition for the Sequence concept.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::front(hana::make_tuple(1, '2', 3.3)) == 1, "");
    static_assert(hana::drop_front(hana::make_tuple(1, '2', 3.3)) == hana::make_tuple('2', 3.3), "");
    BOOST_HANA_CONSTANT_CHECK(!hana::is_empty(hana::make_tuple(1, '2', 3.3)));
    int main() { }
  16. +
  17. Searchable (definition provided automatically)
    +Searching through a Sequence is equivalent to just searching through a list of the values it contains. The keys and the values on which the search is performed are both the elements of the sequence.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <string>
    namespace hana = boost::hana;
    using namespace std::string_literals;
    int main() {
    hana::find_if(hana::make_tuple(1, '2', 3.3, "abc"s), hana::is_a<std::string>) == hana::just("abc"s)
    );
    "abc"s ^hana::in^ hana::make_tuple(1, '2', 3.3, "abc"s)
    );
    }
  18. +
+

Concrete models

+

hana::tuple

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::cartesian_product
 Computes the cartesian product of a sequence of sequences.Given a sequence of sequences, cartesian_product returns a new sequence of sequences containing the cartesian product of the original sequences. For this method to finish, a finite number of finite sequences must be provided. More...
 
constexpr auto boost::hana::drop_back
 Drop the last n elements of a finite sequence, and return the rest.Given a finite Sequence xs with a linearization of [x1, ..., xm] and a non-negative IntegralConstant n, drop_back(xs, n) is a sequence with the same tag as xs whose linearization is [x1, ..., xm-n]. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
constexpr auto boost::hana::group
 Group adjacent elements of a sequence that all respect a binary predicate, by default equality.Given a finite Sequence and an optional predicate (by default equal), group returns a sequence of subsequences representing groups of adjacent elements that are "equal" with respect to the predicate. In other words, the groups are such that the predicate is satisfied when it is applied to any two adjacent elements in that group. The sequence returned by group is such that the concatenation of its elements is equal to the original sequence, which is equivalent to saying that the order of the elements is not changed. More...
 
constexpr insert_t boost::hana::insert {}
 Insert a value at a given index in a sequence.Given a sequence, an index and an element to insert, insert inserts the element at the given index. More...
 
constexpr auto boost::hana::insert_range
 Insert several values at a given index in a sequence.Given a sequence, an index and any Foldable containing elements to insert, insert_range inserts the elements in the Foldable at the given index of the sequence. More...
 
constexpr auto boost::hana::intersperse
 Insert a value between each pair of elements in a finite sequence.Given a finite Sequence xs with a linearization of [x1, x2, ..., xn], intersperse(xs, z) is a new sequence with a linearization of [x1, z, x2, z, x3, ..., xn-1, z, xn]. In other words, it inserts the z element between every pair of elements of the original sequence. If the sequence is empty or has a single element, intersperse returns the sequence as-is. In all cases, the sequence must be finite. More...
 
constexpr auto boost::hana::partition
 Partition a sequence based on a predicate.Specifically, returns an unspecified Product whose first element is a sequence of the elements satisfying the predicate, and whose second element is a sequence of the elements that do not satisfy the predicate. More...
 
constexpr auto boost::hana::permutations
 Return a sequence of all the permutations of the given sequence.Specifically, permutations(xs) is a sequence whose elements are permutations of the original sequence xs. The permutations are not guaranteed to be in any specific order. Also note that the number of permutations grows very rapidly as the length of the original sequence increases. The growth rate is O(length(xs)!); with a sequence xs of length only 8, permutations(xs) contains over 40 000 elements! More...
 
constexpr auto boost::hana::remove_at
 Remove the element at a given index from a sequence.remove_at returns a new sequence identical to the original, except that the element at the given index is removed. Specifically, remove_at([x0, ..., xn-1, xn, xn+1, ..., xm], n) is a new sequence equivalent to [x0, ..., xn-1, xn+1, ..., xm]. More...
 
template<std::size_t n>
constexpr auto boost::hana::remove_at_c
 Equivalent to remove_at; provided for convenience. More...
 
constexpr auto boost::hana::remove_range
 Remove the elements inside a given range of indices from a sequence.remove_range returns a new sequence identical to the original, except that elements at indices in the provided range are removed. Specifically, remove_range([x0, ..., xn], from, to) is a new sequence equivalent to [x0, ..., x_from-1, x_to, ..., xn]. More...
 
template<std::size_t from, std::size_t to>
constexpr auto boost::hana::remove_range_c
 Equivalent to remove_range; provided for convenience. More...
 
constexpr auto boost::hana::reverse
 Reverse a sequence.Specifically, reverse(xs) is a new sequence containing the same elements as xs, except in reverse order. More...
 
constexpr auto boost::hana::scan_left
 Fold a Sequence to the left and return a list containing the successive reduction states.Like fold_left, scan_left reduces a sequence to a single value using a binary operation. However, unlike fold_left, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_left, scan_left can be used with or without an initial reduction state. More...
 
constexpr auto boost::hana::scan_right
 Fold a Sequence to the right and return a list containing the successive reduction states.Like fold_right, scan_right reduces a sequence to a single value using a binary operation. However, unlike fold_right, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_right, scan_right can be used with or without an initial reduction state. More...
 
constexpr auto boost::hana::slice
 Extract the elements of a Sequence at the given indices.Given an arbitrary sequence of indices, slice returns a new sequence of the elements of the original sequence that appear at those indices. In other words,. More...
 
template<std::size_t from, std::size_t to>
constexpr auto boost::hana::slice_c
 Shorthand to slice a contiguous range of elements.slice_c is simply a shorthand to slice a contiguous range of elements. In particular, slice_c<from, to>(xs) is equivalent to slice(xs, range_c<std::size_t, from, to>), which simply slices all the elements of xs contained in the half-open interval delimited by [from, to). Like for slice, the indices used with slice_c are 0-based and they must be in the bounds of the sequence being sliced. More...
 
constexpr auto boost::hana::sort
 Sort a sequence, optionally based on a custom predicate.Given a Sequence and an optional predicate (by default less), sort returns a new sequence containing the same elements as the original, except they are ordered in such a way that if x comes before y in the sequence, then either predicate(x, y) is true, or both predicate(x, y) and predicate(y, x) are false. More...
 
constexpr auto boost::hana::span
 Returns a Product containing the longest prefix of a sequence satisfying a predicate, and the rest of the sequence.The first component of the returned Product is a sequence for which all elements satisfy the given predicate. The second component of the returned Product is a sequence containing the remainder of the argument. Both or either sequences may be empty, depending on the input argument. More specifically,. More...
 
constexpr auto boost::hana::take_back
 Returns the last n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_back(xs, n) is a new sequence containing the last n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered. More...
 
constexpr auto boost::hana::take_front
 Returns the first n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_front(xs, n) is a new sequence containing the first n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered. More...
 
template<std::size_t n>
constexpr auto boost::hana::take_front_c
 Equivalent to take_front; provided for convenience. More...
 
constexpr auto boost::hana::take_while
 Take elements from a sequence while the predicate is satisfied.Specifically, take_while returns a new sequence containing the longest prefix of xs in which all the elements satisfy the given predicate. More...
 
template<typename S >
constexpr auto boost::hana::unfold_left
 Dual operation to fold_left for sequences.While fold_left reduces a structure to a summary value from the left, unfold_left builds a sequence from a seed value and a function, starting from the left. More...
 
template<typename S >
constexpr auto boost::hana::unfold_right
 Dual operation to fold_right for sequences.While fold_right reduces a structure to a summary value from the right, unfold_right builds a sequence from a seed value and a function, starting from the right. More...
 
constexpr auto boost::hana::unique
 Removes all consecutive duplicate elements from a Sequence.Given a Sequence and an optional binary predicate, unique returns a new sequence containing only the first element of every subrange of the original sequence whose elements are all equal. In other words, it turns a sequence of the form [a, a, b, c, c, c, d, d, d, a] into a sequence [a, b, c, d, a]. The equality of two elements is determined by the provided predicate, or by equal if no predicate is provided. More...
 
constexpr auto boost::hana::zip
 Zip one sequence or more.Given n sequences s1, ..., sn, zip produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip produces a sequence of the form. More...
 
constexpr auto boost::hana::zip_shortest
 Zip one sequence or more.Given n sequences s1, ..., sn, zip_shortest produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest produces a sequence of the form. More...
 
constexpr auto boost::hana::zip_shortest_with
 Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_shortest_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest_with produces a sequence of the form. More...
 
constexpr auto boost::hana::zip_with
 Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_with produces a sequence of the form. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::cartesian_product
+
+ +

#include <boost/hana/fwd/cartesian_product.hpp>

+Initial value:
= [](auto&& xs) {
return tag-dispatched;
}
+

Computes the cartesian product of a sequence of sequences.Given a sequence of sequences, cartesian_product returns a new sequence of sequences containing the cartesian product of the original sequences. For this method to finish, a finite number of finite sequences must be provided.

+
Note
All the sequences must have the same tag, and that tag must also match that of the top-level sequence.
+

Signature

+

Given a Sequence S(T), the signature is

+\[ \mathtt{cartesian\_product} : S(S(T)) \to S(S(T)) \] +

+
Parameters
+ + +
xsA sequence of sequences of which the cartesian product is computed.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto tuples = hana::make_tuple(
hana::make_tuple(1, 2, 3),
hana::make_tuple('a', 'b'),
hana::make_tuple(hana::type_c<int>, hana::type_c<char>)
);
constexpr auto prod = hana::make_tuple(
hana::make_tuple(1, 'a', hana::type_c<int>),
hana::make_tuple(1, 'a', hana::type_c<char>),
hana::make_tuple(1, 'b', hana::type_c<int>),
hana::make_tuple(1, 'b', hana::type_c<char>),
hana::make_tuple(2, 'a', hana::type_c<int>),
hana::make_tuple(2, 'a', hana::type_c<char>),
hana::make_tuple(2, 'b', hana::type_c<int>),
hana::make_tuple(2, 'b', hana::type_c<char>),
hana::make_tuple(3, 'a', hana::type_c<int>),
hana::make_tuple(3, 'a', hana::type_c<char>),
hana::make_tuple(3, 'b', hana::type_c<int>),
hana::make_tuple(3, 'b', hana::type_c<char>)
);
static_assert(hana::cartesian_product(tuples) == prod, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::drop_back
+
+ +

#include <boost/hana/fwd/drop_back.hpp>

+Initial value:
= [](auto&& xs[, auto const& n]) {
return tag-dispatched;
}
+

Drop the last n elements of a finite sequence, and return the rest.Given a finite Sequence xs with a linearization of [x1, ..., xm] and a non-negative IntegralConstant n, drop_back(xs, n) is a sequence with the same tag as xs whose linearization is [x1, ..., xm-n]. If n is not given, it defaults to an IntegralConstant with a value equal to 1.

+

In case length(xs) <= n, drop_back will simply drop the whole sequence without failing, thus returning an empty sequence.

+
Parameters
+ + + +
xsThe sequence from which elements are dropped.
nA non-negative IntegralConstant representing the number of elements to be dropped from the end of the sequence. If n is not given, it defaults to an IntegralConstant with a value equal to 1.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.0);
static_assert(hana::drop_back(xs, hana::size_c<0>) == xs, "");
static_assert(hana::drop_back(xs, hana::size_c<1>) == hana::make_tuple(0, '1'), "");
static_assert(hana::drop_back(xs, hana::size_c<2>) == hana::make_tuple(0), "");
BOOST_HANA_CONSTANT_CHECK(hana::drop_back(xs, hana::size_c<3>) == hana::make_tuple());
BOOST_HANA_CONSTANT_CHECK(hana::drop_back(xs, hana::size_c<4>) == hana::make_tuple());
static_assert(hana::drop_back(xs) == hana::make_tuple(0, '1'), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::group
+
+ +

#include <boost/hana/fwd/group.hpp>

+Initial value:
= [](auto&& xs[, auto&& predicate]) {
return tag-dispatched;
}
+

Group adjacent elements of a sequence that all respect a binary predicate, by default equality.Given a finite Sequence and an optional predicate (by default equal), group returns a sequence of subsequences representing groups of adjacent elements that are "equal" with respect to the predicate. In other words, the groups are such that the predicate is satisfied when it is applied to any two adjacent elements in that group. The sequence returned by group is such that the concatenation of its elements is equal to the original sequence, which is equivalent to saying that the order of the elements is not changed.

+

If no predicate is provided, adjacent elements in the sequence must all be compile-time Comparable.

+

Signature

+

Given a Sequence s with tag S(T), an IntegralConstant Bool holding a value of type bool, and a predicate \( pred : T \times T \to Bool \), group has the following signatures. For the variant with a provided predicate,

+\[ \mathtt{group} : S(T) \times (T \times T \to Bool) \to S(S(T)) \] +

+

for the variant without a custom predicate, T is required to be Comparable. The signature is then

+\[ \mathtt{group} : S(T) \to S(S(T)) \] +

+
Parameters
+ + + +
xsThe sequence to split into groups.
predicateA binary function called as predicate(x, y), where x and y are adjacent elements in the sequence, whether both elements should be in the same group (subsequence) of the result. In the current version of the library, the result returned by predicate must be an IntegralConstant holding a value of a type convertible to bool. Also, predicate has to define an equivalence relation as defined by the Comparable concept. When this predicate is not provided, it defaults to equal, which requires the comparison of any two adjacent elements in the sequence to return a boolean IntegralConstant.
+
+
+

Syntactic sugar (group.by)

+

group can be called in a third way, which provides a nice syntax especially when working with the comparing combinator:

group.by(predicate, xs) == group(xs, predicate)
group.by(predicate) == group(-, predicate)

where group(-, predicate) denotes the partial application of group to predicate.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
// group without a predicate
hana::group(hana::make_tuple(hana::int_c<1>, hana::long_c<1>, hana::type_c<int>, hana::char_c<'x'>, hana::char_c<'x'>))
== hana::make_tuple(
hana::make_tuple(hana::int_c<1>, hana::long_c<1>),
hana::make_tuple(hana::type_c<int>),
hana::make_tuple(hana::char_c<'x'>, hana::char_c<'x'>)
)
);
// group with a predicate
constexpr auto tuples = hana::make_tuple(
hana::range_c<int, 0, 1>,
hana::range_c<int, 0, 2>,
hana::range_c<int, 1, 3>,
hana::range_c<int, 2, 6>
);
== hana::make_tuple(
hana::make_tuple(
hana::range_c<int, 0, 1>
),
hana::make_tuple(
hana::range_c<int, 0, 2>,
hana::range_c<int, 1, 3>
),
hana::make_tuple(
hana::range_c<int, 2, 6>
)
)
);
// group.by is syntactic sugar
static_assert(
hana::group.by(hana::comparing(hana::typeid_),
hana::make_tuple(1, 2, 3, 'x', 'y', 4.4, 5.5))
== hana::make_tuple(
hana::make_tuple(1, 2, 3),
hana::make_tuple('x', 'y'),
hana::make_tuple(4.4, 5.5)
)
, "");
int main() { }
+
+
+ +
+
+ + + + + +
+ + + + +
constexpr auto boost::hana::insert {}
+
+related
+
+ +

#include <boost/hana/fwd/insert.hpp>

+ +

Insert a value at a given index in a sequence.Given a sequence, an index and an element to insert, insert inserts the element at the given index.

+
Parameters
+ + + + +
xsThe sequence in which a value should be inserted.
nThe index at which an element should be inserted. This must be a non-negative Constant of an integral type, and it must also be true that n < length(xs) if xs is a finite sequence.
elementThe element to insert in the sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace hana::literals;
using namespace std::literals;
int main() {
auto xs = hana::make_tuple("Hello"s, "world!"s);
hana::insert(xs, 1_c, " "s) == hana::make_tuple("Hello"s, " "s, "world!"s)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::insert_range
+
+ +

#include <boost/hana/fwd/insert_range.hpp>

+Initial value:
= [](auto&& xs, auto&& n, auto&& elements) {
return tag-dispatched;
}
+

Insert several values at a given index in a sequence.Given a sequence, an index and any Foldable containing elements to insert, insert_range inserts the elements in the Foldable at the given index of the sequence.

+
Parameters
+ + + + +
xsThe sequence in which values should be inserted.
nThe index at which elements should be inserted. This must be a non-negative Constant of an integral type, and it must also be true that n < length(xs) if xs is a finite sequence.
elementsA Foldable containing elements to insert in the sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace hana::literals;
using namespace std::literals;
int main() {
auto xs = hana::make_tuple("Hello"s, "world!"s);
hana::insert_range(xs, 1_c, hana::make_tuple(1, 2, 3)) == hana::make_tuple("Hello"s, 1, 2, 3, "world!"s)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::intersperse
+
+ +

#include <boost/hana/fwd/intersperse.hpp>

+Initial value:
= [](auto&& xs, auto&& z) {
return tag-dispatched;
}
+

Insert a value between each pair of elements in a finite sequence.Given a finite Sequence xs with a linearization of [x1, x2, ..., xn], intersperse(xs, z) is a new sequence with a linearization of [x1, z, x2, z, x3, ..., xn-1, z, xn]. In other words, it inserts the z element between every pair of elements of the original sequence. If the sequence is empty or has a single element, intersperse returns the sequence as-is. In all cases, the sequence must be finite.

+
Parameters
+ + + +
xsThe sequence in which a value is interspersed.
zThe value to be inserted between every pair of elements of the sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::intersperse(hana::make_tuple(1, '2', 3.3), 'x') == hana::make_tuple(1, 'x', '2', 'x', 3.3), "");
BOOST_HANA_CONSTANT_CHECK(hana::intersperse(hana::make_tuple(), 'x') == hana::make_tuple());
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::partition
+
+ +

#include <boost/hana/fwd/partition.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Partition a sequence based on a predicate.Specifically, returns an unspecified Product whose first element is a sequence of the elements satisfying the predicate, and whose second element is a sequence of the elements that do not satisfy the predicate.

+

Signature

+

Given a Sequence S(T), an IntegralConstant Bool holding a value of type bool, and a predicate \( T \to Bool \), partition has the following signature:

+\[ \mathtt{partition} : S(T) \times (T \to Bool) \to S(T) \times S(T) \] +

+
Parameters
+ + + +
xsThe sequence to be partitioned.
predicateA function called as predicate(x) for each element x in the sequence, and returning whether x should be added to the sequence in the first component or in the second component of the resulting pair. In the current version of the library, predicate must return an IntegralConstant holding a value convertible to bool.
+
+
+

Syntactic sugar (partition.by)

+

partition can be called in an alternate way, which provides a nice syntax in some cases where the predicate is short:

partition.by(predicate, xs) == partition(xs, predicate)
partition.by(predicate) == partition(-, predicate)

where partition(-, predicate) denotes the partial application of partition to predicate.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
hana::partition(hana::tuple_c<int, 1, 2, 3, 4, 5, 6, 7>, [](auto x) {
return x % hana::int_c<2> != hana::int_c<0>;
})
==
hana::make_pair(
hana::tuple_c<int, 1, 3, 5, 7>,
hana::tuple_c<int, 2, 4, 6>
)
);
hana::partition(hana::tuple_t<void, int, float, char, double>, hana::trait<std::is_floating_point>)
==
hana::make_pair(
hana::tuple_t<float, double>,
hana::tuple_t<void, int, char>
)
);
// partition.by is syntactic sugar
hana::partition.by(hana::trait<std::is_floating_point>,
hana::tuple_t<void, int, float, char, double>)
==
hana::make_pair(
hana::tuple_t<float, double>,
hana::tuple_t<void, int, char>
)
);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::permutations
+
+ +

#include <boost/hana/fwd/permutations.hpp>

+Initial value:
= [](auto&& xs) {
return tag-dispatched;
}
+

Return a sequence of all the permutations of the given sequence.Specifically, permutations(xs) is a sequence whose elements are permutations of the original sequence xs. The permutations are not guaranteed to be in any specific order. Also note that the number of permutations grows very rapidly as the length of the original sequence increases. The growth rate is O(length(xs)!); with a sequence xs of length only 8, permutations(xs) contains over 40 000 elements!

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto is_permutation_of = hana::curry<2>([](auto xs, auto perm) {
});
int main() {
hana::make_tuple(
hana::make_tuple('1', 2, 3.0),
hana::make_tuple('1', 3.0, 2),
hana::make_tuple(2, '1', 3.0),
hana::make_tuple(2, 3.0, '1'),
hana::make_tuple(3.0, '1', 2),
hana::make_tuple(3.0, 2, '1')
),
is_permutation_of(hana::make_tuple('1', 2, 3.0))
)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::remove_at
+
+ +

#include <boost/hana/fwd/remove_at.hpp>

+Initial value:
= [](auto&& xs, auto const& n) {
return tag-dispatched;
}
+

Remove the element at a given index from a sequence.remove_at returns a new sequence identical to the original, except that the element at the given index is removed. Specifically, remove_at([x0, ..., xn-1, xn, xn+1, ..., xm], n) is a new sequence equivalent to [x0, ..., xn-1, xn+1, ..., xm].

+
Note
The behavior is undefined if the index is out of the bounds of the sequence.
+
Parameters
+ + + +
xsA sequence from which an element is to be removed.
nAn non-negative IntegralConstant representing the index of the element to be removed from the sequence. The behavior is undefined if that index is not in the bounds of the sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.2, 3u);
static_assert(hana::remove_at(xs, hana::size_c<2>) == hana::make_tuple(0, '1', 3u), "");
int main() { }
+
+
+ +
+
+
+template<std::size_t n>
+ + + + +
constexpr auto boost::hana::remove_at_c
+
+ +

#include <boost/hana/fwd/remove_at.hpp>

+Initial value:
= [](auto&& xs) {
return hana::remove_at(forwarded(xs), hana::size_c<n>);
}
constexpr auto remove_at
Remove the element at a given index from a sequence.remove_at returns a new sequence identical to the...
Definition: remove_at.hpp:46
+
+

Equivalent to remove_at; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.2, 3u);
static_assert(hana::remove_at_c<2>(xs) == hana::make_tuple(0, '1', 3u), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::remove_range
+
+ +

#include <boost/hana/fwd/remove_range.hpp>

+Initial value:
= [](auto&& xs, auto const& from, auto const& to) {
return tag-dispatched;
}
constexpr auto to
Converts an object from one data type to another.
Definition: to.hpp:97
+
+

Remove the elements inside a given range of indices from a sequence.remove_range returns a new sequence identical to the original, except that elements at indices in the provided range are removed. Specifically, remove_range([x0, ..., xn], from, to) is a new sequence equivalent to [x0, ..., x_from-1, x_to, ..., xn].

+
Note
The behavior is undefined if the range contains any index out of the bounds of the sequence.
+
Parameters
+ + + +
xsA sequence from which elements are removed.
[from,to)An half-open interval of IntegralConstants representing the indices of the elements to be removed from the sequence. The IntegralConstants in the half-open interval must be non-negative and in the bounds of the sequence. The half-open interval must also be valid, meaning that from <= to.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.2, 3u, 4, 5.5);
static_assert(hana::remove_range(xs, hana::size_c<2>, hana::size_c<4>) == hana::make_tuple(0, '1', 4, 5.5), "");
int main() { }
+
+
+ +
+
+
+template<std::size_t from, std::size_t to>
+ + + + +
constexpr auto boost::hana::remove_range_c
+
+ +

#include <boost/hana/fwd/remove_range.hpp>

+Initial value:
= [](auto&& xs) {
return hana::remove_range(forwarded(xs), hana::size_c<from>, hana::size_c<to>);
}
constexpr auto remove_range
Remove the elements inside a given range of indices from a sequence.remove_range returns a new sequen...
Definition: remove_range.hpp:49
+
+

Equivalent to remove_range; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(0, '1', 2.2, 3u, 4, 5.5);
static_assert(hana::remove_range_c<2, 4>(xs) == hana::make_tuple(0, '1', 4, 5.5), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::reverse
+
+ +

#include <boost/hana/fwd/reverse.hpp>

+Initial value:
= [](auto&& xs) {
return tag-dispatched;
}
+

Reverse a sequence.Specifically, reverse(xs) is a new sequence containing the same elements as xs, except in reverse order.

+
Parameters
+ + +
xsThe sequence to reverse.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::reverse(hana::make_tuple(1, '2', 3.3)) == hana::make_tuple(3.3, '2', 1), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::scan_left
+
+ +

#include <boost/hana/fwd/scan_left.hpp>

+Initial value:
= [](auto&& xs[, auto&& state], auto const& f) {
return tag-dispatched;
}
+

Fold a Sequence to the left and return a list containing the successive reduction states.Like fold_left, scan_left reduces a sequence to a single value using a binary operation. However, unlike fold_left, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_left, scan_left can be used with or without an initial reduction state.

+

When the sequence is empty, two things may arise. If an initial state was provided, a singleton list containing that state is returned. Otherwise, if no initial state was provided, an empty list is returned. In particular, unlike for fold_left, using scan_left on an empty sequence without an initial state is not an error.

+

More specifically, scan_left([x1, ..., xn], state, f) is a sequence whose ith element is equivalent to fold_left([x1, ..., xi], state, f). The no-state variant is handled in an analogous way. For illustration, consider this left fold on a short sequence:

fold_left([x1, x2, x3], state, f) == f(f(f(state, x1), x2), x3)

The analogous sequence generated with scan_left will be

scan_left([x1, x2, x3], state, f) == [
state,
f(state, x1),
f(f(state, x1), x2),
f(f(f(state, x1), x2), x3)
]

Similarly, consider this left fold (without an initial state) on a short sequence:

fold_left([x1, x2, x3, x4], f) == f(f(f(x1, x2), x3), x4)

The analogous sequence generated with scan_left will be

scan_left([x1, x2, x3, x4], f) == [
x1,
f(x1, x2),
f(f(x1, x2), x3),
f(f(f(x1, x2), x3), x4)
]
Parameters
+ + + + +
xsThe sequence to scan from the left.
stateThe (optional) initial reduction state.
fA binary function called as f(state, x), where state is the result accumulated so far and x is an element in the sequence. If no initial state is provided, f is called as f(x1, x2), where x1 and x2 are both elements of the sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
namespace hana = boost::hana;
auto to_string = [](auto x) {
std::ostringstream ss;
ss << x;
return ss.str();
};
auto f = [](auto state, auto element) {
return "f(" + to_string(state) + ", " + to_string(element) + ")";
};
int main() {
// with initial state
BOOST_HANA_RUNTIME_CHECK(hana::scan_left(hana::make_tuple(2, "3", '4'), 1, f) == hana::make_tuple(
1,
"f(1, 2)",
"f(f(1, 2), 3)",
"f(f(f(1, 2), 3), 4)"
));
// without initial state
BOOST_HANA_RUNTIME_CHECK(hana::scan_left(hana::make_tuple(1, "2", '3'), f) == hana::make_tuple(
1,
"f(1, 2)",
"f(f(1, 2), 3)"
));
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::scan_right
+
+ +

#include <boost/hana/fwd/scan_right.hpp>

+Initial value:
= [](auto&& xs[, auto&& state], auto const& f) {
return tag-dispatched;
}
+

Fold a Sequence to the right and return a list containing the successive reduction states.Like fold_right, scan_right reduces a sequence to a single value using a binary operation. However, unlike fold_right, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_right, scan_right can be used with or without an initial reduction state.

+

When the sequence is empty, two things may arise. If an initial state was provided, a singleton list containing that state is returned. Otherwise, if no initial state was provided, an empty list is returned. In particular, unlike for fold_right, using scan_right on an empty sequence without an initial state is not an error.

+

More specifically, scan_right([x1, ..., xn], state, f) is a sequence whose ith element is equivalent to fold_right([x1, ..., xi], state, f). The no-state variant is handled in an analogous way. For illustration, consider this right fold on a short sequence:

fold_right([x1, x2, x3], state, f) == f(x1, f(x2, f(x3, state)))

The analogous sequence generated with scan_right will be

scan_right([x1, x2, x3], state, f) == [
f(x1, f(x2, f(x3, state))),
f(x2, f(x3, state)),
f(x3, state),
state
]

Similarly, consider this right fold (without an initial state) on a short sequence:

fold_right([x1, x2, x3, x4], f) == f(x1, f(x2, f(x3, x4)))

The analogous sequence generated with scan_right will be

scan_right([x1, x2, x3, x4], f) == [
f(x1, f(x2, f(x3, x4))),
f(x2, f(x3, x4)),
f(x3, x4),
x4
]
Parameters
+ + + + +
xsThe sequence to scan from the right.
stateThe (optional) initial reduction state.
fA binary function called as f(x, state), where state is the result accumulated so far and x is an element in the sequence. When no initial state is provided, f is called as f(x1, x2), where x1 and x2 are elements of the sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <sstream>
namespace hana = boost::hana;
auto to_string = [](auto x) {
std::ostringstream ss;
ss << x;
return ss.str();
};
auto f = [](auto element, auto state) {
return "f(" + to_string(element) + ", " + to_string(state) + ")";
};
int main() {
// with initial state
BOOST_HANA_RUNTIME_CHECK(hana::scan_right(hana::make_tuple(1, "2", '3'), 4, f) == hana::make_tuple(
"f(1, f(2, f(3, 4)))",
"f(2, f(3, 4))",
"f(3, 4)",
4
));
// without initial state
BOOST_HANA_RUNTIME_CHECK(hana::scan_right(hana::make_tuple(1, "2", '3'), f) == hana::make_tuple(
"f(1, f(2, 3))",
"f(2, 3)",
'3'
));
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::slice
+
+ +

#include <boost/hana/fwd/slice.hpp>

+Initial value:
= [](auto&& xs, auto&& indices) {
return tag-dispatched;
}
+

Extract the elements of a Sequence at the given indices.Given an arbitrary sequence of indices, slice returns a new sequence of the elements of the original sequence that appear at those indices. In other words,.

+
slice([x1, ..., xn], [i1, ..., ik]) == [x_i1, ..., x_ik]

The indices do not have to be ordered or contiguous in any particular way, but they must not be out of the bounds of the sequence. It is also possible to specify the same index multiple times, in which case the element at this index will be repeatedly included in the resulting sequence.

+
Parameters
+ + + +
xsThe sequence from which a subsequence is extracted.
indicesA compile-time Foldable containing non-negative IntegralConstants representing the indices. The indices are 0-based, and they must all be in bounds of the xs sequence. Note that any Foldable will really do (no need for an Iterable, for example); the linearization of the indices is used to determine the order of the elements included in the slice.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
using namespace hana::literals;
// Slice a contiguous range
constexpr auto xs = hana::make_tuple(0, '1', 2.2, 3_c, hana::type_c<float>);
static_assert(
hana::slice(xs, hana::tuple_c<std::size_t, 1, 2, 3>) ==
hana::make_tuple('1', 2.2, 3_c)
, "");
// A more complex example with a non-contiguous range
constexpr auto letters = hana::to_tuple(hana::range_c<char, 'a', 'z'>);
constexpr auto indices = hana::to_tuple(hana::make_range(hana::size_c<0>, hana::length(letters)));
auto even_indices = hana::filter(indices, [](auto n) {
return n % hana::size_c<2> == hana::size_c<0>;
});
hana::slice(letters, even_indices) == hana::tuple_c<char,
'a', 'c', 'e', 'g', 'i', 'k', 'm', 'o', 'q', 's', 'u', 'w', 'y'
>
);
int main() { }
+
+
+ +
+
+
+template<std::size_t from, std::size_t to>
+ + + + +
constexpr auto boost::hana::slice_c
+
+ +

#include <boost/hana/fwd/slice.hpp>

+Initial value:
= [](auto&& xs) {
return hana::slice(forwarded(xs), hana::range_c<std::size_t, from, to>);
}
constexpr auto slice
Extract the elements of a Sequence at the given indices.Given an arbitrary sequence of indices...
Definition: slice.hpp:53
+
+

Shorthand to slice a contiguous range of elements.slice_c is simply a shorthand to slice a contiguous range of elements. In particular, slice_c<from, to>(xs) is equivalent to slice(xs, range_c<std::size_t, from, to>), which simply slices all the elements of xs contained in the half-open interval delimited by [from, to). Like for slice, the indices used with slice_c are 0-based and they must be in the bounds of the sequence being sliced.

+
Template Parameters
+ + + +
fromThe index of the first element in the slice.
toOne-past the index of the last element in the slice. It must hold that from <= to.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::slice_c<1, 3>(hana::make_tuple(1, '2', 3.3, hana::type_c<float>))
==
hana::make_tuple('2', 3.3)
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::sort
+
+ +

#include <boost/hana/fwd/sort.hpp>

+Initial value:
= [](auto&& xs[, auto&& predicate]) {
return tag-dispatched;
}
+

Sort a sequence, optionally based on a custom predicate.Given a Sequence and an optional predicate (by default less), sort returns a new sequence containing the same elements as the original, except they are ordered in such a way that if x comes before y in the sequence, then either predicate(x, y) is true, or both predicate(x, y) and predicate(y, x) are false.

+

Also note that the sort is guaranteed to be stable. Hence, if x comes before y in the original sequence and both predicate(x, y) and predicate(y, x) are false, then x will come before y in the resulting sequence.

+

If no predicate is provided, the elements in the sequence must all be compile-time Orderable.

+

Signature

+

Given a Sequence S(T), a boolean IntegralConstant Bool and a binary predicate \( T \times T \to Bool \), sort has the following signatures. For the variant with a provided predicate,

+\[ \mathtt{sort} : S(T) \times (T \times T \to Bool) \to S(T) \] +

+

for the variant without a custom predicate, T is required to be Orderable. The signature is then

+\[ \mathtt{sort} : S(T) \to S(T) \] +

+
Parameters
+ + + +
xsThe sequence to sort.
predicateA function called as predicate(x, y) for two elements x and y of the sequence, and returning a boolean IntegralConstant representing whether x is to be considered less than y, i.e. whether x should appear before y in the resulting sequence. More specifically, predicate must define a strict weak ordering on the elements of the sequence. When the predicate is not specified, this defaults to less. In the current version of the library, the predicate has to return an IntegralConstant holding a value convertible to a bool.
+
+
+

Syntactic sugar (sort.by)

+

sort can be called in a third way, which provides a nice syntax especially when working with the ordering combinator:

sort.by(predicate, xs) == sort(xs, predicate)
sort.by(predicate) == sort(-, predicate)

where sort(-, predicate) denotes the partial application of sort to predicate.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace hana::literals;
using namespace std::literals;
// sort without a predicate
hana::sort(hana::make_tuple(1_c, -2_c, 3_c, 0_c)) ==
hana::make_tuple(-2_c, 0_c, 1_c, 3_c)
);
// sort with a predicate
hana::sort(hana::make_tuple(1_c, -2_c, 3_c, 0_c), hana::greater) ==
hana::make_tuple(3_c, 1_c, 0_c, -2_c)
);
int main() {
// sort.by is syntactic sugar
auto tuples = hana::make_tuple(
hana::make_tuple(2_c, 'x', nullptr),
hana::make_tuple(1_c, "foobar"s, hana::int_c<4>)
);
== hana::make_tuple(
hana::make_tuple(1_c, "foobar"s, hana::int_c<4>),
hana::make_tuple(2_c, 'x', nullptr)
)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::span
+
+ +

#include <boost/hana/fwd/span.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Returns a Product containing the longest prefix of a sequence satisfying a predicate, and the rest of the sequence.The first component of the returned Product is a sequence for which all elements satisfy the given predicate. The second component of the returned Product is a sequence containing the remainder of the argument. Both or either sequences may be empty, depending on the input argument. More specifically,.

+
span(xs, predicate) == make_pair(take_while(xs, predicate),
drop_while(xs, predicate))

except that make_pair may be an arbitrary Product.

+

Signature

+

Given a Sequence S(T), a Logical Bool and a predicate \( T \to Bool \), span has the following signature:

+\[ \mathtt{span} : S(T) \times (T \to Bool) \to S(T) \times S(T) \] +

+
Parameters
+ + + +
xsThe sequence to break into two parts.
predicateA function called as predicate(x), where x is an element of the sequence, and returning a Logical. In the current implementation of the library,predicatehas to return a compile-timeLogical`.
+
+
+

Syntactic sugar (span.by)

+

span can be called in an alternate way, which provides a nice syntax in some cases where the predicate is short:

span.by(predicate, xs) == span(xs, predicate)
span.by(predicate) == span(-, predicate)

where span(-, predicate) denotes the partial application of span to predicate.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_tuple(hana::int_c<1>, hana::int_c<2>, hana::int_c<3>, hana::int_c<4>);
hana::span(xs, hana::less.than(hana::int_c<3>))
==
hana::make_pair(hana::make_tuple(hana::int_c<1>, hana::int_c<2>),
hana::make_tuple(hana::int_c<3>, hana::int_c<4>))
);
hana::span(xs, hana::less.than(hana::int_c<0>))
==
hana::make_pair(hana::make_tuple(), xs)
);
hana::span(xs, hana::less.than(hana::int_c<5>))
==
hana::make_pair(xs, hana::make_tuple())
);
// span.by is syntactic sugar
hana::span.by(hana::less.than(hana::int_c<3>), xs)
==
hana::make_pair(hana::make_tuple(hana::int_c<1>, hana::int_c<2>),
hana::make_tuple(hana::int_c<3>, hana::int_c<4>))
);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::take_back
+
+ +

#include <boost/hana/fwd/take_back.hpp>

+Initial value:
= [](auto&& xs, auto const& n) {
return tag-dispatched;
}
+

Returns the last n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_back(xs, n) is a new sequence containing the last n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered.

+
Parameters
+ + + +
xsThe sequence to take the elements from.
nA non-negative IntegralConstant representing the number of elements to keep in the resulting sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::take_back(hana::make_tuple(1, '2', 3.3), hana::size_c<0>) == hana::make_tuple());
static_assert(hana::take_back(hana::make_tuple(1, '2', 3.3), hana::size_c<1>) == hana::make_tuple(3.3), "");
static_assert(hana::take_back(hana::make_tuple(1, '2', 3.3), hana::size_c<2>) == hana::make_tuple('2', 3.3), "");
static_assert(hana::take_back(hana::make_tuple(1, '2', 3.3), hana::size_c<3>) == hana::make_tuple(1, '2', 3.3), "");
static_assert(hana::take_back(hana::make_tuple(1, '2', 3.3), hana::size_c<4>) == hana::make_tuple(1, '2', 3.3), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::take_front
+
+ +

#include <boost/hana/fwd/take_front.hpp>

+Initial value:
= [](auto&& xs, auto const& n) {
return tag-dispatched;
}
+

Returns the first n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_front(xs, n) is a new sequence containing the first n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered.

+
Parameters
+ + + +
xsThe sequence to take the elements from.
nA non-negative IntegralConstant representing the number of elements to keep in the resulting sequence.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::take_front(hana::make_tuple(1, '2', 3.3), hana::size_c<0>) == hana::make_tuple());
static_assert(hana::take_front(hana::make_tuple(1, '2', 3.3), hana::size_c<1>) == hana::make_tuple(1), "");
static_assert(hana::take_front(hana::make_tuple(1, '2', 3.3), hana::size_c<2>) == hana::make_tuple(1, '2'), "");
static_assert(hana::take_front(hana::make_tuple(1, '2', 3.3), hana::size_c<3>) == hana::make_tuple(1, '2', 3.3), "");
static_assert(hana::take_front(hana::make_tuple(1, '2', 3.3), hana::size_c<4>) == hana::make_tuple(1, '2', 3.3), "");
int main() { }
+
+
+ +
+
+
+template<std::size_t n>
+ + + + +
constexpr auto boost::hana::take_front_c
+
+ +

#include <boost/hana/fwd/take_front.hpp>

+Initial value:
= [](auto&& xs) {
return hana::take_front(forwarded(xs), hana::size_c<n>);
}
constexpr auto take_front
Returns the first n elements of a sequence, or the whole sequence if the sequence has less than n ele...
Definition: take_front.hpp:42
+
+

Equivalent to take_front; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::take_front_c<2>(hana::make_tuple(1, '2', 3.3)) == hana::make_tuple(1, '2'), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::take_while
+
+ +

#include <boost/hana/fwd/take_while.hpp>

+Initial value:
= [](auto&& xs, auto&& predicate) {
return tag-dispatched;
}
+

Take elements from a sequence while the predicate is satisfied.Specifically, take_while returns a new sequence containing the longest prefix of xs in which all the elements satisfy the given predicate.

+
Parameters
+ + + +
xsThe sequence to take elements from.
predicateA function called as predicate(x), where x is an element of the sequence, and returning a Logical representing whether x should be included in the resulting sequence. In the current version of the library, predicate has to return a Constant Logical.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
using namespace hana::literals;
hana::take_while(hana::tuple_c<int, 0, 1, 2, 3>, hana::less.than(2_c))
==
hana::tuple_c<int, 0, 1>
);
int main() { }
+
+
+ +
+
+
+template<typename S >
+ + + + +
constexpr auto boost::hana::unfold_left
+
+ +

#include <boost/hana/fwd/unfold_left.hpp>

+Initial value:
= [](auto&& state, auto&& f) {
return tag-dispatched;
}
+

Dual operation to fold_left for sequences.While fold_left reduces a structure to a summary value from the left, unfold_left builds a sequence from a seed value and a function, starting from the left.

+

Signature

+

Given a Sequence S, an initial value state of tag I, an arbitrary Product P and a function \( f : I \to P(I, T) \), unfold_left<S> has the following signature:

+\[ \mathtt{unfold\_left}_S : I \times (I \to P(I, T)) \to S(T) \] +

+
Template Parameters
+ + +
SThe tag of the sequence to build up.
+
+
+
Parameters
+ + + +
stateAn initial value to build the sequence from.
fA function called as f(state), where state is an initial value, and returning
    +
  1. nothing if it is done producing the sequence.
  2. +
  3. otherwise, just(make<P>(state, x)), where state is the new initial value used in the next call to f, x is an element to be appended to the resulting sequence, and P is an arbitrary Product.
  4. +
+
+
+
+

Fun fact

+

In some cases, unfold_left can undo a fold_left operation:

unfold_left<S>(fold_left(xs, state, f), g) == xs

if the following holds

g(f(x, y)) == just(make_pair(x, y))
g(state) == nothing

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
hana::unfold_left<hana::tuple_tag>(hana::int_c<10>, [](auto x) {
return hana::if_(x == hana::int_c<0>,
hana::nothing,
hana::just(hana::make_pair(x - hana::int_c<1>, x))
);
})
==
hana::tuple_c<int, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10>
);
int main() { }
+
+
+ +
+
+
+template<typename S >
+ + + + +
constexpr auto boost::hana::unfold_right
+
+ +

#include <boost/hana/fwd/unfold_right.hpp>

+Initial value:
= [](auto&& state, auto&& f) {
return tag-dispatched;
}
+

Dual operation to fold_right for sequences.While fold_right reduces a structure to a summary value from the right, unfold_right builds a sequence from a seed value and a function, starting from the right.

+

Signature

+

Given a Sequence S, an initial value state of tag I, an arbitrary Product P and a function \( f : I \to P(T, I) \), unfold_right<S> has the following signature:

+\[ \mathtt{unfold\_right}_S : I \times (I \to P(T, I)) \to S(T) \] +

+
Template Parameters
+ + +
SThe tag of the sequence to build up.
+
+
+
Parameters
+ + + +
stateAn initial value to build the sequence from.
fA function called as f(state), where state is an initial value, and returning
    +
  1. nothing if it is done producing the sequence.
  2. +
  3. otherwise, just(make<P>(x, state)), where state is the new initial value used in the next call to f, x is an element to be prepended to the resulting sequence, and P is an arbitrary Product.
  4. +
+
+
+
+

Fun fact

+

In some cases, unfold_right can undo a fold_right operation:

unfold_right<S>(fold_right(xs, state, f), g) == xs

if the following holds

g(f(x, y)) == just(make_pair(x, y))
g(state) == nothing

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
hana::unfold_right<hana::tuple_tag>(hana::int_c<10>, [](auto x) {
return hana::if_(x == hana::int_c<0>,
hana::nothing,
hana::just(hana::make_pair(x, x - hana::int_c<1>))
);
})
==
hana::tuple_c<int, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1>
);
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::unique
+
+ +

#include <boost/hana/fwd/unique.hpp>

+Initial value:
= [](auto&& xs[, auto&& predicate]) {
return tag-dispatched;
}
+

Removes all consecutive duplicate elements from a Sequence.Given a Sequence and an optional binary predicate, unique returns a new sequence containing only the first element of every subrange of the original sequence whose elements are all equal. In other words, it turns a sequence of the form [a, a, b, c, c, c, d, d, d, a] into a sequence [a, b, c, d, a]. The equality of two elements is determined by the provided predicate, or by equal if no predicate is provided.

+

Signature

+

Given a Sequence S(T), a Logical Bool and a binary predicate \( T \times T \to Bool \), unique has the following signature:

+\[ \mathtt{unique} : S(T) \times (T \times T \to Bool) \to S(T) \] +

+
Parameters
+ + + +
xsThe sequence from which to remove consecutive duplicates.
predicateA function called as predicate(x, y), where x and y are adjacent elements of the sequence, and returning a Logical representing whether x and y should be considered equal. predicate should define an equivalence relation over the elements of the sequence. In the current implementation of the library, predicate has to return a compile-time Logical. This parameter is optional; it defaults to equal if it is not provided, which then requires the elements of the sequence to be compile-time Comparable.
+
+
+

Syntactic sugar (unique.by)

+

unique can be called in an alternate way, which provides a nice syntax, especially in conjunction with the comparing combinator:

unique.by(predicate, xs) == unique(xs, predicate)
unique.by(predicate) == unique(-, predicate)

where unique(-, predicate) denotes the partial application of unique to predicate.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
// unique without a predicate
constexpr auto types = hana::tuple_t<int, float, float, char, int, int, int, double>;
hana::unique(types) == hana::tuple_t<int, float, char, int, double>
);
int main() {
// unique with a predicate
auto objects = hana::make_tuple(1, 2, "abc"s, 'd', "efg"s, "hij"s, 3.4f);
hana::unique(objects, [](auto const& t, auto const& u) {
return hana::typeid_(t) == hana::typeid_(u);
})
== hana::make_tuple(1, "abc"s, 'd', "efg"s, 3.4f)
);
// unique.by is syntactic sugar
hana::unique.by(hana::comparing(hana::typeid_), objects) ==
hana::make_tuple(1, "abc"s, 'd', "efg"s, 3.4f)
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::zip
+
+ +

#include <boost/hana/fwd/zip.hpp>

+Initial value:
= [](auto&& x1, ..., auto&& xn) {
return tag-dispatched;
}
+

Zip one sequence or more.Given n sequences s1, ..., sn, zip produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip produces a sequence of the form.

+
[
make_tuple(s1[0], ..., sn[0]),
make_tuple(s1[1], ..., sn[1]),
...
make_tuple(s1[M], ..., sn[M])
]

where M is the length of the sequences, which are all assumed to have the same length. Assuming the sequences to all have the same size allows the library to perform some optimizations. To zip sequences that may have different lengths, zip_shortest should be used instead. Also note that it is an error to provide no sequence at all, i.e. zip expects at least one sequence.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::zip(hana::make_tuple(1, 'a'), hana::make_tuple(2, 3.3))
==
hana::make_tuple(hana::make_tuple(1, 2), hana::make_tuple('a', 3.3))
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::zip_shortest
+
+ +

#include <boost/hana/fwd/zip_shortest.hpp>

+Initial value:
= [](auto&& x1, ..., auto&& xn) {
return tag-dispatched;
}
+

Zip one sequence or more.Given n sequences s1, ..., sn, zip_shortest produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest produces a sequence of the form.

+
[
make_tuple(s1[0], ..., sn[0]),
make_tuple(s1[1], ..., sn[1]),
...
make_tuple(s1[M], ..., sn[M])
]

where M is the length of the shortest sequence. Hence, the returned sequence stops when the shortest input sequence is exhausted. If you know that all the sequences you are about to zip have the same length, you should use zip instead, since it can be more optimized. Also note that it is an error to provide no sequence at all, i.e. zip_shortest expects at least one sequence.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::zip_shortest(hana::make_tuple(1, 'a'), hana::make_tuple(2, 3.3), hana::make_tuple(3, 'c', "ignored"))
==
hana::make_tuple(hana::make_tuple(1, 2, 3), hana::make_tuple('a', 3.3, 'c'))
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::zip_shortest_with
+
+ +

#include <boost/hana/fwd/zip_shortest_with.hpp>

+Initial value:
= [](auto&& f, auto&& x1, ..., auto&& xn) {
return tag-dispatched;
}
+

Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_shortest_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest_with produces a sequence of the form.

+
[
f(s1[0], ..., sn[0]),
f(s1[1], ..., sn[1]),
...
f(s1[M], ..., sn[M])
]

where M is the length of the shortest sequence. Hence, the returned sequence stops when the shortest input sequence is exhausted. If you know that all the sequences you are about to zip have the same length, you should use zip_with instead, since it can be more optimized. Also note that it is an error to provide no sequence at all, i.e. zip_shortest_with expects at least one sequence.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::zip_shortest_with(hana::mult, hana::make_tuple(1, 2, 3, 4), hana::make_tuple(5, 6, 7, 8, "ignored"))
==
hana::make_tuple(5, 12, 21, 32)
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::zip_with
+
+ +

#include <boost/hana/fwd/zip_with.hpp>

+Initial value:
= [](auto&& f, auto&& x1, ..., auto&& xn) {
return tag-dispatched;
}
+

Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_with produces a sequence of the form.

+
[
f(s1[0], ..., sn[0]),
f(s1[1], ..., sn[1]),
...
f(s1[M], ..., sn[M])
]

where M is the length of the sequences, which are all assumed to have the same length. Assuming the sequences to all have the same size allows the library to perform some optimizations. To zip sequences that may have different lengths, zip_shortest_with should be used instead. Also note that it is an error to provide no sequence at all, i.e. zip_with expects at least one sequence.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(
hana::zip_with(hana::mult, hana::make_tuple(1, 2, 3, 4), hana::make_tuple(5, 6, 7, 8))
==
hana::make_tuple(5, 12, 21, 32)
, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Sequence.js b/boost_1_63_0/libs/hana/doc/html/group__group-Sequence.js new file mode 100644 index 0000000..b246963 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Sequence.js @@ -0,0 +1,33 @@ +var group__group_Sequence = +[ + [ "cartesian_product", "group__group-Sequence.html#ga66599f0e1f0749daba759dc661946bdc", null ], + [ "drop_back", "group__group-Sequence.html#gac10231310abc86b056585ea0d0e96ef7", null ], + [ "group", "group__group-Sequence.html#gacefca884b3580664b63238cf8ba33fd3", null ], + [ "insert", "group__group-Sequence.html#gae22a1a184b1b2dd550fa4fa619bed2e9", null ], + [ "insert_range", "group__group-Sequence.html#ga3410ba833cf1ff1d929fcfda4df2eae1", null ], + [ "intersperse", "group__group-Sequence.html#gaa18061cd0f63cfaae89abf43ff92b79e", null ], + [ "partition", "group__group-Sequence.html#ga5e84ac3f1eb09c637b6b38ef42dccd8d", null ], + [ "permutations", "group__group-Sequence.html#gac1e182ac088f1990edd739424d30ea07", null ], + [ "remove_at", "group__group-Sequence.html#ga80724ec8ecf319a1e695988a69e22f87", null ], + [ "remove_at_c", "group__group-Sequence.html#gae70b0815645c7d81bb636a1eed1a65c6", null ], + [ "remove_range", "group__group-Sequence.html#ga6f6d5c1f335780c91d29626fde615c78", null ], + [ "remove_range_c", "group__group-Sequence.html#ga4696efcdee7d95ab4a391bb896a840b5", null ], + [ "reverse", "group__group-Sequence.html#ga28037560e8f224c53cf6ac168d03a067", null ], + [ "scan_left", "group__group-Sequence.html#gaec484fb349500149d90717f6e68f7bcd", null ], + [ "scan_right", "group__group-Sequence.html#ga54d141f901866dfab29b052857123bab", null ], + [ "slice", "group__group-Sequence.html#ga245d8abaf6ba67e64020be51c8366081", null ], + [ "slice_c", "group__group-Sequence.html#gae1f6a2a9cb70564d43c6b3c663b25dd7", null ], + [ "sort", "group__group-Sequence.html#gac000a79eb7b9d44ecc8982c93daa40e5", null ], + [ "span", "group__group-Sequence.html#ga9bdde56d805517bce8e387f5bcd1887e", null ], + [ "take_back", "group__group-Sequence.html#ga8d302de01b94b4b17f3bd81e09f42920", null ], + [ "take_front", "group__group-Sequence.html#ga5112e6070d29b4f7fde3f44825da3316", null ], + [ "take_front_c", "group__group-Sequence.html#ga3779f62fea92af00113a9290f1c680eb", null ], + [ "take_while", "group__group-Sequence.html#ga2d4db4ec5ec5bc16fe74f57de12697fd", null ], + [ "unfold_left", "group__group-Sequence.html#gaf2128be91ad6d32e45db1b8c61f79818", null ], + [ "unfold_right", "group__group-Sequence.html#ga497286bf277e6f8e89ddb18661e1033e", null ], + [ "unique", "group__group-Sequence.html#ga35349be79e646c4f5bdd74ec96a846ab", null ], + [ "zip", "group__group-Sequence.html#gaa5a378d4e71a91e0d6cd3959d9818e8a", null ], + [ "zip_shortest", "group__group-Sequence.html#gade78593b3ff51fc5479e1da97142fef5", null ], + [ "zip_shortest_with", "group__group-Sequence.html#gae7a51104a77db79a0407d7d67b034667", null ], + [ "zip_with", "group__group-Sequence.html#ga6a4bf8549ce69b5b5b7377aec225a0e3", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Struct.html b/boost_1_63_0/libs/hana/doc/html/group__group-Struct.html new file mode 100644 index 0000000..fe33549 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Struct.html @@ -0,0 +1,326 @@ + + + + + + + + + +Boost.Hana: Struct + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Struct
+
+
+

Description

+

The Struct concept represents struct-like user-defined types.

+

The Struct concept allows restricted compile-time reflection over user-defined types. In particular, it allows accessing the names of the members of a user-defined type, and also the value of those members. Structs can also be folded, searched and converted to some types of containers, where more advanced transformations can be performed.

+

While all types can in theory be made Structs, only a subset of them are actually interesting to see as such. More precisely, it is only interesting to make a type a Struct when it is conceptually a C++ struct, i.e. a mostly dumb aggregate of named data. The way this data is accessed is mostly unimportant to the Struct concept; it could be through getters and setters, through public members, through non-member functions or it could even be generated on-the-fly. The important part, which is made precise below, is that those accessor methods should be move-independent.

+

Another way to see a Struct is as a map where the keys are the names of the members and the values are the values of those members. However, there are subtle differences like the fact that one can't add a member to a Struct, and also that the order of the members inside a Struct plays a role in determining the equality of Structs, which is not the case for maps.

+

Minimal complete definition

+

accessors

+

A model of Struct is created by specifying a sequence of key/value pairs with the accessors function. The first element of a pair in this sequence represents the "name" of a member of the Struct, while the second element is a function which retrieves this member from an object. The "names" do not have to be in any special form; they just have to be compile-time Comparable. For example, it is common to provide "names" that are hana::strings representing the actual names of the members, but one could provide hana::integral_constants just as well. The values must be functions which, when given an object, retrieve the appropriate member from it.

+

There are several ways of providing the accessors method, some of which are more flexible and others which are more convenient. First, one can define it through tag-dispatching, as usual.

struct Person {
std::string name;
int age;
};
// The keys can be anything as long as they are compile-time comparable.
constexpr auto name = hana::integral_c<std::string Person::*, &Person::name>;
constexpr auto age = hana::string_c<'a', 'g', 'e'>;
namespace boost { namespace hana {
template <>
struct accessors_impl<Person> {
static BOOST_HANA_CONSTEXPR_LAMBDA auto apply() {
return make_tuple(
make_pair(name, [](auto&& p) -> decltype(auto) {
return id(std::forward<decltype(p)>(p).name);
}),
make_pair(age, [](auto&& p) -> decltype(auto) {
return id(std::forward<decltype(p)>(p).age);
})
);
}
};
}}

Secondly, it is possible to provide a nested hana_accessors_impl type, which should be equivalent to a specialization of accessors_impl for tag-dispatching. However, for a type S, this technique only works when the data type of S is S itself, which is the case unless you explicitly asked for something else.

struct Person {
std::string name;
int age;
struct hana_accessors_impl {
static BOOST_HANA_CONSTEXPR_LAMBDA auto apply() {
return boost::hana::make_tuple(
boost::hana::make_pair(BOOST_HANA_STRING("name"),
[](auto&& p) -> decltype(auto) {
return boost::hana::id(std::forward<decltype(p)>(p).name);
}),
boost::hana::make_pair(BOOST_HANA_STRING("age"),
[](auto&& p) -> decltype(auto) {
return boost::hana::id(std::forward<decltype(p)>(p).age);
})
);
}
};
};

Finally, the most convenient (but least flexible) option is to use the BOOST_HANA_DEFINE_STRUCT, the BOOST_HANA_ADAPT_STRUCT or the BOOST_HANA_ADAPT_ADT macro, which provide a minimal syntactic overhead. See the documentation of these macros for details on how to use them.

+

Also note that it is not important that the accessor functions retrieve an actual member of the struct (e.g. x.member). Indeed, an accessor function could call a custom getter or even compute the value of the member on the fly:

struct Person {
Person(std::string const& name, int age) : name_(name), age_(age) { }
std::string const& get_name() const { return name_; }
int get_age() const { return age_; }
private:
std::string name_;
int age_;
};
namespace boost { namespace hana {
template <>
struct accessors_impl<Person> {
static BOOST_HANA_CONSTEXPR_LAMBDA auto apply() {
return make_tuple(
make_pair(BOOST_HANA_STRING("name"), [](auto&& p) -> std::string const& {
return p.get_name();
}),
make_pair(BOOST_HANA_STRING("age"), [](auto&& p) {
return p.get_age();
})
);
}
};
}}

The only important thing is that the accessor functions are move-independent, a notion which is defined below.

+

Move-independence

+

The notion of move-independence presented here defines rigorously when it is legitimate to "double-move" from an object.

+

A collection of functions f1, ..., fn sharing the same domain is said to be move-independent if for every fresh (not moved-from) object x in the domain, any permutation of the following statements is valid and leaves the zk objects in a fresh (not moved-from) state:

auto z1 = f1(std::move(x));
...
auto zn = fn(std::move(x));
Note
In the special case where some functions return objects that can't be bound to with auto zk = (like void or a non-movable, non-copyable type), just pretend the return value is ignored.
+

Intuitively, this ensures that we can treat f1, ..., fn as "accessors" that decompose x into independent subobjects, and that do so without moving from x more than that subobject. This is important because it allows us to optimally decompose Structs into their subparts inside the library.

+

Laws

+

For any Struct S, the accessors in the accessors<S>() sequence must be move-independent, as defined above.

+

Refined concepts

+
    +
  1. Comparable (free model)
    +Structs are required to be Comparable. Specifically, two Structs of the same data type S must be equal if and only if all of their members are equal. By default, a model of Comparable doing just that is provided for models of Struct. In particular, note that the comparison of the members is made in the same order as they appear in the hana::members sequence.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <string>
    namespace hana = boost::hana;
    struct Person {
    (std::string, name),
    (unsigned short, age)
    );
    };
    int main() {
    Person john{"John", 30}, kevin{"Kevin", 20};
    }
  2. +
  3. Foldable (free model)
    +A Struct can be folded by considering it as a list of pairs each containing the name of a member and the value associated to that member, in the same order as they appear in the hana::members sequence. By default, a model of Foldable doing just that is provided for models of the Struct concept.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    struct Classroom {
    (unsigned short, boys),
    (unsigned short, girls)
    );
    };
    int main() {
    constexpr Classroom compsci{20, 3};
    hana::fold_left(compsci, 0, [](auto total, auto member) {
    // first(member) is the name of the member, here
    // "boys" or "girls", and second(member) is its value.
    return hana::second(member) + total;
    }) == 23
    );
    }
    Being a model of Foldable makes it possible to turn a Struct into basically any Sequence, but also into a hana::map by simply using the to<...> function!
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <string>
    namespace hana = boost::hana;
    struct Person {
    (std::string, name),
    (unsigned short, age)
    );
    };
    int main() {
    Person john{"John", 30u};
    BOOST_HANA_RUNTIME_CHECK(hana::to<hana::map_tag>(john) == hana::make_map(
    hana::make_pair(BOOST_HANA_STRING("name"), "John"),
    hana::make_pair(BOOST_HANA_STRING("age"), 30u)
    ));
    }
  4. +
  5. Searchable (free model)
    +A Struct can be searched by considering it as a map where the keys are the names of the members of the Struct, and the values are the members associated to those names. By default, a model of Searchable is provided for any model of the Struct concept.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <string>
    namespace hana = boost::hana;
    struct Person {
    (std::string, name),
    (unsigned short, age)
    );
    };
    int main() {
    Person john{"John", 30};
    hana::find(john, BOOST_HANA_STRING("name")) == hana::just("John")
    );
    hana::find(john, BOOST_HANA_STRING("foobar")) == hana::nothing
    );
    }
  6. +
+ + + + + + + + + + + +

+Functions

auto boost::hana::BOOST_HANA_ADAPT_ADT (...)
 Defines a model of Struct with the given accessors.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike BOOST_HANA_ADAPT_STRUCT, this macro requires specifying the way to retrieve each member by providing a function that does the extraction. More...
 
auto boost::hana::BOOST_HANA_ADAPT_STRUCT (...)
 Defines a model of Struct with the given members.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike the BOOST_HANA_DEFINE_STRUCT macro, this macro does not require the types of the members to be specified. More...
 
auto boost::hana::BOOST_HANA_DEFINE_STRUCT (...)
 Defines members of a structure, while at the same time modeling Struct.Using this macro in the body of a user-defined type will define the given members inside that type, and will also provide a model of the Struct concept for that user-defined type. This macro is often the easiest way to define a model of the Struct concept. More...
 
+ + + + + + + + + + + +

+Variables

template<typename S >
constexpr auto boost::hana::accessors
 Returns a Sequence of pairs representing the accessors of the data structure.Given a Struct S, accessors<S>() is a Sequence of Products where the first element of each pair is the "name" of a member of the Struct, and the second element of each pair is a function that can be used to access that member when given an object of the proper data type. As described in the global documentation for Struct, the accessor functions in this sequence must be move-independent. More...
 
constexpr keys_t boost::hana::keys {}
 Returns a Sequence containing the name of the members of the data structure.Given a Struct object, keys returns a Sequence containing the name of all the members of the Struct, in the same order as they appear in the accessors sequence. More...
 
constexpr auto boost::hana::members
 Returns a Sequence containing the members of a Struct.Given a Struct object, members returns a Sequence containing all the members of the Struct, in the same order as their respective accessor appears in the accessors sequence. More...
 
+

Function Documentation

+ +
+
+ + + + + + + + +
auto boost::hana::BOOST_HANA_ADAPT_ADT ( ...)
+
+ +

#include <boost/hana/fwd/adapt_adt.hpp>

+ +

Defines a model of Struct with the given accessors.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike BOOST_HANA_ADAPT_STRUCT, this macro requires specifying the way to retrieve each member by providing a function that does the extraction.

+
Note
This macro only works if the tag of the user-defined type T is T itself. This is the case unless you specifically asked for something different; see tag_of's documentation.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
namespace ns {
struct Person {
explicit Person(std::string const& name, int age)
: name_(name), age_(age)
{ }
std::string const& get_name() const { return name_; }
int get_age() const { return age_; }
private:
std::string name_;
int age_;
};
}
(name, [](ns::Person const& p) { return p.get_name(); }),
(age, [](ns::Person const& p) { return p.get_age(); })
);
// The member names are hana::strings:
auto names = hana::transform(hana::accessors<ns::Person>(), hana::first);
names == hana::make_tuple(BOOST_HANA_STRING("name"), BOOST_HANA_STRING("age"))
);
int main() {
ns::Person john{"John", 30}, bob{"Bob", 40};
BOOST_HANA_RUNTIME_CHECK(hana::find(john, BOOST_HANA_STRING("name")) == hana::just("John"));
BOOST_HANA_RUNTIME_CHECK(hana::find(john, BOOST_HANA_STRING("age")) == hana::just(30));
BOOST_HANA_CONSTANT_CHECK(hana::find(john, BOOST_HANA_STRING("foo")) == hana::nothing);
BOOST_HANA_RUNTIME_CHECK(hana::to_tuple(john) == hana::make_tuple(
hana::make_pair(BOOST_HANA_STRING("name"), "John"),
hana::make_pair(BOOST_HANA_STRING("age"), 30)
));
BOOST_HANA_RUNTIME_CHECK(hana::to_map(john) == hana::make_map(
hana::make_pair(BOOST_HANA_STRING("name"), "John"),
hana::make_pair(BOOST_HANA_STRING("age"), 30)
));
}
+
+
+ +
+
+ + + + + + + + +
auto boost::hana::BOOST_HANA_ADAPT_STRUCT ( ...)
+
+ +

#include <boost/hana/fwd/adapt_struct.hpp>

+ +

Defines a model of Struct with the given members.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike the BOOST_HANA_DEFINE_STRUCT macro, this macro does not require the types of the members to be specified.

+
Note
This macro only works if the tag of the user-defined type T is T itself. This is the case unless you specifically asked for something different; see tag_of's documentation.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
namespace ns {
struct Person {
std::string name;
int age;
};
}
name,
age
);
// The member names are hana::strings:
auto names = hana::transform(hana::accessors<ns::Person>(), hana::first);
names == hana::make_tuple(BOOST_HANA_STRING("name"), BOOST_HANA_STRING("age"))
);
int main() {
ns::Person john{"John", 30}, bob{"Bob", 40};
BOOST_HANA_RUNTIME_CHECK(hana::find(john, BOOST_HANA_STRING("name")) == hana::just("John"));
BOOST_HANA_RUNTIME_CHECK(hana::find(john, BOOST_HANA_STRING("age")) == hana::just(30));
BOOST_HANA_CONSTANT_CHECK(hana::find(john, BOOST_HANA_STRING("foo")) == hana::nothing);
BOOST_HANA_RUNTIME_CHECK(hana::to_tuple(john) == hana::make_tuple(
hana::make_pair(BOOST_HANA_STRING("name"), "John"),
hana::make_pair(BOOST_HANA_STRING("age"), 30)
));
BOOST_HANA_RUNTIME_CHECK(hana::to_map(john) == hana::make_map(
hana::make_pair(BOOST_HANA_STRING("name"), "John"),
hana::make_pair(BOOST_HANA_STRING("age"), 30)
));
}
+
+
+ +
+
+ + + + + + + + +
auto boost::hana::BOOST_HANA_DEFINE_STRUCT ( ...)
+
+ +

#include <boost/hana/fwd/define_struct.hpp>

+ +

Defines members of a structure, while at the same time modeling Struct.Using this macro in the body of a user-defined type will define the given members inside that type, and will also provide a model of the Struct concept for that user-defined type. This macro is often the easiest way to define a model of the Struct concept.

+
Note
This macro only works if the tag of the user-defined type T is T itself. This is the case unless you specifically asked for something different; see tag_of's documentation.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
struct Person {
(std::string, name),
(int, age)
);
};
// The member names are hana::strings:
auto names = hana::transform(hana::accessors<Person>(), hana::first);
names == hana::make_tuple(BOOST_HANA_STRING("name"), BOOST_HANA_STRING("age"))
);
int main() {
Person john{"John", 30}, bob{"Bob", 40};
BOOST_HANA_RUNTIME_CHECK(hana::find(john, BOOST_HANA_STRING("name")) == hana::just("John"));
BOOST_HANA_RUNTIME_CHECK(hana::find(john, BOOST_HANA_STRING("age")) == hana::just(30));
BOOST_HANA_CONSTANT_CHECK(hana::find(john, BOOST_HANA_STRING("foo")) == hana::nothing);
BOOST_HANA_RUNTIME_CHECK(hana::to_tuple(john) == hana::make_tuple(
hana::make_pair(BOOST_HANA_STRING("name"), "John"),
hana::make_pair(BOOST_HANA_STRING("age"), 30)
));
BOOST_HANA_RUNTIME_CHECK(hana::to_map(john) == hana::make_map(
hana::make_pair(BOOST_HANA_STRING("name"), "John"),
hana::make_pair(BOOST_HANA_STRING("age"), 30)
));
}
+
+
+

Variable Documentation

+ +
+
+
+template<typename S >
+ + + + +
constexpr auto boost::hana::accessors
+
+ +

#include <boost/hana/fwd/accessors.hpp>

+Initial value:
= []() {
return tag-dispatched;
}
+

Returns a Sequence of pairs representing the accessors of the data structure.Given a Struct S, accessors<S>() is a Sequence of Products where the first element of each pair is the "name" of a member of the Struct, and the second element of each pair is a function that can be used to access that member when given an object of the proper data type. As described in the global documentation for Struct, the accessor functions in this sequence must be move-independent.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
struct Person {
(std::string, name),
(unsigned short, age)
);
};
int main() {
constexpr auto accessors = hana::accessors<Person>();
hana::first(accessors[hana::size_c<0>]) == BOOST_HANA_STRING("name")
);
hana::first(accessors[hana::size_c<1>]) == BOOST_HANA_STRING("age")
);
constexpr auto get_name = hana::second(accessors[hana::size_c<0>]);
constexpr auto get_age = hana::second(accessors[hana::size_c<1>]);
Person john{"John", 30};
BOOST_HANA_RUNTIME_CHECK(get_name(john) == "John");
BOOST_HANA_RUNTIME_CHECK(get_age(john) == 30);
}
+
+
+ +
+
+ + + + + +
+ + + + +
constexpr auto boost::hana::keys {}
+
+related
+
+ +

#include <boost/hana/fwd/keys.hpp>

+ +

Returns a Sequence containing the name of the members of the data structure.Given a Struct object, keys returns a Sequence containing the name of all the members of the Struct, in the same order as they appear in the accessors sequence.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
struct Person {
(std::string, name),
(unsigned short, age)
);
};
int main() {
Person john{"John", 30};
hana::keys(john) == hana::make_tuple(BOOST_HANA_STRING("name"),
BOOST_HANA_STRING("age"))
);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::members
+
+ +

#include <boost/hana/fwd/members.hpp>

+Initial value:
= [](auto&& object) {
return tag-dispatched;
}
+

Returns a Sequence containing the members of a Struct.Given a Struct object, members returns a Sequence containing all the members of the Struct, in the same order as their respective accessor appears in the accessors sequence.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
struct Person {
(std::string, name),
(unsigned short, age)
);
};
int main() {
Person john{"John", 30};
BOOST_HANA_RUNTIME_CHECK(hana::members(john) == hana::make_tuple("John", 30));
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-Struct.js b/boost_1_63_0/libs/hana/doc/html/group__group-Struct.js new file mode 100644 index 0000000..392842c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-Struct.js @@ -0,0 +1,9 @@ +var group__group_Struct = +[ + [ "BOOST_HANA_ADAPT_ADT", "group__group-Struct.html#ga141761435a7826b3cbe646b4f59eaf0a", null ], + [ "BOOST_HANA_ADAPT_STRUCT", "group__group-Struct.html#gaba3b4d2cf342bfca773e90fc20bfae91", null ], + [ "BOOST_HANA_DEFINE_STRUCT", "group__group-Struct.html#gab9efb238a82207d91643994c5295cf8c", null ], + [ "accessors", "group__group-Struct.html#ga983a55dbd93d766fd37689ea32e4ddfb", null ], + [ "keys", "group__group-Struct.html#gaf8c7199742581e6e66c8397def68e2d3", null ], + [ "members", "group__group-Struct.html#gad301dd8e9fb4639d7874619c97d6d427", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-assertions.html b/boost_1_63_0/libs/hana/doc/html/group__group-assertions.html new file mode 100644 index 0000000..6cdc9b8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-assertions.html @@ -0,0 +1,390 @@ + + + + + + + + + +Boost.Hana: Assertions + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Assertions
+
+
+

Description

+

Macros to perform different kinds of assertions.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define BOOST_HANA_RUNTIME_ASSERT(condition)   unspecified
 Expands to a runtime assertion. More...
 
#define BOOST_HANA_RUNTIME_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_RUNTIME_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_CONSTANT_ASSERT(condition)   unspecified
 Compile-time assertion for Constants. More...
 
#define BOOST_HANA_CONSTANT_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_CONSTANT_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_ASSERT(condition)   unspecified
 Expands to the strongest form of assertion possible for the given condition. More...
 
#define BOOST_HANA_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_ASSERT, but allows providing a custom failure message. More...
 
#define BOOST_HANA_CONSTEXPR_ASSERT(condition)   unspecified
 Expands to a static assertion or a runtime assertion, depending on whether constexpr lambdas are supported. More...
 
+#define BOOST_HANA_CONSTEXPR_ASSERT_MSG(condition, message)   unspecified
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT, but allows providing a custom failure message.
 
+#define BOOST_HANA_RUNTIME_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_RUNTIME_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_RUNTIME_CHECK(...)
 Equivalent to BOOST_HANA_RUNTIME_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTANT_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_CONSTANT_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTANT_CHECK(...)
 Equivalent to BOOST_HANA_CONSTANT_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CHECK_MSG(condition, message)
 Equivalent to BOOST_HANA_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CHECK(...)
 Equivalent to BOOST_HANA__ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTEXPR_CHECK_MSG(condition, message)    BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT_MSG, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+#define BOOST_HANA_CONSTEXPR_CHECK(...)
 Equivalent to BOOST_HANA_CONSTEXPR_ASSERT, but not influenced by the BOOST_HANA_CONFIG_DISABLE_ASSERTIONS config macro. For internal use only.
 
+

Macro Definition Documentation

+ +
+
+ + + + + + + + +
#define BOOST_HANA_RUNTIME_ASSERT( condition)   unspecified
+
+ +

#include <boost/hana/assert.hpp>

+ +

Expands to a runtime assertion.

+

Given a condition known at runtime, this macro expands to a runtime assertion similar to the assert macro. The provided condition must be explicitly convertible to a bool, and it must not be a model of the Constant concept. If the condition is a Constant, a static assertion will be triggered, asking you to use the BOOST_HANA_CONSTANT_ASSERT macro instead.

+
Note
This macro may only be used at function scope.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define BOOST_HANA_RUNTIME_ASSERT_MSG( condition,
 message 
)   unspecified
+
+ +

#include <boost/hana/assert.hpp>

+ +

Equivalent to BOOST_HANA_RUNTIME_ASSERT, but allows providing a custom failure message.

+
Warning
Conditions that contain multiple comma-separated elements should be parenthesized.
+ +
+
+ +
+
+ + + + + + + + +
#define BOOST_HANA_CONSTANT_ASSERT( condition)   unspecified
+
+ +

#include <boost/hana/assert.hpp>

+ +

Compile-time assertion for Constants.

+

Given a condition known at compile-time in the form of a Constant, this macro expands to a compile-time assertion similar to a static_assert. The provided condition must be a model of the Constant concept, in which case its value is retrieved using hana::value and then converted to a bool. If the condition is not a Constant, a static assertion will be triggered, asking you to use the BOOST_HANA_RUNTIME_ASSERT macro instead.

+

This macro may be used at global/namespace scope and function scope only; it may not be used at class scope. Note that the condition may never be evaluated at runtime. Hence, any side effect may not take place (but you shouldn't rely on side effects inside assertions anyway).

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define BOOST_HANA_CONSTANT_ASSERT_MSG( condition,
 message 
)   unspecified
+
+ +

#include <boost/hana/assert.hpp>

+ +

Equivalent to BOOST_HANA_CONSTANT_ASSERT, but allows providing a custom failure message.

+
Warning
Conditions that contain multiple comma-separated elements should be parenthesized.
+ +
+
+ +
+
+ + + + + + + + +
#define BOOST_HANA_ASSERT( condition)   unspecified
+
+ +

#include <boost/hana/assert.hpp>

+ +

Expands to the strongest form of assertion possible for the given condition.

+

Given a condition, BOOST_HANA_ASSERT expands either to a compile-time or to a runtime assertion, depending on whether the value of the condition is known at compile-time or at runtime. Compile-time assertions are always preferred over runtime assertions. If the condition is a model of the Constant concept, its value (retrievable with hana::value) is assumed to be explicitly convertible to bool, and a compile-time assertion is performed on it. Otherwise, the condition itself is assumed to be explicitly convertible to bool, and a runtime assertion is performed on it.

+

If the assertion can be carried out at compile-time, the condition is not guaranteed to be evaluated at runtime at all (but it may). Hence, in general, you shouldn't rely on side effects that take place inside an assertion.

+
Note
This macro may only be used at function scope.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define BOOST_HANA_ASSERT_MSG( condition,
 message 
)   unspecified
+
+ +

#include <boost/hana/assert.hpp>

+ +

Equivalent to BOOST_HANA_ASSERT, but allows providing a custom failure message.

+
Warning
Conditions that contain multiple comma-separated elements should be parenthesized.
+ +
+
+ +
+
+ + + + + + + + +
#define BOOST_HANA_CONSTEXPR_ASSERT( condition)   unspecified
+
+ +

#include <boost/hana/assert.hpp>

+ +

Expands to a static assertion or a runtime assertion, depending on whether constexpr lambdas are supported.

+

This macro is used to assert on a condition that would be a constant expression if constexpr lambdas were supported. Right now, constexpr lambdas are not supported, and this is always a runtime assertion. Specifically, this is equivalent to BOOST_HANA_RUNTIME_ASSERT.

+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-assertions.js b/boost_1_63_0/libs/hana/doc/html/group__group-assertions.js new file mode 100644 index 0000000..9828f57 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-assertions.js @@ -0,0 +1,19 @@ +var group__group_assertions = +[ + [ "BOOST_HANA_RUNTIME_ASSERT", "group__group-assertions.html#gae4eb14a3b31e44f433b080d9bc2d14fd", null ], + [ "BOOST_HANA_RUNTIME_ASSERT_MSG", "group__group-assertions.html#ga2e25bbdeefb0e5fbf45ffa9227ddb8d2", null ], + [ "BOOST_HANA_CONSTANT_ASSERT", "group__group-assertions.html#ga2626fa0c92b308cee62ac423ae2dba41", null ], + [ "BOOST_HANA_CONSTANT_ASSERT_MSG", "group__group-assertions.html#ga9961218055c571b279bb6e07befbba4d", null ], + [ "BOOST_HANA_ASSERT", "group__group-assertions.html#ga90c1df2cb8eb67e8e0c822eac180b7bc", null ], + [ "BOOST_HANA_ASSERT_MSG", "group__group-assertions.html#gaa7690973ea7b2ba5b6a72a6293fce873", null ], + [ "BOOST_HANA_CONSTEXPR_ASSERT", "group__group-assertions.html#ga046d7ee458de8da63812fe2f059c0a4d", null ], + [ "BOOST_HANA_CONSTEXPR_ASSERT_MSG", "group__group-assertions.html#ga0a1327b758604bf330efeba450dd4a95", null ], + [ "BOOST_HANA_RUNTIME_CHECK_MSG", "group__group-assertions.html#ga1cd7a2be93e2bf4e9a18c7043276373e", null ], + [ "BOOST_HANA_RUNTIME_CHECK", "group__group-assertions.html#ga29b2b21ffa5513e5b706c50ffee980af", null ], + [ "BOOST_HANA_CONSTANT_CHECK_MSG", "group__group-assertions.html#ga41a7490fd94005e6b6a3b6a900207063", null ], + [ "BOOST_HANA_CONSTANT_CHECK", "group__group-assertions.html#ga4bf9e0c46c44e21fbe5c5fbb3ace8356", null ], + [ "BOOST_HANA_CHECK_MSG", "group__group-assertions.html#ga7af67ae500a237fe350f1bfceb4a5afa", null ], + [ "BOOST_HANA_CHECK", "group__group-assertions.html#ga512de1fcd31e8a34931ffb2c891afd36", null ], + [ "BOOST_HANA_CONSTEXPR_CHECK_MSG", "group__group-assertions.html#gaa76ba567944adfec0dce60cc20be35bc", null ], + [ "BOOST_HANA_CONSTEXPR_CHECK", "group__group-assertions.html#ga5150cd7df438a22056a39529d21562d2", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-concepts.html b/boost_1_63_0/libs/hana/doc/html/group__group-concepts.html new file mode 100644 index 0000000..bafa690 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-concepts.html @@ -0,0 +1,221 @@ + + + + + + + + + +Boost.Hana: Concepts + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Concepts
+
+
+

Description

+

Concepts provided by the library.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 Applicative
 The Applicative concept represents Functors with the ability to lift values and combine computations.
 
 Comonad
 The Comonad concept represents context-sensitive computations and data.
 
 Comparable
 The Comparable concept defines equality and inequality.
 
 Constant
 The Constant concept represents data that can be manipulated at compile-time.
 
 Euclidean Ring
 The EuclideanRing concept represents a commutative Ring that can also be endowed with a division algorithm.
 
 Foldable
 The Foldable concept represents data structures that can be reduced to a single value.
 
 Functor
 The Functor concept represents types that can be mapped over.
 
 Group
 The Group concept represents Monoids where all objects have an inverse w.r.t. the Monoid's binary operation.
 
 Hashable
 The Hashable concept represents objects that can be normalized to a type-level hash.
 
 Iterable
 The Iterable concept represents data structures supporting external iteration.
 
 Logical
 The Logical concept represents types with a truth value.
 
 Metafunction
 A Metafunction is a function that takes hana::types as inputs and returns a hana::type as output.
 
 Monad
 The Monad concept represents Applicatives with the ability to flatten nested levels of structure.
 
 MonadPlus
 The MonadPlus concept represents Monads with a monoidal structure.
 
 Monoid
 The Monoid concept represents data types with an associative binary operation that has an identity.
 
 Orderable
 The Orderable concept represents totally ordered data types.
 
 Product
 Represents types that are generic containers of two elements.
 
 Ring
 The Ring concept represents Groups that also form a Monoid under a second binary operation that distributes over the first.
 
 Searchable
 The Searchable concept represents structures that can be searched.
 
 Sequence
 The Sequence concept represents generic index-based sequences.
 
 Struct
 The Struct concept represents struct-like user-defined types.
 
+ + + + +

+Classes

struct  boost::hana::IntegralConstant< C >
 The IntegralConstant concept represents compile-time integral values. More...
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-concepts.js b/boost_1_63_0/libs/hana/doc/html/group__group-concepts.js new file mode 100644 index 0000000..b8114bf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-concepts.js @@ -0,0 +1,25 @@ +var group__group_concepts = +[ + [ "Applicative", "group__group-Applicative.html", "group__group-Applicative" ], + [ "Comonad", "group__group-Comonad.html", "group__group-Comonad" ], + [ "Comparable", "group__group-Comparable.html", "group__group-Comparable" ], + [ "Constant", "group__group-Constant.html", "group__group-Constant" ], + [ "Euclidean Ring", "group__group-EuclideanRing.html", "group__group-EuclideanRing" ], + [ "Foldable", "group__group-Foldable.html", "group__group-Foldable" ], + [ "Functor", "group__group-Functor.html", "group__group-Functor" ], + [ "Group", "group__group-Group.html", "group__group-Group" ], + [ "Hashable", "group__group-Hashable.html", "group__group-Hashable" ], + [ "Iterable", "group__group-Iterable.html", "group__group-Iterable" ], + [ "Logical", "group__group-Logical.html", "group__group-Logical" ], + [ "Metafunction", "group__group-Metafunction.html", "group__group-Metafunction" ], + [ "Monad", "group__group-Monad.html", "group__group-Monad" ], + [ "MonadPlus", "group__group-MonadPlus.html", "group__group-MonadPlus" ], + [ "Monoid", "group__group-Monoid.html", "group__group-Monoid" ], + [ "Orderable", "group__group-Orderable.html", "group__group-Orderable" ], + [ "Product", "group__group-Product.html", "group__group-Product" ], + [ "Ring", "group__group-Ring.html", "group__group-Ring" ], + [ "Searchable", "group__group-Searchable.html", "group__group-Searchable" ], + [ "Sequence", "group__group-Sequence.html", "group__group-Sequence" ], + [ "Struct", "group__group-Struct.html", "group__group-Struct" ], + [ "IntegralConstant", "structboost_1_1hana_1_1IntegralConstant.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-config.html b/boost_1_63_0/libs/hana/doc/html/group__group-config.html new file mode 100644 index 0000000..7e0478a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-config.html @@ -0,0 +1,270 @@ + + + + + + + + + +Boost.Hana: Configuration options + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Configuration options
+
+
+

Description

+

Configurable options to tweak the global behavior of the library.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define BOOST_HANA_CONFIG_DISABLE_ASSERTIONS
 Disables the BOOST_HANA_*_ASSERT macro & friends. More...
 
#define BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS
 Disables concept checks in interface methods. More...
 
#define BOOST_HANA_CONFIG_ENABLE_STRING_UDL
 Enables usage of the "string literal operator template" GNU extension. More...
 
#define BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE
 Enables additional assertions and sanity checks to be done by Hana. More...
 
+#define BOOST_HANA_MAJOR_VERSION   1
 Macro expanding to the major version of the library, i.e. the x in x.y.z.
 
+#define BOOST_HANA_MINOR_VERSION   0
 Macro expanding to the minor version of the library, i.e. the y in x.y.z.
 
+#define BOOST_HANA_PATCH_VERSION   2
 Macro expanding to the patch level of the library, i.e. the z in x.y.z.
 
#define BOOST_HANA_VERSION
 Macro expanding to the full version of the library, in hexadecimal representation. More...
 
+

Macro Definition Documentation

+ +
+
+ + + + +
#define BOOST_HANA_CONFIG_DISABLE_ASSERTIONS
+
+ +

#include <boost/hana/config.hpp>

+ +

Disables the BOOST_HANA_*_ASSERT macro & friends.

+

When this macro is defined, the BOOST_HANA_*_ASSERT macro & friends are disabled, i.e. they expand to nothing.

+

This macro is defined automatically when NDEBUG is defined. It can also be defined by users before including this header or defined on the command line.

+ +
+
+ +
+
+ + + + +
#define BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS
+
+ +

#include <boost/hana/config.hpp>

+ +

Disables concept checks in interface methods.

+

When this macro is not defined (the default), tag-dispatched methods will make sure the arguments they are passed are models of the proper concept(s). This can be very helpful in catching programming errors, but it is also slightly less compile-time efficient. You should probably always leave the checks enabled (and hence never define this macro), except perhaps in translation units that are compiled very often but whose code using Hana is modified very rarely.

+ +
+
+ +
+
+ + + + +
#define BOOST_HANA_CONFIG_ENABLE_STRING_UDL
+
+ +

#include <boost/hana/config.hpp>

+ +

Enables usage of the "string literal operator template" GNU extension.

+

That operator is not part of the language yet, but it is supported by both Clang and GCC. This operator allows Hana to provide the nice _s user-defined literal for creating compile-time strings.

+

When this macro is not defined, the GNU extension will be not used by Hana. Because this is a non-standard extension, the macro is not defined by default.

+ +
+
+ +
+
+ + + + +
#define BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE
+
+ +

#include <boost/hana/config.hpp>

+ +

Enables additional assertions and sanity checks to be done by Hana.

+

When this macro is defined (it is not defined by default), additional sanity checks may be done by Hana. These checks may be costly to perform, either in terms of compilation time or in terms of execution time. These checks may help debugging an application during its initial development, but they should not be enabled as part of the normal configuration.

+ +
+
+ +
+
+ + + + +
#define BOOST_HANA_VERSION
+
+ +

#include <boost/hana/version.hpp>

+Value:
#define BOOST_HANA_PATCH_VERSION
Macro expanding to the patch level of the library, i.e. the z in x.y.z.
Definition: version.hpp:31
+
#define BOOST_HANA_MINOR_VERSION
Macro expanding to the minor version of the library, i.e. the y in x.y.z.
Definition: version.hpp:27
+
#define BOOST_HANA_CONFIG_VERSION(version, revision, patch)
Definition: version.hpp:18
+
#define BOOST_HANA_MAJOR_VERSION
Macro expanding to the major version of the library, i.e. the x in x.y.z.
Definition: version.hpp:23
+
+

Macro expanding to the full version of the library, in hexadecimal representation.

+

Specifically, BOOST_HANA_VERSION expands to an hexadecimal number of the form 0xVVRRPPPP, where VV is the major version of the library, RR is the minor version and PPPP is the patch level. This allows the version of the library to be compared:

#if BOOST_HANA_VERSION < 0x01020003
// Hana's version is < 1.2.3
#else
// Hana's version is >= 1.2.3
#endif
Note
The major, minor and patch versions of the library are also available individually with the BOOST_HANA_{MAJOR,MINOR,PATCH}_VERSION macros.
+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-config.js b/boost_1_63_0/libs/hana/doc/html/group__group-config.js new file mode 100644 index 0000000..3d22ad7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-config.js @@ -0,0 +1,11 @@ +var group__group_config = +[ + [ "BOOST_HANA_CONFIG_DISABLE_ASSERTIONS", "group__group-config.html#ga08dcc32bef198420e646244e851d1995", null ], + [ "BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS", "group__group-config.html#gad2b44f7cf8a6ba1002437a1a89e62acd", null ], + [ "BOOST_HANA_CONFIG_ENABLE_STRING_UDL", "group__group-config.html#ga81de60f5bea16e6ff4a38c94e3022f10", null ], + [ "BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE", "group__group-config.html#ga95603295cd6cc840c0dbc50b75e02ee9", null ], + [ "BOOST_HANA_MAJOR_VERSION", "group__group-config.html#gac1f8e58978bf4fe02f68ca4646124aee", null ], + [ "BOOST_HANA_MINOR_VERSION", "group__group-config.html#gafd6a702442b280083efe2690da5621bd", null ], + [ "BOOST_HANA_PATCH_VERSION", "group__group-config.html#ga50940f9267eacd0da0d4d8ccbfac8817", null ], + [ "BOOST_HANA_VERSION", "group__group-config.html#ga2fb384037c12a706e1a1cac053065648", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-core.html b/boost_1_63_0/libs/hana/doc/html/group__group-core.html new file mode 100644 index 0000000..f338af0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-core.html @@ -0,0 +1,360 @@ + + + + + + + + + +Boost.Hana: Core + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Core
+
+
+

Description

+

Core utilities of the library.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  boost::hana::common< T, U, enabler >
 Metafunction returning the common data type between two data types. More...
 
struct  boost::hana::has_common< T, U, typename >
 Metafunction returning whether two data types share a common data type. More...
 
struct  boost::hana::default_
 Mark a tag-dispatched method implementation as a default implementation. More...
 
struct  boost::hana::is_default< Method, typename >
 Returns whether a tag-dispatched method implementation is a default implementation. More...
 
struct  boost::hana::tag_of< T, enabler >
 Metafunction returning the tag associated to T. More...
 
struct  boost::hana::is_convertible< From, To, typename >
 Returns whether there is a Hana-conversion from a data type to another. More...
 
struct  boost::hana::embedding< bool >
 Marks a conversion between data types as being an embedding. More...
 
struct  boost::hana::is_embedded< From, To, typename >
 Returns whether a data type can be embedded into another data type. More...
 
struct  boost::hana::when< condition >
 Enable a partial specialization only if a boolean condition is true. More...
 
+ + + + + + + + + + + + + +

+Typedefs

template<typename T , typename U >
using boost::hana::common_t = typename common< T, U >::type
 Alias to common<T, U>::type, provided for convenience. More...
 
template<typename T >
using boost::hana::tag_of_t = typename hana::tag_of< T >::type
 Alias to tag_of<T>::type, provided for convenience. More...
 
template<typename... >
using boost::hana::when_valid = when< true >
 Variant of when allowing specializations to be enabled only if an expression is well-formed. More...
 
+ + + + + + + + + + + + + + + + + +

+Variables

template<typename Tag , typename optional_T >
constexpr auto boost::hana::is_a = see-documentation
 Returns whether the tag of an object matches a given tag. More...
 
+template<typename Tag , typename... T>
constexpr auto boost::hana::is_an = is_a<Tag, T...>
 Equivalent to is_a; provided for consistency with the rules of the English language.
 
template<typename Tag >
constexpr auto boost::hana::make
 Create an object of the given tag with the given arguments. More...
 
template<typename To >
constexpr auto boost::hana::to
 Converts an object from one data type to another. More...
 
+

Typedef Documentation

+ +
+
+
+template<typename T , typename U >
+ + + + +
using boost::hana::common_t = typedef typename common<T, U>::type
+
+ +

#include <boost/hana/fwd/core/common.hpp>

+ +

Alias to common<T, U>::type, provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
static_assert(std::is_same<
hana::common_t<int, float>,
hana::common<int, float>::type
>{}, "");
int main() { }
+
+
+ +
+
+
+template<typename T >
+ + + + +
using boost::hana::tag_of_t = typedef typename hana::tag_of<T>::type
+
+ +

#include <boost/hana/fwd/core/tag_of.hpp>

+ +

Alias to tag_of<T>::type, provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
struct PersonTag;
struct Person { using hana_tag = PersonTag; };
static_assert(std::is_same<hana::tag_of_t<Person>, PersonTag>{}, "");
int main() { }
+
+
+ +
+
+
+template<typename... >
+ + + + +
using boost::hana::when_valid = typedef when<true>
+
+ +

#include <boost/hana/fwd/core/when.hpp>

+ +

Variant of when allowing specializations to be enabled only if an expression is well-formed.

+

when_valid<...> is always equivalent to when<true>. However, when used inside a partial specialization, SFINAE will cause the partial specialization to be ignored when the expression is ill-formed.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
template <typename T, typename = hana::when<true>>
struct base_template;
template <typename T>
struct base_template<T, hana::when_valid<typename T::value_type>> {
// something useful...
};
int main() { }
Bug:
Using when_valid seems to trigger ambiguous partial specializations on GCC.
+ +
+
+

Variable Documentation

+ +
+
+
+template<typename Tag , typename optional_T >
+ + + + +
constexpr auto boost::hana::is_a = see-documentation
+
+ +

#include <boost/hana/fwd/core/is_a.hpp>

+ +

Returns whether the tag of an object matches a given tag.

+

Given a tag Tag and a C++ type T, is_a<Tag, T> is a compile-time Logical representing whether the tag of T is exactly Tag. In other words, it is equivalent to

std::is_same<Tag, tag_of<T>::type>

For convenience, an alternate syntax is provided for using is_a. Specifically, is_a<Tag> is a function object returning whether the argument it is passed has the given tag. In other words,

is_a<Tag>(x) == is_a<Tag, decltype(x)>

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::is_a<hana::tuple_tag, decltype(hana::make_tuple(1, '2', 3.3))>, "");
static_assert(!hana::is_a<hana::tuple_tag, void>, "");
static_assert(hana::is_an<hana::integral_constant_tag<int>>(hana::int_c<10>), "");
int main() { }
+
+
+ +
+
+
+template<typename Tag >
+ + + + +
constexpr auto boost::hana::make
+
+ +

#include <boost/hana/fwd/core/make.hpp>

+Initial value:
= [](auto&& ...x) -> decltype(auto) {
return tag-dispatched;
}
+

Create an object of the given tag with the given arguments.

+

This function serves the same purpose as constructors in usual C++. However, instead of creating an object of a specific C++ type, it creates an object of a specific tag, regardless of the C++ type of that object.

+

This function is actually a variable template, so make<T> can be passed around as a function object creating an object of tag T. Also, it uses tag-dispatching so this is how it should be customized for user-defined tags.

+

Finally, the default implementation of make is equivalent to calling the constructor of the given tag with the corresponding arguments. In other words, by default,

make<T>(args...) == T(args...)

Note that the arguments are perfectly forwarded and the form of construction which is used is exactly as documented, i.e. T(args...). However, if T(args...) is not a valid expression, a compilation error is triggered. This default behavior is useful because it makes foreign C++ types that have no notion of tag constructible with make out-of-the-box, since their tag is exactly themselves.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
int main() {
hana::tuple<int, char, double, std::string> ts{1, '2', 3.3, "abcd"};
BOOST_HANA_RUNTIME_CHECK(ts == hana::make_tuple(1, '2', 3.3, std::string{"abcd"}));
// std::string has no notion of tag, but it still works with make<>
std::string foo{"foo"};
BOOST_HANA_RUNTIME_CHECK(hana::make<std::string>("foo") == foo);
}
+
+
+ +
+
+
+template<typename To >
+ + + + +
constexpr auto boost::hana::to
+
+ +

#include <boost/hana/fwd/core/to.hpp>

+Initial value:
= [](auto&& x) -> decltype(auto) {
return tag-dispatched;
}
+

Converts an object from one data type to another.

+

to is a natural extension of the static_cast language construct to data types. Given a destination data type To and an object x, to creates a new object of data type To from x. Note, however, that to is not required to actually create a new object, and may return a reference to the original object (for example when trying to convert an object to its own data type).

+

As a natural extension to static_cast, to provides a default behavior. For the purpose of what follows, let To be the destination data type and From be the data type of x, i.e. the source data type. Then, to has the following default behavior:

    +
  1. If the To and From data types are the same, then the object is forwarded as-is.
  2. +
  3. Otherwise, if From is convertible to To using static_cast, x is converted to From using static_cast.
  4. +
  5. Otherwise, calling to<From>(x) triggers a static assertion.
  6. +
+

However, to is a tag-dispatched function, which means that to_impl may be specialized in the boost::hana namespace to customize its behavior for arbitrary data types. Also note that to is tag-dispatched using both the To and the From data types, which means that to_impl is called as to_impl<To, From>::apply(x). Also note that some concepts provide conversions to or from their models. For example, any Foldable may be converted into a Sequence. This is achieved by specializing to_impl<To, From> whenever To is a Sequence and From is a Foldable. When such conversions are provided, they are documented in the source concept, in this case Foldable.

+

Hana-convertibility

+

When an object x of data type From can be converted to a data type To using to, we say that x is Hana-convertible to the data type To. We also say that there is a Hana-conversion from From to To. This bit of terminology is useful to avoid mistaking the various kinds of conversions C++ offers.

+

Embeddings

+

As you might have seen by now, Hana uses algebraic and category- theoretical structures all around the place to help specify concepts in a rigorous way. These structures always have operations associated to them, which is why they are useful. The notion of embedding captures the idea of injecting a smaller structure into a larger one while preserving the operations of the structure. In other words, an embedding is an injective mapping that is also structure-preserving. Exactly what it means for a structure's operations to be preserved is left to explain by the documentation of each structure. For example, when we talk of a Monoid-embedding from a Monoid A to a Monoid B, we simply mean an injective transformation that preserves the identity and the associative operation, as documented in Monoid.

+

But what does this have to do with the to function? Quite simply, the to function is a mapping between two data types, which will sometimes be some kind of structure, and it is sometimes useful to know whether such a mapping is well-behaved, i.e. lossless and structure preserving. The criterion for this conversion to be well- behaved is exactly that of being an embedding. To specify that a conversion is an embedding, simply use the embedding type as a base class of the corresponding to_impl specialization. Obviously, you should make sure the conversion is really an embedding, unless you want to shoot yourself in the foot.

+
Template Parameters
+ + +
ToThe data type to which x should be converted.
+
+
+
Parameters
+ + +
xThe object to convert to the given data type.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
template <typename X, typename Y, typename Z>
struct Triple {
X first;
Y second;
Z third;
};
BOOST_HANA_CONSTEXPR_LAMBDA auto triple = [](auto x, auto y, auto z) {
return Triple<decltype(x), decltype(y), decltype(z)>{x, y, z};
};
namespace boost { namespace hana {
template <typename X, typename Y, typename Z>
struct to_impl<tuple_tag, Triple<X, Y, Z>> {
static constexpr auto apply(Triple<X, Y, Z> xs) {
return make_tuple(xs.first, xs.second, xs.third);
}
};
}}
int main() {
hana::to<hana::tuple_tag>(triple(1, '2', 3.3)) == hana::make_tuple(1, '2', 3.3)
);
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-core.js b/boost_1_63_0/libs/hana/doc/html/group__group-core.js new file mode 100644 index 0000000..26f8bdc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-core.js @@ -0,0 +1,19 @@ +var group__group_core = +[ + [ "common", "structboost_1_1hana_1_1common.html", null ], + [ "has_common", "structboost_1_1hana_1_1has__common.html", null ], + [ "default_", "structboost_1_1hana_1_1default__.html", null ], + [ "is_default", "structboost_1_1hana_1_1is__default.html", null ], + [ "tag_of", "structboost_1_1hana_1_1tag__of.html", null ], + [ "is_convertible", "structboost_1_1hana_1_1is__convertible.html", null ], + [ "embedding", "structboost_1_1hana_1_1embedding.html", null ], + [ "is_embedded", "structboost_1_1hana_1_1is__embedded.html", null ], + [ "when", "structboost_1_1hana_1_1when.html", null ], + [ "common_t", "group__group-core.html#ga4da46c97755c0f430b063711b66ca05b", null ], + [ "tag_of_t", "group__group-core.html#ga686d1236161b5690ab302500077988e1", null ], + [ "when_valid", "group__group-core.html#ga0f5d717bbf6646619bb6219b104384dc", null ], + [ "is_a", "group__group-core.html#ga38cf78e1e3e262f7f1c71ddd9ca70cd9", null ], + [ "is_an", "group__group-core.html#ga7fdbde52f5fe384a816c6f39ff272df9", null ], + [ "make", "group__group-core.html#ga1d92480f0af1029878e773dafa3e2f60", null ], + [ "to", "group__group-core.html#gadc70755c1d059139297814fb3bfeb91e", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-datatypes.html b/boost_1_63_0/libs/hana/doc/html/group__group-datatypes.html new file mode 100644 index 0000000..53dd3d9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-datatypes.html @@ -0,0 +1,184 @@ + + + + + + + + + +Boost.Hana: Data types + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Data types
+
+
+

Description

+

General purpose data types provided by the library.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  boost::hana::integral_constant< T, v >
 Compile-time value of an integral type. More...
 
struct  boost::hana::basic_tuple< Xs >
 Stripped down version of hana::tuple. More...
 
struct  boost::hana::lazy< implementation_defined >
 hana::lazy implements superficial laziness via a monadic interface. More...
 
struct  boost::hana::map< Pairs >
 Basic associative container requiring unique, Comparable and Hashable keys. More...
 
struct  boost::hana::optional< T >
 Optional value whose optional-ness is known at compile-time. More...
 
struct  boost::hana::pair< First, Second >
 Generic container for two elements. More...
 
struct  boost::hana::range< T, from, to >
 Compile-time half-open interval of hana::integral_constants. More...
 
struct  boost::hana::set< implementation_defined >
 Basic unordered container requiring unique, Comparable and Hashable keys. More...
 
struct  boost::hana::string< implementation_defined >
 Compile-time string. More...
 
struct  boost::hana::tuple< Xn >
 General purpose index-based heterogeneous sequence with a fixed length. More...
 
struct  boost::hana::type< T >
 C++ type in value-level representation. More...
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-datatypes.js b/boost_1_63_0/libs/hana/doc/html/group__group-datatypes.js new file mode 100644 index 0000000..162d687 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-datatypes.js @@ -0,0 +1,193 @@ +var group__group_datatypes = +[ + [ "integral_constant", "structboost_1_1hana_1_1integral__constant.html", [ + [ "bool_", "structboost_1_1hana_1_1integral__constant.html#adeaf00ee03ae0daf97d60d5258bd3703", null ], + [ "true_", "structboost_1_1hana_1_1integral__constant.html#ae0cf9368270efc7fdd2aeec497644892", null ], + [ "false_", "structboost_1_1hana_1_1integral__constant.html#a84a8b7c3f824b4f0421d6a834601a0c4", null ], + [ "char_", "structboost_1_1hana_1_1integral__constant.html#a08598ceb1797047d8938049b0cad6ccc", null ], + [ "short_", "structboost_1_1hana_1_1integral__constant.html#a217459eb4ffdd9580b5d8e1bf36d7ac4", null ], + [ "ushort_", "structboost_1_1hana_1_1integral__constant.html#a69a1bcadc259af364eb87d634c76c12e", null ], + [ "int_", "structboost_1_1hana_1_1integral__constant.html#ab4891bf3aec7c15fa2d91c8fbacf4563", null ], + [ "uint", "structboost_1_1hana_1_1integral__constant.html#a5071dd223185718f85da1db48fb95d80", null ], + [ "long_", "structboost_1_1hana_1_1integral__constant.html#a41f541c4b34b1972d0e84bf10f7908e1", null ], + [ "ulong", "structboost_1_1hana_1_1integral__constant.html#aedb2b03831973b4b54c5d0abce1af63c", null ], + [ "llong", "structboost_1_1hana_1_1integral__constant.html#aa7bf152c582934a70baa1d6c2bc758ba", null ], + [ "ullong", "structboost_1_1hana_1_1integral__constant.html#a112e62e2d698846ca9e3940eb15333d3", null ], + [ "size_t", "structboost_1_1hana_1_1integral__constant.html#a022e29dcd19f546f3ac35254f11e56de", null ], + [ "integral_c", "structboost_1_1hana_1_1integral__constant.html#a8e52c0f4a65a852dc88f97259a05ff17", null ], + [ "bool_c", "structboost_1_1hana_1_1integral__constant.html#aa301b96de91d665fdc846bde4659b0d3", null ], + [ "true_c", "structboost_1_1hana_1_1integral__constant.html#a96c109b048f822be0ca7578c93694405", null ], + [ "false_c", "structboost_1_1hana_1_1integral__constant.html#aec1a5deaa7bcdf7c07c2da4af8959454", null ], + [ "char_c", "structboost_1_1hana_1_1integral__constant.html#aca22320011be96155645b79fe53dd8c2", null ], + [ "short_c", "structboost_1_1hana_1_1integral__constant.html#aaf48189e927611ea460974ba01beb2c7", null ], + [ "ushort_c", "structboost_1_1hana_1_1integral__constant.html#ace7c983d1ffed3a1ff10b5287d2c6ddd", null ], + [ "int_c", "structboost_1_1hana_1_1integral__constant.html#a8669179fa3d068951014b3be07a7d673", null ], + [ "uint_c", "structboost_1_1hana_1_1integral__constant.html#a79f45e3c2411db1d36127c1341673ffb", null ], + [ "long_c", "structboost_1_1hana_1_1integral__constant.html#ab7e3b17ac89121823916ebd7c6f96235", null ], + [ "ulong_c", "structboost_1_1hana_1_1integral__constant.html#a65df6bbd2d90432bdcdc709cdbca9921", null ], + [ "llong_c", "structboost_1_1hana_1_1integral__constant.html#a81c86537a0d36b8788cba2188314febc", null ], + [ "ullong_c", "structboost_1_1hana_1_1integral__constant.html#a186b6fdf81c9be08f42576cafd63b38d", null ], + [ "size_c", "structboost_1_1hana_1_1integral__constant.html#ac49b8fd71a0ef9229511bd7d6cc0f150", null ], + [ "operator+", "structboost_1_1hana_1_1integral__constant.html#a077af435df78fdb178f98b109c8c4297", null ], + [ "operator-", "structboost_1_1hana_1_1integral__constant.html#a51facf9760bb93d63efdca06dcf859ad", null ], + [ "operator-", "structboost_1_1hana_1_1integral__constant.html#a6be175332d55b7bfcf1afc33856d9b7d", null ], + [ "operator*", "structboost_1_1hana_1_1integral__constant.html#a673f1d9212ae61e8cee093af002bc110", null ], + [ "operator/", "structboost_1_1hana_1_1integral__constant.html#ab8b66ff58605e53149aad7eca0922ad7", null ], + [ "operator%", "structboost_1_1hana_1_1integral__constant.html#ad2fabb33632e115e96d0b7474670e6a1", null ], + [ "operator==", "structboost_1_1hana_1_1integral__constant.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1integral__constant.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator||", "structboost_1_1hana_1_1integral__constant.html#a883a869b5e96e32744ebf75d63c763ae", null ], + [ "operator&&", "structboost_1_1hana_1_1integral__constant.html#a47d2d5df22fc559270029d5eabaae61a", null ], + [ "operator!", "structboost_1_1hana_1_1integral__constant.html#a7d9f9e5adeb222e676ee02d6f28198ee", null ], + [ "operator<", "structboost_1_1hana_1_1integral__constant.html#ada078dcf9e68b8e9a82b33c75dde8457", null ], + [ "operator>", "structboost_1_1hana_1_1integral__constant.html#aedd11fddefddbbbb87d3b24c7117528f", null ], + [ "operator<=", "structboost_1_1hana_1_1integral__constant.html#a53817979990da799e659b2576799a79a", null ], + [ "operator>=", "structboost_1_1hana_1_1integral__constant.html#aa3f0436b623de5208767751e1e9f7e59", null ], + [ "operator\"\"_c", "structboost_1_1hana_1_1integral__constant.html#a1c078fd00db48686ca9e0aa17f47344e", null ] + ] ], + [ "basic_tuple", "structboost_1_1hana_1_1basic__tuple.html", [ + [ "make< basic_tuple_tag >", "structboost_1_1hana_1_1basic__tuple.html#a53975be786ae1db16185edab229547cd", null ], + [ "make_basic_tuple", "structboost_1_1hana_1_1basic__tuple.html#afe2c3fc2808e83353b7274dddd662c7e", null ] + ] ], + [ "lazy", "structboost_1_1hana_1_1lazy.html", [ + [ "eval", "structboost_1_1hana_1_1lazy.html#aae2998c08f1f80ed52a6acf57c4eec6c", null ], + [ "make< lazy_tag >", "structboost_1_1hana_1_1lazy.html#aa968ecf473c93821f1726fd9692e97f3", null ], + [ "make_lazy", "structboost_1_1hana_1_1lazy.html#a7dc86ca61b84fc42aabb525787ae61b4", null ], + [ "operator|", "structboost_1_1hana_1_1lazy.html#a97b267b09ee075f1c531b849969e75e6", null ] + ] ], + [ "map", "structboost_1_1hana_1_1map.html", [ + [ "make< map_tag >", "structboost_1_1hana_1_1map.html#a409d52de54cc7e55eca1a7b5dda4ce30", null ], + [ "make_map", "structboost_1_1hana_1_1map.html#ae73cf43ee56352e4c25984b0fe3c3d04", null ], + [ "to_map", "structboost_1_1hana_1_1map.html#a4feb32bd0a065a0732908716d4855b57", null ], + [ "keys", "structboost_1_1hana_1_1map.html#a0f32260f859b2510dd16235b7bc011ac", null ], + [ "values", "structboost_1_1hana_1_1map.html#a2e016a68e3ec6eb25868fadb7ce80132", null ], + [ "insert", "structboost_1_1hana_1_1map.html#a5791e6dc0e27d8e3a113e4d94482550f", null ], + [ "erase_key", "structboost_1_1hana_1_1map.html#af856f7bf77f69cdf1b8fd4e566eaef9b", null ], + [ "operator==", "structboost_1_1hana_1_1map.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1map.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator[]", "structboost_1_1hana_1_1map.html#a4881a1810986e678959af8ccb58f5666", null ], + [ "map", "structboost_1_1hana_1_1map.html#a1ee432be0bd10f08a637a437e311e4e2", null ], + [ "map", "structboost_1_1hana_1_1map.html#a943219d1c9692938167639d8ad2525b8", null ], + [ "map", "structboost_1_1hana_1_1map.html#a675bb30af155b40f72cbe8607eefbe4e", null ], + [ "map", "structboost_1_1hana_1_1map.html#a4a4f472e036abf9bcbda81e831f46e32", null ] + ] ], + [ "optional", "structboost_1_1hana_1_1optional.html", [ + [ "make< optional_tag >", "structboost_1_1hana_1_1optional.html#a76a84854b3051af000e698157d63a6a8", null ], + [ "make_optional", "structboost_1_1hana_1_1optional.html#af1105a435d6435a2437cb5dc162ba463", null ], + [ "just", "structboost_1_1hana_1_1optional.html#a8ad818d6df7379b0adefa45d2ac844d0", null ], + [ "nothing", "structboost_1_1hana_1_1optional.html#a0c315287473aa87fe5ccd9d8a1c10186", null ], + [ "maybe", "structboost_1_1hana_1_1optional.html#a6529e11cb228e99a05e81071752807d5", null ], + [ "sfinae", "structboost_1_1hana_1_1optional.html#aa4c8c0b1ef3d8206974734b93646c9fd", null ], + [ "is_just", "structboost_1_1hana_1_1optional.html#a1047a69893a62cd36eb0d2934f85e0e7", null ], + [ "is_nothing", "structboost_1_1hana_1_1optional.html#a4eb266d123883c23853f7731a6c5953f", null ], + [ "operator|", "structboost_1_1hana_1_1optional.html#a833b9d5d44bb431621af9129994b9bbc", null ], + [ "operator==", "structboost_1_1hana_1_1optional.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1optional.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator<", "structboost_1_1hana_1_1optional.html#ada078dcf9e68b8e9a82b33c75dde8457", null ], + [ "operator>", "structboost_1_1hana_1_1optional.html#aedd11fddefddbbbb87d3b24c7117528f", null ], + [ "operator<=", "structboost_1_1hana_1_1optional.html#a53817979990da799e659b2576799a79a", null ], + [ "operator>=", "structboost_1_1hana_1_1optional.html#aa3f0436b623de5208767751e1e9f7e59", null ], + [ "operator=", "structboost_1_1hana_1_1optional.html#abefc885243f38c66c52fdada3588f951", null ], + [ "operator=", "structboost_1_1hana_1_1optional.html#a52057c5da4b9aee49ee15a167459fc9a", null ], + [ "operator->", "structboost_1_1hana_1_1optional.html#a6eeef1512294d408857805eb3a790230", null ], + [ "value", "structboost_1_1hana_1_1optional.html#acdcf71b43d4e27d5efbf0ad875d0be58", null ], + [ "operator*", "structboost_1_1hana_1_1optional.html#a3132b919ab7710d79155674272961d4b", null ], + [ "value_or", "structboost_1_1hana_1_1optional.html#a1f511267d94c178e4ef955da60f0888d", null ], + [ "optional", "structboost_1_1hana_1_1optional.html#aefbd278cf7bb9e921707d6d827014bcb", null ], + [ "optional", "structboost_1_1hana_1_1optional.html#a9074406adb54a6a848ba482895c51d1f", null ], + [ "optional", "structboost_1_1hana_1_1optional.html#ac46a23f0ada20175c4c9a58af3d15753", null ], + [ "optional", "structboost_1_1hana_1_1optional.html#a2b04ee87c0ac58621edf3ad5476a2949", null ], + [ "optional", "structboost_1_1hana_1_1optional.html#adf824827b5d6f8c87d23b9526b9f35d2", null ] + ] ], + [ "pair", "structboost_1_1hana_1_1pair.html", [ + [ "make< pair_tag >", "structboost_1_1hana_1_1pair.html#aab78903e9982284e82744dec570afa8d", null ], + [ "make_pair", "structboost_1_1hana_1_1pair.html#a1bc322b45af2148a413ba45ee8097045", null ], + [ "operator==", "structboost_1_1hana_1_1pair.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1pair.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator<", "structboost_1_1hana_1_1pair.html#ada078dcf9e68b8e9a82b33c75dde8457", null ], + [ "operator>", "structboost_1_1hana_1_1pair.html#aedd11fddefddbbbb87d3b24c7117528f", null ], + [ "operator<=", "structboost_1_1hana_1_1pair.html#a53817979990da799e659b2576799a79a", null ], + [ "operator>=", "structboost_1_1hana_1_1pair.html#aa3f0436b623de5208767751e1e9f7e59", null ], + [ "operator=", "structboost_1_1hana_1_1pair.html#a96ada4b84949f1653de497410af50013", null ], + [ "operator=", "structboost_1_1hana_1_1pair.html#a3f1a25445fa5380a78bdf524b764e1c7", null ], + [ "pair", "structboost_1_1hana_1_1pair.html#acb8494edc410c10d824e942341f30719", null ], + [ "pair", "structboost_1_1hana_1_1pair.html#ad258681a711a7bf24d79e9d13a7a441e", null ], + [ "pair", "structboost_1_1hana_1_1pair.html#aae31a284451c1c0486339c289a7887fe", null ], + [ "pair", "structboost_1_1hana_1_1pair.html#ad295aada872521bce6e7775795b8318e", null ], + [ "pair", "structboost_1_1hana_1_1pair.html#a962bff38110b5c39b1267fc88851198d", null ] + ] ], + [ "range", "structboost_1_1hana_1_1range.html", [ + [ "make< range_tag >", "structboost_1_1hana_1_1range.html#ad5ad9a1f847daa24ef62f5d81b8eef8e", null ], + [ "make_range", "structboost_1_1hana_1_1range.html#aba8dd69deb1d810ef65ec289127bf0ab", null ], + [ "range_c", "structboost_1_1hana_1_1range.html#a899b7a0c065ff64cd747fe1671753d3f", null ], + [ "operator==", "structboost_1_1hana_1_1range.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1range.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator[]", "structboost_1_1hana_1_1range.html#a5df034200fc77683173f7cecf99f491e", null ] + ] ], + [ "set", "structboost_1_1hana_1_1set.html", [ + [ "difference", "structboost_1_1hana_1_1set.html#a718ddfe86437adbbca1e1a5db651d139", null ], + [ "intersection", "structboost_1_1hana_1_1set.html#a3b3430482d4e88052e621f63a234f3eb", null ], + [ "make< set_tag >", "structboost_1_1hana_1_1set.html#aa337857e80b8a8c91880b0184aaf7534", null ], + [ "make_set", "structboost_1_1hana_1_1set.html#af38c23fb98d8eec68c1491a8bca9ce43", null ], + [ "insert", "structboost_1_1hana_1_1set.html#a5791e6dc0e27d8e3a113e4d94482550f", null ], + [ "erase_key", "structboost_1_1hana_1_1set.html#af856f7bf77f69cdf1b8fd4e566eaef9b", null ], + [ "to_set", "structboost_1_1hana_1_1set.html#accbea694d32b341e860dac724c0c6933", null ], + [ "symmetric_difference", "structboost_1_1hana_1_1set.html#a8bcb2455eb9f7074185d8fb61a99801e", null ], + [ "union_", "structboost_1_1hana_1_1set.html#acd511f2c01f38405bfba0b6d5b2922e8", null ], + [ "operator==", "structboost_1_1hana_1_1set.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1set.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator[]", "structboost_1_1hana_1_1set.html#a00f6165e7a2db4218c67d80929c457d2", null ], + [ "set", "structboost_1_1hana_1_1set.html#a937a7d47238690b571e7dd524278f6d5", null ], + [ "set", "structboost_1_1hana_1_1set.html#ac5b7025edfb0c6c28f31d84598e130f0", null ] + ] ], + [ "string", "structboost_1_1hana_1_1string.html", [ + [ "make< string_tag >", "structboost_1_1hana_1_1string.html#a75de1ad7b14dc576a98d759dc3176ae9", null ], + [ "make_string", "structboost_1_1hana_1_1string.html#acd99ab02697909eba5eb76caf1ca7a8b", null ], + [ "string_c", "structboost_1_1hana_1_1string.html#a810915f5e494decfe47b047a3500c577", null ], + [ "operator==", "structboost_1_1hana_1_1string.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1string.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator<", "structboost_1_1hana_1_1string.html#ada078dcf9e68b8e9a82b33c75dde8457", null ], + [ "operator>", "structboost_1_1hana_1_1string.html#aedd11fddefddbbbb87d3b24c7117528f", null ], + [ "operator<=", "structboost_1_1hana_1_1string.html#a53817979990da799e659b2576799a79a", null ], + [ "operator>=", "structboost_1_1hana_1_1string.html#aa3f0436b623de5208767751e1e9f7e59", null ], + [ "operator+", "structboost_1_1hana_1_1string.html#a077af435df78fdb178f98b109c8c4297", null ], + [ "BOOST_HANA_STRING", "structboost_1_1hana_1_1string.html#a7f15faa77e126e1c2b08a2224ceefb84", null ], + [ "operator\"\"_s", "structboost_1_1hana_1_1string.html#ad77f7afff008c2ce15739ad16a8bf0a8", null ], + [ "operator[]", "structboost_1_1hana_1_1string.html#a02f56704524481cf919907caf271d2a1", null ] + ] ], + [ "tuple", "structboost_1_1hana_1_1tuple.html", [ + [ "make< tuple_tag >", "structboost_1_1hana_1_1tuple.html#ad9d8c7efa77e573eba2dfc48b3343e66", null ], + [ "make_tuple", "structboost_1_1hana_1_1tuple.html#af3c175cfb83276339f91e867d738a2e6", null ], + [ "to_tuple", "structboost_1_1hana_1_1tuple.html#a749b564c8f115957837761d75191beac", null ], + [ "tuple_t", "structboost_1_1hana_1_1tuple.html#a1997546daf58a48cc15498d338a03da3", null ], + [ "tuple_c", "structboost_1_1hana_1_1tuple.html#a85c2f16caa2a1e12eefd1b3f69fa658e", null ], + [ "operator|", "structboost_1_1hana_1_1tuple.html#a59b4d21f17e2caed8c31d8389d0f0878", null ], + [ "operator==", "structboost_1_1hana_1_1tuple.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1tuple.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator<", "structboost_1_1hana_1_1tuple.html#ada078dcf9e68b8e9a82b33c75dde8457", null ], + [ "operator>", "structboost_1_1hana_1_1tuple.html#aedd11fddefddbbbb87d3b24c7117528f", null ], + [ "operator<=", "structboost_1_1hana_1_1tuple.html#a53817979990da799e659b2576799a79a", null ], + [ "operator>=", "structboost_1_1hana_1_1tuple.html#aa3f0436b623de5208767751e1e9f7e59", null ], + [ "operator=", "structboost_1_1hana_1_1tuple.html#acddfa6d631c249ae667d52dd63c0aeaf", null ], + [ "operator=", "structboost_1_1hana_1_1tuple.html#ad3f0fe520974a22cc12a978f4b061caa", null ], + [ "operator[]", "structboost_1_1hana_1_1tuple.html#acef38216a6c6da0296a5f7b5241e951b", null ], + [ "tuple", "structboost_1_1hana_1_1tuple.html#a8e10223983bfb3873c285be85f7ab273", null ], + [ "tuple", "structboost_1_1hana_1_1tuple.html#a4e4e6193df38146b1eab93bcf963fc81", null ], + [ "tuple", "structboost_1_1hana_1_1tuple.html#a9a5dd3930d94a900190de98247e0c415", null ], + [ "tuple", "structboost_1_1hana_1_1tuple.html#a6cf99e86ab1506594eca03881748fe91", null ], + [ "tuple", "structboost_1_1hana_1_1tuple.html#ac504757198d85ab9de1258de634e3b71", null ] + ] ], + [ "type", "structboost_1_1hana_1_1type.html", [ + [ "type_c", "structboost_1_1hana_1_1type.html#ae35139e732c4b75e91061513cf445628", null ], + [ "decltype_", "structboost_1_1hana_1_1type.html#a7d68ff2275cbb295556d83598f04e39a", null ], + [ "typeid_", "structboost_1_1hana_1_1type.html#a0ade557ac4240552c92bf47c7e04dfd4", null ], + [ "make< type_tag >", "structboost_1_1hana_1_1type.html#a66f97c1903dcb6f227b29f3e35e68a56", null ], + [ "make_type", "structboost_1_1hana_1_1type.html#a0c0e00c0ffe63703f3a04960d13c7b1c", null ], + [ "sizeof_", "structboost_1_1hana_1_1type.html#a26b702b280ca02f118affaaca9112a8c", null ], + [ "alignof_", "structboost_1_1hana_1_1type.html#a6fd9ac456f4b5574dcb16384dbb85736", null ], + [ "is_valid", "structboost_1_1hana_1_1type.html#a2d2e7e08e284f7e0bd1bd9c3ad0e0a2b", null ], + [ "operator==", "structboost_1_1hana_1_1type.html#a27607958295e6da8a0ba602a2db468f1", null ], + [ "operator!=", "structboost_1_1hana_1_1type.html#a0cae3af55edb3eb05bfa184bda633f7d", null ], + [ "operator+", "structboost_1_1hana_1_1type.html#a2c3bef01b2e0342264c62a67cc471592", null ] + ] ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-details.html b/boost_1_63_0/libs/hana/doc/html/group__group-details.html new file mode 100644 index 0000000..0828ebe --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-details.html @@ -0,0 +1,403 @@ + + + + + + + + + +Boost.Hana: Details + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Details
+
+
+

Description

+

Implementation details. Do not rely on anything here, even if it is documented.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  boost::hana::detail::any_of< Predicate, T >
 Returns whether the Predicate is satisfied by any of the T.... More...
 
struct  boost::hana::detail::array< T, Size >
 A minimal std::array with better constexpr support. More...
 
struct  boost::hana::detail::CanonicalConstant< T >
 Tag representing a canonical Constant. More...
 
struct  boost::hana::detail::create< T >
 Implementation of the generic std::make_xxx pattern for arbitrary xxxs. More...
 
struct  boost::hana::detail::decay< T, U >
 Equivalent to std::decay, except faster. More...
 
struct  boost::hana::detail::first_unsatisfied_index< Pred >
 Returns the index of the first element which does not satisfy Pred, or sizeof...(Xs) if no such element exists. More...
 
struct  boost::hana::detail::has_duplicates< T >
 Returns whether any of the Ts are duplicate w.r.t. hana::equal. More...
 
struct  boost::hana::detail::index_if< Pred, Ts, typename >
 Returns the index of the first element of the pack<> that satisfies the predicate, or the size of the pack if there is no such element. More...
 
struct  boost::hana::detail::nested_by< Algorithm >
 Provides a .by static constexpr function object. More...
 
struct  boost::hana::detail::nested_than< Algorithm >
 Provides a .than static constexpr function object. More...
 
struct  boost::hana::detail::nested_to< Algorithm >
 Provides a .to static constexpr function object. More...
 
struct  boost::hana::detail::operators::adl<... >
 Enables ADL in the hana::detail::operators namespace. More...
 
struct  boost::hana::detail::std_common_type< T, U, typename >
 Equivalent to std::common_type, except it is SFINAE-friendly and does not support custom specializations. More...
 
struct  boost::hana::detail::type_at< n, T >
 Classic MPL-style metafunction returning the nth element of a type parameter pack. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define BOOST_HANA_DISPATCH_IF(IMPL, ...)   IMPL
 Dispatch to the given implementation method only when a condition is satisfied. More...
 
#define BOOST_HANA_PP_NARG(...)   BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
 Macro expanding to the number of arguments it is passed. More...
 
+#define BOOST_HANA_PP_CONCAT(x, y)   BOOST_HANA_PP_CONCAT_PRIMITIVE(x, y)
 Expands to the concatenation of its two arguments.
 
+#define BOOST_HANA_PP_STRINGIZE(...)   BOOST_HANA_PP_STRINGIZE_PRIMITIVE(__VA_ARGS__)
 Expands to the stringized version of its argument.
 
#define BOOST_HANA_PP_BACK(...)   BOOST_HANA_PP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
 Expands to its last argument. More...
 
#define BOOST_HANA_PP_DROP_BACK(...)   BOOST_HANA_PP_DROP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
 Expands to all of its arguments, except for the last one. More...
 
+#define BOOST_HANA_PP_FRONT(...)   BOOST_HANA_PP_FRONT_IMPL(__VA_ARGS__, )
 Expands to its first argument.
 
#define BOOST_HANA_PP_DROP_FRONT(e0, ...)   __VA_ARGS__
 Expands to all of its arguments, except for the first one. More...
 
+ + + + + + + + + +

+Typedefs

template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_common_embedding = typename has_common_embedding_impl< Concept, T, U >::type
 Returns whether T and U both have an embedding into a common type. More...
 
template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_nontrivial_common_embedding = typename has_nontrivial_common_embedding_impl< Concept, T, U >::type
 Returns whether T and U are distinct and both have an embedding into a common type. More...
 
+

Macro Definition Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define BOOST_HANA_DISPATCH_IF( IMPL,
 ... 
)   IMPL
+
+ +

#include <boost/hana/detail/dispatch_if.hpp>

+ +

Dispatch to the given implementation method only when a condition is satisfied.

+

If the condition is satisfied, this macro is equivalent to the type IMPL. Otherwise, it is equivalent to a type with a deleted static function named apply. When a tag-dispatching error happens, the condition should be false and the deleted static function apply will prevent the compiler from generating too much garbage.

+
Note
When BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS is defined, the condition is always ignored and this macro expands to the implementation only.
+
Remarks
This must be implemented as a macro, because we don't want the condition to be evaluated at all when BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS is defined.
+ +
+
+ +
+
+ + + + + + + + +
#define BOOST_HANA_PP_NARG( ...)   BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
+
+ +

#include <boost/hana/detail/preprocessor.hpp>

+ +

Macro expanding to the number of arguments it is passed.

+

Specifically, BOOST_HANA_PP_NARG(x1, ..., xn) expands to n. It is undefined behavior if n > 64 or if n == 0.

+ +
+
+ +
+
+ + + + + + + + +
#define BOOST_HANA_PP_BACK( ...)   BOOST_HANA_PP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
+
+ +

#include <boost/hana/detail/preprocessor.hpp>

+ +

Expands to its last argument.

+

This macro can be passed up to 20 arguments.

+ +
+
+ +
+
+ + + + + + + + +
#define BOOST_HANA_PP_DROP_BACK( ...)   BOOST_HANA_PP_DROP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
+
+ +

#include <boost/hana/detail/preprocessor.hpp>

+ +

Expands to all of its arguments, except for the last one.

+

This macro can be given up to 20 arguments.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
#define BOOST_HANA_PP_DROP_FRONT( e0,
 ... 
)   __VA_ARGS__
+
+ +

#include <boost/hana/detail/preprocessor.hpp>

+ +

Expands to all of its arguments, except for the first one.

+

This macro may not be called with less than 2 arguments.

+ +
+
+

Typedef Documentation

+ +
+
+
+template<template< typename... > class Concept, typename T , typename U >
+ + + + +
using boost::hana::detail::has_common_embedding = typedef typename has_common_embedding_impl<Concept, T, U>::type
+
+ +

#include <boost/hana/detail/has_common_embedding.hpp>

+ +

Returns whether T and U both have an embedding into a common type.

+

If T and U do not have a common-type, this metafunction returns false.

+ +
+
+ +
+
+
+template<template< typename... > class Concept, typename T , typename U >
+ + + + +
using boost::hana::detail::has_nontrivial_common_embedding = typedef typename has_nontrivial_common_embedding_impl<Concept, T, U>::type
+
+ +

#include <boost/hana/detail/has_common_embedding.hpp>

+ +

Returns whether T and U are distinct and both have an embedding into a common type.

+

If T and U do not have a common-type, this metafunction returns false.

+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-details.js b/boost_1_63_0/libs/hana/doc/html/group__group-details.js new file mode 100644 index 0000000..11bd0e1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-details.js @@ -0,0 +1,27 @@ +var group__group_details = +[ + [ "any_of", "structboost_1_1hana_1_1detail_1_1any__of.html", null ], + [ "array", "structboost_1_1hana_1_1detail_1_1array.html", null ], + [ "CanonicalConstant", "structboost_1_1hana_1_1detail_1_1CanonicalConstant.html", null ], + [ "create", "structboost_1_1hana_1_1detail_1_1create.html", null ], + [ "decay", "structboost_1_1hana_1_1detail_1_1decay.html", null ], + [ "first_unsatisfied_index", "structboost_1_1hana_1_1detail_1_1first__unsatisfied__index.html", null ], + [ "has_duplicates", "structboost_1_1hana_1_1detail_1_1has__duplicates.html", null ], + [ "index_if", "structboost_1_1hana_1_1detail_1_1index__if.html", null ], + [ "nested_by", "structboost_1_1hana_1_1detail_1_1nested__by.html", null ], + [ "nested_than", "structboost_1_1hana_1_1detail_1_1nested__than.html", null ], + [ "nested_to", "structboost_1_1hana_1_1detail_1_1nested__to.html", null ], + [ "adl", "structboost_1_1hana_1_1detail_1_1operators_1_1adl.html", null ], + [ "std_common_type", "structboost_1_1hana_1_1detail_1_1std__common__type.html", null ], + [ "type_at", "structboost_1_1hana_1_1detail_1_1type__at.html", null ], + [ "BOOST_HANA_DISPATCH_IF", "group__group-details.html#ga5de7a0132a80e37c73d544ece1e6dd4e", null ], + [ "BOOST_HANA_PP_NARG", "group__group-details.html#ga62fe3327023c37706c827cc82624998b", null ], + [ "BOOST_HANA_PP_CONCAT", "group__group-details.html#ga444e73a2fe13732b802a770b55b4a99c", null ], + [ "BOOST_HANA_PP_STRINGIZE", "group__group-details.html#ga6b4ca5cb5cefc6cf77455d7d7ef6f381", null ], + [ "BOOST_HANA_PP_BACK", "group__group-details.html#ga1be7a4bd805ffff2882fe54995dc41bd", null ], + [ "BOOST_HANA_PP_DROP_BACK", "group__group-details.html#gadcf0cf5cb650681b8cac90d94ce52d44", null ], + [ "BOOST_HANA_PP_FRONT", "group__group-details.html#gaf8319341c937c45415ae0eae8d656723", null ], + [ "BOOST_HANA_PP_DROP_FRONT", "group__group-details.html#ga4bd17b3ef62e1e275dfe485923fdf666", null ], + [ "has_common_embedding", "group__group-details.html#gae85b604ae6c7a386f0fc3631c561091b", null ], + [ "has_nontrivial_common_embedding", "group__group-details.html#ga9acac3c4609cff5f0957572744c61ec4", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-experimental.html b/boost_1_63_0/libs/hana/doc/html/group__group-experimental.html new file mode 100644 index 0000000..b6eeba8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-experimental.html @@ -0,0 +1,211 @@ + + + + + + + + + +Boost.Hana: Experimental features + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Experimental features
+
+
+

Description

+

Experimental features that may or may not make it into the library. These features should not expected to be stable.

+ + + + + +

+Classes

struct  boost::hana::experimental::types< T >
 Container optimized for holding types. More...
 
+ + + + + +

+Functions

template<typename T >
auto boost::hana::experimental::type_name ()
 Returns a hana::string representing the name of the given type, at compile-time. More...
 
+ + + + +

+Variables

auto boost::hana::experimental::print
 Returns a string representation of the given object. More...
 
+

Function Documentation

+ +
+
+
+template<typename T >
+ + + + + + + +
auto boost::hana::experimental::type_name ()
+
+ +

#include <boost/hana/experimental/type_name.hpp>

+ +

Returns a hana::string representing the name of the given type, at compile-time.

+

This only works on Clang (and apparently MSVC, but Hana does not work there as of writing this). Original idea taken from https://github.com/Manu343726/ctti.

+ +
+
+

Variable Documentation

+ +
+
+ + + + +
auto boost::hana::experimental::print
+
+ +

#include <boost/hana/experimental/printable.hpp>

+Initial value:
= [](auto const& x) -> std::string {
return tag-dispatched;
}
+

Returns a string representation of the given object.

+

This function is defined for most containers provided by Hana, and also for objects that define an operator<< that can be used with a std::basic_ostream. It can recursively print containers within containers, but do not expect any kind of proper indentation.

+

This function requires (the rest of) Boost to be available on the system. It also requires RTTI to be enabled.

+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-experimental.js b/boost_1_63_0/libs/hana/doc/html/group__group-experimental.js new file mode 100644 index 0000000..1263d54 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-experimental.js @@ -0,0 +1,6 @@ +var group__group_experimental = +[ + [ "types", "structboost_1_1hana_1_1experimental_1_1types.html", null ], + [ "type_name", "group__group-experimental.html#gaf14876d1f1a3c42ce7a0243d7b263bec", null ], + [ "print", "group__group-experimental.html#ga660c0769106006a86948b5b355fad050", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.html b/boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.html new file mode 100644 index 0000000..0a1beb6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.html @@ -0,0 +1,154 @@ + + + + + + + + + +Boost.Hana: Other Boost adapters + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Other Boost adapters
+
+
+

Description

+

Adapters for miscellaneous heterogeneous containers in Boost.

+ + + + + +

+Classes

struct  boost::tuple< T >
 Adapter for boost::tuples. More...
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.js b/boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.js new file mode 100644 index 0000000..14c9625 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-boost.js @@ -0,0 +1,4 @@ +var group__group_ext_boost = +[ + [ "tuple", "structboost_1_1tuple.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.html b/boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.html new file mode 100644 index 0000000..25d8708 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: Boost.Fusion adapters + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Boost.Fusion adapters
+
+
+

Description

+

Adapters for Boost.Fusion containers.

+ + + + + + + + + + + + + + +

+Classes

struct  boost::fusion::deque< T >
 Adapter for Boost.Fusion deques. More...
 
struct  boost::fusion::list< T >
 Adapter for Boost.Fusion lists. More...
 
struct  boost::fusion::tuple< T >
 Adapter for Boost.Fusion tuples. More...
 
struct  boost::fusion::vector< T >
 Adapter for Boost.Fusion vectors. More...
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.js b/boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.js new file mode 100644 index 0000000..f76d0fa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-fusion.js @@ -0,0 +1,7 @@ +var group__group_ext_fusion = +[ + [ "deque", "structboost_1_1fusion_1_1deque.html", null ], + [ "list", "structboost_1_1fusion_1_1list.html", null ], + [ "tuple", "structboost_1_1fusion_1_1tuple.html", null ], + [ "vector", "structboost_1_1fusion_1_1vector.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.html b/boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.html new file mode 100644 index 0000000..fe18dcf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: Boost.MPL adapters + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Boost.MPL adapters
+
+
+

Description

+

Adapters for Boost.MPL containers.

+ + + + + + + + + + + +

+Classes

struct  boost::mpl::integral_c< T, v >
 Adapter for IntegralConstants from the Boost.MPL. More...
 
struct  boost::mpl::list< T >
 Adapter for Boost.MPL lists. More...
 
struct  boost::mpl::vector< T >
 Adapter for Boost.MPL vectors. More...
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.js b/boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.js new file mode 100644 index 0000000..67c972b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-mpl.js @@ -0,0 +1,6 @@ +var group__group_ext_mpl = +[ + [ "integral_c", "structboost_1_1mpl_1_1integral__c.html", null ], + [ "list", "structboost_1_1mpl_1_1list.html", null ], + [ "vector", "structboost_1_1mpl_1_1vector.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-std.html b/boost_1_63_0/libs/hana/doc/html/group__group-ext-std.html new file mode 100644 index 0000000..9518c94 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-std.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: Standard library adapters + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Standard library adapters
+
+
+

Description

+

Adapters for components in the standard library.

+ + + + + + + + + + + + + + + + + + + + +

+Classes

struct  std::array< T, N >
 Adaptation of std::array for Hana. More...
 
struct  std::integer_sequence< T, v >
 Adaptation of std::integer_sequence for Hana. More...
 
struct  std::integral_constant< T, v >
 Adapter for std::integral_constants. More...
 
struct  std::pair< First, Second >
 Adaptation of std::pair for Hana. More...
 
class  std::ratio< Num, Denom >
 Adaptation of std::ratio for Hana. More...
 
struct  std::tuple< T >
 Adapter for std::tuples. More...
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext-std.js b/boost_1_63_0/libs/hana/doc/html/group__group-ext-std.js new file mode 100644 index 0000000..d8d472a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext-std.js @@ -0,0 +1,9 @@ +var group__group_ext_std = +[ + [ "array", "structstd_1_1array.html", null ], + [ "integer_sequence", "structstd_1_1integer__sequence.html", null ], + [ "integral_constant", "structstd_1_1integral__constant.html", null ], + [ "pair", "structstd_1_1pair.html", null ], + [ "ratio", "classstd_1_1ratio.html", null ], + [ "tuple", "structstd_1_1tuple.html", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext.html b/boost_1_63_0/libs/hana/doc/html/group__group-ext.html new file mode 100644 index 0000000..772098c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: External adapters + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
External adapters
+
+
+

Description

+

Adapters for external libraries.

+ + + + + + + + + + + + + + +

+Modules

 Boost.Fusion adapters
 Adapters for Boost.Fusion containers.
 
 Boost.MPL adapters
 Adapters for Boost.MPL containers.
 
 Other Boost adapters
 Adapters for miscellaneous heterogeneous containers in Boost.
 
 Standard library adapters
 Adapters for components in the standard library.
 
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-ext.js b/boost_1_63_0/libs/hana/doc/html/group__group-ext.js new file mode 100644 index 0000000..1b6caae --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-ext.js @@ -0,0 +1,7 @@ +var group__group_ext = +[ + [ "Boost.Fusion adapters", "group__group-ext-fusion.html", "group__group-ext-fusion" ], + [ "Boost.MPL adapters", "group__group-ext-mpl.html", "group__group-ext-mpl" ], + [ "Other Boost adapters", "group__group-ext-boost.html", "group__group-ext-boost" ], + [ "Standard library adapters", "group__group-ext-std.html", "group__group-ext-std" ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-functional.html b/boost_1_63_0/libs/hana/doc/html/group__group-functional.html new file mode 100644 index 0000000..830d186 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-functional.html @@ -0,0 +1,681 @@ + + + + + + + + + +Boost.Hana: Functional + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Functional
+
+
+

Description

+

General purpose function objects.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto boost::hana::always
 Return a constant function returning x regardless of the argument(s) it is invoked with. More...
 
constexpr auto boost::hana::apply
 Invokes a Callable with the given arguments. More...
 
template<std::size_t n>
constexpr auto boost::hana::arg
 Return the nth passed argument. More...
 
constexpr auto boost::hana::capture
 Create a function capturing the given variables. More...
 
constexpr auto boost::hana::compose
 Return the composition of two functions or more. More...
 
template<std::size_t n>
constexpr auto boost::hana::curry
 Curry a function up to the given number of arguments. More...
 
constexpr auto boost::hana::demux
 Invoke a function with the results of invoking other functions on its arguments. More...
 
constexpr auto boost::hana::fix
 Return a function computing the fixed point of a function. More...
 
constexpr auto boost::hana::flip
 Invoke a function with its two first arguments reversed. More...
 
constexpr auto boost::hana::id
 The identity function – returns its argument unchanged. More...
 
constexpr auto boost::hana::infix
 Return an equivalent function that can also be applied in infix notation. More...
 
template<std::size_t n>
constexpr auto boost::hana::iterate
 Applies another function n times to its argument. More...
 
constexpr auto boost::hana::lockstep
 Invoke a function with the result of invoking other functions on its arguments, in lockstep. More...
 
constexpr auto boost::hana::on
 Invoke a function with the result of invoking another function on each argument. More...
 
constexpr auto boost::hana::overload
 Pick one of several functions to call based on overload resolution. More...
 
constexpr auto boost::hana::overload_linearly
 Call the first function that produces a valid call expression. More...
 
constexpr auto boost::hana::partial
 Partially apply a function to some arguments. More...
 
constexpr unspecified boost::hana::_ {}
 Create simple functions representing C++ operators inline. More...
 
constexpr auto boost::hana::reverse_partial
 Partially apply a function to some arguments. More...
 
+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::always
+
+ +

#include <boost/hana/functional/always.hpp>

+Initial value:
= [](auto&& x) {
return [perfect-capture](auto const& ...y) -> decltype(auto) {
return forwarded(x);
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Return a constant function returning x regardless of the argument(s) it is invoked with.

+

Specifically, always(x) is a function such that

always(x)(y...) == x

for any y.... A copy of x is made and it is owned by the always(x) function. When always(x) is called, it will return a reference to the x it owns. This reference is valid as long as always(x) is in scope.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::always(1)() == 1, "");
static_assert(hana::always('2')(1, 2, 3) == '2', "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::apply
+
+ +

#include <boost/hana/functional/apply.hpp>

+Initial value:
= [](auto&& f, auto&& ...x) -> decltype(auto) {
return forwarded(f)(forwarded(x)...);
}
+

Invokes a Callable with the given arguments.

+

This is equivalent to std::invoke that will be added in C++17. However, apply is a function object instead of a function, which makes it possible to pass it to higher-order algorithms.

+
Parameters
+ + + +
fA Callable to be invoked with the given arguments.
x...The arguments to call f with. The number of x... must match the arity of f.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::apply(hana::plus, 1, 2) == 3, "");
int main() { }
+

Referenced by boost::hana::literals::operator""_c(), and boost::hana::literals::operator""_s().

+ +
+
+ +
+
+
+template<std::size_t n>
+ + + + +
constexpr auto boost::hana::arg
+
+ +

#include <boost/hana/functional/arg.hpp>

+Initial value:
= [](auto&& x1, ..., auto&& xm) -> decltype(auto) {
return forwarded(xn);
}
+

Return the nth passed argument.

+

Specifically, arg<n>(x1, ..., xn, ..., xm) is equivalent to xn. Note that indexing starts at 1, so arg<1> returns the 1st argument, arg<2> the 2nd and so on. Using arg<0> is an error. Passing less than n arguments to arg<n> is also an error.

+
Template Parameters
+ + +
nAn unsigned integer representing the argument to return. n must be positive (meaning nonzero).
+
+
+
Parameters
+ + +
x1,...,xmA variadic pack of arguments from which the nth one is returned.
+
+
+

Discussion: could n be dynamic?

+

We could have chosen arg to be used like arg(n)(x...) instead of arg<n>(x...). Provided all the arguments were of the same type, it would then be possible for n to only be known at runtime. However, we would then lose the ability to assert the in-boundedness of n statically.

+

Rationale for n being a non-type template parameter

+

I claim that the only interesting use case is with a compile-time n, which means that the usage would become arg(int_<n>)(x...), which is more cumbersome to write than arg<n>(x...). This is open for discussion.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
// hana::arg<0>(1, '2', 3.3); // static assertion (regardless of the number of arguments)
static_assert(hana::arg<1>(1, '2', 3.3) == 1, "");
static_assert(hana::arg<2>(1, '2', 3.3) == '2', "");
static_assert(hana::arg<3>(1, '2', 3.3) == 3.3, "");
// hana::arg<4>(1, '2', 3.3); // static assertion
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::capture
+
+ +

#include <boost/hana/functional/capture.hpp>

+Initial value:
= [](auto&& ...variables) {
return [perfect-capture](auto&& f) {
return [perfect-capture](auto&& ...args) -> decltype(auto) {
return forwarded(f)(forwarded(variables)..., forwarded(args)...);
};
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Create a function capturing the given variables.

+

Given 0 or more variables, capture creates a closure that can be used to partially apply a function. This is very similar to partial, except that capture allows the partially applied function to be specified later. Specifically, capture(vars...) is a function object taking a function f and returning f partially applied to vars.... In other words,

capture(vars...)(f)(args...) == f(vars..., args...)
Note
The arity of f must match the total number of arguments passed to it, i.e. sizeof...(vars) + sizeof...(args).
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto sum = [](auto x, auto y, auto z) {
return x + y + z;
};
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::compose
+
+ +

#include <boost/hana/functional/compose.hpp>

+Initial value:
= [](auto&& f1, auto&& f2, ..., auto&& fn) {
return [perfect-capture](auto&& x, auto&& ...xs) -> decltype(auto) {
return forwarded(f1)(
forwarded(f2)(
...
forwarded(fn)(forwarded(x))
),
forwarded(xs)...
);
}
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Return the composition of two functions or more.

+

compose is defined inductively. When given more than two functions, compose(f, g, h...) is equivalent to compose(f, compose(g, h...)). When given two functions, compose(f, g) is a function such that

compose(f, g)(x, y...) == f(g(x), y...)

If you need composition of the form f(g(x, y...)), use demux instead.

+
Note
compose is an associative operation; compose(f, compose(g, h)) is equivalent to compose(compose(f, g), h).
+

Proof of associativity

+
compose(f, compose(g, h))(x, xs...) == f(compose(g, h)(x), xs...)
== f(g(h(x)), xs...)
compose(compose(f, g), h)(x, xs...) == compose(f, g)(h(x), xs...)
== f(g(h(x)), xs...)

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto to_char = [](int x) {
return static_cast<char>(x + 48);
};
BOOST_HANA_CONSTEXPR_LAMBDA auto increment = [](auto x) {
return x + 1;
};
BOOST_HANA_CONSTEXPR_CHECK(hana::compose(to_char, increment)(3) == '4');
}
+
+
+ +
+
+
+template<std::size_t n>
+ + + + +
constexpr auto boost::hana::curry
+
+ +

#include <boost/hana/functional/curry.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& x1) {
return [perfect-capture](auto&& x2) {
...
return [perfect-capture](auto&& xn) -> decltype(auto) {
return forwarded(f)(
forwarded(x1), forwarded(x2), ..., forwarded(xn)
);
};
};
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Curry a function up to the given number of arguments.

+

Currying is a technique in which we consider a function taking multiple arguments (or, equivalently, a tuple of arguments), and turn it into a function which takes a single argument and returns a function to handle the remaining arguments. To help visualize, let's denote the type of a function f which takes arguments of types X1, ..., Xn and returns a R as

(X1, ..., Xn) -> R

Then, currying is the process of taking f and turning it into an equivalent function (call it g) of type

X1 -> (X2 -> (... -> (Xn -> R)))

This gives us the following equivalence, where x1, ..., xn are objects of type X1, ..., Xn respectively:

f(x1, ..., xn) == g(x1)...(xn)

Currying can be useful in several situations, especially when working with higher-order functions.

+

This curry utility is an implementation of currying in C++. Specifically, curry<n>(f) is a function such that

curry<n>(f)(x1)...(xn) == f(x1, ..., xn)

Note that the n has to be specified explicitly because the existence of functions with variadic arguments in C++ make it impossible to know when currying should stop.

+

Unlike usual currying, this implementation also allows a curried function to be called with several arguments at a time. Hence, the following always holds

curry<n>(f)(x1, ..., xk) == curry<n - k>(f)(x1)...(xk)

Of course, this requires k to be less than or equal to n; failure to satisfy this will trigger a static assertion. This syntax is supported because it makes curried functions usable where normal functions are expected.

+

Another "extension" is that curry<0>(f) is supported: curry<0>(f) is a nullary function; whereas the classical definition for currying seems to leave this case undefined, as nullary functions don't make much sense in purely functional languages.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto add = [](auto x, auto y, auto z) {
return x + y + z;
};
BOOST_HANA_CONSTEXPR_CHECK(hana::curry<3>(add)(1)(2)(3) == 1 + 2 + 3);
BOOST_HANA_CONSTEXPR_CHECK(hana::curry<3>(add)(1)(2, 3) == hana::curry<3>(add)(1)(2)(3));
BOOST_HANA_CONSTEXPR_CHECK(hana::curry<3>(add)(1, 2, 3) == hana::curry<3>(add)(1)(2)(3));
// curry with a nullary function
BOOST_HANA_CONSTEXPR_LAMBDA auto two = []() {
return 2;
};
BOOST_HANA_CONSTEXPR_CHECK(hana::curry<0>(two)() == two());
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::demux
+
+ +

#include <boost/hana/functional/demux.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& ...g) {
return [perfect-capture](auto&& ...x) -> decltype(auto) {
return forwarded(f)(forwarded(g)(x...)...);
};
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Invoke a function with the results of invoking other functions on its arguments.

+

Specifically, demux(f)(g...) is a function such that

demux(f)(g...)(x...) == f(g(x...)...)

Each g is called with all the arguments, and then f is called with the result of each g. Hence, the arity of f must match the number of gs.

+

This is called demux because of a vague similarity between this device and a demultiplexer in signal processing. demux takes what can be seen as a continuation (f), a bunch of functions to split a signal (g...) and zero or more arguments representing the signal (x...). Then, it calls the continuation with the result of splitting the signal with whatever functions where given.

+
Note
When used with two functions only, demux is associative. In other words (and noting demux(f, g) = demux(f)(g) to ease the notation), it is true that demux(demux(f, g), h) == demux(f, demux(g, h)).
+

Signature

+

The signature of demux is

+\[ \mathtt{demux} : (B_1 \times \dotsb \times B_n \to C) \to ((A_1 \times \dotsb \times A_n \to B_1) \times \dotsb \times (A_1 \times \dotsb \times A_n \to B_n)) \to (A_1 \times \dotsb \times A_n \to C) \] +

+

This can be rewritten more tersely as

+\[ \mathtt{demux} : \left(\prod_{i=1}^n B_i \to C \right) \to \prod_{j=1}^n \left(\prod_{i=1}^n A_i \to B_j \right) \to \left(\prod_{i=1}^n A_i \to C \right) \] +

+

Link with normal composition

+

The signature of compose is

+\[ \mathtt{compose} : (B \to C) \times (A \to B) \to (A \to C) \] +

+

A valid observation is that this coincides exactly with the type of demux when used with a single unary function. Actually, both functions are equivalent:

demux(f)(g)(x) == compose(f, g)(x)

However, let's now consider the curried version of compose, curry<2>(compose):

+\[ \mathtt{curry_2(compose)} : (B \to C) \to ((A \to B) \to (A \to C)) \] +

+

For the rest of this explanation, we'll just consider the curried version of compose and so we'll use compose instead of curry<2>(compose) to lighten the notation. With currying, we can now consider compose applied to itself:

+\[ \mathtt{compose(compose, compose)} : (B \to C) \to (A_1 \to A_2 \to B) \to (A_1 \to A_2 \to C) \] +

+

If we uncurry deeply the above expression, we obtain

+\[ \mathtt{compose(compose, compose)} : (B \to C) \times (A_1 \times A_2 \to B) \to (A_1 \times A_2 \to C) \] +

+

This signature is exactly the same as that of demux when given a single binary function, and indeed they are equivalent definitions. We can also generalize this further by considering compose(compose(compose, compose), compose):

+\[ \mathtt{compose(compose(compose, compose), compose)} : (B \to C) \to (A_1 \to A_2 \to A_3 \to B) \to (A_1 \to A_2 \to A_3 \to C) \] +

+

which uncurries to

+\[ \mathtt{compose(compose(compose, compose), compose)} : (B \to C) \times (A_1 \times A_2 \times A_3 \to B) \to (A_1 \times A_2 \times A_3 \to C) \] +

+

This signature is exactly the same as that of demux when given a single ternary function. Hence, for a single n-ary function g, demux(f)(g) is equivalent to the n-times composition of compose with itself, applied to g and f:

demux(f)(g) == fold_left([compose, ..., compose], id, compose)(g, f)
// ^^^^^^^^^^^^^^^^^^^^^ n times

More information on this insight can be seen here. Also, I'm not sure how this insight could be generalized to more than one function g, or if that is even possible.

+

Proof of associativity in the binary case

+

As explained above, demux is associative when it is used with two functions only. Indeed, given functions f, g and h with suitable signatures, we have

demux(f)(demux(g)(h))(x...) == f(demux(g)(h)(x...))
== f(g(h(x...)))

On the other hand, we have

demux(demux(f)(g))(h)(x...) == demux(f)(g)(h(x...))
== f(g(h(x...)))

and hence demux is associative in the binary case.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
using hana::_;
constexpr auto f = hana::demux(hana::make_tuple)(
_ + _,
_ - _,
_ * _,
_ / _
);
static_assert(
f(10, 4) == hana::make_tuple(
10 + 4,
10 - 4,
10 * 4,
10 / 4
)
, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::fix
+
+ +

#include <boost/hana/functional/fix.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& ...x) -> decltype(auto) {
return forwarded(f)(fix(f), forwarded(x)...);
};
}
constexpr auto fix
Return a function computing the fixed point of a function.
Definition: fix.hpp:53
+
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Return a function computing the fixed point of a function.

+

fix is an implementation of the Y-combinator, also called the fixed-point combinator. It encodes the idea of recursion, and in fact any recursive function can be written in terms of it.

+

Specifically, fix(f) is a function such that

fix(f)(x...) == f(fix(f), x...)

This definition allows f to use its first argument as a continuation to call itself recursively. Indeed, if f calls its first argument with y..., it is equivalent to calling f(fix(f), y...) per the above equation.

+

Most of the time, it is more convenient and efficient to define recursive functions without using a fixed-point combinator. However, there are some cases where fix provides either more flexibility (e.g. the ability to change the callback inside f) or makes it possible to write functions that couldn't be defined recursively otherwise.

+
Parameters
+ + +
fA function called as f(self, x...), where x... are the arguments in the fix(f)(x...) expression and self is fix(f).
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto factorial = hana::fix([](auto fact, auto n) -> int {
if (n == 0) return 1;
else return n * fact(n - 1);
});
int main() {
BOOST_HANA_CONSTEXPR_CHECK(factorial(5) == 120);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::flip
+
+ +

#include <boost/hana/functional/flip.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& x, auto&& y, auto&& ...z) -> decltype(auto) {
return forwarded(f)(forwarded(y), forwarded(x), forwarded(z)...);
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Invoke a function with its two first arguments reversed.

+

Specifically, flip(f) is a function such that

flip(f)(x, y, z...) == f(y, x, z...)

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto minus = [](int x, int y, int z = 0) {
return x - y - z;
};
int main() {
BOOST_HANA_CONSTEXPR_CHECK(hana::flip(minus)(3, 0) == 0 - 3);
BOOST_HANA_CONSTEXPR_CHECK(minus(3, 0, 1) == 3 - 0 - 1);
BOOST_HANA_CONSTEXPR_CHECK(hana::flip(minus)(3, 0, 1) == 0 - 3 - 1);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::id
+
+ +

#include <boost/hana/functional/id.hpp>

+Initial value:
= [](auto&& x) -> decltype(auto) {
return forwarded(x);
}
+

The identity function – returns its argument unchanged.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::id(1) == 1, "");
static_assert(hana::id('x') == 'x', "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::infix
+
+ +

#include <boost/hana/functional/infix.hpp>

+Initial value:
= [](auto f) {
return unspecified;
}
+

Return an equivalent function that can also be applied in infix notation.

+

Specifically, infix(f) is an object such that:

infix(f)(x1, ..., xn) == f(x1, ..., xn)
x ^infix(f)^ y == f(x, y)

Hence, the returned function can still be applied using the usual function call syntax, but it also gains the ability to be applied in infix notation. The infix syntax allows a great deal of expressiveness, especially when used in combination with some higher order algorithms. Since operator^ is left-associative, x ^infix(f)^ y is actually parsed as (x ^infix(f))^ y. However, for flexibility, the order in which both arguments are applied in infix notation does not matter. Hence, it is always the case that

(x ^ infix(f)) ^ y == x ^ (infix(f) ^ y)

However, note that applying more than one argument in infix notation to the same side of the operator will result in a compile-time assertion:

(infix(f) ^ x) ^ y; // compile-time assertion
y ^ (x ^ infix(f)); // compile-time assertion

Additionally, a function created with infix may be partially applied in infix notation. Specifically,

(x ^ infix(f))(y1, ..., yn) == f(x, y1, ..., yn)
(infix(f) ^ y)(x1, ..., xn) == f(x1, ..., xn, y)

Rationales

+
    +
  1. The ^ operator was chosen because it is left-associative and has a low enough priority so that most expressions will render the expected behavior.
  2. +
  3. The operator can't be customimzed because that would require more sophistication in the implementation; I want to keep it as simple as possible. There is also an advantage in having a uniform syntax for infix application.
  4. +
+
Parameters
+ + +
fThe function which gains the ability to be applied in infix notation. The function must be at least binary; a compile-time error will be triggered otherwise.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTEXPR_LAMBDA auto divmod = hana::infix([](auto x, auto y) {
// this could be a more efficient implementation
return hana::make_pair(x / y, x % y);
});
int main() {
BOOST_HANA_CONSTEXPR_CHECK((42 ^divmod^ 23) == hana::make_pair(1, 19));
}
+
+
+ +
+
+
+template<std::size_t n>
+ + + + +
constexpr auto boost::hana::iterate
+
+ +

#include <boost/hana/functional/iterate.hpp>

+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& x) -> decltype(auto) {
return f(f( ... f(forwarded(x))));
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Applies another function n times to its argument.

+

Given a function f and an argument x, iterate<n>(f, x) returns the result of applying f n times to its argument. In other words,

iterate<n>(f, x) == f(f( ... f(x)))
^^^^^^^^^^ n times total

If n == 0, iterate<n>(f, x) returns the x argument unchanged and f is never applied. It is important to note that the function passed to iterate<n> must be a unary function. Indeed, since f will be called with the result of the previous f application, it may only take a single argument.

+

In addition to what's documented above, iterate can also be partially applied to the function argument out-of-the-box. In other words, iterate<n>(f) is a function object applying f n times to the argument it is called with, which means that

iterate<n>(f)(x) == iterate<n>(f, x)

This is provided for convenience, and it turns out to be especially useful in conjunction with higher-order algorithms.

+

Signature

+

Given a function \( f : T \to T \) and x and argument of data type T, the signature is \( \mathtt{iterate_n} : (T \to T) \times T \to T \)

+
Template Parameters
+ + +
nAn unsigned integer representing the number of times that f should be applied to its argument.
+
+
+
Parameters
+ + + +
fA function to apply n times to its argument.
xThe initial value to call f with.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto next_10 = hana::iterate<10>(hana::_ + 1);
static_assert(next_10(3) == 13, "");
constexpr auto xs = hana::make_tuple(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
static_assert(hana::iterate<3>(hana::make_tuple, xs) ==
hana::make_tuple(hana::make_tuple(hana::make_tuple(xs))), "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::lockstep
+
+ +

#include <boost/hana/functional/lockstep.hpp>

+Initial value:
= [](auto&& f, auto&& ...g) {
return [perfect-capture](auto&& ...x) -> decltype(auto) {
return forwarded(f)(forwarded(g)(forwarded(x))...);
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Invoke a function with the result of invoking other functions on its arguments, in lockstep.

+

Specifically, lockstep(f)(g1, ..., gN) is a function such that

lockstep(f)(g1, ..., gN)(x1, ..., xN) == f(g1(x1), ..., gN(xN))

Since each g is invoked on its corresponding argument in lockstep, the number of arguments must match the number of gs.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr int to_int(char c) {
return static_cast<int>(c) - 48;
}
constexpr int increment(int i) {
return i + 1;
}
static_assert(hana::lockstep(hana::plus)(to_int, increment)('3', 4) == 3 + 5, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::on
+
+ +

#include <boost/hana/functional/on.hpp>

+Initial value:
= infix([](auto&& f, auto&& g) {
return [perfect-capture](auto&& ...x) -> decltype(auto) {
return forwarded(f)(g(forwarded(x))...);
};
})
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
constexpr auto infix
Return an equivalent function that can also be applied in infix notation.
Definition: infix.hpp:79
+
+

Invoke a function with the result of invoking another function on each argument.

+

Specifically, on(f, g) is a function such that

on(f, g)(x...) == f(g(x)...)

For convenience, on also supports infix application as provided by infix.

+
Note
on is associative, i.e. on(f, on(g, h)) is equivalent to on(on(f, g), h).
+

Proof of associativity

+
on(f, on(g, h))(xs...) == f(on(g, h)(xs)...)
== f(g(h(xs))...)
on(on(f, g), h)(xs...) == on(f, g)(h(xs)...)
== f(g(h(xs))...)

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
// infix application
constexpr auto sorted = hana::sort.by(hana::less ^hana::on^ hana::first, hana::make_tuple(
hana::make_pair(hana::int_c<3>, 'x'),
hana::make_pair(hana::int_c<1>, hana::type_c<void>),
hana::make_pair(hana::int_c<2>, 9876)
));
static_assert(sorted == hana::make_tuple(
hana::make_pair(hana::int_c<1>, hana::type_c<void>),
hana::make_pair(hana::int_c<2>, 9876),
hana::make_pair(hana::int_c<3>, 'x')
), "");
// function call syntax
constexpr auto x = hana::make_pair(1, 2);
constexpr auto y = hana::make_pair(10, 20);
static_assert(hana::on(hana::plus, hana::first)(x, y) == 1 + 10, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::overload
+
+ +

#include <boost/hana/functional/overload.hpp>

+Initial value:
= [](auto&& f1, auto&& f2, ..., auto&& fn) {
return [perfect-capture](auto&& ...x) -> decltype(auto) {
return forwarded(fk)(forwarded(x)...);
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Pick one of several functions to call based on overload resolution.

+

Specifically, overload(f1, f2, ..., fn) is a function object such that

overload(f1, f2, ..., fn)(x...) == fk(x...)

where fk is the function of f1, ..., fn that would be called if overload resolution was performed amongst that set of functions only. If more than one function fk would be picked by overload resolution, then the call is ambiguous.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <iostream>
#include <string>
namespace hana = boost::hana;
auto on_string = [](std::string const& s) {
std::cout << "matched std::string: " << s << std::endl;
return s;
};
auto on_int = [](int i) {
std::cout << "matched int: " << i << std::endl;
return i;
};
auto f = hana::overload(on_int, on_string);
int main() {
// prints "matched int: 1"
// prints "matched std::string: abcdef"
BOOST_HANA_RUNTIME_CHECK(f("abcdef") == std::string{"abcdef"});
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::overload_linearly
+
+ +

#include <boost/hana/functional/overload_linearly.hpp>

+Initial value:
= [](auto&& f1, auto&& f2, ..., auto&& fn) {
return [perfect-capture](auto&& ...x) -> decltype(auto) {
return forwarded(fk)(forwarded(x)...);
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Call the first function that produces a valid call expression.

+

Given functions f1, ..., fn, overload_linearly(f1, ..., fn) is a new function that calls the first fk producing a valid call expression with the given arguments. Specifically,

overload_linearly(f1, ..., fn)(args...) == fk(args...)

where fk is the first function such that fk(args...) is a valid expression.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
[](int i) { return i + 1; },
[](std::string s) { return s + "d"; },
[](double) { BOOST_HANA_RUNTIME_CHECK(false && "never called"); }
);
int main() {
BOOST_HANA_RUNTIME_CHECK(f("abc") == "abcd");
BOOST_HANA_RUNTIME_CHECK(f(2.2) == static_cast<int>(2.2) + 1);
}
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::partial
+
+ +

#include <boost/hana/functional/partial.hpp>

+Initial value:
= [](auto&& f, auto&& ...x) {
return [perfect-capture](auto&& ...y) -> decltype(auto) {
return forwarded(f)(forwarded(x)..., forwarded(y)...);
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Partially apply a function to some arguments.

+

Given a function f and some arguments, partial returns a new function corresponding to the partially applied function f. This allows providing some arguments to a function and letting the rest of the arguments be provided later. Specifically, partial(f, x...) is a function such that

partial(f, x...)(y...) == f(x..., y...)
Note
The arity of f must match the total number of arguments passed to it, i.e. sizeof...(x) + sizeof...(y).
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto increment = hana::partial(hana::plus, 1);
static_assert(increment(2) == 3, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr unspecified boost::hana::_ {}
+
+ +

#include <boost/hana/functional/placeholder.hpp>

+ +

Create simple functions representing C++ operators inline.

+

Specifically, _ is an object used as a placeholder to build function objects representing calls to C++ operators. It works by overloading the operators between _ and any object so that they return a function object which actually calls the corresponding operator on its argument(s). Hence, for any supported operator @:

(_ @ _)(x, y) == x @ y

Operators may also be partially applied to one argument inline:

(x @ _)(y) == x @ y
(_ @ y)(x) == x @ y

When invoked with more arguments than required, functions created with _ will discard the superfluous instead of triggering an error:

(_ @ _)(x, y, z...) == x @ y

This makes functions created with _ easier to use in higher-order algorithms, which sometime provide more information than necessary to their callbacks.

+

Supported operators

+
    +
  • Arithmetic: binary +, binary -, /, *, %, unary +, unary -
  • +
  • Bitwise: ~, &, |, ^, <<, >>
  • +
  • Comparison: ==, !=, <, <=, >, >=
  • +
  • Logical: ||, &&, !
  • +
  • Member access: * (dereference), [] (array subscript)
  • +
  • Other: () (function call)
  • +
+

More complex functionality like the ability to compose placeholders into larger function objects inline are not supported. This is on purpose; you should either use C++14 generic lambdas or a library like Boost.Phoenix if you need bigger guns. The goal here is to save you a couple of characters in simple situations.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto plus = hana::_ + hana::_;
static_assert(plus(1, 2) == 1 + 2, "");
constexpr auto increment = hana::_ + 1;
static_assert(increment(1) == 2, "");
constexpr auto twice = 2 * hana::_;
static_assert(twice(1) == 2, "");
// Extra arguments are ignored.
static_assert(twice(1, "ignored") == 2, "");
int main() { }
+
+
+ +
+
+ + + + +
constexpr auto boost::hana::reverse_partial
+
+ +

#include <boost/hana/functional/reverse_partial.hpp>

+Initial value:
= [](auto&& f, auto&& ...x) {
return [perfect-capture](auto&& ...y) -> decltype(auto) {
return forwarded(f)(forwarded(y)..., forwarded(x)...);
};
}
constexpr auto capture
Create a function capturing the given variables.
Definition: capture.hpp:45
+
+

Partially apply a function to some arguments.

+

Given a function f and some arguments, reverse_partial returns a new function corresponding to f whose last arguments are partially applied. Specifically, reverse_partial(f, x...) is a function such that

reverse_partial(f, x...)(y...) == f(y..., x...)
Note
The arity of f must match the total number of arguments passed to it, i.e. sizeof...(x) + sizeof...(y).
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto half = hana::reverse_partial(hana::div, 2);
static_assert(half(4) == 2, "");
static_assert(half(8) == 4, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/group__group-functional.js b/boost_1_63_0/libs/hana/doc/html/group__group-functional.js new file mode 100644 index 0000000..69fbc34 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/group__group-functional.js @@ -0,0 +1,22 @@ +var group__group_functional = +[ + [ "always", "group__group-functional.html#ga835970cb25a0c8dc200f1e5f8943538b", null ], + [ "apply", "group__group-functional.html#ga30027c383676084be151ef3c6cf2829f", null ], + [ "arg", "group__group-functional.html#ga6acc765a35c4dc85f0deab4785831a3d", null ], + [ "capture", "group__group-functional.html#ga41ada6b336e9d5bcb101ff0c737acbd0", null ], + [ "compose", "group__group-functional.html#ga3b16146e53efcdf9ecbb9a7b21f8cd0b", null ], + [ "curry", "group__group-functional.html#ga49ea872ade5ac8f6c10052c495302e89", null ], + [ "demux", "group__group-functional.html#ga3a8316acd5efa22c3d1861b62d5df3c2", null ], + [ "fix", "group__group-functional.html#ga1393f40da2e8da6e0c12fce953e56a6c", null ], + [ "flip", "group__group-functional.html#ga004f884cdbb85c2efe3383c1db450094", null ], + [ "id", "group__group-functional.html#gaef38cf34324c8edbd3597ae71811d00d", null ], + [ "infix", "group__group-functional.html#ga7bdafba6dc801f1d2d83731ad9714557", null ], + [ "iterate", "group__group-functional.html#gad1b8669c022d8675d68e5974451073d1", null ], + [ "lockstep", "group__group-functional.html#gafca60c09e1f7a32a2b52baaf6515c279", null ], + [ "on", "group__group-functional.html#ga35c4fc3c5677b9f558150b90e74d3ab1", null ], + [ "overload", "group__group-functional.html#ga83e71bae315e299f9f5f9de77b012139", null ], + [ "overload_linearly", "group__group-functional.html#gaa46de6f618d9f14edb1589b36b6e75ec", null ], + [ "partial", "group__group-functional.html#ga778b2daa27882e71d28b6f2b38982ddf", null ], + [ "_", "group__group-functional.html#gaefe9fd152cba94be71c2b5b9de689d23", null ], + [ "reverse_partial", "group__group-functional.html#ga6e648f0d3fc0209ec024e9d759a5e8f8", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/hana.js b/boost_1_63_0/libs/hana/doc/html/hana.js new file mode 100644 index 0000000..2024d57 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/hana.js @@ -0,0 +1,24 @@ +// Copyright Louis Dionne 2013-2016 +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) + +// We parse the code snippets and italicize the words from the pseudo-code +// glossary to make them stand out. We also link them to their respective +// definition in the glossary. +window.onload = function() { + $(".fragment").children(".line").each(function(index, div) { + div.innerHTML = div.innerHTML + .replace(/perfect-.+(?=])/g, "perfect-capture".link("index.html#tutorial-glossary-perfect_capture").italics()) + .replace(/forwarded/g, "forwarded".link("index.html#tutorial-glossary-forwarded").italics()) + .replace(/tag-dispatched/g, "tag-dispatched".link("index.html#tutorial-glossary-tag_dispatched").italics()) + .replace(/implementation_defined/g, "implementation-defined".link("index.html#tutorial-glossary-implementation_defined").italics()) + .replace(/see-documentation/g, "see-documentation".italics()); + }); + + $(".benchmark-chart").each(function(index, div) { + var dataset = div.getAttribute("data-dataset"); + $.getJSON("benchmarks/release/clang-3.8.0/" + dataset, function(options) { + Hana.initChart($(div), options); + }); + }); +}; diff --git a/boost_1_63_0/libs/hana/doc/html/hana_8hpp.html b/boost_1_63_0/libs/hana/doc/html/hana_8hpp.html new file mode 100644 index 0000000..5af345e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/hana_8hpp.html @@ -0,0 +1,164 @@ + + + + + + + + + +Boost.Hana: boost/hana.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
hana.hpp File Reference
+
+
+ +

Includes all the library components except the adapters for external libraries. +More...

+ + + + + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
 boost::hana::literals
 Namespace containing C++14 user-defined literals provided by Hana.
 
+

Detailed Description

+

Includes all the library components except the adapters for external libraries.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.html b/boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.html new file mode 100644 index 0000000..d290918 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.html @@ -0,0 +1,173 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/has_common_embedding.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
has_common_embedding.hpp File Reference
+
+
+ +

Defines boost::hana::detail::has_[nontrivial_]common_embedding. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + + + + + +

+Typedefs

template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_common_embedding = typename has_common_embedding_impl< Concept, T, U >::type
 Returns whether T and U both have an embedding into a common type. More...
 
template<template< typename... > class Concept, typename T , typename U >
using boost::hana::detail::has_nontrivial_common_embedding = typename has_nontrivial_common_embedding_impl< Concept, T, U >::type
 Returns whether T and U are distinct and both have an embedding into a common type. More...
 
+

Detailed Description

+

Defines boost::hana::detail::has_[nontrivial_]common_embedding.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.js b/boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.js new file mode 100644 index 0000000..4029328 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/has__common__embedding_8hpp.js @@ -0,0 +1,5 @@ +var has__common__embedding_8hpp = +[ + [ "has_common_embedding", "has__common__embedding_8hpp.html#gae85b604ae6c7a386f0fc3631c561091b", null ], + [ "has_nontrivial_common_embedding", "has__common__embedding_8hpp.html#ga9acac3c4609cff5f0957572744c61ec4", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/has__duplicates_8hpp.html b/boost_1_63_0/libs/hana/doc/html/has__duplicates_8hpp.html new file mode 100644 index 0000000..783fda7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/has__duplicates_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/has_duplicates.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
has_duplicates.hpp File Reference
+
+
+ +

Defines boost::hana::detail::has_duplicates. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::has_duplicates< T >
 Returns whether any of the Ts are duplicate w.r.t. hana::equal. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::has_duplicates.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/hash_8hpp.html b/boost_1_63_0/libs/hana/doc/html/hash_8hpp.html new file mode 100644 index 0000000..998643b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/hash_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/hash.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
hash.hpp File Reference
+
+
+ +

Defines boost::hana::hash. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::hash.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/hash__table_8hpp.html b/boost_1_63_0/libs/hana/doc/html/hash__table_8hpp.html new file mode 100644 index 0000000..9390f73 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/hash__table_8hpp.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/hash_table.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
hash_table.hpp File Reference
+
+
+ +

Defines boost::hana::detail::hash_table. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::hash_table.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/hierarchy.html b/boost_1_63_0/libs/hana/doc/html/hierarchy.html new file mode 100644 index 0000000..fe0c345 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/hierarchy.html @@ -0,0 +1,250 @@ + + + + + + + + + +Boost.Hana: Class Hierarchy + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Cboost::hana::detail::operators::adl< tuple< Xn... > >
 Cboost::hana::tuple< Xn >General purpose index-based heterogeneous sequence with a fixed length
 Cboost::hana::detail::operators::adl< tuple<> >
 Cboost::hana::detail::operators::adl<>
 Cboost::hana::at_key_detail::advance_until< Xs, Pred, i+1, N, static_cast< bool >(detail::decay< decltype(std::declval< Pred >()(hana::at_c< i >(std::declval< Xs >())))>::type::value)>
 Cboost::hana::basic_tuple< F, Args... >
 Cboost::hana::basic_tuple< X >
 Cboost::hana::basic_tuple< Xn... >
 Cboost::fusion::deque< T >Adapter for Boost.Fusion deques
 Cboost::fusion::list< T >Adapter for Boost.Fusion lists
 Cboost::fusion::tuple< T >Adapter for Boost.Fusion tuples
 Cboost::fusion::vector< T >Adapter for Boost.Fusion vectors
 Cboost::hana::at_key_detail::advance_until< Xs, Pred, i, N, Done >
 Cboost::hana::basic_tuple< Xs >Stripped down version of hana::tuple
 Cboost::hana::basic_tuple_tagTag representing hana::basic_tuple
 Cboost::hana::basic_type< T >Base class of hana::type; used for pattern-matching
 Cboost::hana::common< T, U, enabler >Metafunction returning the common data type between two data types
 Cboost::hana::constant_detail::which< A, B, C >
 Cboost::hana::default_Mark a tag-dispatched method implementation as a default implementation
 Cboost::hana::detail::any_of< Predicate, T >Returns whether the Predicate is satisfied by any of the T...
 Cboost::hana::detail::array< T, Size >A minimal std::array with better constexpr support
 Cboost::hana::detail::CanonicalConstant< T >Tag representing a canonical Constant
 Cboost::hana::detail::create< T >Implementation of the generic std::make_xxx pattern for arbitrary xxxs
 Cboost::hana::detail::decay< T, U >Equivalent to std::decay, except faster
 Cboost::hana::detail::first_unsatisfied_index< Pred >Returns the index of the first element which does not satisfy Pred, or sizeof...(Xs) if no such element exists
 Cboost::hana::detail::has_duplicates< T >Returns whether any of the Ts are duplicate w.r.t. hana::equal
 Cboost::hana::detail::index_if< Pred, Ts, typename >Returns the index of the first element of the pack<> that satisfies the predicate, or the size of the pack if there is no such element
 Cboost::hana::detail::nested_by< Algorithm >Provides a .by static constexpr function object
 Cboost::hana::detail::nested_than< Algorithm >Provides a .than static constexpr function object
 Cboost::hana::detail::nested_to< Algorithm >Provides a .to static constexpr function object
 Cboost::hana::detail::operators::adl<... >Enables ADL in the hana::detail::operators namespace
 Cboost::hana::detail::std_common_type< T, U, typename >Equivalent to std::common_type, except it is SFINAE-friendly and does not support custom specializations
 Cboost::hana::detail::type_at< n, T >Classic MPL-style metafunction returning the nth element of a type parameter pack
 Cboost::hana::detail::wrong<... >Equivalent to a type-dependent std::false_type
 Cboost::hana::embedding< bool >Marks a conversion between data types as being an embedding
 Cboost::hana::experimental::types< T >Container optimized for holding types
 Cboost::hana::has_common< T, U, typename >Metafunction returning whether two data types share a common data type
 Cboost::hana::integral_constant< T, v >Compile-time value of an integral type
 Cboost::hana::integral_constant_tag< T >Tag representing hana::integral_constant
 Cboost::hana::IntegralConstant< C >The IntegralConstant concept represents compile-time integral values
 Cboost::hana::is_convertible< From, To, typename >Returns whether there is a Hana-conversion from a data type to another
 Cboost::hana::is_default< Method, typename >Returns whether a tag-dispatched method implementation is a default implementation
 Cboost::hana::is_embedded< From, To, typename >Returns whether a data type can be embedded into another data type
 Cboost::hana::lazy< implementation_defined >hana::lazy implements superficial laziness via a monadic interface
 Cboost::hana::lazy_tagTag representing hana::lazy
 Cboost::hana::map< Pairs >Basic associative container requiring unique, Comparable and Hashable keys
 Cboost::hana::map_tagTag representing hana::maps
 Cboost::hana::optional< T >Optional value whose optional-ness is known at compile-time
 Cboost::hana::optional_tagTag representing a hana::optional
 Cboost::hana::pair< First, Second >Generic container for two elements
 Cboost::hana::pair_tagTag representing hana::pair
 Cboost::hana::range< T, from, to >Compile-time half-open interval of hana::integral_constants
 Cboost::hana::range_tagTag representing a hana::range
 Cboost::hana::set< implementation_defined >Basic unordered container requiring unique, Comparable and Hashable keys
 Cboost::hana::set_tagTag representing the hana::set container
 Cboost::hana::string< implementation_defined >Compile-time string
 Cboost::hana::string_tagTag representing a compile-time string
 Cboost::hana::tag_of< T, enabler >Metafunction returning the tag associated to T
 Cboost::hana::tuple_tagTag representing hana::tuples
 Cboost::hana::type< T >C++ type in value-level representation
 Cboost::hana::type_tagTag representing hana::type
 Cboost::hana::when< condition >Enable a partial specialization only if a boolean condition is true
 Cboost::mpl::integral_c< T, v >Adapter for IntegralConstants from the Boost.MPL
 Cboost::mpl::list< T >Adapter for Boost.MPL lists
 Cboost::mpl::vector< T >Adapter for Boost.MPL vectors
 Cboost::tuple< T >Adapter for boost::tuples
 Cboost::hana::embedding< is_embedded< C::value_type, T >::value >
 Cboost::hana::embedding< is_embedded< From::value_type, To >::value >
 Cboost::hana::embedding< Sequence< F >::value >
 Cboost::hana::embedding<>
 Cboost::hana::integral_constant< bool, false >
 Cboost::hana::integral_constant< bool, hana::IntegralConstant< Tag >::value >
 Cboost::hana::integral_constant< bool, hana::Sequence< Tag >::value >
 Cboost::hana::integral_constant< bool, Metafunction< Tag >::value >
 Cboost::hana::integral_constant< bool, Metafunction< typename tag_of< F >::type >::value >
 Cboost::hana::integral_constant< bool, std::is_same< DataType, hana::tag_of< T >::type >::value >
 Cboost::hana::integral_constant< bool,!is_default< accessors_impl< tag_of< S >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< any_of_impl< tag_of< S >::type > >::value &&!is_default< find_if_impl< tag_of< S >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< ap_impl< tag_of< A >::type > >::value &&!is_default< lift_impl< tag_of< A >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< at_impl< tag_of< It >::type > >::value &&!is_default< drop_front_impl< tag_of< It >::type > >::value &&!is_default< is_empty_impl< tag_of< It >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< concat_impl< tag_of< M >::type > >::value &&!is_default< empty_impl< tag_of< M >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< equal_impl< tag_of< T >::type, tag_of< T >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< eval_if_impl< tag_of< L >::type > >::value &&!is_default< not_impl< tag_of< L >::type > >::value &&!is_default< while_impl< tag_of< L >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< extract_impl< tag_of< W >::type > >::value &&(!is_default< duplicate_impl< tag_of< W >::type > >::value||!is_default< extend_impl< tag_of< W >::type > >::value) >
 Cboost::hana::integral_constant< bool,!is_default< first_impl< tag_of< P >::type > >::value &&!is_default< second_impl< tag_of< P >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< flatten_impl< tag_of< M >::type > >::value||!is_default< chain_impl< tag_of< M >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< fold_left_impl< tag_of< T >::type > >::value||!is_default< unpack_impl< tag_of< T >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< hash_impl< tag_of< T >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< less_impl< tag_of< Ord >::type, tag_of< Ord >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< mod_impl< tag_of< R >::type, tag_of< R >::type > >::value &&!is_default< div_impl< tag_of< R >::type, tag_of< R >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< negate_impl< tag_of< G >::type > >::value||!is_default< minus_impl< tag_of< G >::type, tag_of< G >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< one_impl< tag_of< R >::type > >::value &&!is_default< mult_impl< tag_of< R >::type, tag_of< R >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< transform_impl< tag_of< F >::type > >::value||!is_default< adjust_if_impl< tag_of< F >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< value_impl< tag_of< C >::type > >::value >
 Cboost::hana::integral_constant< bool,!is_default< zero_impl< tag_of< M >::type > >::value &&!is_default< plus_impl< tag_of< M >::type, tag_of< M >::type > >::value >
 Cstd::array< T, N >Adaptation of std::array for Hana
 Cstd::integer_sequence< T, v >Adaptation of std::integer_sequence for Hana
 Cstd::integral_constant< T, v >Adapter for std::integral_constants
 Cstd::pair< First, Second >Adaptation of std::pair for Hana
 Cstd::ratio< Num, Denom >Adaptation of std::ratio for Hana
 Cstd::tuple< T >Adapter for std::tuples
 Cboost::hana::detail::std_common_type< T, U >
 Cboost::hana::tag_of< T >
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/highcharts-data.js b/boost_1_63_0/libs/hana/doc/html/highcharts-data.js new file mode 100644 index 0000000..eafd674 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/highcharts-data.js @@ -0,0 +1,26 @@ +/* + Highcharts JS v4.2.1 (2015-12-21) + Data module + + (c) 2012-2014 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(g){typeof module==="object"&&module.exports?module.exports=g:g(Highcharts)})(function(g){var t=g.win.document,j=g.each,u=g.pick,r=g.inArray,v=g.splat,k,p=function(b,a){this.init(b,a)};g.extend(p.prototype,{init:function(b,a){this.options=b;this.chartOptions=a;this.columns=b.columns||this.rowsToColumns(b.rows)||[];this.firstRowAsNames=u(b.firstRowAsNames,!0);this.decimalRegex=b.decimalPoint&&RegExp("^(-?[0-9]+)"+b.decimalPoint+"([0-9]+)$");this.rawColumns=[];this.columns.length?this.dataFound(): +(this.parseCSV(),this.parseTable(),this.parseGoogleSpreadsheet())},getColumnDistribution:function(){var b=this.chartOptions,a=this.options,e=[],f=function(b){return(g.seriesTypes[b||"line"].prototype.pointArrayMap||[0]).length},d=b&&b.chart&&b.chart.type,c=[],h=[],q=0,i;j(b&&b.series||[],function(b){c.push(f(b.type||d))});j(a&&a.seriesMapping||[],function(b){e.push(b.x||0)});e.length===0&&e.push(0);j(a&&a.seriesMapping||[],function(a){var e=new k,o,n=c[q]||f(d),m=g.seriesTypes[((b&&b.series||[])[q]|| +{}).type||d||"line"].prototype.pointArrayMap||["y"];e.addColumnReader(a.x,"x");for(o in a)a.hasOwnProperty(o)&&o!=="x"&&e.addColumnReader(a[o],o);for(i=0;i=d&&e<=c&&!w&&g!==""&&(g=a.split(i),j(g,function(b,a){a>=h&&a<=q&&(f[a-h]||(f[a-h]=[]), +f[a-h][s]=b)}),s+=1)}),this.dataFound())},parseTable:function(){var b=this.options,a=b.table,e=this.columns,f=b.startRow||0,d=b.endRow||Number.MAX_VALUE,c=b.startColumn||0,h=b.endColumn||Number.MAX_VALUE;a&&(typeof a==="string"&&(a=t.getElementById(a)),j(a.getElementsByTagName("tr"),function(b,a){a>=f&&a<=d&&j(b.children,function(b,d){if((b.tagName==="TD"||b.tagName==="TH")&&d>=c&&d<=h)e[d-c]||(e[d-c]=[]),e[d-c][a-f]=b.innerHTML})}),this.dataFound())},parseGoogleSpreadsheet:function(){var b=this, +a=this.options,e=a.googleSpreadsheetKey,f=this.columns,d=a.startRow||0,c=a.endRow||Number.MAX_VALUE,h=a.startColumn||0,g=a.endColumn||Number.MAX_VALUE,i,j;e&&jQuery.ajax({dataType:"json",url:"https://spreadsheets.google.com/feeds/cells/"+e+"/"+(a.googleSpreadsheetWorksheet||"od6")+"/public/values?alt=json-in-script&callback=?",error:a.error,success:function(a){var a=a.feed.entry,e,n=a.length,m=0,k=0,l;for(l=0;l= +h&&l<=g)f[l-h]=[],f[l-h].length=Math.min(k,c-d);for(l=0;l=h&&j<=g&&i>=d&&i<=c)f[j-h][i-d]=e.content.$t;b.dataFound()}})},trim:function(b,a){typeof b==="string"&&(b=b.replace(/^\s+|\s+$/g,""),a&&/^[0-9\s]+$/.test(b)&&(b=b.replace(/\s/g,"")),this.decimalRegex&&(b=b.replace(this.decimalRegex,"$1.$2")));return b},parseTypes:function(){for(var b=this.columns,a=b.length;a--;)this.parseColumn(b[a],a)},parseColumn:function(b,a){var e=this.rawColumns, +f=this.columns,d=b.length,c,h,g,i,j=this.firstRowAsNames,k=r(a,this.valueCount.xColumns)!==-1,o=[],n=this.chartOptions,m,p=(this.options.columnTypes||[])[a],n=k&&(n&&n.xAxis&&v(n.xAxis)[0].type==="category"||p==="string");for(e[a]||(e[a]=[]);d--;)if(c=o[d]||b[d],g=this.trim(c),i=this.trim(c,!0),h=parseFloat(i),e[a][d]===void 0&&(e[a][d]=g),n||d===0&&j)b[d]=g;else if(+i===h)b[d]=h,h>31536E6&&p!=="float"?b.isDatetime=!0:b.isNumeric=!0,b[d+1]!==void 0&&(m=h>b[d+1]);else if(h=this.parseDate(c),k&&typeof h=== +"number"&&!isNaN(h)&&p!=="float"){if(o[d]=c,b[d]=h,b.isDatetime=!0,b[d+1]!==void 0){c=h>b[d+1];if(c!==m&&m!==void 0)this.alternativeFormat?(this.dateFormat=this.alternativeFormat,d=b.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):b.unsorted=!0;m=c}}else if(b[d]=g===""?null:g,d!==0&&(b.isDatetime||b.isNumeric))b.mixed=!0;k&&b.mixed&&(f[a]=e[a]);if(k&&m&&this.options.sort)for(a=0;a0;){i= +new k;i.addColumnReader(0,"x");c=r(0,d);c!==-1&&d.splice(c,1);for(c=0;c0&&g[0].readers.length>0&&(i=b[g[0].readers[0].columnIndex],i!==void 0&&(i.isDatetime?a="datetime":i.isNumeric||(a="category")));if(a==="category")for(c=0;c=2&&(d=this.getReferencedColumnIndexes(),d.length>=2))d.shift(),d.sort(),this.name=b[d.shift()].name;return f};k.prototype.addColumnReader=function(b,a){this.readers.push({columnIndex:b,configName:a});if(!(a==="x"||a==="y"||a===void 0))this.pointIsArray=!1};k.prototype.getReferencedColumnIndexes=function(){var b,a=[],e;for(b=0;b.*?$/,"").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/ /g,"\u00a0").replace(/­/g,"\u00ad").replace(//g,"<$1title>").replace(/height=([^" ]+)/g,'height="$1"').replace(/width=([^" ]+)/g,'width="$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href="$1"/>').replace(/ id=([^" >]+)/g,' id="$1"').replace(/class=([^" >]+)/g,'class="$1"').replace(/ transform /g, +" ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(b){return b.toLowerCase()})},getChartHTML:function(){return this.container.innerHTML},getSVG:function(a){var b=this,e,c,g,j,k,d=l(b.options,a),J=d.exporting.allowHTML;if(!m.createElementNS)m.createElementNS=function(b,a){return m.createElement(a)};c=n("div",null,{position:"absolute",top:"-9999em",width:b.chartWidth+"px",height:b.chartHeight+"px"},m.body);g=b.renderTo.style.width;k=b.renderTo.style.height;g=d.exporting.sourceWidth|| +d.chart.width||/px$/.test(g)&&parseInt(g,10)||600;k=d.exporting.sourceHeight||d.chart.height||/px$/.test(k)&&parseInt(k,10)||400;q(d.chart,{animation:!1,renderTo:c,forExport:!0,renderer:"SVGRenderer",width:g,height:k});d.exporting.enabled=!1;delete d.data;d.series=[];i(b.series,function(a){j=l(a.options,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});j.isInternal||d.series.push(j)});a&&i(["xAxis","yAxis"],function(b){i(F(a[b]),function(a,c){d[b][c]=l(d[b][c],a)})});e=new f.Chart(d, +b.callback);i(["xAxis","yAxis"],function(a){i(b[a],function(b,c){var d=e[a][c],f=b.getExtremes(),g=f.userMin,f=f.userMax;d&&(g!==void 0||f!==void 0)&&d.setExtremes(g,f,!0,!1)})});g=e.getChartHTML();d=null;e.destroy();s(c);if(J&&(c=g.match(/<\/svg>(.*?$)/)))c=''+c[1]+"",g=g.replace("",c+"");g=this.sanitizeSVG(g);return g=g.replace(/(url\(#highcharts-[0-9]+)"/g,"$1").replace(/"/g, +"'")},getSVGForExport:function(a,b){var e=this.options.exporting;return this.getSVG(l({chart:{borderRadius:0}},e.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||e.sourceWidth,sourceHeight:a&&a.sourceHeight||e.sourceHeight}}))},exportChart:function(a,b){var e=this.getSVGForExport(a,b),a=l(this.options.exporting,a);f.post(a.url,{filename:a.filename||"chart",type:a.type,width:a.width||0,scale:a.scale||2,svg:e},a.formAttributes)},print:function(){var a=this,b=a.container,e=[],c=b.parentNode, +f=m.body,j=f.childNodes;if(!a.isPrinting)a.isPrinting=!0,a.pointer.reset(null,0),C(a,"beforePrint"),i(j,function(a,b){if(a.nodeType===1)e[b]=a.style.display,a.style.display="none"}),f.appendChild(b),r.focus(),r.print(),setTimeout(function(){c.appendChild(b);i(j,function(a,b){if(a.nodeType===1)a.style.display=e[b]});a.isPrinting=!1;C(a,"afterPrint")},1E3)},contextMenu:function(a,b,e,c,f,j,k){var d=this,l=d.options.navigation,D=l.menuItemStyle,o=d.chartWidth,p=d.chartHeight,E="cache-"+a,h=d[E],u=G(f, +j),w,x,r,s=function(b){d.pointer.inClass(b.target,a)||x()};if(!h)d[E]=h=n("div",{className:a},{position:"absolute",zIndex:1E3,padding:u+"px"},d.container),w=n("div",null,q({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},l.menuStyle),h),x=function(){v(h,{display:"none"});k&&k.setState(0);d.openMenu=!1},t(h,"mouseleave",function(){r=setTimeout(x,500)}),t(h,"mouseenter",function(){clearTimeout(r)}),t(m,"mouseup",s),t(d,"destroy",function(){B(m,"mouseup", +s)}),i(b,function(a){if(a){var b=a.separator?n("hr",null,null,w):n("div",{onmouseover:function(){v(this,l.menuItemHoverStyle)},onmouseout:function(){v(this,D)},onclick:function(b){b&&b.stopPropagation();x();a.onclick&&a.onclick.apply(d,arguments)},innerHTML:a.text||d.options.lang[a.textKey]},q({cursor:"pointer"},D),w);d.exportDivElements.push(b)}}),d.exportDivElements.push(w,h),d.exportMenuWidth=h.offsetWidth,d.exportMenuHeight=h.offsetHeight;b={display:"block"};e+d.exportMenuWidth>o?b.right=o-e- +f-u+"px":b.left=e-u+"px";c+j+d.exportMenuHeight>p&&k.alignOptions.verticalAlign!=="top"?b.bottom=p-c-u+"px":b.top=c+j-u+"px";v(h,b);d.openMenu=!0},addButton:function(a){var b=this,e=b.renderer,c=l(b.options.navigation.buttonOptions,a),g=c.onclick,j=c.menuItems,k,d,m={stroke:c.symbolStroke,fill:c.symbolFill},i=c.symbolSize||12;if(!b.btnCount)b.btnCount=0;if(!b.exportDivElements)b.exportDivElements=[],b.exportSVGElements=[];if(c.enabled!==!1){var o=c.theme,p=o.states,n=p&&p.hover,p=p&&p.select,h;delete o.states; +g?h=function(a){a.stopPropagation();g.call(b,a)}:j&&(h=function(){b.contextMenu(d.menuClassName,j,d.translateX,d.translateY,d.width,d.height,d);d.setState(2)});c.text&&c.symbol?o.paddingLeft=f.pick(o.paddingLeft,25):c.text||q(o,{width:c.width,height:c.height,padding:0});d=e.button(c.text,0,0,h,o,n,p).attr({title:b.options.lang[c._titleKey],"stroke-linecap":"round"});d.menuClassName=a.menuClassName||"highcharts-menu-"+b.btnCount++;c.symbol&&(k=e.symbol(c.symbol,c.symbolX-i/2,c.symbolY-i/2,i,i).attr(q(m, +{"stroke-width":c.symbolStrokeWidth||1,zIndex:1})).add(d));d.add().align(q(c,{width:d.width,x:f.pick(c.x,z)}),!0,"spacingBox");z+=(d.width+c.buttonSpacing)*(c.align==="right"?-1:1);b.exportSVGElements.push(d,k)}},destroyExport:function(a){var a=a.target,b,e;for(b=0;b-1?h.thousandsSep:""))):e=Ra(f,e)}k.push(e);a=a.slice(c+1);c=(d=!d)?"}":"{"}k.push(a);return k.join("")}function sb(a){return V.pow(10,S(V.log(a)/V.LN10))}function tb(a,b,c,d,e){var f,g=a,c=p(c,1);f=a/c;b||(b=[1,2,2.5,5,10],d===!1&&(c===1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d=a||!e&&f<=(b[d]+(b[d+1]||b[d]))/ +2)break;g*=c;return g}function jb(a,b){var c=a.length,d,e;for(e=0;ec&&(c=a[b]);return c}function Ta(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]}function Ua(a){kb||(kb=$(Ma));a&&kb.appendChild(a);kb.innerHTML=""}function fa(a,b){return parseFloat(a.toPrecision(b|| +14))}function Va(a,b){b.renderer.globalAnimation=p(a,b.animation)}function Fb(){var a=O.global,b=a.useUTC,c=b?"getUTC":"get",d=b?"setUTC":"set";oa=a.Date||C.Date;rb=b&&a.timezoneOffset;ib=b&&a.getTimezoneOffset;lb=function(a,c,d,h,i,k){var j;b?(j=oa.UTC.apply(0,arguments),j+=Za(j)):j=(new oa(a,c,p(d,1),p(h,0),p(i,0),p(k,0))).getTime();return j};ub=c+"Minutes";vb=c+"Hours";wb=c+"Day";$a=c+"Date";ab=c+"Month";bb=c+"FullYear";Gb=d+"Milliseconds";Hb=d+"Seconds";Ib=d+"Minutes";Jb=d+"Hours";xb=d+"Date"; +yb=d+"Month";zb=d+"FullYear"}function ia(a){if(!(this instanceof ia))return new ia(a);this.init(a)}function Q(){}function Wa(a,b,c,d){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;!c&&!d&&this.addLabel()}function Kb(a,b,c,d,e){var f=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.total=null;this.points={};this.stack=e;this.alignOptions={align:b.align||(f?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(f?"middle":c?"bottom":"top"),y:p(b.y,f?4:c?14:-6), +x:p(b.x,f?c?-6:6:0)};this.textAlign=b.textAlign||(f?c?"right":"left":"center")}var B,z=C.document,V=Math,A=V.round,S=V.floor,ua=V.ceil,s=V.max,E=V.min,P=V.abs,T=V.cos,aa=V.sin,pa=V.PI,ga=pa*2/360,Aa=C.navigator&&C.navigator.userAgent||"",Lb=C.opera,za=/(msie|trident|edge)/i.test(Aa)&&!Lb,mb=z&&z.documentMode===8,nb=!za&&/AppleWebKit/.test(Aa),Na=/Firefox/.test(Aa),Mb=/(Mobile|Android|Windows Phone)/.test(Aa),Ea="http://www.w3.org/2000/svg",da=z&&z.createElementNS&&!!z.createElementNS(Ea,"svg").createSVGRect, +Qb=Na&&parseInt(Aa.split("Firefox/")[1],10)<4,ha=z&&!da&&!za&&!!z.createElement("canvas").getContext,cb,db,Nb={},Ab=0,kb,O,Ra,G,va=function(){},W=[],eb=0,Ma="div",Rb=/^[0-9]+$/,ob=["plotTop","marginRight","marginBottom","plotLeft"],oa,lb,rb,ib,ub,vb,wb,$a,ab,bb,Gb,Hb,Ib,Jb,xb,yb,zb,I={},u;u=C.Highcharts?Y(16,!0):{win:C};u.seriesTypes=I;var Fa=[],Ga,qa,o,Oa,Bb,Ha,N,U,H,Xa,Pa;qb.prototype={dSetter:function(){var a=this.paths[0],b=this.paths[1],c=[],d=this.now,e=a.length,f;if(d===1)c=this.toD;else if(e=== +b.length&&d<1)for(;e--;)f=parseFloat(a[e]),c[e]=isNaN(f)?a[e]:d*parseFloat(b[e]-f)+f;else c=b;this.elem.attr("d",c)},update:function(){var a=this.elem,b=this.prop,c=this.now,d=this.options.step;if(this[b+"Setter"])this[b+"Setter"]();else a.attr?a.element&&a.attr(b,c):a.style[b]=c+this.unit;d&&d.call(a,c,this)},run:function(a,b,c){var d=this,e=function(a){return e.stopped?!1:d.step(a)},f;this.startTime=+new oa;this.start=a;this.end=b;this.unit=c;this.now=this.start;this.pos=0;e.elem=this.elem;if(e()&& +Fa.push(e)===1)e.timerId=setInterval(function(){for(f=0;f=f+this.startTime){this.now=this.end;this.pos=1;this.update();a=g[this.prop]=!0;for(h in g)g[h]!==!0&&(a=!1);a&&e&&e.call(c);c=!1}else this.pos=d.easing((b-this.startTime)/f),this.now=this.start+(this.end-this.start)* +this.pos,this.update(),c=!0;return c},initPath:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,i,k=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+1,0,a[g+1],a[g+2],a[g+1],a[g+2])};e&&(k(b),k(c));a.isArea&&(h=b.splice(b.length-6,6),i=c.splice(c.length-6,6));if(d<=c.length/f&&b.length===c.length)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift=0;if(b.length)for(a=c.length;b.length3?c.length%3:0;return e+(g?c.substr(0,g)+d:"")+c.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(f?b+P(a-c).toFixed(f).slice(2):"")};Math.easeInOutSine=function(a){return-0.5* +(Math.cos(Math.PI*a)-1)};Ga=function(a,b){var c=C.getComputedStyle(a,void 0);return c&&F(c.getPropertyValue(b))};qa=function(a,b){return b.indexOf?b.indexOf(a):[].indexOf.call(b,a)};Oa=function(a,b){return[].filter.call(a,b)};Ha=function(a,b){for(var c=[],d=0,e=a.length;d-1&&(f.splice(h,1),g[b]=f),d(b,c)):(e(),g[b]=[])):(e(),a.hcEvents={})};H=function(a,b,c,d){var e;e=a.hcEvents;var f,g,h,i,c=c||{};if(z.createEvent&&(a.dispatchEvent||a.fireEvent))e=z.createEvent("Events"),e.initEvent(b,!0,!0),e.target=a,v(e,c),a.dispatchEvent? +a.dispatchEvent(e):a.fireEvent(b,e);else if(e){e=e[b]||[];f=e.length;h=function(){c.defaultPrevented=!0};for(g=0;g{point.key}
',pointFormat:'\u25cf {series.name}: {point.y}
',shadow:!0,snap:Mb?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090", +fontSize:"9px"}}};var ba=O.plotOptions,ea=ba.line;Fb();ia.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(a){return[F(a[1]),F(a[2]),F(a[3]),parseFloat(a[4],10)]}},{regex:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(a){return[F(a[1],16),F(a[2],16),F(a[3],16),1]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(a){return[F(a[1]),F(a[2]),F(a[3]),1]}}], +init:function(a){var b,c,d,e;if((this.input=a)&&a.stops)this.stops=Ha(a.stops,function(a){return new ia(a[1])});else for(d=this.parsers.length;d--&&!c;)e=this.parsers[d],(b=e.regex.exec(a))&&(c=e.parse(b));this.rgba=c||[]},get:function(a){var b=this.input,c=this.rgba,d;this.stops?(d=D(b),d.stops=[].concat(d.stops),o(this.stops,function(b,c){d.stops[c]=[d.stops[c][0],b.get(a)]})):d=c&&!isNaN(c[0])?a==="rgb"||!a&&c[3]===1?"rgb("+c[0]+","+c[1]+","+c[2]+")":a==="a"?c[3]:"rgba("+c.join(",")+")":b;return d}, +brighten:function(a){var b,c=this.rgba;if(this.stops)o(this.stops,function(b){b.brighten(a)});else if(ka(a)&&a!==0)for(b=0;b<3;b++)c[b]+=F(a*255),c[b]<0&&(c[b]=0),c[b]>255&&(c[b]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this}};Q.prototype={opacity:1,textProps:"direction,fontSize,fontWeight,fontFamily,fontStyle,color,lineHeight,width,textDecoration,textOverflow,textShadow".split(","),init:function(a,b){this.element=b==="span"?$(b):z.createElementNS(Ea,b);this.renderer=a},animate:function(a, +b,c){b=p(b,this.renderer.globalAnimation,!0);Pa(this);if(b){b=D(b,{});if(c)b.complete=c;Xa(this,a,b)}else this.attr(a,null,c);return this},colorGradient:function(a,b,c){var d=this.renderer,e,f,g,h,i,k,j,m,l,n,t,r=[],p;a.linearGradient?f="linearGradient":a.radialGradient&&(f="radialGradient");if(f){g=a[f];i=d.gradients;j=a.stops;n=c.radialReference;Ja(g)&&(a[f]=g={x1:g[0],y1:g[1],x2:g[2],y2:g[3],gradientUnits:"userSpaceOnUse"});f==="radialGradient"&&n&&!q(g.gradientUnits)&&(h=g,g=D(g,d.getRadialAttr(n, +h),{gradientUnits:"userSpaceOnUse"}));for(t in g)t!=="id"&&r.push(t,g[t]);for(t in j)r.push(j[t]);r=r.join(",");i[r]?n=i[r].attr("id"):(g.id=n="highcharts-"+Ab++,i[r]=k=d.createElement(f).attr(g).add(d.defs),k.radAttr=h,k.stops=[],o(j,function(a){a[1].indexOf("rgba")===0?(e=ia(a[1]),m=e.get("rgb"),l=e.get("a")):(m=a[1],l=1);a=d.createElement("stop").attr({offset:a[0],"stop-color":m,"stop-opacity":l}).add(k);k.stops.push(a)}));p="url("+d.url+"#"+n+")";c.setAttribute(b,p);c.gradient=r;a.toString=function(){return p}}}, +applyTextShadow:function(a){var b=this.element,c,d=a.indexOf("contrast")!==-1,e={},f=this.renderer.forExport,g=f||b.style.textShadow!==B&&!za;if(d)e.textShadow=a=a.replace(/contrast/g,this.renderer.getContrast(b.style.fill));if(nb||f)e.textRendering="geometricPrecision";g?this.css(e):(this.fakeTS=!0,this.ySetter=this.xSetter,c=[].slice.call(b.getElementsByTagName("tspan")),o(a.split(/\s?,\s?/g),function(a){var d=b.firstChild,e,f,a=a.split(" ");e=a[a.length-1];(f=a[a.length-2])&&o(c,function(a,c){var g; +c===0&&(a.setAttribute("x",b.getAttribute("x")),c=b.getAttribute("y"),a.setAttribute("y",c||0),c===null&&b.setAttribute("y",0));g=a.cloneNode(1);L(g,{"class":"highcharts-text-shadow",fill:e,stroke:e,"stroke-opacity":1/s(F(f),3),"stroke-width":f,"stroke-linejoin":"round"});b.insertBefore(g,d)})}))},attr:function(a,b,c){var d,e=this.element,f,g=this,h;typeof a==="string"&&b!==B&&(d=a,a={},a[d]=b);if(typeof a==="string")g=(this[a+"Getter"]||this._defaultGetter).call(this,a,e);else{for(d in a){b=a[d]; +h=!1;this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(d)&&(f||(this.symbolAttr(a),f=!0),h=!0);if(this.rotation&&(d==="x"||d==="y"))this.doTransform=!0;h||(this[d+"Setter"]||this._defaultSetter).call(this,b,d,e);this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(d)&&this.updateShadows(d,b)}if(this.doTransform)this.updateTransform(),this.doTransform=!1}c&&c();return g},updateShadows:function(a,b){for(var c=this.shadows,d=c.length;d--;)c[d].setAttribute(a, +a==="height"?Math.max(b-(c[d].cutHeight||0),0):a==="d"?this.d:b)},addClass:function(a){var b=this.element,c=L(b,"class")||"";c.indexOf(a)===-1&&L(b,"class",c+" "+a);return this},symbolAttr:function(a){var b=this;o("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(c){b[c]=p(a[c],b[c])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a){var b, +c={},d,e=a.strokeWidth||this.strokeWidth||0;d=A(e)%2/2;a.x=S(a.x||this.x||0)+d;a.y=S(a.y||this.y||0)+d;a.width=S((a.width||this.width||0)-2*d);a.height=S((a.height||this.height||0)-2*d);a.strokeWidth=e;for(b in a)this[b]!==a[b]&&(this[b]=c[b]=a[b]);return c},css:function(a){var b=this.styles,c={},d=this.element,e,f,g="";e=!b;if(a&&a.color)a.fill=a.color;if(b)for(f in a)a[f]!==b[f]&&(c[f]=a[f],e=!0);if(e){e=this.textWidth=a&&a.width&&d.nodeName.toLowerCase()==="text"&&F(a.width)||this.textWidth;b&& +(a=v(b,c));this.styles=a;e&&(ha||!da&&this.renderer.forExport)&&delete a.width;if(za&&!da)M(this.element,a);else{b=function(a,b){return"-"+b.toLowerCase()};for(f in a)g+=f.replace(/([A-Z])/g,b)+":"+a[f]+";";L(d,"style",g)}e&&this.added&&this.renderer.buildText(this)}return this},on:function(a,b){var c=this,d=c.element;db&&a==="click"?(d.ontouchstart=function(a){c.touchEventFired=oa.now();a.preventDefault();b.call(d,a)},d.onclick=function(a){(Aa.indexOf("Android")===-1||oa.now()-(c.touchEventFired|| +0)>1100)&&b.call(d,a)}):d["on"+a]=b;return this},setRadialReference:function(a){var b=this.renderer.gradients[this.element.gradient];this.element.radialReference=a;b&&b.radAttr&&b.animate(this.renderer.getRadialAttr(a,b.radAttr));return this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},invert:function(){this.inverted=!0;this.updateTransform();return this},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,c=this.scaleX,d=this.scaleY,e=this.inverted, +f=this.rotation,g=this.element;e&&(a+=this.attr("width"),b+=this.attr("height"));a=["translate("+a+","+b+")"];e?a.push("rotate(90) scale(-1,1)"):f&&a.push("rotate("+f+" "+(g.getAttribute("x")||0)+" "+(g.getAttribute("y")||0)+")");(q(c)||q(d))&&a.push("scale("+p(c,1)+" "+p(d,1)+")");a.length&&g.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){var d,e,f,g,h={};e=this.renderer;f=e.alignedObjects;if(a){if(this.alignOptions= +a,this.alignByTranslate=b,!c||ya(c))this.alignTo=d=c||"renderer",ma(f,this),f.push(this),c=null}else a=this.alignOptions,b=this.alignByTranslate,d=this.alignTo;c=p(c,e[d],e);d=a.align;e=a.verticalAlign;f=(c.x||0)+(a.x||0);g=(c.y||0)+(a.y||0);if(d==="right"||d==="center")f+=(c.width-(a.width||0))/{right:1,center:2}[d];h[b?"translateX":"x"]=A(f);if(e==="bottom"||e==="middle")g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1);h[b?"translateY":"y"]=A(g);this[this.placed?"animate":"attr"](h);this.placed= +!0;this.alignAttr=h;return this},getBBox:function(a,b){var c,d=this.renderer,e,f,g,h=this.element,i=this.styles;e=this.textStr;var k,j=h.style,m,l=d.cache,n=d.cacheKeys,t;f=p(b,this.rotation);g=f*ga;e!==B&&(t=["",f||0,i&&i.fontSize,h.style.width].join(","),t=e===""||Rb.test(e)?"num:"+e.toString().length+t:e+t);t&&!a&&(c=l[t]);if(!c){if(h.namespaceURI===Ea||d.forExport){try{m=this.fakeTS&&function(a){o(h.querySelectorAll(".highcharts-text-shadow"),function(b){b.style.display=a})},Na&&j.textShadow? +(k=j.textShadow,j.textShadow=""):m&&m("none"),c=h.getBBox?v({},h.getBBox()):{width:h.offsetWidth,height:h.offsetHeight},k?j.textShadow=k:m&&m("")}catch(r){}if(!c||c.width<0)c={width:0,height:0}}else c=this.htmlGetBBox();if(d.isSVG){d=c.width;e=c.height;if(za&&i&&i.fontSize==="11px"&&e.toPrecision(3)==="16.9")c.height=e=14;if(f)c.width=P(e*aa(g))+P(d*T(g)),c.height=P(e*T(g))+P(d*aa(g))}if(t){for(;n.length>250;)delete l[n.shift()];l[t]||n.push(t);l[t]=c}}return c},show:function(a){return this.attr({visibility:a? +"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||150,complete:function(){b.attr({y:-9999})}})},add:function(a){var b=this.renderer,c=this.element,d;if(a)this.parentGroup=a;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)d=this.zIndexSetter();d||(a?a.element:b.box).appendChild(c);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var b= +a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d=a.renderer.isSVG&&b.nodeName==="SPAN"&&a.parentGroup,e,f;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=null;Pa(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(f=0;f]*>/g,"")))},textSetter:function(a){if(a!==this.textStr)delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this)},fillSetter:function(a,b,c){typeof a==="string"?c.setAttribute(b,a):a&&this.colorGradient(a,b,c)},visibilitySetter:function(a,b,c){a=== +"inherit"?c.removeAttribute(b):c.setAttribute(b,a)},zIndexSetter:function(a,b){var c=this.renderer,d=this.parentGroup,c=(d||c).element||c.box,e,f,g=this.element,h;e=this.added;var i;q(a)&&(g.setAttribute(b,a),a=+a,this[b]===a&&(e=!1),this[b]=a);if(e){if((a=this.zIndex)&&d)d.handleZ=!0;d=c.childNodes;for(i=0;ia||!q(a)&&q(f)))c.insertBefore(g,e),h=!0;h||c.appendChild(g)}return h},_defaultSetter:function(a,b,c){c.setAttribute(b,a)}};Q.prototype.yGetter= +Q.prototype.xGetter;Q.prototype.translateXSetter=Q.prototype.translateYSetter=Q.prototype.rotationSetter=Q.prototype.verticalAlignSetter=Q.prototype.scaleXSetter=Q.prototype.scaleYSetter=function(a,b){this[b]=a;this.doTransform=!0};Q.prototype["stroke-widthSetter"]=Q.prototype.strokeSetter=function(a,b,c){this[b]=a;if(this.stroke&&this["stroke-width"])this.strokeWidth=this["stroke-width"],Q.prototype.fillSetter.call(this,this.stroke,"stroke",c),c.setAttribute("stroke-width",this["stroke-width"]), +this.hasStroke=!0;else if(b==="stroke-width"&&a===0&&this.hasStroke)c.removeAttribute("stroke"),this.hasStroke=!1};var Ba=function(){this.init.apply(this,arguments)};Ba.prototype={Element:Q,init:function(a,b,c,d,e,f){var g,d=this.createElement("svg").attr({version:"1.1"}).css(this.getStyle(d));g=d.element;a.appendChild(g);a.innerHTML.indexOf("xmlns")===-1&&L(g,"xmlns",Ea);this.isSVG=!0;this.box=g;this.boxWrapper=d;this.alignedObjects=[];this.url=(Na||nb)&&z.getElementsByTagName("base").length?C.location.href.replace(/#.*?$/, +"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(z.createTextNode("Created with Highcharts 4.2.1"));this.defs=this.createElement("defs").add();this.allowHTML=f;this.forExport=e;this.gradients={};this.cache={};this.cacheKeys=[];this.setSize(b,c,!1);var h;if(Na&&a.getBoundingClientRect)this.subPixelFix=b=function(){M(a,{left:0,top:0});h=a.getBoundingClientRect();M(a,{left:ua(h.left)-h.left+"px",top:ua(h.top)-h.top+"px"})},b(),N(C,"resize", +b)},getStyle:function(a){return this.style=v({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();Ta(this.gradients||{});this.gradients=null;if(a)this.defs=a.destroy();this.subPixelFix&&U(C,"resize",this.subPixelFix);return this.alignedObjects=null},createElement:function(a){var b=new this.Element; +b.init(this,a);return b},draw:function(){},getRadialAttr:function(a,b){return{cx:a[0]-a[2]/2+b.cx*a[2],cy:a[1]-a[2]/2+b.cy*a[2],r:b.r*a[2]}},buildText:function(a){for(var b=a.element,c=this,d=c.forExport,e=p(a.textStr,"").toString(),f=e.indexOf("<")!==-1,g=b.childNodes,h,i,k=L(b,"x"),j=a.styles,m=a.textWidth,l=j&&j.lineHeight,n=j&&j.textShadow,t=j&&j.textOverflow==="ellipsis",r=g.length,X=m&&!a.added&&this.box,y=function(a){return l?F(l):c.fontMetrics(/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize: +j&&j.fontSize||c.style.fontSize||12,a).h},x=function(a){return a.replace(/</g,"<").replace(/>/g,">")};r--;)b.removeChild(g[r]);!f&&!n&&!t&&e.indexOf(" ")===-1?b.appendChild(z.createTextNode(x(e))):(h=/<.*style="([^"]+)".*>/,i=/<.*href="(http[^"]+)".*>/,X&&X.appendChild(b),e=f?e.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,'').replace(//g,"").split(//g):[e],e[e.length-1]=== +""&&e.pop(),o(e,function(e,f){var g,l=0,e=e.replace(//g,"|||");g=e.split("|||");o(g,function(e){if(e!==""||g.length===1){var n={},r=z.createElementNS(Ea,"tspan"),p;h.test(e)&&(p=e.match(h)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),L(r,"style",p));i.test(e)&&!d&&(L(r,"onclick",'location.href="'+e.match(i)[1]+'"'),M(r,{cursor:"pointer"}));e=x(e.replace(/<(.|\n)*?>/g,"")||" ");if(e!==" "){r.appendChild(z.createTextNode(e));if(l)n.dx=0;else if(f&&k!==null)n.x= +k;L(r,n);b.appendChild(r);!l&&f&&(!da&&d&&M(r,{display:"block"}),L(r,"dy",y(r)));if(m){for(var n=e.replace(/([^\^])-/g,"$1- ").split(" "),X=g.length>1||f||n.length>1&&j.whiteSpace!=="nowrap",o,w,q,s=[],v=y(r),B=1,A=a.rotation,u=e,D=u.length;(X||t)&&(n.length||s.length);)a.rotation=0,o=a.getBBox(!0),q=o.width,!da&&c.forExport&&(q=c.measureSpanWidth(r.firstChild.data,a.styles)),o=q>m,w===void 0&&(w=o),t&&w?(D/=2,u===""||!o&&D<0.5?n=[]:(o&&(w=!0),u=e.substring(0,u.length+(o?-1:1)*ua(D)),n=[u+(m>3?"\u2026": +"")],r.removeChild(r.firstChild))):!o||n.length===1?(n=s,s=[],n.length&&(B++,r=z.createElementNS(Ea,"tspan"),L(r,{dy:v,x:k}),p&&L(r,"style",p),b.appendChild(r)),q>m&&(m=q)):(r.removeChild(r.firstChild),s.unshift(n.pop())),n.length&&r.appendChild(z.createTextNode(n.join(" ").replace(/- /g,"-")));w&&a.attr("title",a.textStr);a.rotation=A}l++}}})}),X&&X.removeChild(b),n&&a.applyTextShadow&&a.applyTextShadow(n))},getContrast:function(a){a=ia(a).rgba;return a[0]+a[1]+a[2]>384?"#000000":"#FFFFFF"},button:function(a, +b,c,d,e,f,g,h,i){var k=this.label(a,b,c,i,null,null,null,null,"button"),j=0,m,l,n,t,r,p,a={x1:0,y1:0,x2:0,y2:1},e=D({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:a,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},e);n=e.style;delete e.style;f=D(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#FFF"],[1,"#ACF"]]}},f);t=f.style;delete f.style;g=D(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#9BD"],[1,"#CDF"]]}},g);r=g.style;delete g.style;h=D(e,{style:{color:"#CCC"}}, +h);p=h.style;delete h.style;N(k.element,za?"mouseover":"mouseenter",function(){j!==3&&k.attr(f).css(t)});N(k.element,za?"mouseout":"mouseleave",function(){j!==3&&(m=[e,f,g][j],l=[n,t,r][j],k.attr(m).css(l))});k.setState=function(a){(k.state=j=a)?a===2?k.attr(g).css(r):a===3&&k.attr(h).css(p):k.attr(e).css(n)};return k.on("click",function(a){j!==3&&d.call(k,a)}).attr(e).css(v({cursor:"default"},n))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=A(a[1])-b%2/2);a[2]===a[5]&&(a[2]=a[5]=A(a[2])+b%2/ +2);return a},path:function(a){var b={fill:"none"};Ja(a)?b.d=a:Z(a)&&v(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=Z(a)?a:{x:a,y:b,r:c};b=this.createElement("circle");b.xSetter=function(a){this.element.setAttribute("cx",a)};b.ySetter=function(a){this.element.setAttribute("cy",a)};return b.attr(a)},arc:function(a,b,c,d,e,f){if(Z(a))b=a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;a=this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d||0,start:e||0,end:f||0});a.r=c;return a},rect:function(a, +b,c,d,e,f){var e=Z(a)?a.r:e,g=this.createElement("rect"),a=Z(a)?a:a===B?{}:{x:a,y:b,width:s(c,0),height:s(d,0)};if(f!==B)a.strokeWidth=f,a=g.crisp(a);if(e)a.r=e;g.rSetter=function(a){L(this.element,{rx:a,ry:a})};return g.attr(a)},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[p(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=this.createElement("g");return q(a)?b.attr({"class":"highcharts-"+a}):b},image:function(a, +b,c,d,e){var f={preserveAspectRatio:"none"};arguments.length>1&&v(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f);f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(A(b),A(c),d,e,f),i=/^url\((.*?)\)$/,k,j;if(h)g=this.path(h),v(g,{symbolName:a,x:b,y:c,width:d,height:e}),f&&v(g,f);else if(i.test(a))j=function(a,b){a.element&&(a.attr({width:b[0], +height:b[1]}),a.alignByTranslate||a.translate(A((d-b[0])/2),A((e-b[1])/2)))},k=a.match(i)[1],a=Nb[k]||f&&f.width&&f.height&&[f.width,f.height],g=this.image(k).attr({x:b,y:c}),g.isImg=!0,a?j(g,a):(g.attr({width:0,height:0}),$("img",{onload:function(){this.width===0&&(M(this,{position:"absolute",top:"-999em"}),z.body.appendChild(this));j(g,Nb[k]=[this.width,this.height]);this.parentNode&&this.parentNode.removeChild(this)},src:k}));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M", +a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]},triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start,c=e.r||c||d,g=e.end-0.001,d=e.innerR,h=e.open,i=T(f),k=aa(f),j=T(g),g=aa(g),e=e.end-fc&&e>b+g&&eb+g&&e +d&&h>a+g&&ha+g&&hl&&/[ \-]/.test(b.textContent||b.innerText))M(b,{width:l+"px",display:"block",whiteSpace:k&&k.whiteSpace||"normal"}),i=l;this.getSpanCorrection(i,m,h,j,g)}M(b,{left:e+(this.xCorr||0)+"px",top:f+(this.yCorr||0)+"px"});if(nb)m=b.offsetHeight;this.cTT= +n}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,c){var d={},e=za?"-ms-transform":nb?"-webkit-transform":Na?"MozTransform":Lb?"-o-transform":"";d[e]=d.transform="rotate("+a+"deg)";d[e+(Na?"Origin":"-origin")]=d.transformOrigin=b*100+"% "+c+"px";M(this.element,d)},getSpanCorrection:function(a,b,c){this.xCorr=-a*c;this.yCorr=-b}});v(Ba.prototype,{html:function(a,b,c){var d=this.createElement("span"),e=d.element,f=d.renderer;d.textSetter=function(a){a!==e.innerHTML&&delete this.bBox;e.innerHTML= +this.textStr=a;d.htmlUpdateTransform()};d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,b){b==="align"&&(b="textAlign");d[b]=a;d.htmlUpdateTransform()};d.attr({text:a,x:A(b),y:A(c)}).css({position:"absolute",fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});e.style.whiteSpace="nowrap";d.css=d.htmlCss;if(f.isSVG)d.add=function(a){var b,c=f.box.parentNode,k=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)k.push(a),a=a.parentGroup;o(k.reverse(),function(a){var d,e=L(a.element, +"class");e&&(e={className:e});b=a.div=a.div||$(Ma,e,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px"},b||c);d=b.style;v(a,{translateXSetter:function(b,c){d.left=b+"px";a[c]=b;a.doTransform=!0},translateYSetter:function(b,c){d.top=b+"px";a[c]=b;a.doTransform=!0}});o(["opacity","visibility"],function(b){fb(a,b+"Setter",function(a,b,c,e){a.call(this,b,c,e);d[c]=b})})})}}else b=c;b.appendChild(e);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d};return d}});var K;if(!da&& +!ha){K={init:function(a,b){var c=["<",b,' filled="f" stroked="f"'],d=["position: ","absolute",";"],e=b===Ma;(b==="shape"||e)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",e?"hidden":"visible");c.push(' style="',d.join(""),'"/>');if(b)c=e||b==="span"||b==="img"?c.join(""):a.prepVML(c),this.element=$(c);this.renderer=a},add:function(a){var b=this.renderer,c=this.element,d=b.box,e=a&&a.inverted,d=a?a.element||a:d;if(a)this.parentGroup=a;e&&b.invertChild(c,d);d.appendChild(c);this.added= +!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();return this},updateTransform:Q.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,b=T(a*ga),c=aa(a*ga);M(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11=",b,", M12=",-c,", M21=",c,", M22=",b,", sizingMethod='auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,c,d,e){var f=d?T(d*ga):1,g=d?aa(d*ga):0,h=p(this.elemHeight,this.element.offsetHeight), +i;this.xCorr=f<0&&-a;this.yCorr=g<0&&-h;i=f*g<0;this.xCorr+=g*b*(i?1-c:c);this.yCorr-=f*b*(d?i?c:1-c:1);e&&e!=="left"&&(this.xCorr-=a*c*(f<0?-1:1),d&&(this.yCorr-=h*c*(g<0?-1:1)),M(this.element,{textAlign:e}))},pathToVML:function(a){for(var b=a.length,c=[];b--;)if(ka(a[b]))c[b]=A(a[b]*10)-5;else if(a[b]==="Z")c[b]="x";else if(c[b]=a[b],a.isArc&&(a[b]==="wa"||a[b]==="at"))c[b+5]===c[b+7]&&(c[b+7]+=a[b+7]>a[b+5]?1:-1),c[b+6]===c[b+8]&&(c[b+8]+=a[b+8]>a[b+6]?1:-1);return c.join(" ")||"x"},clip:function(a){var b= +this,c;a?(c=a.members,ma(c,b),c.push(b),b.destroyClip=function(){ma(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),a={clip:mb?"inherit":"rect(auto)"});return b.css(a)},css:Q.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&Ua(a)},destroy:function(){this.destroyClip&&this.destroyClip();return Q.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=C.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c,a=a.split(/[ ,]/);c=a.length; +if(c===9||c===11)a[c-4]=a[c-2]=F(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,c){var d=[],e,f=this.element,g=this.renderer,h,i=f.style,k,j=f.path,m,l,n,t;j&&typeof j.value!=="string"&&(j="x");l=j;if(a){n=p(a.width,3);t=(a.opacity||0.15)/n;for(e=1;e<=3;e++){m=n*2+1-2*e;c&&(l=this.cutOffPath(j.value,m+0.5));k=[''];h=$(g.prepVML(k),null,{left:F(i.left)+p(a.offsetX,1),top:F(i.top)+ +p(a.offsetY,1)});if(c)h.cutOff=m+1;k=[''];$(g.prepVML(k),null,null,h);b?b.element.appendChild(h):f.parentNode.insertBefore(h,f);d.push(h)}this.shadows=d}return this},updateShadows:va,setAttr:function(a,b){mb?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){this.element.className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName("stroke")[0]||$(this.renderer.prepVML([""]),null,null,c))[b]=a||"solid"; +this[b]=a},dSetter:function(a,b,c){var d=this.shadows,a=a||[];this.d=a.join&&a.join(" ");c.path=a=this.pathToVML(a);if(d)for(c=d.length;c--;)d[c].path=d[c].cutOff?this.cutOffPath(a,d[c].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,c){var d=c.nodeName;if(d==="SPAN")c.style.color=a;else if(d!=="IMG")c.filled=a!=="none",this.setAttr("fillcolor",this.renderer.color(a,c,b,this))},"fill-opacitySetter":function(a,b,c){$(this.renderer.prepVML(["<",b.split("-")[0],' opacity="',a,'"/>']),null,null, +c)},opacitySetter:va,rotationSetter:function(a,b,c){c=c.style;this[b]=c[b]=a;c.left=-A(aa(a*ga)+1)+"px";c.top=A(T(a*ga))+"px"},strokeSetter:function(a,b,c){this.setAttr("strokecolor",this.renderer.color(a,c,b,this))},"stroke-widthSetter":function(a,b,c){c.stroked=!!a;this[b]=a;ka(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){a==="inherit"&&(a="visible");this.shadows&&o(this.shadows,function(c){c.style[b]=a});c.nodeName=== +"DIV"&&(a=a==="hidden"?"-999em":0,mb||(c.style[b]=a?"visible":"hidden"),b="top");c.style[b]=a},xSetter:function(a,b,c){this[b]=a;b==="x"?b="left":b==="y"&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a}};K["stroke-opacitySetter"]=K["fill-opacitySetter"];u.VMLElement=K=na(Q,K);K.prototype.ySetter=K.prototype.widthSetter=K.prototype.heightSetter=K.prototype.xSetter;var Cb={Element:K,isIE8:Aa.indexOf("MSIE 8.0")>-1,init:function(a, +b,c,d){var e;this.alignedObjects=[];d=this.createElement(Ma).css(v(this.getStyle(d),{position:"relative"}));e=d.element;a.appendChild(d.element);this.isVML=!0;this.box=e;this.boxWrapper=d;this.gradients={};this.cache={};this.cacheKeys=[];this.setSize(b,c,!1);if(!z.namespaces.hcv){z.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{z.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(f){z.styleSheets[0].cssText+= +"hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement(),f=Z(a);return v(e,{members:[],count:0,left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:d)-1,getCSS:function(a){var b=a.element,c=b.nodeName,a=a.inverted,d=this.top-(c==="shape"?b.offsetTop:0),e=this.left,b=e+this.width,f=d+this.height,d={clip:"rect("+A(a?e:d)+"px,"+ +A(a?f:b)+"px,"+A(a?b:f)+"px,"+A(a?d:e)+"px)"};!a&&mb&&c==="DIV"&&v(d,{width:b+"px",height:f+"px"});return d},updateClipping:function(){o(e.members,function(a){a.element&&a.css(e.getCSS(a))})}})},color:function(a,b,c,d){var e=this,f,g=/^rgba/,h,i,k="none";a&&a.linearGradient?i="gradient":a&&a.radialGradient&&(i="pattern");if(i){var j,m,l=a.linearGradient||a.radialGradient,n,t,r,p,y,x="",a=a.stops,w,q=[],ca=function(){h=[''];$(e.prepVML(h),null,null,b)};n=a[0];w=a[a.length-1];n[0]>0&&a.unshift([0,n[1]]);w[0]<1&&a.push([1,w[1]]);o(a,function(a,b){g.test(a[1])?(f=ia(a[1]),j=f.get("rgb"),m=f.get("a")):(j=a[1],m=1);q.push(a[0]*100+"% "+j);b?(r=m,p=j):(t=m,y=j)});if(c==="fill")if(i==="gradient")c=l.x1||l[0]||0,a=l.y1||l[1]||0,n=l.x2||l[2]||0,l=l.y2||l[3]||0,x='angle="'+(90-V.atan((l-a)/(n-c))*180/pa)+'"',ca();else{var k=l.r,s=k*2,v=k*2,B=l.cx,A=l.cy,u=b.radialReference,z,k=function(){u&&(z= +d.getBBox(),B+=(u[0]-z.x)/z.width-0.5,A+=(u[1]-z.y)/z.height-0.5,s*=u[2]/z.width,v*=u[2]/z.height);x='src="'+O.global.VMLRadialGradientURL+'" size="'+s+","+v+'" origin="0.5,0.5" position="'+B+","+A+'" color2="'+y+'" ';ca()};d.added?k():d.onAdd=k;k=p}else k=j}else if(g.test(a)&&b.tagName!=="IMG")f=ia(a),d[c+"-opacitySetter"](f.get("a"),c,b),k=f.get("rgb");else{k=b.getElementsByTagName(c);if(k.length)k[0].opacity=1,k[0].type="solid";k=a}return k},prepVML:function(a){var b=this.isIE8,a=a.join("");b? +(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","1&&f.attr({x:b,y:c,width:d,height:e});return f},createElement:function(a){return a==="rect"?this.symbol(a):Ba.prototype.createElement.call(this,a)},invertChild:function(a,b){var c=this,d=b.style,e=a.tagName==="IMG"&&a.style;M(a,{flip:"x",left:F(d.width)-(e?F(e.top): +1),top:F(d.height)-(e?F(e.left):1),rotation:-90});o(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d,c=e.innerR,d=T(f),i=aa(f),k=T(g),j=aa(g);if(g-f===0)return["x"];f=["wa",a-h,b-h,a+h,b+h,a+h*d,b+h*i,a+h*k,b+h*j];e.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*k,b+c*j,a+c*d,b+c*i,"x","e");f.isArc=!0;return f},circle:function(a,b,c,d,e){e&&(c=d=2*e.r);e&&e.isCircle&&(a-=c/2,b-=d/2);return["wa",a,b,a+c,b+d,a+c,b+d/2,a+ +c,b+d/2,"e"]},rect:function(a,b,c,d,e){return Ba.prototype.symbols[!q(e)||!e.r?"square":"callout"].call(0,a,b,c,d,e)}}};u.VMLRenderer=K=function(){this.init.apply(this,arguments)};K.prototype=D(Ba.prototype,Cb);cb=K}Ba.prototype.measureSpanWidth=function(a,b){var c=z.createElement("span"),d;d=z.createTextNode(a);c.appendChild(d);M(c,b);this.box.appendChild(c);d=c.offsetWidth;Ua(c);return d};var Ob;if(ha)u.CanVGRenderer=K=function(){Ea="http://www.w3.org/1999/xhtml"},K.prototype.symbols={},Ob=function(){function a(){var a= +b.length,d;for(d=0;d0&&c+i*k>e&&(l=A((d-c)/T(h*ga)));else if(d=c+(1-i)*k,c-i*ke&&(j=e-a.x+j*i,m=-1),j=E(b.slotWidth,j),jj||b.autoRotation&&g.styles.width)l=j;if(l){n.width= +l;if(!b.options.labels.style.textOverflow)n.textOverflow="ellipsis";g.css(n)}},getPosition:function(a,b,c,d){var e=this.axis,f=e.chart,g=d&&f.oldChartHeight||f.chartHeight;return{x:a?e.translate(b+c,null,null,d)+e.transB:e.left+e.offset+(e.opposite?(d&&f.oldChartWidth||f.chartWidth)-e.right-e.left:0),y:a?g-e.bottom+e.offset-(e.opposite?e.height:0):g-e.translate(b+c,null,null,d)-e.transB}},getLabelPosition:function(a,b,c,d,e,f,g,h){var i=this.axis,k=i.transA,j=i.reversed,m=i.staggerLines,l=i.tickRotCorr|| +{x:0,y:0},n=e.y;q(n)||(n=i.side===2?l.y+8:n=T(c.rotation*ga)*(l.y-c.getBBox(!1,0).height/2));a=a+e.x+l.x-(f&&d?f*k*(j?-1:1):0);b=b+n-(f&&!d?f*k*(j?1:-1):0);m&&(c=g/(h||1)%m,i.opposite&&(c=m-c-1),b+=c*(i.labelOffset/m));return{x:a,y:A(b)}},getMarkPath:function(a,b,c,d,e,f){return f.crispLine(["M",a,b,"L",a+(e?0:-c),b+(e?c:0)],d)},render:function(a,b,c){var d=this.axis,e=d.options,f=d.chart.renderer,g=d.horiz,h=this.type,i=this.label,k=this.pos,j=e.labels,m=this.gridLine,l=h?h+"Grid":"grid",n=h?h+"Tick": +"tick",t=e[l+"LineWidth"],r=e[l+"LineColor"],o=e[l+"LineDashStyle"],y=e[n+"Length"],l=p(e[n+"Width"],!h&&d.isXAxis?1:0),x=e[n+"Color"],w=e[n+"Position"],n=this.mark,q=j.step,ca=!0,s=d.tickmarkOffset,v=this.getPosition(g,k,s,b),u=v.x,v=v.y,A=g&&u===d.pos+d.len||!g&&v===d.pos?-1:1,c=p(c,1);this.isActive=!0;if(t){k=d.getPlotLinePath(k+s,t*A,b,!0);if(m===B){m={stroke:r,"stroke-width":t};if(o)m.dashstyle=o;if(!h)m.zIndex=1;if(b)m.opacity=0;this.gridLine=m=t?f.path(k).attr(m).add(d.gridGroup):null}if(!b&& +m&&k)m[this.isNew?"attr":"animate"]({d:k,opacity:c})}if(l&&y)w==="inside"&&(y=-y),d.opposite&&(y=-y),h=this.getMarkPath(u,v,y,l*A,g,f),n?n.animate({d:h,opacity:c}):this.mark=f.path(h).attr({stroke:x,"stroke-width":l,opacity:c}).add(d.axisGroup);if(i&&!isNaN(u))i.xy=v=this.getLabelPosition(u,v,i,g,j,s,a,q),this.isFirst&&!this.isLast&&!p(e.showFirstLabel,1)||this.isLast&&!this.isFirst&&!p(e.showLastLabel,1)?ca=!1:g&&!d.isRadial&&!j.step&&!j.rotation&&!b&&c!==0&&this.handleOverflow(v),q&&a%q&&(ca=!1), +ca&&!isNaN(v.y)?(v.opacity=c,i[this.isNew?"attr":"animate"](v),this.isNew=!1):i.attr("y",-9999)},destroy:function(){Ta(this,this.axis)}};u.PlotLineOrBand=function(a,b){this.axis=a;if(b)this.options=b,this.id=b.id};u.PlotLineOrBand.prototype={render:function(){var a=this,b=a.axis,c=b.horiz,d=a.options,e=d.label,f=a.label,g=d.width,h=d.to,i=d.from,k=q(i)&&q(h),j=d.value,m=d.dashStyle,l=a.svgElem,n=[],t,r=d.color,p=d.zIndex,o=d.events,x={},w=b.chart.renderer;b.isLog&&(i=Ca(i),h=Ca(h),j=Ca(j));if(g){if(n= +b.getPlotLinePath(j,g),x={stroke:r,"stroke-width":g},m)x.dashstyle=m}else if(k){n=b.getPlotBandPath(i,h,d);if(r)x.fill=r;if(d.borderWidth)x.stroke=d.borderColor,x["stroke-width"]=d.borderWidth}else return;if(q(p))x.zIndex=p;if(l)if(n)l.show(),l.animate({d:n});else{if(l.hide(),f)a.label=f=f.destroy()}else if(n&&n.length&&(a.svgElem=l=w.path(n).attr(x).add(),o))for(t in d=function(b){l.on(b,function(c){o[b].apply(a,[c])})},o)d(t);if(e&&q(e.text)&&n&&n.length&&b.width>0&&b.height>0&&!n.flat){e=D({align:c&& +k&&"center",x:c?!k&&4:10,verticalAlign:!c&&k&&"middle",y:c?k?16:10:k?6:-4,rotation:c&&!k&&90},e);if(!f){x={align:e.textAlign||e.align,rotation:e.rotation};if(q(p))x.zIndex=p;a.label=f=w.text(e.text,0,0,e.useHTML).attr(x).css(e.style).add()}b=[n[1],n[4],k?n[6]:n[1]];k=[n[2],n[5],k?n[7]:n[2]];n=Sa(b);c=Sa(k);f.align(e,!1,{x:n,y:c,width:Da(b)-n,height:Da(k)-c});f.show()}else f&&f.hide();return a},destroy:function(){ma(this.axis.plotLinesAndBands,this);delete this.axis;Ta(this)}};var ja=u.Axis=function(){this.init.apply(this, +arguments)};ja.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#D8D8D8",labels:{enabled:!0,style:{color:"#606060",cursor:"default",fontSize:"11px"},x:0,y:15},lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1, +startOnTick:!1,tickColor:"#C0D0E0",tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#707070"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return u.numberFormat(this.total,-1)},style:D(ba.line.dataLabels.style,{color:"#000000"})}}, +defaultLeftAxisOptions:{labels:{x:-15,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0,y:null},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0,y:-15},title:{rotation:0}},init:function(a,b){var c=b.isX;this.chart=a;this.horiz=a.inverted?!c:c;this.coll=(this.isXAxis=c)?"xAxis":"yAxis";this.opposite=b.opposite;this.side=b.side||(this.horiz?this.opposite?0:2:this.opposite? +1:3);this.setOptions(b);var d=this.options,e=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter;this.userOptions=b;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=d.visible!==!1;this.zoomEnabled=d.zoomEnabled!==!1;this.categories=d.categories||e==="category";this.names=this.names||[];this.isLog=e==="logarithmic";this.isDatetimeAxis=e==="datetime";this.isLinked=q(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands= +{};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=p(d.crosshair,ta(a.options.tooltip.crosshairs)[c?0:1],!1);var f,d=this.options.events;qa(this,a.axes)===-1&&(c&&!this.isColorAxis?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];if(a.inverted&&c&&this.reversed===B)this.reversed=!0;this.removePlotLine= +this.removePlotBand=this.removePlotBandOrLine;for(f in d)N(this,f,d[f]);if(this.isLog)this.val2lin=Ca,this.lin2val=la},setOptions:function(a){this.options=D(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],D(O[this.coll],a))},defaultLabelFormatter:function(){var a=this.axis,b=this.value,c=a.categories,d=this.dateTimeLabelFormat,e=O.lang.numericSymbols,f=e&&e.length, +g,h=a.options.labels.format,a=a.isLog?b:a.tickInterval;if(h)g=La(h,this);else if(c)g=b;else if(d)g=Ra(d,b);else if(f&&a>=1E3)for(;f--&&g===B;)c=Math.pow(1E3,f+1),a>=c&&b*10%c===0&&e[f]!==null&&(g=u.numberFormat(b/c,-1)+e[f]);g===B&&(g=P(b)>=1E4?u.numberFormat(b,-1):u.numberFormat(b,-1,B,""));return g},getSeriesExtremes:function(){var a=this,b=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();o(a.series,function(c){if(c.visible|| +!b.options.chart.ignoreHiddenSeries){var d=c.options,e=d.threshold,f;a.hasVisibleSeries=!0;a.isLog&&e<=0&&(e=null);if(a.isXAxis){if(d=c.xData,d.length)a.dataMin=E(p(a.dataMin,d[0]),Sa(d)),a.dataMax=s(p(a.dataMax,d[0]),Da(d))}else{c.getExtremes();f=c.dataMax;c=c.dataMin;if(q(c)&&q(f))a.dataMin=E(p(a.dataMin,c),c),a.dataMax=s(p(a.dataMax,f),f);if(q(e))a.threshold=e;if(!d.softThreshold||a.isLog)a.softThreshold=!1}}})},translate:function(a,b,c,d,e,f){var g=this.linkedParent||this,h=1,i=0,k=d?g.oldTransA: +g.transA,d=d?g.oldMin:g.min,j=g.minPixelPadding,e=(g.doPostTranslate||g.isLog&&e)&&g.lin2val;if(!k)k=g.transA;if(c)h*=-1,i=g.len;g.reversed&&(h*=-1,i-=h*(g.sector||g.len));b?(a=a*h+i,a-=j,a=a/k+d,e&&(a=g.lin2val(a))):(e&&(a=g.val2lin(a)),f==="between"&&(f=0.5),a=h*(a-d)*k+i+h*j+(ka(f)?k*f*g.pointRange:0));return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a, +b,c,d,e){var f=this.chart,g=this.left,h=this.top,i,k,j=c&&f.oldChartHeight||f.chartHeight,m=c&&f.oldChartWidth||f.chartWidth,l;i=this.transB;var n=function(a,b,c){if(ac)d?a=E(s(b,a),c):l=!0;return a},e=p(e,this.translate(a,null,null,c)),a=c=A(e+i);i=k=A(j-e-i);isNaN(e)?l=!0:this.horiz?(i=h,k=j-this.bottom,a=c=n(a,g,g+this.width)):(a=g,c=m-this.right,i=k=n(i,h,h+this.height));return l&&!d?null:f.renderer.crispLine(["M",a,i,"L",c,k],b||1)},getLinearTickPositions:function(a,b,c){var d,e=fa(S(b/ +a)*a),f=fa(ua(c/a)*a),g=[];if(b===c&&ka(b))return[b];for(b=e;b<=f;){g.push(b);b=fa(b+a);if(b===d)break;d=b}return g},getMinorTickPositions:function(){var a=this.options,b=this.tickPositions,c=this.minorTickInterval,d=[],e,f=this.pointRangePadding||0;e=this.min-f;var f=this.max+f,g=f-e;if(g&&g/c=this.minRange,f,g,h,i,k,j;if(this.isXAxis&&this.minRange===B&&!this.isLog)q(a.min)||q(a.max)?this.minRange=null:(o(this.series,function(a){i=a.xData;for(g=k=a.xIncrement?1:i.length-1;g>0;g--)if(h=i[g]-i[g-1],f===B||h=n?(r=n,k=0):b.dataMax<=n&&(X=n, +i=0)),b.min=p(y,r,b.dataMin),b.max=p(x,X,b.dataMax));if(e)!a&&E(b.min,p(b.dataMin,b.min))<=0&&Y(10,1),b.min=fa(Ca(b.min),15),b.max=fa(Ca(b.max),15);if(b.range&&q(b.max))b.userMin=b.min=y=s(b.min,b.minFromRange()),b.userMax=x=b.max,b.range=null;b.beforePadding&&b.beforePadding();b.adjustForMinRange();if(!l&&!b.axisPointRange&&!b.usePercentage&&!h&&q(b.min)&&q(b.max)&&(c=b.max-b.min))!q(y)&&k&&(b.min-=c*k),!q(x)&&i&&(b.max+=c*i);if(ka(d.floor))b.min=s(b.min,d.floor);if(ka(d.ceiling))b.max=E(b.max,d.ceiling); +if(t&&q(b.dataMin))if(n=n||0,!q(y)&&b.min=n)b.min=n;else if(!q(x)&&b.max>n&&b.dataMax<=n)b.max=n;b.tickInterval=b.min===b.max||b.min===void 0||b.max===void 0?1:h&&!j&&m===b.linkedParent.options.tickPixelInterval?j=b.linkedParent.tickInterval:p(j,this.tickAmount?(b.max-b.min)/s(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*m/s(b.len,m));g&&!a&&o(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions(); +if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval);if(b.pointRange&&!j)b.tickInterval=s(b.pointRange,b.tickInterval);a=p(d.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);if(!j&&b.tickInterval0.5&&b.tickInterval<5&&b.max>1E3&&b.max<9999)),!!this.tickAmount);if(!this.tickAmount&&this.len)b.tickInterval=b.unsquish();this.setTickPositions()}, +setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,e=a.startOnTick,f=a.endOnTick,g;this.tickmarkOffset=this.categories&&a.tickmarkPlacement==="between"&&this.tickInterval===1?0.5:0;this.minorTickInterval=a.minorTickInterval==="auto"&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();if(!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions, +this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max]))))this.tickPositions=b=d;if(!this.isLinked)this.trimTicks(b,e,f),this.min===this.max&&q(this.min)&&!this.tickAmount&&(g=!0,this.min-=0.5,this.max+=0.5),this.single=g,!c&&!d&&this.adjustTickAmount()},trimTicks:function(a,b,c){var d=a[0],e= +a[a.length-1],f=this.minPointOffset||0;b?this.min=d:this.min-f>d&&a.shift();c?this.max=e:this.max+fc&&(this.tickInterval*=2,this.setTickPositions());if(q(d)){for(a=c=b.length;a--;)(d===3&&a%2===1|| +d<=2&&a>0&&a=e&&(b=e));this.displayBtn=a!==B||b!==B;this.setExtremes(a,b,!1,B,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,e=p(b.width,a.plotWidth-c+(b.offsetRight||0)),f=p(b.height,a.plotHeight),g=p(b.top,a.plotTop),b=p(b.left,a.plotLeft+c),c=/%$/;c.test(f)&&(f=parseFloat(f)/100*a.plotHeight);c.test(g)&&(g=parseFloat(g)/100*a.plotHeight+a.plotTop);this.left=b;this.top=g;this.width=e;this.height=f;this.bottom=a.chartHeight- +f-g;this.right=a.chartWidth-e-b;this.len=s(d?e:f,0);this.pos=d?b:g},getExtremes:function(){var a=this.isLog;return{min:a?fa(la(this.min)):this.min,max:a?fa(la(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?la(this.min):this.min,b=b?la(this.max):this.max;a===null?a=b<0?b:c:c>a?a=c:b15&& +a<165?"right":a>195&&a<345?"left":"center"},unsquish:function(){var a=this.ticks,b=this.options.labels,c=this.horiz,d=this.tickInterval,e=d,f=this.len/(((this.categories?1:0)+this.max-this.min)/d),g,h=b.rotation,i=this.chart.renderer.fontMetrics(b.style.fontSize,a[0]&&a[0].label),k,j=Number.MAX_VALUE,m,l=function(a){a/=f||1;a=a>1?ua(a):1;return a*d};c?(m=!b.staggerLines&&!b.step&&(q(h)?[h]:f=-90&&a<=90)k=l(P(i.h/aa(ga* +a))),b=k+P(a/360),bl)l=a.labelLength}),l>i&&l>h.h?k.rotation=this.labelRotation:this.labelRotation=0;else if(g&&(m={width:i+"px"},!j)){m.textOverflow="clip";for(n=c.length;!f&&n--;)if(t=c[n],i=d[t].label)if(i.styles.textOverflow==="ellipsis"&&i.css({textOverflow:"clip"}),i.getBBox().height>this.len/c.length-(h.h-h.f)||d[t].labelLength>g)i.specCss={textOverflow:"ellipsis"}}if(k.rotation&& +(m={width:(l>a.chartHeight*0.5?a.chartHeight*0.33:a.chartHeight)+"px"},!j))m.textOverflow="ellipsis";this.labelAlign=k.align=e.align||this.autoLabelAlign(this.labelRotation);o(c,function(a){var b=(a=d[a])&&a.label;if(b)b.attr(k),m&&b.css(D(m,b.specCss)),delete b.specCss,a.rotation=k.rotation});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,this.side!==0)},hasData:function(){return this.hasVisibleSeries||q(this.min)&&q(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart, +c=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,g=a.horiz,h=a.side,i=b.inverted?[1,0,3,2][h]:h,k,j,m=0,l,n=0,t=d.title,r=d.labels,X=0,y=a.opposite,x=b.axisOffset,b=b.clipOffset,w=[-1,1,1,-1][h],v,ca=a.axisParent;k=a.hasData();a.showAxis=j=k||p(d.showEmpty,!0);a.staggerLines=a.horiz&&r.staggerLines;if(!a.axisGroup)a.gridGroup=c.g("grid").attr({zIndex:d.gridZIndex||1}).add(ca),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).add(ca),a.labelGroup=c.g("axis-labels").attr({zIndex:r.zIndex||7}).addClass("highcharts-"+ +a.coll.toLowerCase()+"-labels").add(ca);if(k||a.isLinked){if(o(e,function(b){f[b]?f[b].addLabel():f[b]=new Wa(a,b)}),a.renderUnsquish(),r.reserveSpace!==!1&&(h===0||h===2||{1:"left",3:"right"}[h]===a.labelAlign||a.labelAlign==="center")&&o(e,function(a){X=s(f[a].getLabelSize(),X)}),a.staggerLines)X*=a.staggerLines,a.labelOffset=X*(a.opposite?-1:1)}else for(v in f)f[v].destroy(),delete f[v];if(t&&t.text&&t.enabled!==!1){if(!a.axisTitle)a.axisTitle=c.text(t.text,0,0,t.useHTML).attr({zIndex:7,rotation:t.rotation|| +0,align:t.textAlign||{low:y?"right":"left",middle:"center",high:y?"left":"right"}[t.align]}).addClass("highcharts-"+this.coll.toLowerCase()+"-title").css(t.style).add(a.axisGroup),a.axisTitle.isNew=!0;if(j)m=a.axisTitle.getBBox()[g?"height":"width"],l=t.offset,n=q(l)?0:p(t.margin,g?5:10);a.axisTitle[j?"show":"hide"](!0)}a.offset=w*p(d.offset,x[h]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=h===2?a.tickRotCorr.y:0;g=Math.abs(X)+n+(X&&w*(g?p(r.y,a.tickRotCorr.y+8):r.x)-c);a.axisTitleMargin=p(l,g);x[h]= +s(x[h],a.axisTitleMargin+m+w*a.offset,g);d=d.offset?0:S(d.lineWidth/2)*2;b[i]=s(b[i],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,e=this.horiz,f=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",e?this.left:f,e?d:this.top,"L",e?b.chartWidth-this.right:f,e?d:b.chartHeight-this.bottom],a)},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,e=this.options.title,f=a?b:c,g=this.opposite, +h=this.offset,i=e.x||0,k=e.y||0,j=F(e.style.fontSize||12),d={low:f+(a?0:d),middle:f+d/2,high:f+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(g?-1:1)*this.axisTitleMargin+(this.side===2?j:0);return{x:a?d+i:b+(g?this.width:0)+h+i,y:a?b+k-(g?this.height:0)+h:d+k}},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,e=a.isLog,f=a.isLinked,g=a.tickPositions,h=a.axisTitle,i=a.ticks,k=a.minorTicks,j=a.alternateBands,m=d.stackLabels,l=d.alternateGridColor,n=a.tickmarkOffset,t=d.lineWidth, +r,p=b.hasRendered&&q(a.oldMin)&&!isNaN(a.oldMin),y=a.showAxis,x=c.globalAnimation,w,s;a.labelEdge.length=0;a.overlap=!1;o([i,k,j],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||f){a.minorTickInterval&&!a.categories&&o(a.getMinorTickPositions(),function(b){k[b]||(k[b]=new Wa(a,b,"minor"));p&&k[b].isNew&&k[b].render(null,!0);k[b].render(null,!1,1)});if(g.length&&(o(g,function(b,c){if(!f||b>=a.min&&b<=a.max)i[b]||(i[b]=new Wa(a,b)),p&&i[b].isNew&&i[b].render(c,!0,0.1),i[b].render(c)}), +n&&(a.min===0||a.single)))i[-1]||(i[-1]=new Wa(a,-1,null,!0)),i[-1].render(-1);l&&o(g,function(c,d){s=g[d+1]!==B?g[d+1]+n:a.max-n;if(d%2===0&&c=G.second?0:j*S(i.getMilliseconds()/j));if(k>=G.second)i[Hb](k>=G.minute?0:j*S(i.getSeconds()/j));if(k>=G.minute)i[Ib](k>=G.hour?0:j*S(i[ub]()/j));if(k>=G.hour)i[Jb](k>=G.day?0:j*S(i[vb]()/j));if(k>=G.day)i[xb](k>=G.month?1:j*S(i[$a]()/j));k>=G.month&&(i[yb](k>=G.year?0:j*S(i[ab]()/j)),h=i[bb]());k>=G.year&&(h-=h%j,i[zb](h));if(k===G.week)i[xb](i[$a]()- +i[wb]()+p(d,1));b=1;if(rb||ib)i=i.getTime(),i=new oa(i+Za(i));h=i[bb]();for(var d=i.getTime(),m=i[ab](),l=i[$a](),n=(G.day+(g?Za(i):i.getTimezoneOffset()*6E4))%G.day;d=0.5)a=A(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=S(b),h,i,k,j,m,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];fb&&(!d||j<=c)&&j!==B&&g.push(j),j>c&&(m=!0),j=k}else if(b=la(b),c=la(c),a=e[d?"minorTickInterval":"tickInterval"],a=p(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length: +f)||1)),a=tb(a,null,sb(a)),g=Ha(this.getLinearTickPositions(a,b,c),Ca),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g};var Pb=u.Tooltip=function(){this.init.apply(this,arguments)};Pb.prototype={init:function(a,b){var c=b.borderWidth,d=b.style,e=F(d.padding);this.chart=a;this.options=b;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.label=a.renderer.label("",0,0,b.shape||"callout",null,null,b.useHTML,null,"tooltip").attr({padding:e,fill:b.backgroundColor,"stroke-width":c, +r:b.borderRadius,zIndex:8}).css(d).css({padding:0}).add().attr({y:-9999});ha||this.label.shadow(b.shadow);this.shared=b.shared},destroy:function(){if(this.label)this.label=this.label.destroy();clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,b,c,d){var e=this,f=e.now,g=e.options.animation!==!1&&!e.isHidden&&(P(a-f.x)>1||P(b-f.y)>1),h=e.followPointer||e.len>1;v(f,{x:g?(2*f.x+a)/3:a,y:g?(f.y+b)/2:b,anchorX:h?B:g?(2*f.anchorX+c)/3:c,anchorY:h?B:g?(f.anchorY+d)/2:d});e.label.attr(f); +if(g)clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(a,b,c,d)},32)},hide:function(a){var b=this;clearTimeout(this.hideTimer);a=p(a,this.options.hideDelay,500);if(!this.isHidden)this.hideTimer=Qa(function(){b.label[a?"fadeOut":"hide"]();b.isHidden=!0},a)},getAnchor:function(a,b){var c,d=this.chart,e=d.inverted,f=d.plotTop,g=d.plotLeft,h=0,i=0,k,j,a=ta(a);c=a[0].tooltipPos;this.followPointer&&b&&(b.chartX===B&&(b=d.pointer.normalize(b)),c=[b.chartX-d.plotLeft,b.chartY- +f]);c||(o(a,function(a){k=a.series.yAxis;j=a.series.xAxis;h+=a.plotX+(!e&&j?j.left-g:0);i+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!e&&k?k.top-f:0)}),h/=a.length,i/=a.length,c=[e?d.plotWidth-i:h,this.shared&&!e&&a.length>1&&b?b.chartY-f:e?d.plotHeight-h:i]);return Ha(c,A)},getPosition:function(a,b,c){var d=this.chart,e=this.distance,f={},g=c.h||0,h,i=["y",d.chartHeight,b,c.plotY+d.plotTop,d.plotTop,d.plotTop+d.plotHeight],k=["x",d.chartWidth,a,c.plotX+d.plotLeft,d.plotLeft,d.plotLeft+d.plotWidth], +j=p(c.ttBelow,d.inverted&&!c.negative||!d.inverted&&c.negative),m=function(a,b,c,d,h,i){var k=cb?d:d+g);else return!1},l=function(a,b,c,d){var g;db-e?g=!1:f[a]=db-c/2?b-c-2:d-c/2;return g},n=function(a){var b=i;i=k;k=b;h=a},t=function(){m.apply(0,i)!==!1?l.apply(0,k)===!1&&!h&&(n(!0),t()):h?f.x=f.y=0:(n(!0),t())};(d.inverted||this.len>1)&&n();t();return f},defaultFormatter:function(a){var b= +this.points||ta(this),c;c=[a.tooltipFooterHeaderFormatter(b[0])];c=c.concat(a.bodyFormatter(b));c.push(a.tooltipFooterHeaderFormatter(b[0],!0));return c.join("")},refresh:function(a,b){var c=this.chart,d=this.label,e=this.options,f,g,h,i={},k,j=[];k=e.formatter||this.defaultFormatter;var i=c.hoverPoints,m,l=this.shared;clearTimeout(this.hideTimer);this.followPointer=ta(a)[0].series.tooltipOptions.followPointer;h=this.getAnchor(a,b);f=h[0];g=h[1];l&&(!a.series||!a.series.noSharedTooltip)?(c.hoverPoints= +a,i&&o(i,function(a){a.setState()}),o(a,function(a){a.setState("hover");j.push(a.getLabelConfig())}),i={x:a[0].category,y:a[0].y},i.points=j,this.len=j.length,a=a[0]):i=a.getLabelConfig();k=k.call(i,this);i=a.series;this.distance=p(i.tooltipOptions.distance,16);k===!1?this.hide():(this.isHidden&&(Pa(d),d.attr("opacity",1).show()),d.attr({text:k}),m=e.borderColor||a.color||i.color||"#606060",d.attr({stroke:m}),this.updatePosition({plotX:f,plotY:g,negative:a.negative,ttBelow:a.ttBelow,h:h[2]||0}),this.isHidden= +!1);H(c,"tooltipRefresh",{text:k,x:f+c.plotLeft,y:g+c.plotTop,borderColor:m})},updatePosition:function(a){var b=this.chart,c=this.label,c=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);this.move(A(c.x),A(c.y||0),a.plotX+b.plotLeft,a.plotY+b.plotTop)},getXDateFormat:function(a,b,c){var d,b=b.dateTimeLabelFormats,e=c&&c.closestPointRange,f,g={millisecond:15,second:12,minute:9,hour:6,day:3},h,i="millisecond";if(e){h=Ra("%m-%d %H:%M:%S.%L",a.x);for(f in G){if(e===G.week&&+Ra("%w", +a.x)===c.options.startOfWeek&&h.substr(6)==="00:00:00.000"){f="week";break}if(G[f]>e){f=i;break}if(g[f]&&h.substr(g[f])!=="01-01 00:00:00.000".substr(g[f]))break;f!=="week"&&(i=f)}f&&(d=b[f])}else d=b.day;return d||b.year},tooltipFooterHeaderFormatter:function(a,b){var c=b?"footer":"header",d=a.series,e=d.tooltipOptions,f=e.xDateFormat,g=d.xAxis,h=g&&g.options.type==="datetime"&&ka(a.key),c=e[c+"Format"];h&&!f&&(f=this.getXDateFormat(a,e,g));h&&f&&(c=c.replace("{point.key}","{point.key:"+f+"}")); +return La(c,{point:a,series:d})},bodyFormatter:function(a){return Ha(a,function(a){var c=a.series.tooltipOptions;return(c.pointFormatter||a.point.tooltipFormatter).call(a.point,c.pointFormat)})}};var ra;db=z&&z.documentElement.ontouchstart!==B;var Ya=u.Pointer=function(a,b){this.init(a,b)};Ya.prototype={init:function(a,b){var c=b.chart,d=c.events,e=ha?"":c.zoomType,c=a.inverted,f;this.options=b;this.chart=a;this.zoomX=f=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=f&&!c||e&&c;this.zoomVert=e&& +!c||f&&c;this.hasZoom=f||e;this.runChartClick=d&&!!d.click;this.pinchDown=[];this.lastValidTouch={};if(u.Tooltip&&b.tooltip.enabled)a.tooltip=new Pb(a,b.tooltip),this.followTouchMove=p(b.tooltip.followTouchMove,!0);this.setDOMEvents()},normalize:function(a,b){var c,d,a=a||C.event;if(!a.target)a.target=a.srcElement;d=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;if(!b)this.chartPosition=b=Bb(this.chart.container);d.pageX===B?(c=s(a.x,a.clientX-b.left),d=a.y):(c=d.pageX-b.left, +d=d.pageY-b.top);return v(a,{chartX:A(c),chartY:A(d)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};o(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},runPointActions:function(a){var b=this.chart,c=b.series,d=b.tooltip,e=d?d.shared:!1,f=b.hoverPoint,g=b.hoverSeries,h,i=Number.MAX_VALUE,k,j,m,l=[],n,t;if(!e&&!g)for(h=0;hh+k&&(d=h+k),ei+j&&(e=i+j),this.hasDragged=Math.sqrt(Math.pow(n-d,2)+Math.pow(t-e,2)),this.hasDragged>10){m=b.isInsidePlot(n-h,t-i);if(b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&m&&!r&& +!l)this.selectionMarker=l=b.renderer.rect(h,i,f?1:k,g?1:j,0).attr({fill:c.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();l&&f&&(d-=n,l.attr({width:P(d),x:(d>0?0:d)+n}));l&&g&&(d=e-t,l.attr({height:P(d),y:(d>0?0:d)+t}));m&&!l&&c.panning&&b.pan(a,c.panning)}},drop:function(a){var b=this,c=this.chart,d=this.hasPinched;if(this.selectionMarker){var e={xAxis:[],yAxis:[]},f=this.selectionMarker,g=f.attr?f.attr("x"):f.x,h=f.attr?f.attr("y"):f.y,i=f.attr?f.attr("width"):f.width,k=f.attr?f.attr("height"): +f.height,j;if(this.hasDragged||d)o(c.axes,function(c){if(c.zoomEnabled&&q(c.min)&&(d||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var f=c.horiz,n=a.type==="touchend"?c.minPixelPadding:0,t=c.toValue((f?g:h)+n),f=c.toValue((f?g+i:h+k)-n);e[c.coll].push({axis:c,min:E(t,f),max:s(t,f)});j=!0}}),j&&H(c,"selection",e,function(a){c.zoom(v(a,d?{animation:!1}:null))});this.selectionMarker=this.selectionMarker.destroy();d&&this.scaleGroups()}if(c)M(c.container,{cursor:c._cursor}),c.cancelClick=this.hasDragged> +10,c.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[]},onContainerMouseDown:function(a){a=this.normalize(a);a.preventDefault&&a.preventDefault();this.dragStart(a)},onDocumentMouseUp:function(a){W[ra]&&W[ra].pointer.drop(a)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition,a=this.normalize(a,c);c&&!this.inClass(a.target,"highcharts-tracker")&&!b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&this.reset()},onContainerMouseLeave:function(){var a=W[ra];if(a)a.pointer.reset(), +a.pointer.chartPosition=null},onContainerMouseMove:function(a){var b=this.chart;ra=b.index;a=this.normalize(a);a.returnValue=!1;b.mouseIsDown==="mousedown"&&this.drag(a);(this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop))&&!b.openMenu&&this.runPointActions(a)},inClass:function(a,b){for(var c;a;){if(c=L(a,"class")){if(c.indexOf(b)!==-1)return!0;if(c.indexOf("highcharts-container")!==-1)return!1}a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries, +a=a.relatedTarget||a.toElement;if(b&&!b.options.stickyTracking&&!this.inClass(a,"highcharts-tooltip")&&!this.inClass(a,"highcharts-series-"+b.index))b.onMouseOut()},onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop,a=this.normalize(a);b.cancelClick||(c&&this.inClass(a.target,"highcharts-tracker")?(H(c.series,"click",v(a,{point:c})),b.hoverPoint&&c.firePointEvent("click",a)):(v(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&H(b,"click",a)))},setDOMEvents:function(){var a= +this,b=a.chart.container;b.onmousedown=function(b){a.onContainerMouseDown(b)};b.onmousemove=function(b){a.onContainerMouseMove(b)};b.onclick=function(b){a.onContainerClick(b)};N(b,"mouseleave",a.onContainerMouseLeave);eb===1&&N(z,"mouseup",a.onDocumentMouseUp);if(db)b.ontouchstart=function(b){a.onContainerTouchStart(b)},b.ontouchmove=function(b){a.onContainerTouchMove(b)},eb===1&&N(z,"touchend",a.onDocumentTouchEnd)},destroy:function(){var a;U(this.chart.container,"mouseleave",this.onContainerMouseLeave); +eb||(U(z,"mouseup",this.onDocumentMouseUp),U(z,"touchend",this.onDocumentTouchEnd));clearInterval(this.tooltipTimeout);for(a in this)this[a]=null}};v(u.Pointer.prototype,{pinchTranslate:function(a,b,c,d,e,f){(this.zoomHor||this.pinchHor)&&this.pinchTranslateDirection(!0,a,b,c,d,e,f);(this.zoomVert||this.pinchVert)&&this.pinchTranslateDirection(!1,a,b,c,d,e,f)},pinchTranslateDirection:function(a,b,c,d,e,f,g,h){var i=this.chart,k=a?"x":"y",j=a?"X":"Y",m="chart"+j,l=a?"width":"height",n=i["plot"+(a? +"Left":"Top")],t,r,p=h||1,o=i.inverted,x=i.bounds[a?"h":"v"],w=b.length===1,q=b[0][m],s=c[0][m],v=!w&&b[1][m],u=!w&&c[1][m],A,c=function(){!w&&P(q-v)>20&&(p=h||P(s-u)/P(q-v));r=(n-s)/p+q;t=i["plot"+(a?"Width":"Height")]/p};c();b=r;bx.max&&(b=x.max-t,A=!0);A?(s-=0.8*(s-g[k][0]),w||(u-=0.8*(u-g[k][1])),c()):g[k]=[s,u];o||(f[k]=r-n,f[l]=t);f=o?1/p:p;e[l]=t;e[k]=b;d[o?a?"scaleY":"scaleX":"scale"+j]=p;d["translate"+j]=f*n+(s-f*q)},pinch:function(a){var b=this,c=b.chart,d=b.pinchDown, +e=a.touches,f=e.length,g=b.lastValidTouch,h=b.hasZoom,i=b.selectionMarker,k={},j=f===1&&(b.inClass(a.target,"highcharts-tracker")&&c.runTrackerClick||b.runChartClick),m={};if(f>1)b.initiated=!0;h&&b.initiated&&!j&&a.preventDefault();Ha(e,function(a){return b.normalize(a)});if(a.type==="touchstart")o(e,function(a,b){d[b]={chartX:a.chartX,chartY:a.chartY}}),g.x=[d[0].chartX,d[1]&&d[1].chartX],g.y=[d[0].chartY,d[1]&&d[1].chartY],o(c.axes,function(a){if(a.zoomEnabled){var b=c.bounds[a.horiz?"h":"v"], +d=a.minPixelPadding,e=a.toPixels(p(a.options.min,a.dataMin)),f=a.toPixels(p(a.options.max,a.dataMax)),g=E(e,f),e=s(e,f);b.min=E(a.pos,g-d);b.max=s(a.pos+a.len,e+d)}}),b.res=!0;else if(d.length){if(!i)b.selectionMarker=i=v({destroy:va,touch:!0},c.plotBox);b.pinchTranslate(d,e,k,i,m,g);b.hasPinched=h;b.scaleGroups(k,m);if(!h&&b.followTouchMove&&f===1)this.runPointActions(b.normalize(a));else if(b.res)b.res=!1,this.reset(!1,0)}},touch:function(a,b){var c=this.chart;ra=c.index;a.touches.length===1?(a= +this.normalize(a),c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)&&!c.openMenu?(b&&this.runPointActions(a),this.pinch(a)):b&&this.reset()):a.touches.length===2&&this.pinch(a)},onContainerTouchStart:function(a){this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(a){W[ra]&&W[ra].pointer.drop(a)}});if(C.PointerEvent||C.MSPointerEvent){var wa={},Db=!!C.PointerEvent,Sb=function(){var a,b=[];b.item=function(a){return this[a]};for(a in wa)wa.hasOwnProperty(a)&& +b.push({pageX:wa[a].pageX,pageY:wa[a].pageY,target:wa[a].target});return b},Eb=function(a,b,c,d){if((a.pointerType==="touch"||a.pointerType===a.MSPOINTER_TYPE_TOUCH)&&W[ra])d(a),d=W[ra].pointer,d[b]({type:c,target:a.currentTarget,preventDefault:va,touches:Sb()})};v(Ya.prototype,{onContainerPointerDown:function(a){Eb(a,"onContainerTouchStart","touchstart",function(a){wa[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},onContainerPointerMove:function(a){Eb(a,"onContainerTouchMove", +"touchmove",function(a){wa[a.pointerId]={pageX:a.pageX,pageY:a.pageY};if(!wa[a.pointerId].target)wa[a.pointerId].target=a.currentTarget})},onDocumentPointerUp:function(a){Eb(a,"onDocumentTouchEnd","touchend",function(a){delete wa[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,Db?"pointerdown":"MSPointerDown",this.onContainerPointerDown);a(this.chart.container,Db?"pointermove":"MSPointerMove",this.onContainerPointerMove);a(z,Db?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}); +fb(Ya.prototype,"init",function(a,b,c){a.call(this,b,c);this.hasZoom&&M(b.container,{"-ms-touch-action":"none","touch-action":"none"})});fb(Ya.prototype,"setDOMEvents",function(a){a.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(N)});fb(Ya.prototype,"destroy",function(a){this.batchMSEvents(U);a.call(this)})}var pb=u.Legend=function(a,b){this.init(a,b)};pb.prototype={init:function(a,b){var c=this,d=b.itemStyle,e=b.itemMarginTop||0;this.options=b;if(b.enabled)c.itemStyle=d,c.itemHiddenStyle= +D(d,b.itemHiddenStyle),c.itemMarginTop=e,c.padding=d=p(b.padding,8),c.initialItemX=d,c.initialItemY=d-5,c.maxItemWidth=0,c.chart=a,c.itemHeight=0,c.symbolWidth=p(b.symbolWidth,16),c.pages=[],c.render(),N(c.chart,"endResize",function(){c.positionCheckboxes()})},colorizeItem:function(a,b){var c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,h=b?a.legendColor||a.color||"#CCC":g,g=a.options&&a.options.marker,i={fill:h},k;d&&d.css({fill:c, +color:c});e&&e.attr({stroke:h});if(f){if(g&&f.isMarker)for(k in i.stroke=h,g=a.convertAttribs(g),g)d=g[k],d!==B&&(i[k]=d);f.attr(i)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=e,f.y=d},destroyItem:function(a){var b=a.checkbox;o(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())});b&&Ua(a.checkbox)}, +destroy:function(){var a=this.group,b=this.box;if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(a){var b=this.group.alignAttr,c,d=this.clipHeight||this.legendHeight,e=this.titleHeight;if(b)c=b.translateY,o(this.allItems,function(f){var g=f.checkbox,h;g&&(h=c+e+g.y+(a||0)+3,M(g,{left:b.translateX+f.checkboxOffset+g.x-20+"px",top:h+"px",display:h>c-6&&h(l||b.chartWidth-2*k-r-d.x))this.itemX=r,this.itemY+=t+this.lastLineHeight+ +n,this.lastLineHeight=0;this.maxItemWidth=s(this.maxItemWidth,f);this.lastItemY=t+this.itemY+n;this.lastLineHeight=s(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];e?this.itemX+=f:(this.itemY+=t+g+n,this.lastLineHeight=g);this.offsetWidth=l||s((e?this.itemX-r-j:f)+k,this.offsetWidth)},getAllItems:function(){var a=[];o(this.chart.series,function(b){var c=b.options;if(p(c.showInLegend,!q(c.linkedTo)?B:!1,!0))a=a.concat(b.legendItems||(c.legendType==="point"?b.data:b))});return a},adjustMargins:function(a, +b){var c=this.chart,d=this.options,e=d.align.charAt(0)+d.verticalAlign.charAt(0)+d.layout.charAt(0);this.display&&!d.floating&&o([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(f,g){f.test(e)&&!q(a[g])&&(c[ob[g]]=s(c[ob[g]],c.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*d[g%2?"x":"y"]+p(d.margin,12)+b[g]))})},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f,g,h,i=a.box,k=a.options,j=a.padding,m=k.borderWidth,l=k.backgroundColor;a.itemX=a.initialItemX; +a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup);a.renderTitle();e=a.getAllItems();jb(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});k.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;a.lastLineHeight=0;o(e,function(b){a.renderItem(b)});g=(k.width||a.offsetWidth)+j;h=a.lastItemY+a.lastLineHeight+ +a.titleHeight;h=a.handleOverflow(h);h+=j;if(m||l){if(i){if(g>0&&h>0)i[i.isNew?"attr":"animate"](i.crisp({width:g,height:h})),i.isNew=!1}else a.box=i=c.rect(0,0,g,h,k.borderRadius,m||0).attr({stroke:k.borderColor,"stroke-width":m||0,fill:l||"none"}).add(d).shadow(k.shadow),i.isNew=!0;i[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;o(e,function(b){a.positionItem(b)});f&&d.align(v({width:g,height:h},k),!0,"spacingBox");b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this, +c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+(e.verticalAlign==="top"?-f:f)-this.padding,g=e.maxHeight,h,i=this.clipRect,k=e.navigation,j=p(k.animation,!0),m=k.arrowSize||12,l=this.nav,n=this.pages,t=this.padding,r,q=this.allItems,y=function(a){i.attr({height:a});if(b.contentGroup.div)b.contentGroup.div.style.clip="rect("+t+"px,9999px,"+(t+a)+"px,0)"};e.layout==="horizontal"&&(f/=2);g&&(f=E(f,g));n.length=0;if(a>f){this.clipHeight=h=s(f-20-this.titleHeight-t,0);this.currentPage= +p(this.currentPage,1);this.fullHeight=a;o(q,function(a,b){var c=a._legendItemPos[1],d=A(a.legendItem.getBBox().height),e=n.length;if(!e||c-n[e-1]>h&&(r||c)!==n[e-1])n.push(r||c),e++;b===q.length-1&&c+d-n[e-1]>h&&n.push(c);c!==r&&(r=c)});if(!i)i=b.clipRect=d.clipRect(0,t,9999,0),b.contentGroup.clip(i);y(h);if(!l)this.nav=l=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,m,m).on("click",function(){b.scroll(-1,j)}).add(l),this.pager=d.text("",15,10).css(k.style).add(l),this.down= +d.symbol("triangle-down",0,0,m,m).on("click",function(){b.scroll(1,j)}).add(l);b.scroll(0);a=f}else if(l)y(c.chartHeight),l.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0;return a},scroll:function(a,b){var c=this.pages,d=c.length,e=this.currentPage+a,f=this.clipHeight,g=this.options.navigation,h=g.activeColor,g=g.inactiveColor,i=this.pager,k=this.padding;e>d&&(e=d);if(e>0)b!==B&&Va(b,this.chart),this.nav.attr({translateX:k,translateY:f+this.padding+7+this.titleHeight,visibility:"visible"}), +this.up.attr({fill:e===1?g:h}).css({cursor:e===1?"default":"pointer"}),i.attr({text:e+"/"+d}),this.down.attr({x:18+this.pager.getBBox().width,fill:e===d?g:h}).css({cursor:e===d?"default":"pointer"}),c=-c[e-1]+this.initialItemY,this.scrollGroup.animate({translateY:c}),this.currentPage=e,this.positionCheckboxes(c)}};K=u.LegendSymbolMixin={drawRectangle:function(a,b){var c=a.options.symbolHeight||a.fontMetrics.f;b.legendSymbol=this.chart.renderer.rect(0,a.baseline-c+1,a.symbolWidth,c,a.options.symbolRadius|| +0).attr({zIndex:3}).add(b.legendGroup)},drawLineMarker:function(a){var b=this.options,c=b.marker,d=a.symbolWidth,e=this.chart.renderer,f=this.legendGroup,a=a.baseline-A(a.fontMetrics.b*0.3),g;if(b.lineWidth){g={"stroke-width":b.lineWidth};if(b.dashStyle)g.dashstyle=b.dashStyle;this.legendLine=e.path(["M",0,a,"L",d,a]).attr(g).add(f)}if(c&&c.enabled!==!1)b=c.radius,this.legendSymbol=c=e.symbol(this.symbol,d/2-b,a-b,2*b,2*b,c).add(f),c.isMarker=!0}};(/Trident\/7\.0/.test(Aa)||Na)&&fb(pb.prototype,"positionItem", +function(a,b){var c=this,d=function(){b._legendItemPos&&a.call(c,b)};d();setTimeout(d)});var hb=u.Chart=function(){this.getArgs.apply(this,arguments)};u.chart=function(a,b,c){return new hb(a,b,c)};hb.prototype={callbacks:[],getArgs:function(){var a=[].slice.call(arguments);if(ya(a[0])||a[0].nodeName)this.renderTo=a.shift();this.init(a[0],a[1])},init:function(a,b){var c,d=a.series;a.series=null;c=D(O,a);c.series=a.series=d;this.userOptions=a;d=c.chart;this.margin=this.splashArray("margin",d);this.spacing= +this.splashArray("spacing",d);var e=d.events;this.bounds={h:{},v:{}};this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;var f=this,g;f.index=W.length;W.push(f);eb++;d.reflow!==!1&&N(f,"load",function(){f.initReflow()});if(e)for(g in e)N(f,g,e[g]);f.xAxis=[];f.yAxis=[];f.animation=ha?!1:p(d.animation,!0);f.pointCount=f.colorCounter=f.symbolCounter=0;f.firstRender()},initSeries:function(a){var b=this.options.chart;(b=I[a.type||b.type||b.defaultSeriesType])|| +Y(17,!0);b=new b;b.init(this,a);return b},isInsidePlot:function(a,b,c){var d=c?b:a,a=c?a:b;return d>=0&&d<=this.plotWidth&&a>=0&&a<=this.plotHeight},redraw:function(a){var b=this.axes,c=this.series,d=this.pointer,e=this.legend,f=this.isDirtyLegend,g,h,i=this.hasCartesianSeries,k=this.isDirtyBox,j=c.length,m=j,l=this.renderer,n=l.isHidden(),p=[];Va(a,this);n&&this.cloneRenderTo();for(this.layOutTitles();m--;)if(a=c[m],a.options.stacking&&(g=!0,a.isDirty)){h=!0;break}if(h)for(m=j;m--;)if(a=c[m],a.options.stacking)a.isDirty= +!0;o(c,function(a){a.isDirty&&a.options.legendType==="point"&&(a.updateTotals&&a.updateTotals(),f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;g&&this.getStacks();if(i&&!this.isResizing)this.maxTicks=null,o(b,function(a){a.setScale()});this.getMargins();i&&(o(b,function(a){a.isDirty&&(k=!0)}),o(b,function(a){var b=a.min+","+a.max;if(a.extKey!==b)a.extKey=b,p.push(function(){H(a,"afterSetExtremes",v(a.eventArgs,a.getExtremes()));delete a.eventArgs});(k||g)&&a.redraw()}));k&&this.drawChartBox(); +o(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()});d&&d.reset(!0);l.draw();H(this,"redraw");n&&this.cloneRenderTo(!0);o(p,function(a){a.call()})},get:function(a){var b=this.axes,c=this.series,d,e;for(d=0;d19?this.containerHeight:400))},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Ua(b),delete this.renderToClone):(c&&c.parentNode===this.renderTo&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),M(b,{position:"absolute",top:"-9999px",display:"block"}),b.style.setProperty&& +b.style.setProperty("display","block","important"),z.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options,c=b.chart,d,e;a=this.renderTo;var f="highcharts-"+Ab++;if(!a)this.renderTo=a=c.renderTo;if(ya(a))this.renderTo=a=z.getElementById(a);a||Y(13,!0);d=F(L(a,"data-highcharts-chart"));!isNaN(d)&&W[d]&&W[d].hasRendered&&W[d].destroy();L(a,"data-highcharts-chart",this.index);a.innerHTML="";!c.skipClone&&!a.offsetWidth&&this.cloneRenderTo();this.getChartSize();d=this.chartWidth; +e=this.chartHeight;this.container=a=$(Ma,{className:"highcharts-container"+(c.className?" "+c.className:""),id:f},v({position:"relative",overflow:"hidden",width:d+"px",height:e+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},c.style),this.renderToClone||a);this._cursor=a.style.cursor;this.renderer=new (u[c.renderer]||cb)(a,d,e,c.style,c.forExport,b.exporting&&b.exporting.allowHTML);ha&&this.renderer.create(this,a,d,e);this.renderer.chartIndex=this.index}, +getMargins:function(a){var b=this.spacing,c=this.margin,d=this.titleOffset;this.resetMargins();if(d&&!q(c[0]))this.plotTop=s(this.plotTop,d+this.options.title.margin+b[0]);this.legend.adjustMargins(c,b);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);a||this.getAxisMargins()},getAxisMargins:function(){var a=this,b=a.axisOffset=[0,0,0,0],c=a.margin;a.hasCartesianSeries&&o(a.axes,function(a){a.visible&&a.getOffset()});o(ob, +function(d,e){q(c[e])||(a[d]+=b[e])});a.setChartSize()},reflow:function(a){var b=this,c=b.options.chart,d=b.renderTo,e=c.width||Ga(d,"width"),f=c.height||Ga(d,"height"),c=a?a.target:C;if(!b.hasUserSize&&!b.isPrinting&&e&&f&&(c===C||c===z)){if(e!==b.containerWidth||f!==b.containerHeight)clearTimeout(b.reflowTimeout),b.reflowTimeout=Qa(function(){if(b.container)b.setSize(e,f,!1),b.hasUserSize=null},a?100:0);b.containerWidth=e;b.containerHeight=f}},initReflow:function(){var a=this,b=function(b){a.reflow(b)}; +N(C,"resize",b);N(a,"destroy",function(){U(C,"resize",b)})},setSize:function(a,b,c){var d=this,e,f,g=d.renderer;d.isResizing+=1;Va(c,d);d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;if(q(a))d.chartWidth=e=s(0,A(a)),d.hasUserSize=!!e;if(q(b))d.chartHeight=f=s(0,A(b));a=g.globalAnimation;(a?Xa:M)(d.container,{width:e+"px",height:f+"px"},a);d.setChartSize(!0);g.setSize(e,f,c);d.maxTicks=null;o(d.axes,function(a){a.isDirty=!0;a.setScale()});o(d.series,function(a){a.isDirty=!0});d.isDirtyLegend= +!0;d.isDirtyBox=!0;d.layOutTitles();d.getMargins();d.redraw(c);d.oldChartHeight=null;H(d,"resize");a=g.globalAnimation;Qa(function(){d&&H(d,"endResize",null,function(){d.isResizing-=1})},a===!1?0:a&&a.duration||500)},setChartSize:function(a){var b=this.inverted,c=this.renderer,d=this.chartWidth,e=this.chartHeight,f=this.options.chart,g=this.spacing,h=this.clipOffset,i,k,j,m;this.plotLeft=i=A(this.plotLeft);this.plotTop=k=A(this.plotTop);this.plotWidth=j=s(0,A(d-i-this.marginRight));this.plotHeight= +m=s(0,A(e-k-this.marginBottom));this.plotSizeX=b?m:j;this.plotSizeY=b?j:m;this.plotBorderWidth=f.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:e-g[0]-g[2]};this.plotBox=c.plotBox={x:i,y:k,width:j,height:m};d=2*S(this.plotBorderWidth/2);b=ua(s(d,h[3])/2);c=ua(s(d,h[0])/2);this.clipBox={x:b,y:c,width:S(this.plotSizeX-s(d,h[1])/2-b),height:s(0,S(this.plotSizeY-s(d,h[2])/2-c))};a||o(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a= +this;o(ob,function(b,c){a[b]=p(a.margin[c],a.spacing[c])});a.axisOffset=[0,0,0,0];a.clipOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth||0,k=a.backgroundColor,j=a.plotBackgroundColor,m=a.plotBackgroundImage,l=a.plotBorderWidth||0,n,p=this.plotLeft,o=this.plotTop,q=this.plotWidth,y=this.plotHeight,x=this.plotBox,s=this.clipRect,v= +this.clipBox;n=i+(a.shadow?8:0);if(i||k)if(e)e.animate(e.crisp({width:c-n,height:d-n}));else{e={fill:k||"none"};if(i)e.stroke=a.borderColor,e["stroke-width"]=i;this.chartBackground=b.rect(n/2,n/2,c-n,d-n,a.borderRadius,i).attr(e).addClass("highcharts-background").add().shadow(a.shadow)}if(j)f?f.animate(x):this.plotBackground=b.rect(p,o,q,y,0).attr({fill:j}).add().shadow(a.plotShadow);if(m)h?h.animate(x):this.plotBGImage=b.image(m,p,o,q,y).add();s?s.animate({width:v.width,height:v.height}):this.clipRect= +b.clipRect(v);if(l)g?g.animate(g.crisp({x:p,y:o,width:q,height:y,strokeWidth:-l})):this.plotBorder=b.rect(p,o,q,y,0,-l).attr({stroke:a.plotBorderColor,"stroke-width":l,fill:"none",zIndex:1}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,d=a.options.series,e,f;o(["inverted","angular","polar"],function(g){c=I[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g];for(e=d&&d.length;!f&&e--;)(c=I[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},linkSeries:function(){var a= +this,b=a.series;o(b,function(a){a.linkedSeries.length=0});o(b,function(b){var d=b.options.linkedTo;if(ya(d)&&(d=d===":previous"?a.series[b.index-1]:a.get(d)))d.linkedSeries.push(b),b.linkedParent=d,b.visible=p(b.options.visible,d.options.visible,b.visible)})},renderSeries:function(){o(this.series,function(a){a.translate();a.render()})},renderLabels:function(){var a=this,b=a.options.labels;b.items&&o(b.items,function(c){var d=v(b.style,c.style),e=F(d.left)+a.plotLeft,f=F(d.top)+a.plotTop+12;delete d.left; +delete d.top;a.renderer.text(c.html,e,f).attr({zIndex:2}).css(d).add()})},render:function(){var a=this.axes,b=this.renderer,c=this.options,d,e,f,g;this.setTitle();this.legend=new pb(this,c.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();d=this.plotWidth;e=this.plotHeight-=21;o(a,function(a){a.setScale()});this.getAxisMargins();f=d/this.plotWidth>1.1;g=e/this.plotHeight>1.05;if(f||g)this.maxTicks=null,o(a,function(a){(a.horiz&&f||!a.horiz&&g)&&a.setTickInterval(!0)}), +this.getMargins();this.drawChartBox();this.hasCartesianSeries&&o(a,function(a){a.visible&&a.render()});if(!this.seriesGroup)this.seriesGroup=b.g("series-group").attr({zIndex:3}).add();this.renderSeries();this.renderLabels();this.showCredits(c.credits);this.hasRendered=!0},showCredits:function(a){if(a.enabled&&!this.credits)this.credits=this.renderer.text(a.text,0,0).on("click",function(){if(a.href)C.location.href=a.href}).attr({align:a.position.align,zIndex:8}).css(a.style).add().align(a.position)}, +destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode;H(a,"destroy");W[a.index]=B;eb--;a.renderTo.removeAttribute("data-highcharts-chart");U(a);for(e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();o("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(b){var c=a[b];c&&c.destroy&&(a[b]=c.destroy())});if(d)d.innerHTML= +"",U(d),f&&Ua(d);for(e in a)delete a[e]},isReadyToRender:function(){var a=this;return!da&&C==C.top&&z.readyState!=="complete"||ha&&!C.canvg?(ha?Ob.push(function(){a.firstRender()},a.options.global.canvasToolsURL):z.attachEvent("onreadystatechange",function(){z.detachEvent("onreadystatechange",a.firstRender);z.readyState==="complete"&&a.firstRender()}),!1):!0},firstRender:function(){var a=this,b=a.options,c=a.callback;if(a.isReadyToRender()){a.getContainer();H(a,"init");a.resetMargins();a.setChartSize(); +a.propFromSeries();a.getAxes();o(b.series||[],function(b){a.initSeries(b)});a.linkSeries();H(a,"beforeRender");if(u.Pointer)a.pointer=new Ya(a,b);a.render();a.renderer.draw();c&&c.apply(a,[a]);o(a.callbacks,function(b){a.index!==B&&b.apply(a,[a])});H(a,"load");a.cloneRenderTo(!0)}},splashArray:function(a,b){var c=b[a],c=Z(c)?c:[c,c,c,c];return[p(b[a+"Top"],c[0]),p(b[a+"Right"],c[1]),p(b[a+"Bottom"],c[2]),p(b[a+"Left"],c[3])]}};var Cb=u.CenteredSeriesMixin={getCenter:function(){var a=this.options, +b=this.chart,c=2*(a.slicedOffset||0),d=b.plotWidth-2*c,b=b.plotHeight-2*c,e=a.center,e=[p(e[0],"50%"),p(e[1],"50%"),a.size||"100%",a.innerSize||0],f=E(d,b),g,h;for(g=0;g<4;++g)h=e[g],a=g<2||g===2&&/%$/.test(h),e[g]=(/%$/.test(h)?[d,b,f,e[2]][g]*parseFloat(h)/100:parseFloat(h))+(a?c:0);e[3]>e[2]&&(e[3]=e[2]);return e}},Ia=function(){};Ia.prototype={init:function(a,b,c){this.series=a;this.color=a.color;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint&&(b=a.options.colors||a.chart.options.colors, +this.color=this.color||b[a.colorCounter++],a.colorCounter===b.length))a.colorCounter=0;a.chart.pointCount++;return this},applyOptions:function(a,b){var c=this.series,d=c.options.pointValKey||c.pointValKey,a=Ia.prototype.optionsToObject.call(this,a);v(this,a);this.options=this.options?v(this.options,a):a;if(d)this.y=this[d];if(this.x===B&&c)this.x=b===B?c.autoIncrement():b;return this},optionsToObject:function(a){var b={},c=this.series,d=c.options.keys,e=d||c.pointArrayMap||["y"],f=e.length,g=0,h= +0;if(typeof a==="number"||a===null)b[e[0]]=a;else if(Ja(a)){if(!d&&a.length>f){c=typeof a[0];if(c==="string")b.name=a[0];else if(c==="number")b.x=a[0];g++}for(;ha+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&&b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=D(e,c.series,a);this.tooltipOptions=D(O.tooltip,O.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);e.marker===null&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();if((c.negativeColor|| +c.negativeFillColor)&&!c.zones)a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&q(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return c},getCyclic:function(a,b,c){var d=this.userOptions,e="_"+a+"Index",f=a+"Counter";b||(q(d[e])?b=d[e]:(d[e]=b=this.chart[f]%c.length,this.chart[f]+=1),b=c[b]);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color|| +ba[this.type].color,this.chart.options.colors)},getSymbol:function(){var a=this.options.marker;this.getCyclic("symbol",a.symbol,this.chart.options.symbols);if(/^url/.test(this.symbol))a.radius=0},drawLegendSymbol:K.drawLineMarker,setData:function(a,b,c,d){var e=this,f=e.points,g=f&&f.length||0,h,i=e.options,k=e.chart,j=null,m=e.xAxis,l=m&&!!m.categories,n=i.turboThreshold,t=this.xData,r=this.yData,s=(h=e.pointArrayMap)&&h.length,a=a||[];h=a.length;b=p(b,!0);if(d!==!1&&h&&g===h&&!e.cropped&&!e.hasGroupedData&& +e.visible)o(a,function(a,b){f[b].update&&a!==i.data[b]&&f[b].update(a,!1,null,!1)});else{e.xIncrement=null;e.colorCounter=0;o(this.parallelArrays,function(a){e[a+"Data"].length=0});if(n&&h>n){for(c=0;j===null&&ci||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)e=this.cropData(this.xData,this.yData,m,l),b=e.xData,c=e.yData,e=e.start,f=!0;for(i=b.length-1;i>=0;i--)d=b[i]-b[i-1],d>0&&(g===B||d=c){f=s(0,i-h);break}for(c=i;cd){g=c+h;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,h=this.cropStart||0,i,k=this.hasGroupedData,j,m=[],l;if(!b&&!k)b=[],b.length=a.length,b=this.data=b;for(l=0;l0),k=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(c[m+1]||k)>=g&&(c[m-1]||k)<=h,i&&k)if(i=j.length)for(;i--;)j[i]!==null&&(e[f++]=j[i]);else e[f++]=j;this.dataMin=Sa(e);this.dataMax=Da(e)},translate:function(){this.processedXData||this.processData();this.generatePoints();for(var a=this.options,b=a.stacking,c=this.xAxis,d=c.categories,e=this.yAxis,f=this.points,g=f.length,h=!!this.modifyValue,i=a.pointPlacement,k=i==="between"||ka(i),j=a.threshold, +m=a.startFromThreshold?j:0,l,n,t,o,v=Number.MAX_VALUE,a=0;a=0&&n<=e.len&&l>=0&&l<=c.len;y.clientX=k?c.translate(x,0,0,0,1):l;y.negative=y.y<(j||0);y.category=d&&d[y.x]!==B?d[y.x]:y.x;a&&(v=E(v,P(l-t)));t=l}this.closestPointRangePx=v;this.getSegments()},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted, +f=this.clipBox,g=f||b.clipBox,h=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(","),i=b[h],k=b[h+"m"];if(!i){if(a)g.width=0,b[h+"m"]=k=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight);b[h]=i=d.clipRect(g)}a&&(i.count+=1);if(c.clip!==!1)this.group.clip(a||f?i:b.clipRect),this.markerGroup.clip(k),this.sharedClipKey=h;a||(i.count-=1,i.count<=0&&h&&b[h]&&(f||(b[h]=b[h].destroy()),b[h+"m"]&&(b[h+"m"]=b[h+"m"].destroy())))},animate:function(a){var b= +this.chart,c=this.options.animation,d;if(c&&!Z(c))c=ba[this.type].animation;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip();H(this,"afterAnimate")},drawPoints:function(){var a,b=this.points,c=this.chart,d,e,f,g,h,i,k,j,m=this.options.marker,l=this.pointAttr[""],n,o,r,q=this.markerGroup,s=p(m.enabled,this.xAxis.isRadial,this.closestPointRangePx>2*m.radius); +if(m.enabled!==!1||this._hasPointMarkers)for(f=b.length;f--;)if(g=b[f],d=S(g.plotX),e=g.plotY,j=g.graphic,n=g.marker||{},o=!!g.marker,a=s&&n.enabled===B||n.enabled,r=g.isInside,a&&e!==B&&!isNaN(e)&&g.y!==null)if(a=g.pointAttr[g.selected?"select":""]||l,h=a.r,i=p(n.symbol,this.symbol),k=i.indexOf("url")===0,j)j[r?"show":"hide"](!0).animate(v({x:d-h,y:e-h},j.symbolName?{width:2*h,height:2*h}:{}));else{if(r&&(h>0||k))g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h,o?n:m).attr(a).add(q)}else if(j)g.graphic= +j.destroy()},convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=p(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var a=this,b=a.options,c=ba[a.type].marker?b.marker:b,d=c.states,e=d.hover,f,g=a.color,h=a.options.negativeColor;f={stroke:g,fill:g};var i=a.points||[],k,j,m=[],l=a.pointAttrToOptions;k=a.hasPointSpecificOptions;var n=c.lineColor,t=c.fillColor;j=b.turboThreshold;var r=a.zones,s=a.zoneAxis||"y",y;b.marker? +(e.radius=e.radius||c.radius+e.radiusPlus,e.lineWidth=e.lineWidth||c.lineWidth+e.lineWidthPlus):(e.color=e.color||ia(e.color||g).brighten(e.brightness).get(),e.negativeColor=e.negativeColor||ia(e.negativeColor||h).brighten(e.brightness).get());m[""]=a.convertAttribs(c,f);o(["hover","select"],function(b){m[b]=a.convertAttribs(d[b],m[""])});a.pointAttr=m;g=i.length;if(!j||g= +f.value;)f=r[++k];j.color=j.fillColor=p(f.color,a.color)}k=b.colorByPoint||j.color;if(j.options)for(y in l)q(c[l[y]])&&(k=!0);if(k){c=c||{};k=[];d=c.states||{};f=d.hover=d.hover||{};if(!b.marker||j.negative&&!f.fillColor&&!e.fillColor)f[a.pointAttrToOptions.fill]=f.color||!j.options.color&&e[j.negative&&h?"negativeColor":"color"]||ia(j.color).brighten(f.brightness||e.brightness).get();f={color:j.color};if(!t)f.fillColor=j.color;if(!n)f.lineColor=j.color;c.hasOwnProperty("color")&&!c.color&&delete c.color; +k[""]=a.convertAttribs(v(f,c),m[""]);k.hover=a.convertAttribs(d.hover,m.hover,k[""]);k.select=a.convertAttribs(d.select,m.select,k[""])}else k=m;j.pointAttr=k}},destroy:function(){var a=this,b=a.chart,c=/AppleWebKit\/533/.test(Aa),d,e=a.data||[],f,g,h;H(a,"destroy");U(a);o(a.axisTypes||[],function(b){if(h=a[b])ma(h.series,a),h.isDirty=h.forceRedraw=!0});a.legendItem&&a.chart.legend.destroyItem(a);for(d=e.length;d--;)(f=e[d])&&f.destroy&&f.destroy();a.points=null;clearTimeout(a.animationTimeout);for(g in a)a[g]instanceof +Q&&!a[g].survive&&(d=c&&g==="group"?"hide":"destroy",a[g][d]());if(b.hoverSeries===a)b.hoverSeries=null;ma(b.series,a);for(g in a)delete a[g]},getSegmentPath:function(a){var b=this,c=[],d=b.options.step;o(a,function(e,f){var g=e.plotX,h=e.plotY,i;b.getPointSpline?c.push.apply(c,b.getPointSpline(a,e,f)):(c.push(f?"L":"M"),d&&f&&(i=a[f-1],d==="right"?c.push(i.plotX,h,"L"):d==="center"?c.push((i.plotX+g)/2,i.plotY,"L",(i.plotX+g)/2,h,"L"):c.push(g,i.plotY,"L")),c.push(e.plotX,e.plotY))});return c},getGraphPath:function(){var a= +this,b=[],c,d=[];o(a.segments,function(e){c=a.getSegmentPath(e);e.length>1?b=b.concat(c):d.push(e[0])});a.singlePoints=d;return a.graphPath=b},drawGraph:function(){var a=this,b=this.options,c=[["graph",b.lineColor||this.color,b.dashStyle]],d=b.lineWidth,e=b.linecap!=="square",f=this.getGraphPath(),g=this.fillGraph&&this.color||"none";o(this.zones,function(d,e){c.push(["zoneGraph"+e,d.color||a.color,d.dashStyle||b.dashStyle])});o(c,function(c,i){var k=c[0],j=a[k];if(j)j.animate({d:f});else if((d|| +g)&&f.length)j={stroke:c[1],"stroke-width":d,fill:g,zIndex:1},c[2]?j.dashstyle=c[2]:e&&(j["stroke-linecap"]=j["stroke-linejoin"]="round"),a[k]=a.chart.renderer.path(f).attr(j).add(a.group).shadow(i<2&&b.shadow)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],h,i=this.graph,k=this.area,j=s(b.chartWidth,b.chartHeight),m=this[(this.zoneAxis||"y")+"Axis"],l,n=m.reversed,t=b.inverted,r=m.horiz,q,y,x,v=!1;if(d.length&&(i||k)&&m.min!==B)i&&i.hide(),k&&k.hide(), +l=m.getExtremes(),o(d,function(d,o){e=n?r?b.plotWidth:0:r?0:m.toPixels(l.min);e=E(s(p(f,e),0),j);f=E(s(A(m.toPixels(p(d.value,l.max),!0)),0),j);v&&(e=f=m.toPixels(l.max));q=Math.abs(e-f);y=E(e,f);x=s(e,f);if(m.isXAxis){if(h={x:t?x:y,y:0,width:q,height:j},!r)h.x=b.plotHeight-h.x}else if(h={x:0,y:t?x:y,width:j,height:q},r)h.y=b.plotWidth-h.y;b.inverted&&c.isVML&&(h=m.isXAxis?{x:0,y:n?y:x,height:h.width,width:b.chartWidth}:{x:h.y-b.plotLeft-b.spacingBox.x,y:0,width:h.height,height:b.chartHeight});g[o]? +g[o].animate(h):(g[o]=c.clipRect(h),i&&a["zoneGraph"+o].clip(g[o]),k&&a["zoneArea"+o].clip(g[o]));v=d.value>l.max}),this.clips=g},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};o(["group","markerGroup"],function(c){b[c]&&b[c].attr(a).invert()})}var b=this,c=b.chart;if(b.xAxis)N(c,"resize",a),N(b,"destroy",function(){U(c,"resize",a)}),a(),b.invertGroups=a},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||0.1}).add(e), +f.addClass("highcharts-series-"+this.index));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;if(a.inverted)b=c,c=this.xAxis;return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=(c=d.animation)&&!!a.animate&&b.renderer.isSVG&&p(c.duration,500)||0,f=a.visible?"inherit":"hidden",g=d.zIndex,h=a.hasRendered,i=b.seriesGroup;c=a.plotGroup("group", +"series",f,g,i);a.markerGroup=a.plotGroup("markerGroup","markers",f,g,i);e&&a.animate(!0);a.getAttribs();c.inverted=a.isCartesian?b.inverted:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());o(a.points,function(a){a.redraw&&a.redraw()});a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&a.options.enableMouseTracking!==!1&&a.drawTracker();b.inverted&&a.invertGroups();d.clip!==!1&&!a.sharedClipKey&&!h&&c.clip(b.clipRect);e&&a.animate();if(!h)a.animationTimeout=Qa(function(){a.afterAnimate()}, +e);a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.isDirty,d=this.group,e=this.xAxis,f=this.yAxis;d&&(a.inverted&&d.attr({width:a.plotWidth,height:a.plotHeight}),d.animate({translateX:p(e&&e.left,a.plotLeft),translateY:p(f&&f.top,a.plotTop)}));this.translate();this.render();b&&H(this,"updatedData");(c||b)&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted; +return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)},buildKDTree:function(){function a(c,e,f){var g,h;if(h=c&&c.length)return g=b.kdAxisArray[e%f],c.sort(function(a,b){return a[g]-b[g]}),h=Math.floor(h/2),{point:c[h],left:a(c.slice(0,h),e+1,f),right:a(c.slice(h+1),e+1,f)}}var b=this,c=b.kdDimensions;delete b.kdTree;Qa(function(){var d=Oa(b.points||[],function(a){return a.y!==null});b.kdTree=a(d,c,c)},b.options.kdNow?0:1)},searchKDTree:function(a, +b){function c(a,b,k,j){var m=b.point,l=d.kdAxisArray[k%j],n,p,o=m;p=q(a[e])&&q(m[e])?Math.pow(a[e]-m[e],2):null;n=q(a[f])&&q(m[f])?Math.pow(a[f]-m[f],2):null;n=(p||0)+(n||0);m.dist=q(n)?Math.sqrt(n):Number.MAX_VALUE;m.distX=q(p)?Math.sqrt(p):Number.MAX_VALUE;l=a[l]-m[l];n=l<0?"left":"right";p=l<0?"right":"left";b[n]&&(n=c(a,b[n],k+1,j),o=n[g]0&&this.singleStacks===!1&&(q.points[y][0]=q.points[this.index+","+w+",0"][0]);e==="percent"?(r=r?i:k,j&&l[r]&&l[r][w]?(r=l[r][w],q.total=r.total=s(r.total,q.total)+P(u)||0):q.total=fa(q.total+(P(u)||0))):q.total=fa(q.total+(u||0));q.cum=p(q.cum,g)+(u||0);q.points[y].push(q.cum); +c[v]=q.cum}if(e==="percent")m.usePercentage=!0;this.stackedYData=c;m.oldStacks={}}};R.prototype.setPercentStacks=function(){var a=this,b=a.stackKey,c=a.yAxis.stacks,d=a.processedXData,e;o([b,"-"+b],function(b){var f;for(var g=d.length,h,i;g--;)if(h=d[g],e=a.getStackIndicator(e,h,a.index),f=(i=c[b]&&c[b][h])&&i.points[e.key],h=f)i=i.total?100/i.total:0,h[0]=fa(h[0]*i),h[1]=fa(h[1]*i),a.stackedYData[g]=h[1]})};R.prototype.getStackIndicator=function(a,b,c){!q(a)||a.x!==b?a={x:b,index:0}:a.index++;a.key= +[c,b,a.index].join(",");return a};v(hb.prototype,{addSeries:function(a,b,c){var d,e=this;a&&(b=p(b,!0),H(e,"addSeries",{options:a},function(){d=e.initSeries(a);e.isDirtyLegend=!0;e.linkSeries();b&&e.redraw(c)}));return d},addAxis:function(a,b,c,d){var e=b?"xAxis":"yAxis",f=this.options;new ja(this,D(a,{index:this[e].length,isX:b}));f[e]=ta(f[e]||{});f[e].push(a);p(c,!0)&&this.redraw(d)},showLoading:function(a){var b=this,c=b.options,d=b.loadingDiv,e=c.loading,f=function(){d&&M(d,{left:b.plotLeft+ +"px",top:b.plotTop+"px",width:b.plotWidth+"px",height:b.plotHeight+"px"})};if(!d)b.loadingDiv=d=$(Ma,{className:"highcharts-loading"},v(e.style,{zIndex:10,display:"none"}),b.container),b.loadingSpan=$("span",null,e.labelStyle,d),N(b,"redraw",f);b.loadingSpan.innerHTML=a||c.lang.loading;if(!b.loadingShown)M(d,{opacity:0,display:""}),Xa(d,{opacity:e.style.opacity},{duration:e.showDuration||0}),b.loadingShown=!0;f()},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&Xa(b,{opacity:0},{duration:a.loading.hideDuration|| +100,complete:function(){M(b,{display:"none"})}});this.loadingShown=!1}});v(Ia.prototype,{update:function(a,b,c,d){function e(){f.applyOptions(a);if(f.y===null&&h)f.graphic=h.destroy();if(Z(a)&&!Ja(a))f.redraw=function(){if(h&&h.element&&a&&a.marker&&a.marker.symbol)f.graphic=h.destroy();if(a&&a.dataLabels&&f.dataLabel)f.dataLabel=f.dataLabel.destroy();f.redraw=null};i=f.index;g.updateParallelArrays(f,i);if(m&&f.name)m[f.x]=f.name;j.data[i]=Z(j.data[i])?f.options:a;g.isDirty=g.isDirtyData=!0;if(!g.fixedBox&& +g.hasCartesianSeries)k.isDirtyBox=!0;if(j.legendType==="point")k.isDirtyLegend=!0;b&&k.redraw(c)}var f=this,g=f.series,h=f.graphic,i,k=g.chart,j=g.options,m=g.xAxis&&g.xAxis.names,b=p(b,!0);d===!1?e():f.firePointEvent("update",{options:a},e)},remove:function(a,b){this.series.removePoint(qa(this,this.series.data),a,b)}});v(R.prototype,{addPoint:function(a,b,c,d){var e=this,f=e.options,g=e.data,h=e.graph,i=e.area,k=e.chart,j=e.xAxis&&e.xAxis.names,m=h&&h.shift||0,l=["graph","area"],h=f.data,n,t=e.xData; +Va(d,k);if(c){for(d=e.zones.length;d--;)l.push("zoneGraph"+d,"zoneArea"+d);o(l,function(a){if(e[a])e[a].shift=m+(f.step?2:1)})}if(i)i.isArea=!0;b=p(b,!0);i={series:e};e.pointClass.prototype.applyOptions.apply(i,[a]);l=i.x;d=t.length;if(e.requireSorting&&ll;)d--;e.updateParallelArrays(i,"splice",d,0,0);e.updateParallelArrays(i,d);if(j&&i.name)j[l]=i.name;h.splice(d,0,a);n&&(e.data.splice(d,0,null),e.processData());f.legendType==="point"&&e.generatePoints();c&&(g[0]&&g[0].remove? +g[0].remove(!1):(g.shift(),e.updateParallelArrays(i,"shift"),h.shift()));e.isDirty=!0;e.isDirtyData=!0;b&&(e.getAttribs(),k.redraw())},removePoint:function(a,b,c){var d=this,e=d.data,f=e[a],g=d.points,h=d.chart,i=function(){e.length===g.length&&g.splice(a,1);e.splice(a,1);d.options.data.splice(a,1);d.updateParallelArrays(f||{series:d},"splice",a,1);f&&f.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&h.redraw()};Va(c,h);b=p(b,!0);f?f.firePointEvent("remove",null,i):i()},remove:function(a,b){var c=this, +d=c.chart;H(c,"remove",null,function(){c.destroy();d.isDirtyLegend=d.isDirtyBox=!0;d.linkSeries();p(a,!0)&&d.redraw(b)})},update:function(a,b){var c=this,d=this.chart,e=this.userOptions,f=this.type,g=I[f].prototype,h=["group","markerGroup","dataLabelsGroup"],i;if(a.type&&a.type!==f||a.zIndex!==void 0)h.length=0;o(h,function(a){h[a]=c[a];delete c[a]});a=D(e,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1);for(i in g)this[i]=B;v(this,I[a.type||f].prototype); +o(h,function(a){c[a]=h[a]});this.init(d,a);d.linkSeries();p(b,!0)&&d.redraw(!1)}});v(ja.prototype,{update:function(a,b){var c=this.chart,a=c.options[this.coll][this.options.index]=D(this.userOptions,a);this.destroy(!0);this._addedPlotLB=this.chart._labelPanes=B;this.init(c,v(a,{events:B}));c.isDirtyBox=!0;p(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);ma(b.axes,this);ma(b[c],this);b.options[c].splice(this.options.index, +1);o(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;p(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}});var xa=na(R);I.line=xa;ba.area=D(ea,{softThreshold:!1,threshold:0});var sa=na(R,{type:"area",singleStacks:!1,getSegments:function(){var a=this,b=[],c=[],d=[],e=this.xAxis,f=this.yAxis,g=f.stacks[this.stackKey],h={},i,k,j=this.points,m=this.options.connectNulls,l,n,p;if(this.options.stacking&&!this.cropped){for(n= +0;n=0;d--)g=p(a[d].yBottom,f),da&&i>e?(i=s(a,e),j=2*e-i):ig&&j>e?(j=s(g,e),i=2*e-j):j0.5;b=Math.round(b)+f;d-=b;g&&(b-=1,d+=1);return{x:a,y:b,width:c,height:d}},translate:function(){var a=this,b=a.chart,c=a.options,d=a.borderWidth=p(c.borderWidth,a.closestPointRange*a.xAxis.transA<2?0:1),e=a.yAxis,f=a.translatedThreshold=e.getThreshold(c.threshold),g=p(c.minPointLength,5),h=a.getColumnMetrics(),i=h.width, +k=a.barW=s(i,1+2*d),j=a.pointXOffset=h.offset;b.inverted&&(f-=0.5);c.pointPadding&&(k=ua(k));R.prototype.translate.apply(a);o(a.points,function(c){var d=E(p(c.yBottom,f),9E4),h=999+P(d),h=E(s(-h,c.plotY),e.len+h),o=c.plotX+j,q=k,v=E(h,d),y,u=s(h,d)-v;P(u)g?d-g:f-(y?g:0));c.barX=o;c.pointWidth=i;c.tooltipPos=b.inverted?[e.len+e.pos-b.plotLeft-h,a.xAxis.len-o-q/2,u]:[o+q/2,h+e.pos-b.plotTop,u];c.shapeType="rect";c.shapeArgs=a.crispCol(o, +v,q,u)})},getSymbol:va,drawLegendSymbol:K.drawRectangle,drawGraph:va,drawPoints:function(){var a=this,b=this.chart,c=a.options,d=b.renderer,e=c.animationLimit||250,f,g;o(a.points,function(h){var i=h.plotY,k=h.graphic;if(i!==B&&!isNaN(i)&&h.y!==null)f=h.shapeArgs,i=q(a.borderWidth)?{"stroke-width":a.borderWidth}:{},g=h.pointAttr[h.selected?"select":""]||a.pointAttr[""],k?(Pa(k),k.attr(i).attr(g)[b.pointCount\u25cf {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}});sa=na(R,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1, +kdDimensions:2,drawGraph:function(){this.options.lineWidth&&R.prototype.drawGraph.call(this)}});I.scatter=sa;ba.pie=D(ea,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.y===null?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});ea={type:"pie", +isCartesian:!1,pointClass:na(Ia,{init:function(){Ia.prototype.init.apply(this,arguments);var a=this,b;a.name=p(a.name,"Slice");b=function(b){a.slice(b.type==="select")};N(a,"select",b);N(a,"unselect",b);return a},setVisible:function(a,b){var c=this,d=c.series,e=d.chart,f=d.options.ignoreHiddenPoint,b=p(b,f);if(a!==c.visible){c.visible=c.options.visible=a=a===B?!c.visible:a;d.options.data[qa(c,d.data)]=c.options;o(["graphic","dataLabel","connector","shadowGroup"],function(b){if(c[b])c[b][a?"show": +"hide"](!0)});c.legendItem&&e.legend.colorizeItem(c,a);!a&&c.state==="hover"&&c.setState("");if(f)d.isDirty=!0;b&&e.redraw()}},slice:function(a,b,c){var d=this.series;Va(c,d.chart);p(b,!0);this.sliced=this.options.sliced=a=q(a)?a:!this.sliced;d.options.data[qa(this,d.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var b=this.shapeArgs,c=this.series.chart;return this.sliced||!this.visible? +[]:this.series.chart.renderer.symbols.arc(c.plotLeft+b.x,c.plotTop+b.y,b.r+a,b.r+a,{innerR:this.shapeArgs.r,start:b.start,end:b.end})}}),requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},animate:function(a){var b=this,c=b.points,d=b.startAngleRad;if(!a)o(c,function(a){var c=a.graphic,g=a.shapeArgs;c&&(c.attr({r:a.startR||b.center[3]/2,start:d,end:d}),c.animate({r:g.r, +start:g.start,end:g.end},b.options.animation))}),b.animate=null},updateTotals:function(){var a,b=0,c=this.points,d=c.length,e,f=this.options.ignoreHiddenPoint;for(a=0;a0&&(e.visible||!f)?e.y/b*100:0,e.total=b},generatePoints:function(){R.prototype.generatePoints.call(this);this.updateTotals()},translate:function(a){this.generatePoints();var b=0,c=this.options,d=c.slicedOffset,e=d+c.borderWidth,f,g,h,i=c.startAngle|| +0,k=this.startAngleRad=pa/180*(i-90),i=(this.endAngleRad=pa/180*(p(c.endAngle,i+360)-90))-k,j=this.points,m=c.dataLabels.distance,c=c.ignoreHiddenPoint,l,n=j.length,o;if(!a)this.center=a=this.getCenter();this.getX=function(b,c){h=V.asin(E((b-a[1])/(a[2]/2+m),1));return a[0]+(c?-1:1)*T(h)*(a[2]/2+m)};for(l=0;l1.5*pa? +h-=2*pa:h<-pa/2&&(h+=2*pa);o.slicedTranslation={translateX:A(T(h)*d),translateY:A(aa(h)*d)};f=T(h)*a[2]/2;g=aa(h)*a[2]/2;o.tooltipPos=[a[0]+f*0.7,a[1]+g*0.7];o.half=h<-pa/2||h>pa/2?1:0;o.angle=h;e=E(e,m/2);o.labelPos=[a[0]+f+T(h)*m,a[1]+g+aa(h)*m,a[0]+f+T(h)*e,a[1]+g+aa(h)*e,a[0]+f,a[1]+g,m<0?"center":o.half?"right":"left",h]}},drawGraph:null,drawPoints:function(){var a=this,b=a.chart.renderer,c,d,e=a.options.shadow,f,g,h,i;if(e&&!a.shadowGroup)a.shadowGroup=b.g("shadow").add(a.group);o(a.points, +function(k){if(k.y!==null){d=k.graphic;h=k.shapeArgs;f=k.shadowGroup;g=k.pointAttr[k.selected?"select":""];if(!g.stroke)g.stroke=g.fill;if(e&&!f)f=k.shadowGroup=b.g("shadow").add(a.shadowGroup);c=k.sliced?k.slicedTranslation:{translateX:0,translateY:0};f&&f.attr(c);if(d)d.setRadialReference(a.center).attr(g).animate(v(h,c));else{i={"stroke-linejoin":"round"};if(!k.visible)i.visibility="hidden";k.graphic=d=b[k.shapeType](h).setRadialReference(a.center).attr(g).attr(i).attr(c).add(a.group).shadow(e, +f)}}})},searchPoint:va,sortByAngle:function(a,b){a.sort(function(a,d){return a.angle!==void 0&&(d.angle-a.angle)*b})},drawLegendSymbol:K.drawRectangle,getCenter:Cb.getCenter,getSymbol:va};ea=na(R,ea);I.pie=ea;R.prototype.drawDataLabels=function(){var a=this,b=a.options,c=b.cursor,d=b.dataLabels,e=a.points,f,g,h=a.hasRendered||0,i,k,j=a.chart.renderer;if(d.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(d),k=a.plotGroup("dataLabelsGroup","data-labels",d.defer?"hidden":"visible",d.zIndex|| +6),p(d.defer,!0)&&(k.attr({opacity:+h}),h||N(a,"afterAnimate",function(){a.visible&&k.show();k[b.animation?"animate":"attr"]({opacity:1},{duration:200})})),g=d,o(e,function(e){var h,n=e.dataLabel,o,r,s=e.connector,u=!0,x,w={};f=e.dlOptions||e.options&&e.options.dataLabels;h=p(f&&f.enabled,g.enabled)&&e.y!==null;if(n&&!h)e.dataLabel=n.destroy();else if(h){d=D(g,f);x=d.style;h=d.rotation;o=e.getLabelConfig();i=d.format?La(d.format,o):d.formatter.call(o,d);x.color=p(d.color,x.color,a.color,"black"); +if(n)if(q(i))n.attr({text:i}),u=!1;else{if(e.dataLabel=n=n.destroy(),s)e.connector=s.destroy()}else if(q(i)){n={fill:d.backgroundColor,stroke:d.borderColor,"stroke-width":d.borderWidth,r:d.borderRadius||0,rotation:h,padding:d.padding,zIndex:1};if(x.color==="contrast")w.color=d.inside||d.distance<0||b.stacking?j.getContrast(e.color||a.color):"#000000";if(c)w.cursor=c;for(r in n)n[r]===B&&delete n[r];n=e.dataLabel=j[h?"text":"label"](i,0,-9999,d.shape,null,null,d.useHTML).attr(n).css(v(x,w)).add(k).shadow(d.shadow)}n&& +a.alignDataLabel(e,n,d,null,u)}})};R.prototype.alignDataLabel=function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=p(a.plotX,-9999),i=p(a.plotY,-9999),k=b.getBBox(),j=f.renderer.fontMetrics(c.style.fontSize).b,m=this.visible&&(a.series.forceDL||f.isInsidePlot(h,A(i),g)||d&&f.isInsidePlot(h,g?d.x+1:d.y+d.height-1,g));if(m)d=v({x:g?f.plotWidth-i:h,y:A(g?f.plotHeight-h:i),width:0,height:0},d),v(c,{width:k.width,height:k.height}),c.rotation?(a=f.renderer.rotCorr(j,c.rotation),b[e?"attr":"animate"]({x:d.x+ +c.x+d.width/2+a.x,y:d.y+c.y+d.height/2}).attr({align:c.align})):(b.align(c,null,d),g=b.alignAttr,p(c.overflow,"justify")==="justify"?this.justifyDataLabel(b,c,g,k,d,e):p(c.crop,!0)&&(m=f.isInsidePlot(g.x,g.y)&&f.isInsidePlot(g.x+k.width,g.y+k.height)),c.shape&&b.attr({anchorX:a.plotX,anchorY:a.plotY}));if(!m)Pa(b),b.attr({y:-9999}),b.placed=!1};R.prototype.justifyDataLabel=function(a,b,c,d,e,f){var g=this.chart,h=b.align,i=b.verticalAlign,k,j,m=a.box?0:a.padding||0;k=c.x+m;if(k<0)h==="right"?b.align= +"left":b.x=-k,j=!0;k=c.x+d.width-m;if(k>g.plotWidth)h==="left"?b.align="right":b.x=g.plotWidth-k,j=!0;k=c.y+m;if(k<0)i==="bottom"?b.verticalAlign="top":b.y=-k,j=!0;k=c.y+d.height-m;if(k>g.plotHeight)i==="top"?b.verticalAlign="bottom":b.y=g.plotHeight-k,j=!0;if(j)a.placed=!f,a.align(b,null,e)};if(I.pie)I.pie.prototype.drawDataLabels=function(){var a=this,b=a.data,c,d=a.chart,e=a.options.dataLabels,f=p(e.connectorPadding,10),g=p(e.connectorWidth,1),h=d.plotWidth,i=d.plotHeight,k,j,m=p(e.softConnector, +!0),l=e.distance,n=a.center,q=n[2]/2,r=n[1],v=l>0,u,x,w,B=[[],[]],z,C,D,F,J,G=[0,0,0,0],M=function(a,b){return b.y-a.y};if(a.visible&&(e.enabled||a._hasPointLabels)){R.prototype.drawDataLabels.apply(a);o(b,function(a){a.dataLabel&&a.visible&&B[a.half].push(a)});for(F=2;F--;){var H=[],N=[],I=B[F],L=I.length,K;if(L){a.sortByAngle(I,F-0.5);for(J=b=0;!b&&I[J];)b=I[J]&&I[J].dataLabel&&(I[J].dataLabel.getBBox().height||21),J++;if(l>0){x=E(r+q+l,d.plotHeight);for(J=s(0,r-q-l);J<=x;J+=b)H.push(J);x=H.length; +if(L>x){c=[].concat(I);c.sort(M);for(J=L;J--;)c[J].rank=J;for(J=L;J--;)I[J].rank>=x&&I.splice(J,1);L=I.length}for(J=0;J0){if(x=N.pop(),K=x.i,C=x.y,c>C&&H[K+1]!==null||ch-f&&(G[1]=s(A(z+x-h+f),G[1])),C-b/2<0?G[0]=s(A(-C+b/2),G[0]):C+b/2>i&&(G[2]=s(A(C+b/2-i),G[2]))}}}if(Da(G)===0||this.verifyDataLabelOverflow(G))this.placeDataLabels(),v&&g&&o(this.points,function(b){k=b.connector;w=b.labelPos; +if((u=b.dataLabel)&&u._pos&&b.visible)D=u._attr.visibility,z=u.connX,C=u.connY,j=m?["M",z+(w[6]==="left"?5:-5),C,"C",z,C,2*w[2]-w[4],2*w[3]-w[5],w[2],w[3],"L",w[4],w[5]]:["M",z+(w[6]==="left"?5:-5),C,"L",w[2],w[3],"L",w[4],w[5]],k?(k.animate({d:j}),k.attr("visibility",D)):b.connector=k=a.chart.renderer.path(j).attr({"stroke-width":g,stroke:e.connectorColor||b.color||"#606060",visibility:D}).add(a.dataLabelsGroup);else if(k)b.connector=k.destroy()})}},I.pie.prototype.placeDataLabels=function(){o(this.points, +function(a){var b=a.dataLabel;if(b&&a.visible)(a=b._pos)?(b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999})})},I.pie.prototype.alignDataLabel=va,I.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,c=this.options,d=c.center,e=c.minSize||80,f=e,g;d[0]!==null?f=s(b[2]-s(a[1],a[3]),e):(f=s(b[2]-a[1]-a[3],e),b[0]+=(a[3]-a[1])/2);d[1]!==null?f=s(E(f,b[2]-s(a[0],a[2])),e):(f=s(E(f,b[2]-a[0]-a[2]),e),b[1]+=(a[0]-a[2])/2);fp(this.translatedThreshold,g.yAxis.len)),k=p(c.inside,!!this.options.stacking);if(h){d=D(h);if(d.y<0)d.height+=d.y,d.y=0;h=d.y+d.height-g.yAxis.len; +h>0&&(d.height-=h);f&&(d={x:g.yAxis.len-d.y-d.height,y:g.xAxis.len-d.x-d.width,width:d.height,height:d.width});if(!k)f?(d.x+=i?0:d.width,d.width=0):(d.y+=i?d.height:0,d.height=0)}c.align=p(c.align,!f||k?"center":i?"right":"left");c.verticalAlign=p(c.verticalAlign,f||k?"middle":i?"top":"bottom");R.prototype.alignDataLabel.call(this,a,b,c,d,e)};(function(a){var b=a.Chart,c=a.each,d=a.pick,e=a.addEvent;b.prototype.callbacks.push(function(a){function b(){var e=[];c(a.series,function(a){var b=a.options.dataLabels, +f=a.dataLabelCollections||["dataLabel"];(b.enabled||a._hasPointLabels)&&!b.allowOverlap&&a.visible&&c(f,function(b){c(a.points,function(a){if(a[b])a[b].labelrank=d(a.labelrank,a.shapeArgs&&a.shapeArgs.height),e.push(a[b])})})});a.hideOverlappingLabels(e)}b();e(a,"redraw",b)});b.prototype.hideOverlappingLabels=function(a){var b=a.length,d,e,k,j,m,l,n;for(e=0;em.x+(k.width-n)||l.x+(j.width-n)m.y+(k.height-n)||l.y+(j.height-n)d;if(h.series.length&&(i||m>E(j.dataMin,j.min))&& +(!i||k + + + + + + + + +Boost.Hana: boost/hana/functional/id.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
id.hpp File Reference
+
+
+ +

Defines boost::hana::id. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::id
 The identity function – returns its argument unchanged. More...
 
+

Detailed Description

+

Defines boost::hana::id.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/id_8hpp.js b/boost_1_63_0/libs/hana/doc/html/id_8hpp.js new file mode 100644 index 0000000..11ae718 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/id_8hpp.js @@ -0,0 +1,4 @@ +var id_8hpp = +[ + [ "id", "id_8hpp.html#gaef38cf34324c8edbd3597ae71811d00d", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/if_8hpp.html new file mode 100644 index 0000000..a13cb2c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/if_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
if.hpp File Reference
+
+
+ +

Defines boost::hana::if_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::if_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/index.html b/boost_1_63_0/libs/hana/doc/html/index.html new file mode 100644 index 0000000..657682c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/index.html @@ -0,0 +1,1033 @@ + + + + + + + + + +Boost.Hana: User Manual + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
User Manual
+
+
+

Table of Contents

+ +
+

+Description

+
+

Hana is a header-only library for C++ metaprogramming suited for computations on both types and values. The functionality it provides is a superset of what is provided by the well established Boost.MPL and Boost.Fusion libraries. By leveraging C++11/14 implementation techniques and idioms, Hana boasts faster compilation times and runtime performance on par or better than previous metaprogramming libraries, while noticeably increasing the level of expressiveness in the process. Hana is easy to extend in a ad-hoc manner and it provides out-of-the-box inter-operation with Boost.Fusion, Boost.MPL and the standard library.

+

+Prerequisites and installation

+
+

Hana is a header-only library without external dependencies (not even the rest of Boost). Hence, using Hana in your own project is very easy. Basically, just add the include/ directory to your compiler's header search path and you are done. However, if you want to cleanly install Hana on your system, you have a couple of options. First, you can install Boost 1.61.0 or later, since Hana is included in Boost starting with that release. If you do not want to install all of Boost, it is also possible to install Hana only. To do so, you can download the code from the official GitHub repository and install the library manually by issuing the following commands from the root of the project (requires CMake):

+
1 mkdir build && cd build
2 cmake ..
3 cmake --build . --target install

This will install Hana to the default install-directory for your platform (/usr/local for Unix, C:/Program Files for Windows). If you want to install Hana in a custom location, you can use

+
1 cmake .. -DCMAKE_INSTALL_PREFIX=/custom/install/prefix
Note
    +
  • The manual installation will also install a hana.pc file for use with pkg-config.
  • +
  • Do not install Hana as shown above if you already have an installation of Boost, because the new installation will overwrite the one that comes with Boost.
  • +
+
+

If you use CMake in a project, you can use the provided FindHana.cmake module to setup Hana as an external CMake project. The module also allows installing Hana locally to that project, without needing to install Hana on the system per the above instructions. Finally, if you want to contribute to Hana, you can see how to best setup your environment for development in the README.

+

+Compiler requirements

+

The library relies on a C++14 compiler and standard library, but nothing else is required. Here is a table of the current C++14 compilers/toolchains with comments regarding support for Hana:

+ + + + + + + + + +
Compiler/Toolchain Status
Clang >= 3.5.0 Fully working; tested on each push to GitHub
Xcode >= 6.3 Fully working; tested on each push to GitHub
GCC >= 6.0.0 Fully working; tested on each push to GitHub
+

More specifically, Hana requires a compiler/standard library supporting the following C++14 features (non-exhaustively):

    +
  • Generic lambdas
  • +
  • Generalized constexpr
  • +
  • Variable templates
  • +
  • Automatically deduced return type
  • +
  • All the C++14 type traits from the <type_traits> header
  • +
+

More information for specific platforms is available on the wiki.

+

+Support

+
+

If you have a problem, please review the FAQ and the wiki. Searching the issues for your problem is also a good idea. If that doesn't help, feel free to chat with us in Gitter, or open a new issue. StackOverflow with the boost-hana tag is the preferred place to ask questions on usage. If you are encountering what you think is a bug, please open an issue.

+

+Introduction

+
+

When Boost.MPL first appeared, it provided C++ programmers with a huge relief by abstracting tons of template hackery behind a workable interface. This breakthrough greatly contributed to making C++ template metaprogramming more mainstream, and today the discipline is deeply rooted in many serious projects. Recently, C++11 and C++14 brought many major changes to the language, some of which make metaprogramming much easier, while others drastically widen the design space for libraries. A natural question then arises: is it still desirable to have abstractions for metaprogramming, and if so, which ones? After investigating different options like the MPL11, the answer eventually came by itself in the form of a library; Hana. The key insight to Hana is that the manipulation of types and values are nothing but two sides of the same coin. By unifying both concepts, metaprogramming becomes easier and new exciting possibilities open before us.

+

+C++ computational quadrants

+

But to really understand what is Hana all about, it is essential to understand the different types of computations in C++. We will focus our attention on four different kinds of computations, even though a finer grained separation would be possible. First, we have runtime computations, which are the usual computations we use in C++. In that world, we have runtime containers, runtime functions and runtime algorithms:

+
auto f = [](int i) -> std::string {
return std::to_string(i * i);
};
std::vector<int> ints{1, 2, 3, 4};
std::vector<std::string> strings;
std::transform(ints.begin(), ints.end(), std::back_inserter(strings), f);
assert((strings == std::vector<std::string>{"1", "4", "9", "16"}));

The usual toolbox for programming within this quadrant is the C++ standard library, which provides reusable algorithms and containers operating at runtime. Since C++11, a second kind of computation is possible: constexpr computations. There, we have constexpr containers, constexpr functions and constexpr algorithms:

+
constexpr int factorial(int n) {
return n == 0 ? 1 : n * factorial(n - 1);
}
template <typename T, std::size_t N, typename F>
// ...
}
constexpr std::array<int, 4> ints{{1, 2, 3, 4}};
constexpr std::array<int, 4> facts = transform(ints, factorial);
static_assert(facts == std::array<int, 4>{{1, 2, 6, 24}}, "");
Note
For the above code to actually work, std::array's operator== would have to be marked constexpr, which is not the case (even in C++14).
+

Basically, a constexpr computation is different from a runtime computation in that it is simple enough to be evaluated (interpreted, really) by the compiler. In general, any function that does not perform anything too unfriendly to the compiler's evaluator (like throwing or allocating memory) can be marked constexpr without any further change. This makes constexpr computations very similar to runtime computations, except constexpr computations are more restricted and they gain the ability to be evaluated at compile-time. Unfortunately, there is no commonly used toolbox for constexpr-programming, i.e. there is no widely adopted "standard library" for constexpr programming. However, the Sprout library may be worth checking out for those with some interest in constexpr computations.

+

The third kind of computations are heterogeneous computations. Heterogeneous computations differ from normal computations in that instead of having containers holding homogeneous objects (all objects having the same type), the containers may hold objects with different types. Furthermore, functions in this quadrant of computation are heterogeneous functions, which is a complicated way of talking about template functions. Similarly, we have heterogeneous algorithms that manipulate heterogeneous containers and functions:

+
auto to_string = [](auto t) {
std::stringstream ss;
ss << t;
return ss.str();
};
fusion::vector<int, std::string, float> seq{1, "abc", 3.4f};
fusion::vector<std::string, std::string, std::string>
strings = fusion::transform(seq, to_string);
assert(strings == fusion::make_vector("1"s, "abc"s, "3.4"s));

If manipulating heterogeneous containers seems overly weird to you, just think of it as glorified std::tuple manipulation. In a C++03 world, the go-to library for doing this kind of computation is Boost.Fusion, which provides several data structures and algorithms to manipulate heterogeneous collections of data. The fourth and last quadrant of computation that we'll be considering here is the quadrant of type-level computations. In this quadrant, we have type-level containers, type-level functions (usually called metafunctions) and type-level algorithms. Here, everything operates on types: containers hold types and metafunctions take types as arguments and return types as results.

+
template <typename T>
struct add_const_pointer {
using type = T const*;
};
using types = mpl::vector<int, char, float, void>;
using pointers = mpl::transform<types, add_const_pointer<mpl::_1>>::type;
static_assert(mpl::equal<
pointers,
mpl::vector<int const*, char const*, float const*, void const*>
>::value, "");

The realm of type-level computations has been explored quite extensively, and the de-facto solution for type-level computations in C++03 is a library named Boost.MPL, which provides type-level containers and algorithms. For low-level type transformations, the metafunctions provided by the <type_traits> standard header can also be used since C++11.

+

+What is this library about?

+

So all is good, but what is this library actually about? Now that we have set the table by clarifying the kinds of computations available to us in C++, the answer might strike you as very simple. The purpose of Hana is to merge the 3rd and the 4th quadrants of computation. More specifically, Hana is a (long-winded) constructive proof that heterogeneous computations are strictly more powerful than type-level computations, and that we can therefore express any type-level computation by an equivalent heterogeneous computation. This construction is done in two steps. First, Hana is a fully featured library of heterogeneous algorithms and containers, a bit like a modernized Boost.Fusion. Secondly, Hana provides a way of translating any type-level computation into its equivalent heterogeneous computation and back, which allows the full machinery of heterogeneous computations to be reused for type-level computations without any code duplication. Of course, the biggest advantage of this unification is seen by the user, as you will witness by yourself.

+

+Quick start

+
+

The goal of this section is to introduce the main concepts of the library from a very high level and at a fairly rapid pace; don't worry if you don't understand everything that's about to be thrown at you. However, this tutorial assumes the reader is already at least familiar with basic metaprogramming and the C++14 standard. First, let's include the library:

+
#include <boost/hana.hpp>
namespace hana = boost::hana;

Unless specified otherwise, the documentation assumes the above lines to be present before examples and code snippets. Also note that finer grained headers are provided and will be explained in the Header organization section. For the purpose of the quickstart, let's now include some additional headers and define some lovely animal types that we'll need below:

+
#include <cassert>
#include <iostream>
#include <string>
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };

If you are reading this documentation, chances are you already know std::tuple and std::make_tuple. Hana provides its own tuple and make_tuple:

+
auto animals = hana::make_tuple(Fish{"Nemo"}, Cat{"Garfield"}, Dog{"Snoopy"});

This creates a tuple, which is like an array, except that it can hold elements with different types. Containers that can hold elements with different types such as this are called heterogeneous containers. While the standard library provides very few operations to manipulate std::tuples, Hana provides several operations and algorithms to manipulate its own tuples:

+
using namespace hana::literals;
// Access tuple elements with operator[] instead of std::get.
Cat garfield = animals[1_c];
// Perform high level algorithms on tuples (this is like std::transform)
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
assert(hana::reverse(names) == hana::make_tuple("Snoopy", "Garfield", "Nemo"));
Note
1_c is a C++14 user-defined literal creating a compile-time number. These user-defined literals are contained in the boost::hana::literals namespace, hence the using directive.
+

Notice how we pass a C++14 generic lambda to transform; this is required because the lambda will first be called with a Fish, then a Cat, and finally a Dog, which all have different types. Hana provides most of the algorithms provided by the C++ standard library, except they work on tuples and related heterogeneous containers instead of std::vector & friends. In addition to working with heterogeneous values, Hana makes it possible to perform type-level computations with a natural syntax, all at compile-time and with no overhead whatsoever. This compiles and does just what you would expect:

+
auto animal_types = hana::make_tuple(hana::type_c<Fish*>, hana::type_c<Cat&>, hana::type_c<Dog>);
auto no_pointers = hana::remove_if(animal_types, [](auto a) {
return hana::traits::is_pointer(a);
});
static_assert(no_pointers == hana::make_tuple(hana::type_c<Cat&>, hana::type_c<Dog>), "");
Note
type_c<...> is not a type! It is a C++14 variable template yielding an object representing a type for Hana. This is explained in the section on type computations.
+

In addition to heterogeneous and compile-time sequences, Hana provides several features to make your metaprogramming nightmares a thing of the past. For example, one can check for the existence of a struct member with one easy line instead of relying on clunky SFINAE hacks:

+
auto has_name = hana::is_valid([](auto&& x) -> decltype((void)x.name) { });
static_assert(has_name(garfield), "");
static_assert(!has_name(1), "");

Writing a serialization library? Stop crying, we've got you covered. Reflection can be added to user-defined types very easily. This allows iterating over the members of a user-defined type, querying members with a programmatic interface and much more, without any runtime overhead:

+
// 1. Give introspection capabilities to 'Person'
struct Person {
BOOST_HANA_DEFINE_STRUCT(Person,
(std::string, name),
(int, age)
);
};
// 2. Write a generic serializer (bear with std::ostream for the example)
auto serialize = [](std::ostream& os, auto const& object) {
hana::for_each(hana::members(object), [&](auto member) {
os << member << std::endl;
});
};
// 3. Use it
Person john{"John", 30};
serialize(std::cout, john);
// output:
// John
// 30

That's cool, but I can already hear you complaining about incomprehensible error messages. However, it turns out Hana was built for humans, not professional template metaprogrammers, and this shows. Let's intentionally screw up and see what kind of mess is thrown at us. First, the mistake:

+
auto serialize = [](std::ostream& os, auto const& object) {
hana::for_each(os, [&](auto member) {
// ^^ oopsie daisy!
os << member << std::endl;
});
};

Now, the punishment:

+
error: static_assert failed "hana::for_each(xs, f) requires 'xs' to be Foldable"
static_assert(Foldable<S>::value,
^ ~~~~~~~~~~~~~~~~~~
note: in instantiation of function template specialization
'boost::hana::for_each_t::operator()<
std::__1::basic_ostream<char> &, (lambda at [snip])>' requested here
hana::for_each(os, [&](auto member) {
^
note: in instantiation of function template specialization
'main()::(anonymous class)::operator()<Person>' requested here
serialize(std::cout, john);
^

Not that bad, right? However, since small examples are very good to show off without actually doing something useful, let's examine a real world example.

+

+A real world example

+

In this section our goal will be to implement a kind of switch statement able to process boost::anys. Given a boost::any, the goal is to dispatch to the function associated to the dynamic type of the any:

+
boost::any a = 'x';
std::string r = switch_(a)(
case_<int>([](auto i) { return "int: "s + std::to_string(i); }),
case_<char>([](auto c) { return "char: "s + std::string{c}; }),
default_([] { return "unknown"s; })
);
assert(r == "char: x"s);
Note
In the documentation, we will often use the s suffix on string literals to create std::strings without syntactic overhead. This is a standard-defined C++14 user-defined literal.
+

Since the any holds a char, the second function is called with the char inside it. If the any had held an int instead, the first function would have been called with the int inside it. When the dynamic type of the any does not match any of the covered cases, the default_ function is called instead. Finally, the result of the switch is the result of calling the function associated to the any's dynamic type. The type of that result is inferred to be the common type of the result of all the provided functions:

+
boost::any a = 'x';
auto r = switch_(a)(
case_<int>([](auto) -> int { return 1; }),
case_<char>([](auto) -> long { return 2l; }),
default_([]() -> long long { return 3ll; })
);
// r is inferred to be a long long
static_assert(std::is_same<decltype(r), long long>{}, "");
assert(r == 2ll);

We'll now look at how this utility can be implemented using Hana. The first step is to associate each type to a function. To do so, we represent each case_ as a hana::pair whose first element is a type and whose second element is a function. Furthermore, we (arbitrarily) decide to represent the default_ case as a hana::pair mapping a dummy type to a function:

+
template <typename T>
auto case_ = [](auto f) {
return hana::make_pair(hana::type_c<T>, f);
};
struct default_t;
auto default_ = case_<default_t>;

To provide the interface we showed above, switch_ will have to return a function taking the cases. In other words, switch_(a) must be a function taking any number of cases (which are hana::pairs), and performing the logic to dispatch a to the right function. This can easily be achieved by having switch_ return a C++14 generic lambda:

+
template <typename Any>
auto switch_(Any& a) {
return [&a](auto ...cases_) {
// ...
};
}

However, since parameter packs are not very flexible, we'll put the cases into a tuple so we can manipulate them:

+
template <typename Any>
auto switch_(Any& a) {
return [&a](auto ...cases_) {
auto cases = hana::make_tuple(cases_...);
// ...
};
}

Notice how the auto keyword is used when defining cases; it is often easier to let the compiler deduce the type of the tuple and use make_tuple instead of working out the types manually. The next step is to separate the default case from the rest of the cases. This is where things start to get interesting. To do so, we use Hana's find_if algorithm, which works a bit like std::find_if:

+
template <typename Any>
auto switch_(Any& a) {
return [&a](auto ...cases_) {
auto cases = hana::make_tuple(cases_...);
auto default_ = hana::find_if(cases, [](auto const& c) {
return hana::first(c) == hana::type_c<default_t>;
});
// ...
};
}

find_if takes a tuple and a predicate, and returns the first element of the tuple which satisfies the predicate. The result is returned as a hana::optional, which is very similar to a std::optional, except whether that optional value is empty or not is known at compile-time. If the predicate is not satisfied for any element of the tuple, find_if returns nothing (an empty value). Otherwise, it returns just(x) (a non-empty value), where x is the first element satisfying the predicate. Unlike predicates used in STL algorithms, the predicate used here must be generic because the tuple's elements are heterogeneous. Furthermore, that predicate must return what Hana calls an IntegralConstant, which means that the predicate's result must be known at compile-time. These details are explained in the section on cross-phase algorithms. Inside the predicate, we simply compare the type of the case's first element to type_c<default_t>. If you recall that we were using hana::pairs to encode cases, this simply means that we're finding the default case among all of the provided cases. But what if no default case was provided? We should fail at compile-time, of course!

+
template <typename Any>
auto switch_(Any& a) {
return [&a](auto ...cases_) {
auto cases = hana::make_tuple(cases_...);
auto default_ = hana::find_if(cases, [](auto const& c) {
return hana::first(c) == hana::type_c<default_t>;
});
static_assert(default_ != hana::nothing,
"switch is missing a default_ case");
// ...
};
}

Notice how we can use static_assert on the result of the comparison with nothing, even though default_ is a non-constexpr object? Boldly, Hana makes sure that no information that's known at compile-time is lost to the runtime, which is clearly the case of the presence of a default_ case. The next step is to gather the set of non-default cases. To achieve this, we use the filter algorithm, which keeps only the elements of the sequence satisfying the predicate:

+
template <typename Any>
auto switch_(Any& a) {
return [&a](auto ...cases_) {
auto cases = hana::make_tuple(cases_...);
auto default_ = hana::find_if(cases, [](auto const& c) {
return hana::first(c) == hana::type_c<default_t>;
});
static_assert(default_ != hana::nothing,
"switch is missing a default_ case");
auto rest = hana::filter(cases, [](auto const& c) {
return hana::first(c) != hana::type_c<default_t>;
});
// ...
};
}

The next step is to find the first case matching the dynamic type of the any, and then call the function associated to that case. The simplest way to do this is to use classic recursion with variadic parameter packs. Of course, we could probably intertwine Hana algorithms in a convoluted way to achieve this, but sometimes the best way to do something is to write it from scratch using basic techniques. To do so, we'll call an implementation function with the contents of the rest tuple by using the unpack function:

+
template <typename Any>
auto switch_(Any& a) {
return [&a](auto ...cases_) {
auto cases = hana::make_tuple(cases_...);
auto default_ = hana::find_if(cases, [](auto const& c) {
return hana::first(c) == hana::type_c<default_t>;
});
static_assert(default_ != hana::nothing,
"switch is missing a default_ case");
auto rest = hana::filter(cases, [](auto const& c) {
return hana::first(c) != hana::type_c<default_t>;
});
return hana::unpack(rest, [&](auto& ...rest) {
return process(a, a.type(), hana::second(*default_), rest...);
});
};
}

unpack takes a tuple and a function, and calls the function with the content of the tuple as arguments. The result of unpack is the result of calling that function. In our case, the function is a generic lambda which in turn calls the process function. Our reason for using unpack here was to turn the rest tuple into a parameter pack of arguments, which are easier to process recursively than tuples. Before we move on to the process function, it is worthwhile to explain what second(*default_) is all about. As we explained earlier, default_ is an optional value. Like std::optional, this optional value overloads the dereference operator (and the arrow operator) to allow accessing the value inside the optional. If the optional is empty (nothing), a compile-time error is triggered. Since we know default_ is not empty (we checked that just above), what we're doing is simply pass the function associated to the default case to the process function. We're now ready for the final step, which is the implementation of the process function:

+
template <typename Any, typename Default>
auto process(Any&, std::type_index const&, Default& default_) {
return default_();
}
template <typename Any, typename Default, typename Case, typename ...Rest>
auto process(Any& a, std::type_index const& t, Default& default_,
Case& case_, Rest& ...rest)
{
using T = typename decltype(+hana::first(case_))::type;
return t == typeid(T) ? hana::second(case_)(*boost::unsafe_any_cast<T>(&a))
: process(a, t, default_, rest...);
}

There are two overloads of this function: an overload for when there is at least one case to process, and the base case overload for when there's only the default case. As we would expect, the base case simply calls the default function and returns that result. The other overload is slightly more interesting. First, we retrieve the type associated to that case and store it in T. This decltype(...)::type dance might seem convoluted, but it is actually quite simple. Roughly speaking, this takes a type represented as an object (a type<T>) and pulls it back down to the type level (a T). The details are explained in the section on type-level computations. Then, we compare whether the dynamic type of the any matches this case, and if so we call the function associated to this case with the any casted to the proper type. Otherwise, we simply call process recursively with the rest of the cases. Pretty simple, wasn't it? Here's the final solution:

+
#include <boost/hana.hpp>
#include <boost/any.hpp>
#include <cassert>
#include <string>
#include <typeindex>
#include <typeinfo>
#include <utility>
namespace hana = boost::hana;
//! [cases]
template <typename T>
auto case_ = [](auto f) {
return hana::make_pair(hana::type_c<T>, f);
};
struct default_t;
auto default_ = case_<default_t>;
//! [cases]
//! [process]
template <typename Any, typename Default>
auto process(Any&, std::type_index const&, Default& default_) {
return default_();
}
template <typename Any, typename Default, typename Case, typename ...Rest>
auto process(Any& a, std::type_index const& t, Default& default_,
Case& case_, Rest& ...rest)
{
using T = typename decltype(+hana::first(case_))::type;
return t == typeid(T) ? hana::second(case_)(*boost::unsafe_any_cast<T>(&a))
: process(a, t, default_, rest...);
}
//! [process]
//! [switch_]
template <typename Any>
auto switch_(Any& a) {
return [&a](auto ...cases_) {
auto cases = hana::make_tuple(cases_...);
auto default_ = hana::find_if(cases, [](auto const& c) {
return hana::first(c) == hana::type_c<default_t>;
});
static_assert(default_ != hana::nothing,
"switch is missing a default_ case");
auto rest = hana::filter(cases, [](auto const& c) {
return hana::first(c) != hana::type_c<default_t>;
});
return hana::unpack(rest, [&](auto& ...rest) {
return process(a, a.type(), hana::second(*default_), rest...);
});
};
}
//! [switch_]

That's it for the quick start! This example only introduced a couple of useful algorithms (find_if, filter, unpack) and heterogeneous containers (tuple, optional), but rest assured that there is much more. The next sections of the tutorial gradually introduce general concepts pertaining to Hana in a friendly way, but you may use the following cheatsheet for quick reference if you want to start coding right away. This cheatsheet contains the most frequently used algorithms and containers, along with a short description of what each of them does.

+

+Cheatsheet

+

Remarks

+
    +
  • Most algorithms work on both types and values (see the section on type computations)
  • +
  • Algorithms always return their result as a new container; no in-place mutation is ever performed (see the section on algorithms)
  • +
  • All algorithms are constexpr function objects
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
container description
tuple General purpose index-based heterogeneous sequence with a fixed length. Use this as a std::vector for heterogeneous objects.
optional Represents an optional value, i.e. a value that can be empty. This is a bit like std::optional, except that the emptiness is known at compile-time.
map Unordered associative array mapping (unique) compile-time entities to arbitrary objects. This is like std::unordered_map for heterogeneous objects.
set Unordered container holding unique keys that must be compile-time entities. This is like std::unordered_set for heterogeneous objects.
range Represents an interval of compile-time numbers. This is like std::integer_sequence, but better.
pair Container holding two heterogeneous objects. Like std::pair, but compresses the storage of empty types.
string Compile-time string.
type Container representing a C++ type. This is the root of the unification between types and values, and is of interest for MPL-style computations (type-level computations).
integral_constant Represents a compile-time number. This is very similar to std::integral_constant, except that hana::integral_constant also defines operators and more syntactic sugar.
lazy Encapsulates a lazy value or computation.
basic_tuple Stripped-down version of hana::tuple. Not standards conforming, but more compile-time efficient.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function description
adjust(sequence, value, f) Apply a function to each element of a sequence that compares equal to some value and return the result.
adjust_if(sequence, predicate, f) Apply a function to each element of a sequence satisfying some predicate and return the result.
{all,any,none}(sequence) Returns whether all/any/none of the elements of a sequence are true-valued.
{all,any,none}_of(sequence, predicate) Returns whether all/any/none of the elements of the sequence satisfy some predicate.
append(sequence, value) Append an element to a sequence.
at(sequence, index) Returns the n-th element of a sequence. The index must be an IntegralConstant.
back(sequence) Returns the last element of a non-empty sequence.
concat(sequence1, sequence2) Concatenate two sequences.
contains(sequence, value) Returns whether a sequence contains the given object.
count(sequence, value) Returns the number of elements that compare equal to the given value.
count_if(sequence, predicate) Returns the number of elements that satisfy the predicate.
drop_front(sequence[, n]) Drop the first n elements from a sequence, or the whole sequence if length(sequence) <= n. n must be an IntegralConstant. When not provided, n defaults to 1.
drop_front_exactly(sequence[, n]) Drop the first n elements from a sequence. n must be an IntegralConstant and the sequence must have at least n elements. When not provided, n defaults to 1.
drop_back(sequence[, n]) Drop the last n elements from a sequence, or the whole sequence if length(sequence) <= n. n must be an IntegralConstant. When not provided, n defaults to 1.
drop_while(sequence, predicate) Drops elements from a sequence while a predicate is satisfied. The predicate must return an IntegralConstant.
fill(sequence, value) Replace all the elements of a sequence with some value.
filter(sequence, predicate) Remove all the elements that do not satisfy a predicate. The predicate must return an IntegralConstant.
find(sequence, value) Find the first element of a sequence which compares equal to some value and return just it, or return nothing. See hana::optional.
find_if(sequence, predicate) Find the first element of a sequence satisfying the predicate and return just it, or return nothing. See hana::optional.
flatten(sequence) Flatten a sequence of sequences, a bit like std::tuple_cat.
fold_left(sequence[, state], f) Accumulates the elements of a sequence from the left, optionally with a provided initial state.
fold_right(sequence[, state], f) Accumulates the elements of a sequence from the right, optionally with a provided initial state.
fold(sequence[, state], f) Equivalent to fold_left; provided for consistency with Boost.MPL and Boost.Fusion.
for_each(sequence, f) Call a function on each element of a sequence. Returns void.
front(sequence) Returns the first element of a non-empty sequence.
group(sequence[, predicate]) Group adjacent elements of a sequence which all satisfy (or all do not satisfy) some predicate. The predicate defaults to equality, in which case the elements must be Comparable.
insert(sequence, index, element) Insert an element at a given index. The index must be an IntegralConstant.
insert_range(sequence, index, elements) Insert a sequence of elements at a given index. The index must be an IntegralConstant.
is_empty(sequence) Returns whether a sequence is empty as an IntegralConstant.
length(sequence) Returns the length of a sequence as an IntegralConstant.
lexicographical_compare(sequence1, sequence2[, predicate]) Performs a lexicographical comparison of two sequences, optionally with a custom predicate, by default with hana::less.
maximum(sequence[, predicate]) Returns the greatest element of a sequence, optionally according to a predicate. The elements must be Orderable if no predicate is provided.
minimum(sequence[, predicate]) Returns the smallest element of a sequence, optionally according to a predicate. The elements must be Orderable if no predicate is provided.
partition(sequence, predicate) Partition a sequence into a pair of elements that satisfy some predicate, and elements that do not satisfy it.
prepend(sequence, value) Prepend an element to a sequence.
remove(sequence, value) Remove all the elements that are equal to a given value.
remove_at(sequence, index) Remove the element at the given index. The index must be an IntegralConstant.
remove_if(sequence, predicate) Remove all the elements that satisfy a predicate. The predicate must return an IntegralConstant.
remove_range(sequence, from, to) Remove the elements at indices in the given [from, to) half-open interval. The indices must be IntegralConstants.
replace(sequence, oldval, newval) Replace the elements of a sequence that compare equal to some value by some other value.
replace_if(sequence, predicate, newval) Replace the elements of a sequence that satisfy some predicate by some value.
reverse(sequence) Reverse the order of the elements in a sequence.
reverse_fold(sequence[, state], f) Equivalent to fold_right; provided for consistency with Boost.MPL and Boost.Fusion.
size(sequence) Equivalent to length; provided for consistency with the C++ standard library.
slice(sequence, indices) Returns a new sequence containing the elements at the given indices of the original sequence.
slice_c<from, to>(sequence) Returns a new sequence containing the elements at indices contained in [from, to) of the original sequence.
sort(sequence[, predicate]) Sort (stably) the elements of a sequence, optionally according to a predicate. The elements must be Orderable if no predicate is provided.
take_back(sequence, number) Take the last n elements of a sequence, or the whole sequence if length(sequence) <= n. n must be an IntegralConstant.
take_front(sequence, number) Take the first n elements of a sequence, or the whole sequence if length(sequence) <= n. n must be an IntegralConstant.
take_while(sequence, predicate) Take elements of a sequence while some predicate is satisfied, and return that.
transform(sequence, f) Apply a function to each element of a sequence and return the result.
unique(sequence[, predicate]) Removes all consecutive duplicates from a sequence. The predicate defaults to equality, in which case the elements must be Comparable.
unpack(sequence, f) Calls a function with the contents of a sequence. Equivalent to f(x1, ..., xN).
zip(s1, ..., sN) Zip N sequences into a sequence of tuples. All the sequences must have the same length.
zip_shortest(s1, ..., sN) Zip N sequences into a sequence of tuples. The resulting sequence has the length of the shortest input sequence.
zip_with(f, s1, ..., sN) Zip N sequences with a N-ary function. All the sequences must have the same length.
zip_shortest_with(f, s1, ..., sN) Zip N sequences with a N-ary function. The resulting sequence has the length of the shortest input sequence.
+

+Assertions

+
+

In the rest of this tutorial, you will come across code snippets where different kinds of assertions like BOOST_HANA_RUNTIME_CHECK and BOOST_HANA_CONSTANT_CHECK are used. Like any sensible assert macro, they basically check that the condition they are given is satisfied. However, in the context of heterogeneous programming, some informations are known at compile-time, while others are known only at runtime. The exact type of assertion that's used in a context tells you whether the condition that's asserted upon can be known at compile-time or if it must be computed at runtime, which is a very precious piece of information. Here are the different kinds of assertions used in the tutorial, with a small description of their particularities. For more details, you should check the reference on assertions.

+ + + + + + + + + + + +
assertion description
BOOST_HANA_RUNTIME_CHECK Assertion on a condition that is not known until runtime. This assertion provides the weakest form of guarantee.
BOOST_HANA_CONSTEXPR_CHECK Assertion on a condition that would be constexpr if lambdas were allowed inside constant expressions. In other words, the only reason for it not being a static_assert is the language limitation that lambdas can't appear in constant expressions, which might be lifted in C++17.
static_assert Assertion on a constexpr condition. This is stronger than BOOST_HANA_CONSTEXPR_CHECK in that it requires the condition to be a constant expression, and it hence assures that the algorithms used in the expression are constexpr-friendly.
BOOST_HANA_CONSTANT_CHECK Assertion on a boolean IntegralConstant. This assertion provides the strongest form of guarantee, because an IntegralConstant can be converted to a constexpr value even if it is not constexpr itself.
+

+Compile-time numbers

+
+

This section introduces the important notion of IntegralConstant and the philosophy behind Hana's metaprogramming paradigm. Let's start with a rather odd question. What is an integral_constant?

+
template<class T, T v>
struct integral_constant {
static constexpr T value = v;
typedef T value_type;
typedef integral_constant type;
constexpr operator value_type() const noexcept { return value; }
constexpr value_type operator()() const noexcept { return value; }
};
Note
If this is totally new to you, you might want to take a look at the documentation for std::integral_constant.
+

One valid answer is that integral_constant represents a type-level encoding of a number, or more generally any object of an integral type. For illustration, we could define a successor function on numbers in that representation very easily by using a template alias:

+
template <typename N>
using succ = integral_constant<int, N::value + 1>;
using one = integral_constant<int, 1>;
using two = succ<one>;
using three = succ<two>;
// ...

This is the way integral_constants are usually thought of; as type-level entities that can be used for template metaprogramming. Another way to see an integral_constant is as a runtime object representing a constexpr value of an integral type:

+
auto one = integral_constant<int, 1>{};

Here, while one is not marked as constexpr, the abstract value it holds (a constexpr 1) is still available at compile-time, because that value is encoded in the type of one. Indeed, even if one is not constexpr, we can use decltype to retrieve the compile-time value it represents:

+
auto one = integral_constant<int, 1>{};
constexpr int one_constexpr = decltype(one)::value;

But why on earth would we want to consider integral_constants as objects instead of type-level entities? To see why, consider how we could now implement the same successor function as before:

+
template <typename N>
auto succ(N) {
return integral_constant<int, N::value + 1>{};
}
auto one = integral_constant<int, 1>{};
auto two = succ(one);
auto three = succ(two);
// ...

Did you notice anything new? The difference is that instead of implementing succ at the type-level with a template alias, we're now implementing it at the value-level with a template function. Furthermore, we can now perform compile-time arithmetic using the same syntax as that of normal C++. This way of seeing compile-time entities as objects instead of types is the key to Hana's expressive power.

+

+Compile-time arithmetic

+

The MPL defines arithmetic operators that can be used to do compile-time computations with integral_constants. A typical example of such an operation is plus, which is implemented roughly as:

+
template <typename X, typename Y>
struct plus {
using type = integral_constant<
decltype(X::value + Y::value),
>;
};
using three = plus<integral_constant<int, 1>,
integral_constant<int, 2>>::type;

By viewing integral_constants as objects instead of types, the translation from a metafunction to a function is very straightforward:

+
template <typename V, V v, typename U, U u>
constexpr auto
operator+(integral_constant<V, v>, integral_constant<U, u>)
{ return integral_constant<decltype(v + u), v + u>{}; }
auto three = integral_constant<int, 1>{} + integral_constant<int, 2>{};

It is very important to emphasize the fact that this operator does not return a normal integer. Instead, it returns a value-initialized object whose type contains the result of the addition. The only useful information contained in that object is actually in its type, and we're creating an object because it allows us to use this nice value-level syntax. It turns out that we can make this syntax even better by using a C++14 variable template to simplify the creation of an integral_constant:

+
template <int i>
constexpr integral_constant<int, i> int_c{};
auto three = int_c<1> + int_c<2>;

Now we're talking about a visible gain in expressiveness over the initial type-level approach, aren't we? But there's more; we can also use C++14 user defined literals to make this process even simpler:

+
template <char ...digits>
constexpr auto operator"" _c() {
// parse the digits and return an integral_constant
}
auto three = 1_c + 3_c;

Hana provides its own integral_constants, which define arithmetic operators just like we showed above. Hana also provides variable templates to easily create different kinds of integral_constants: int_c, long_c, bool_c, etc... This allows you to omit the trailing {} braces otherwise required to value-initialize these objects. Of course, the _c suffix is also provided; it is part of the hana::literals namespace, and you must import it into your namespace before using it:

+
using namespace hana::literals;
auto three = 1_c + 3_c;

This way, you may do compile-time arithmetic without having to struggle with awkward type-level idiosyncrasies, and your coworkers will now be able to understand what's going on.

+

+Example: Euclidean distance

+

To illustrate how good it gets, let's implement a function computing a 2-D euclidean distance at compile-time. As a reminder, the euclidean distance of two points in the 2-D plane is given by

+

+\[ \mathrm{distance}\left((x_1, y_1), (x_2, y_2)\right) := \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2} \] +

+

First, here's how it looks like with a type-level approach (using the MPL):

+
template <typename P1, typename P2>
struct distance {
using xs = typename mpl::minus<typename P1::x,
typename P2::x>::type;
using ys = typename mpl::minus<typename P1::y,
typename P2::y>::type;
using type = typename sqrt<
typename mpl::plus<
typename mpl::multiplies<xs, xs>::type,
typename mpl::multiplies<ys, ys>::type
>::type
>::type;
};
static_assert(mpl::equal_to<
distance<point<mpl::int_<3>, mpl::int_<5>>,
point<mpl::int_<7>, mpl::int_<2>>>::type,
mpl::int_<5>
>::value, "");

Yeah... Now, let's implement it with the value-level approach presented above:

+
template <typename P1, typename P2>
constexpr auto distance(P1 p1, P2 p2) {
auto xs = p1.x - p2.x;
auto ys = p1.y - p2.y;
return sqrt(xs*xs + ys*ys);
}
BOOST_HANA_CONSTANT_CHECK(distance(point(3_c, 5_c), point(7_c, 2_c)) == 5_c);

This version looks arguably cleaner. However, this is not all. Notice how the distance function looks exactly as the one you would have written for computing the euclidean distance on dynamic values? Indeed, because we're using the same syntax for dynamic and compile-time arithmetic, generic functions written for one will work for both!

+
auto p1 = point(3, 5); // dynamic values now
auto p2 = point(7, 2); //
BOOST_HANA_RUNTIME_CHECK(distance(p1, p2) == 5); // same function works!

Without changing any code, we can use our distance function on runtime values and everything just works. Now that's DRY.

+

+Compile-time branching

+

Once we have compile-time arithmetic, the next thing that might come to mind is compile-time branching. When metaprogramming, it is often useful to have one piece of code be compiled if some condition is true, and a different one otherwise. If you have heard of static_if, this should sound very familiar, and indeed it is exactly what we are talking about. Otherwise, if you don't know why we might want to branch at compile-time, consider the following code (adapted from N4461):

+
template <typename T, typename ...Args>
std::enable_if_t<std::is_constructible<T, Args...>::value,
std::unique_ptr<T>> make_unique(Args&&... args) {
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
}
template <typename T, typename ...Args>
std::enable_if_t<!std::is_constructible<T, Args...>::value,
std::unique_ptr<T>> make_unique(Args&&... args) {
return std::unique_ptr<T>(new T{std::forward<Args>(args)...});
}

This code creates a std::unique_ptr using the correct form of syntax for the constructor. To achieve this, it uses SFINAE and requires two different overloads. Now, anyone sane seeing this for the first time would ask why it is not possible to simply write:

+
template <typename T, typename ...Args>
std::unique_ptr<T> make_unique(Args&&... args) {
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
else
return std::unique_ptr<T>(new T{std::forward<Args>(args)...});
}

The reason is that the compiler is required to compile both branches of the if statement, regardless of the condition (even though it is known at compile-time). But when T is not constructible from Args..., the second branch will fail to compile, which will cause a hard compilation error. What we need really is a way to tell the compiler not to compile the second branch when the condition is true, and the first branch when the condition is false.

+

To emulate this, Hana provides an if_ function that works a bit like a normal if statement, except except it takes a condition that can be an IntegralConstant and returns the one of two values (which may have different types) chosen by the condition. If the condition is true, the first value is returned, and otherwise the second value is returned. A somewhat vain example is the following:

+
auto one_two_three = hana::if_(hana::true_c, 123, "hello");
auto hello = hana::if_(hana::false_c, 123, "hello");
Note
hana::true_c and hana::false_c are just boolean IntegralConstants representing a compile-time true value and a compile-time false value, respectively.
+

Here, one_two_three is equal to 123, and hello is equal to "hello". In other words, if_ is a little bit like the ternary conditional operator ? :, except that both sides of the : can have different types:

+
// fails in both cases because both branches have incompatible types
auto one_two_three = hana::true_c ? 123 : "hello";
auto hello = hana::false_c ? 123 : "hello";

Ok, so this is neat, but how can it actually help us write complete branches that are lazily instantiated by the compiler? The answer is to represent both branches of the if statement we'd like to write as generic lambdas, and to use hana::if_ to return the branch that we'd like to execute. Here's how we could rewrite make_unique:

+
template <typename T, typename ...Args>
std::unique_ptr<T> make_unique(Args&&... args) {
return hana::if_(std::is_constructible<T, Args...>{},
[](auto&& ...x) { return std::unique_ptr<T>(new T(std::forward<Args>(x)...)); },
[](auto&& ...x) { return std::unique_ptr<T>(new T{std::forward<Args>(x)...}); }
)(std::forward<Args>(args)...);
}

Here, the first value given to hana::if_ is a generic lambda representing the branch we want to execute if the condition is true, and the second value is the branch we want to execute otherwise. hana::if_ simply returns the branch chosen by the condition, and we call that branch (which is a generic lambda) immediately with std::forward<Args>(args).... Hence, the proper generic lambda ends up being called, with x... being args..., and we return the result of that call.

+

The reason why this approach works is because the body of each branch can only be instantiated when the types of all x... are known. Indeed, since the branch is a generic lambda, the type of the argument is not known until the lambda is called, and the compiler must wait for the types of x... to be known before type-checking the lambda's body. Since the erroneous lambda is never called when the condition is not satisfied (hana::if_ takes care of that), the body of the lambda that would fail is never type-checked and no compilation error happens.

+
Note
The branches inside the if_ are lambdas. As such, they really are different functions from the make_unique function. The variables appearing inside those branches have to be either captured by the lambdas or passed to them as arguments, and so they are affected by the way they are captured or passed (by value, by reference, etc..).
+

Since this pattern of expressing branches as lambdas and then calling them is very common, Hana provides a eval_if function whose purpose is to make compile-time branching easier. eval_if comes from the fact that in a lambda, one can either receive input data as arguments or capture it from the context. However, for the purpose of emulating a language level if statement, implicitly capturing variables from the enclosing scope is usually more natural. Hence, what we would prefer writing is

+
template <typename T, typename ...Args>
std::unique_ptr<T> make_unique(Args&&... args) {
return hana::if_(std::is_constructible<T, Args...>{},
[&] { return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); },
[&] { return std::unique_ptr<T>(new T{std::forward<Args>(args)...}); }
);
}

Here, we're capturing the args... variables from the enclosing scope, which prevents us from having to introduce the new x... variables and passing them as arguments to the branches. However, this has two problems. First, this will not achieve the right result, since hana::if_ will end up returning a lambda instead of returning the result of calling that lambda. To fix this, we can use hana::eval_if instead of hana::if_:

+
template <typename T, typename ...Args>
std::unique_ptr<T> make_unique(Args&&... args) {
return hana::eval_if(std::is_constructible<T, Args...>{},
[&] { return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); },
[&] { return std::unique_ptr<T>(new T{std::forward<Args>(args)...}); }
);
}

Here, we capture the enclosing args... by reference using [&], and we do not need to receive any arguments. Also, hana::eval_if assumes that its arguments are branches that can be called, and it will take care of calling the branch that is selected by the condition. However, this will still cause a compilation failure, because the bodies of the lambdas are not dependent anymore, and semantic analysis will be done for both branches even though only one would end up being used. The solution to this problem is to make the bodies of the lambdas artificially dependent on something, to prevent the compiler from being able to perform semantic analysis before the lambda is actually used. To make this possible, hana::eval_if will call the selected branch with an identity function (a function that returns its argument unchanged), if the branch accepts such an argument:

+
template <typename T, typename ...Args>
std::unique_ptr<T> make_unique(Args&&... args) {
return hana::eval_if(std::is_constructible<T, Args...>{},
[&](auto _) { return std::unique_ptr<T>(new T(std::forward<Args>(_(args))...)); },
[&](auto _) { return std::unique_ptr<T>(new T{std::forward<Args>(_(args))...}); }
);
}

Here, the bodies of the branches take an additional argument called _ by convention. This argument will be provided by hana::eval_if to the branch that was selected. Then, we use _ as a function on the variables that we want to make dependent within the body of each branch. What happens is that _ will always be a function that returns its argument unchanged. However, the compiler can't possibly know it before the lambda has actually been called, so it can't know the type of _(args). This prevents the compiler from being able to perform semantic analysis, and no compilation error happens. Plus, since _(x) is guaranteed to be equivalent to x, we know that we're not actually changing the semantics of the branches by using this trick.

+

While using this trick may seem cumbersome, it can be very useful when dealing with many variables inside a branch. Furthermore, it is not required to wrap all variables with _; only variables that are involved in an expression whose type-checking has to be delayed must be wrapped, but the other ones are not required. There are still a few things to know about compile-time branching in Hana, but you can dig deeper by looking at the reference for hana::eval_if, hana::if_ and hana::lazy.

+

+Why stop here?

+

Why should we limit ourselves to arithmetic operations and branching? When you start considering IntegralConstants as objects, it becomes sensible to augment their interface with more functions that are generally useful. For example, Hana's IntegralConstants define a times member function that can be used to invoke a function a certain number of times, which is especially useful for loop unrolling:

+
__attribute__((noinline)) void f() { }
int main() {
hana::int_c<10>.times(f);
}

In the above code, the 10 calls to f are expanded at compile-time. In other words, this is equivalent to writing

+
f(); f(); ... f(); // 10 times
Note
Always be careful about manually unrolling loops or doing other such optimizations manually. In most cases, your compiler is probably better than you at optimizing. When in doubt, benchmark.
+

Another nice use of IntegralConstants is to define good-looking operators for indexing heterogeneous sequences. Whereas std::tuple must be accessed with std::get, hana::tuple can be accessed using the familiar operator[] used for standard library containers:

+
auto values = hana::make_tuple(1, 'x', 3.4f);
char x = values[1_c];

How this works is very simple. Basically, hana::tuple defines an operator[] taking an IntegralConstant instead of a normal integer, in a way similar to

+
template <typename N>
constexpr decltype(auto) operator[](N const&) {
return std::get<N::value>(*this);
}

This is the end of the section on IntegralConstants. This section introduced the feel behind Hana's new way of metaprogramming; if you liked what you've seen so far, the rest of this tutorial should feel just like home.

+

+Type computations

+
+

At this point, if you are interested in doing type-level computations as with the MPL, you might be wondering how is Hana going to help you. Do not despair. Hana provides a way to perform type-level computations with a great deal of expressiveness by representing types as values, just like we represented compile-time numbers as values. This is a completely new way of approaching metaprogramming, and you should try to set your old MPL habits aside for a bit if you want to become proficient with Hana.

+

However, please be aware that modern C++ features like auto-deduced return type remove the need for type computations in many cases. Hence, before even considering to do a type computation, you should ask yourself whether there's a simpler way to achieve what you're trying to achieve. In most cases, the answer will be yes. However, when the answer is no, Hana will provide you with nuclear-strength facilities to do what needs to be done.

+

+Types as objects

+

The key behind Hana's approach to type-level computations is essentially the same as the approach to compile-time arithmetic. Basically, the idea is to represent compile-time entities as objects by wrapping them into some kind of container. For IntegralConstants, the compile-time entities were constant expressions of an integral type and the wrapper we used was integral_constant. In this section, the compile-time entities will be types and the wrapper we'll be using is called type. Just like we did for IntegralConstants, let's start by defining a dummy template that could be used to represent a type:

+
template <typename T>
struct basic_type {
// empty (for now)
};
basic_type<int> Int{};
basic_type<char> Char{};
// ...
Note
We're using the name basic_type here because we're only building a naive version of the actual functionality provided by Hana.
+

While this may seem completely useless, it is actually enough to start writing metafunctions that look like functions. Indeed, consider the following alternate implementations of std::add_pointer and std::is_pointer:

+
template <typename T>
constexpr basic_type<T*> add_pointer(basic_type<T> const&)
{ return {}; }
template <typename T>
constexpr auto is_pointer(basic_type<T> const&)
{ return hana::bool_c<false>; }
template <typename T>
constexpr auto is_pointer(basic_type<T*> const&)
{ return hana::bool_c<true>; }

We've just written metafunctions that look like functions, just like we wrote compile-time arithmetic metafunctions as heterogeneous C++ operators in the previous section. Here's how we can use them:

+
basic_type<int> t{};
auto p = add_pointer(t);

Notice how we can now use a normal function call syntax to perform type-level computations? This is analogous to how using values for compile-time numbers allowed us to use normal C++ operators to perform compile-time computations. Like we did for integral_constant, we can also go one step further and use C++14 variable templates to provide syntactic sugar for creating types:

+
template <typename T>
constexpr basic_type<T> type_c{};
auto t = type_c<int>;
auto p = add_pointer(t);
Note
This is not exactly how the hana::type_c variable template is implemented because of some subtleties; things were dumbed down here for the sake of the explanation. Please check the reference for hana::type to know exactly what you can expect from a hana::type_c<...>.
+

+Benefits of this representation

+

But what does that buy us? Well, since a type_c<...> is just an object, we can store it in a heterogeneous sequence like a tuple, we can move it around and pass it to (or return it from) functions, and we can do basically anything else that requires an object:

+
auto types = hana::make_tuple(hana::type_c<int*>, hana::type_c<char&>, hana::type_c<void>);
auto char_ref = types[1_c];
BOOST_HANA_CONSTANT_CHECK(char_ref == hana::type_c<char&>);
Note
Writing make_tuple(type_c<T>...) can be annoying when there are several types. For this reason, Hana provides the tuple_t<T...> variable template, which is syntactic sugar for make_tuple(type_c<T>...).
+

Also, notice that since the above tuple is really just a normal heterogeneous sequence, we can apply heterogeneous algorithms on that sequence just like we could on a tuple of ints, for example. Furthermore, since we're just manipulating objects, we can now use the full language instead of just the small subset available at the type-level. For example, consider the task of removing all the types that are not a reference or a pointer from a sequence of types. With the MPL, we would have to use a placeholder expression to express the predicate, which is clunky:

+
using types = mpl::vector<int, char&, void*>;
using ts = mpl::copy_if<types, mpl::or_<std::is_pointer<mpl::_1>,
std::is_reference<mpl::_1>>>::type;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// placeholder expression
static_assert(mpl::equal<ts, mpl::vector<char&, void*>>::value, "");

Now, since we're manipulating objects, we can use the full language and use a generic lambda instead, which leads to much more readable code:

+
auto types = hana::tuple_t<int*, char&, void>;
auto ts = hana::filter(types, [](auto t) {
return is_pointer(t) || is_reference(t);
});
BOOST_HANA_CONSTANT_CHECK(ts == hana::tuple_t<int*, char&>);

Since Hana handles all heterogeneous containers uniformly, this approach of representing types as values also has the benefit that a single library is now needed for both heterogeneous computations and type level computations. Indeed, whereas we would normally need two different libraries to perform almost identical tasks, we now need a single library. Again, consider the task of filtering a sequence with a predicate. With MPL and Fusion, this is what we must do:

+
// types (MPL)
using types = mpl::vector<int*, char&, void>;
using ts = mpl::copy_if<types, mpl::or_<std::is_pointer<mpl::_1>,
std::is_reference<mpl::_1>>>::type;
// values (Fusion)
auto values = fusion::make_vector(1, 'c', nullptr, 3.5);
auto vs = fusion::filter_if<std::is_integral<mpl::_1>>(values);

With Hana, a single library is required. Notice how we use the same filter algorithm and the same container, and only tweak the predicate so it can operate on values:

+
// types
auto types = hana::tuple_t<int*, char&, void>;
auto ts = hana::filter(types, [](auto t) {
return is_pointer(t) || is_reference(t);
});
// values
auto values = hana::make_tuple(1, 'c', nullptr, 3.5);
auto vs = hana::filter(values, [](auto const& t) {
return is_integral(hana::typeid_(t));
});

But that is not all. Indeed, having a unified syntax for type-level and value-level computations allows us to achieve greater consistency in the interface of heterogeneous containers. For example, consider the simple task of creating a heterogeneous map associating types to values, and then accessing an element of it. With Fusion, what's happening is far from obvious to the untrained eye:

+
auto map = fusion::make_map<char, int, long, float, double, void>(
"char", "int", "long", "float", "double", "void"
);
std::string Int = fusion::at_key<int>(map);

However, with a unified syntax for types and values, the same thing becomes much clearer:

+
auto map = hana::make_map(
hana::make_pair(hana::type_c<char>, "char"),
hana::make_pair(hana::type_c<int>, "int"),
hana::make_pair(hana::type_c<long>, "long"),
hana::make_pair(hana::type_c<float>, "float"),
hana::make_pair(hana::type_c<double>, "double")
);
std::string Int = map[hana::type_c<int>];

While Hana's way takes more lines of codes, it is also arguably more readable and closer to how someone would expect to initialize a map.

+

+Working with this representation

+

So far, we can represent types as values and perform type-level computations on those objects using the usual C++ syntax. This is nice, but it is not very useful because we have no way to get back a normal C++ type from an object representation. For example, how could we declare a variable whose type is the result of a type computation?

+
auto t = add_pointer(hana::type_c<int>); // could be a complex type computation
using T = the-type-represented-by-t;
T var = ...;

Right now, there is no easy way to do it. To make this easier to achieve, we enrich the interface of the basic_type container that we defined above. Instead of being an empty struct, we now define it as

+
template <typename T>
struct basic_type {
using type = T;
};
Note
This is equivalent to making basic_type a metafunction in the MPL sense.
+

This way, we can use decltype to easily access the actual C++ type represented by a type_c<...> object:

+
auto t = add_pointer(hana::type_c<int>);
using T = decltype(t)::type; // fetches basic_type<T>::type
T var = ...;

In general, doing type-level metaprogramming with Hana is a three step process:

+
    +
  1. Represent types as objects by wrapping them with hana::type_c<...>
  2. +
  3. Perform type transformations with value syntax
  4. +
  5. Unwrap the result with decltype(...)::type
  6. +
+

Now, you must be thinking that this is incredibly cumbersome. In reality, it is very manageable for several reasons. First, this wrapping and unwrapping only needs to happen at some very thin boundaries.

+
auto t = hana::type_c<T>;
auto result = huge_type_computation(t);
using Result = decltype(result)::type;

Furthermore, since you get the advantage of working with objects (without having to wrap/unwrap) inside the computation, the cost of wrapping and unwrapping is amortized on the whole computation. Hence, for complex type computations, the syntactic noise of this three step process quickly becomes negligible in light of the expressiveness gain of working with values inside that computation. Also, using values instead of types means that we can avoid typing typename and template all around the place, which accounted for a lot of syntactic noise in classic metaprogramming.

+

Another point is that the three full steps are not always required. Indeed, sometimes one just needs to do a type-level computation and query something about the result, without necessarily fetching the result as a normal C++ type:

+
auto t = hana::type_c<T>;
auto result = type_computation(t);
BOOST_HANA_CONSTANT_CHECK(is_pointer(result)); // third step skipped

In this case, we were able to skip the third step because we did not need to access the actual type represented by result. In other cases, the first step can be avoided, like when using tuple_t, which has no more syntactic noise than any other pure type-level approach:

+
auto types = hana::tuple_t<int*, char&, void>; // first step skipped
auto pointers = hana::transform(types, [](auto t) {
return add_pointer(t);
});

For skeptical readers, let's consider the task of finding the smallest type in a sequence of types. This is a very good example of a short type-only computation, which is where we would expect the new paradigm to suffer the most. As you will see, things stay manageable even for small computations. First, let's implement it with the MPL:

+
template <typename ...T>
struct smallest
: mpl::deref<
typename mpl::min_element<
mpl::vector<T...>,
mpl::less<mpl::sizeof_<mpl::_1>, mpl::sizeof_<mpl::_2>>
>::type
>
{ };
template <typename ...T>
using smallest_t = typename smallest<T...>::type;
static_assert(std::is_same<
smallest_t<char, long, long double>,
char
>::value, "");

The result is quite readable (for anyone familiar with the MPL). Let's now implement the same thing using Hana:

+
template <typename ...T>
auto smallest = hana::minimum(hana::make_tuple(hana::type_c<T>...), [](auto t, auto u) {
return hana::sizeof_(t) < hana::sizeof_(u);
});
template <typename ...T>
using smallest_t = typename decltype(smallest<T...>)::type;
static_assert(std::is_same<
smallest_t<char, long, long double>, char
>::value, "");

As you can witness, the syntactic noise of the 3-step process is almost completely hidden by the rest of the computation.

+

+The generic lifting process

+

The first type-level computation that we introduced in the form of a function looked like:

+
template <typename T>
constexpr auto add_pointer(hana::basic_type<T> const&) {
return hana::type<T*>;
}

While it looks more complicated, we could also write it as:

+
template <typename T>
constexpr auto add_pointer(hana::basic_type<T> const&) {
return hana::type_c<typename std::add_pointer<T>::type>;
}

However, this implementation emphasizes the fact that we're really emulating an existing metafunction and simply representing it as a function. In other words, we're lifting a metafunction (std::add_pointer) to the world of values by creating our own add_pointer function. It turns out that this lifting process is a generic one. Indeed, given any metafunction, we could write almost the same thing:

+
template <typename T>
constexpr auto add_const(hana::basic_type<T> const&)
{ return hana::type_c<typename std::add_const<T>::type>; }
template <typename T>
constexpr auto add_volatile(hana::basic_type<T> const&)
{ return hana::type_c<typename std::add_volatile<T>::type>; }
template <typename T>
constexpr auto add_lvalue_reference(hana::basic_type<T> const&)
{ return hana::type_c<typename std::add_lvalue_reference<T>::type>; }
// etc...

This mechanical transformation is easy to abstract into a generic lifter that can handle any MPL Metafunction as follows:

+
template <template <typename> class F, typename T>
constexpr auto metafunction(hana::basic_type<T> const&)
{ return hana::type_c<typename F<T>::type>; }
auto t = hana::type_c<int>;
BOOST_HANA_CONSTANT_CHECK(metafunction<std::add_pointer>(t) == hana::type_c<int*>);

More generally, we'll want to allow metafunctions with any number of arguments, which brings us to the following less naive implementation:

+
template <template <typename ...> class F, typename ...T>
constexpr auto metafunction(hana::basic_type<T> const& ...)
{ return hana::type_c<typename F<T...>::type>; }
metafunction<std::common_type>(hana::type_c<int>, hana::type_c<long>) == hana::type_c<long>
);

Hana provides a similar generic metafunction lifter called hana::metafunction. One small improvement is that hana::metafunction<F> is a function object instead of an overloaded function, so one can pass it to higher-order algorithms. It is also a model of the slightly more powerful concept of Metafunction, but this can safely be ignored for now. The process we explored in this section does not only apply to metafunctions; it also applies to templates. Indeed, we could define:

+
template <template <typename ...> class F, typename ...T>
constexpr auto template_(hana::basic_type<T> const& ...)
{ return hana::type_c<F<T...>>; }
template_<std::vector>(hana::type_c<int>) == hana::type_c<std::vector<int>>
);

Hana provides a generic lifter for templates named hana::template_, and it also provides a generic lifter for MPL MetafunctionClasses named hana::metafunction_class. This gives us a way to uniformly represent "legacy" type-level computations as functions, so that any code written using a classic type-level metaprogramming library can almost trivially be used with Hana. For example, say you have a large chunk of MPL-based code and you'd like to interface with Hana. The process of doing so is no harder than wrapping your metafunctions with the lifter provided by Hana:

+
template <typename T>
struct legacy {
using type = ...; // something you really don't want to mess with
};
auto types = hana::make_tuple(...);
auto use = hana::transform(types, hana::metafunction<legacy>);

However, note that not all type-level computations can be lifted as-is with the tools provided by Hana. For example, std::extent can't be lifted because it requires non-type template parameters. Since there is no way to deal with non-type template parameters uniformly in C++, one must resort to using a hand-written function object specific to that type-level computation:

+
auto extent = [](auto t, auto n) {
return std::extent<typename decltype(t)::type, hana::value(n)>{};
};
BOOST_HANA_CONSTANT_CHECK(extent(hana::type_c<char>, hana::int_c<1>) == hana::size_c<0>);
BOOST_HANA_CONSTANT_CHECK(extent(hana::type_c<char[1][2]>, hana::int_c<1>) == hana::size_c<2>);
Note
Do not forget to include the bridge header for std::integral_constants (<boost/hana/ext/std/integral_constant.hpp>) when using type traits from <type_traits> directly.
+

In practice, however, this should not be a problem since the vast majority of type-level computations can be lifted easily. Finally, since metafunctions provided by the <type_traits> header are used so frequently, Hana provides a lifted version for every one of them. Those lifted traits are in the hana::traits namespace, and they live in the <boost/hana/traits.hpp> header:

+
BOOST_HANA_CONSTANT_CHECK(hana::traits::add_pointer(hana::type_c<int>) == hana::type_c<int*>);
BOOST_HANA_CONSTANT_CHECK(hana::traits::common_type(hana::type_c<int>, hana::type_c<long>) == hana::type_c<long>);
BOOST_HANA_CONSTANT_CHECK(hana::traits::is_integral(hana::type_c<int>));
auto types = hana::tuple_t<int, char, long>;
BOOST_HANA_CONSTANT_CHECK(hana::all_of(types, hana::traits::is_integral));

This is the end of the section on type computations. While this new paradigm for type level programming might be difficult to grok at first, it will make more sense as you use it more and more. You will also come to appreciate how it blurs the line between types and values, opening new exciting possibilities and simplifying many tasks.

+
Note
Curious or skeptical readers should consider checking the minimal reimplementation of the MPL presented in the appendices.
+

+Introspection

+
+

Static introspection, as we will discuss it here, is the ability of a program to examine the type of an object at compile-time. In other words, it is a programmatic interface to interact with types at compile-time. For example, have you ever wanted to check whether some unknown type has a member named foo? Or perhaps at some point you have needed to iterate on the members of a struct?

+
struct Person {
std::string name;
int age;
};
Person john{"John", 30};
for (auto& member : john)
std::cout << member.name << ": " << member.value << std::endl;
// name: John
// age: 30

If you have written a bit of templates in your life, chances are very high that you came across the first problem of checking for a member. Also, anyone having tried to implement object serialization or even just pretty printing has come across the second problem. In most dynamic languages like Python, Ruby or JavaScript, these problems are completely solved and introspection is used every day by programmers to make a lot of tasks simpler. However, as a C++ programmer, we do not have language support for those things, which makes several tasks much harder than they should be. While language support would likely be needed to properly tackle this problem, Hana makes some common introspection patterns much more accessible.

+

+Checking expression validity

+

Given an object of an unknown type, it is sometimes desirable to check whether this object has a member (or member function) with some name. This can be used to perform sophisticated flavors of overloading. For example, consider the problem of calling a toString method on objects that support it, but providing another default implementation for objects that do not support it:

+
template <typename T>
std::string optionalToString(T const& obj) {
if (obj.toString() is a valid expression)
return obj.toString();
else
return "toString not defined";
}
Note
While most use cases for this technique will be addressed by concepts lite in future revisions of the standard, there will still be cases where a quick and dirty check is more convenient than creating a full blown concept.
+

How could we implement a check for the validity of obj.toString() as above in a generic fashion (so it can be reused in other functions, for example)? Normally, we would be stuck writing some kind of SFINAE-based detection:

+
template <typename T, typename = void>
struct has_toString
: std::false_type
{ };
template <typename T>
struct has_toString<T, decltype((void)std::declval<T>().toString())>
: std::true_type
{ };

This works, but the intent is not very clear and most people without a deep knowledge of template metaprogramming would think this is black magic. Then, we could implement optionalToString as

+
template <typename T>
std::string optionalToString(T const& obj) {
return obj.toString();
else
return "toString not defined";
}
Note
Of course, this implementation won't actually work because both branches of the if statement will be compiled. If obj does not have a toString method, the compilation of the if branch will fail. We will address this issue in a moment.
+

Instead of the above SFINAE trick, Hana provides a is_valid function that can be combined with C++14 generic lambdas to obtain a much cleaner implementation of the same thing:

+
auto has_toString = hana::is_valid([](auto&& obj) -> decltype(obj.toString()) { });

This leaves us with a function object has_toString which returns whether the given expression is valid on the argument we pass to it. The result is returned as an IntegralConstant, so constexpr-ness is not an issue here because the result of the function is represented as a type anyway. Now, in addition to being less verbose (that's a one liner!), the intent is much clearer. Other benefits are the fact that has_toString can be passed to higher order algorithms and it can also be defined at function scope, so there is no need to pollute the namespace scope with implementation details. Here is how we would now write optionalToString:

+
template <typename T>
std::string optionalToString(T const& obj) {
if (has_toString(obj))
return obj.toString();
else
return "toString not defined";
}

Much cleaner, right? However, as we said earlier, this implementation won't actually work because both branches of the if always have to be compiled, regardless of whether obj has a toString method. There are several possible options, but the most classical one is to use std::enable_if:

+
template <typename T>
auto optionalToString(T const& obj)
-> std::enable_if_t<decltype(has_toString(obj))::value, std::string>
{ return obj.toString(); }
template <typename T>
auto optionalToString(T const& obj)
-> std::enable_if_t<decltype(!has_toString(obj))::value, std::string>
{ return "toString not defined"; }
Note
We're using the fact that has_toString returns an IntegralConstant to write decltype(...)::value, which is a constant expression. For some reason, has_toString(obj) is not considered a constant expression, even though I think it should be one because we never read from obj (see the section on advanced constexpr).
+

While this implementation is perfectly valid, it is still pretty cumbersome because it requires writing two different functions and going through the hoops of SFINAE explicitly by using std::enable_if. However, as you might remember from the section on compile-time branching, Hana provides an if_ function that can be used to emulate the functionality of static_if. Here is how we could write optionalToString with hana::if_:

+
template <typename T>
std::string optionalToString(T const& obj) {
return hana::if_(has_toString(obj),
[](auto& x) { return x.toString(); },
[](auto& x) { return "toString not defined"; }
)(obj);
}

Now, the previous example covered only the specific case of checking for the presence of a non-static member function. However, is_valid can be used to detect the validity of almost any kind of expression. For completeness, we now present a list of common use cases for validity checking along with how to use is_valid to implement them.

+

+Non-static members

+

The first idiom we'll look at is checking for the presence of a non-static member. We can do it in a similar way as we did for the previous example:

+
auto has_member = hana::is_valid([](auto&& x) -> decltype((void)x.member) { });
struct Foo { int member[4]; };
struct Bar { };
BOOST_HANA_CONSTANT_CHECK(has_member(Foo{}));
BOOST_HANA_CONSTANT_CHECK(!has_member(Bar{}));

Notice how we cast the result of x.member to void? This is to make sure that our detection also works for types that can't be returned from functions, like array types. Also, it is important to use a reference as the parameter to our generic lambda, because that would otherwise require x to be CopyConstructible, which is not what we're trying to check. This approach is simple and the most convenient when an object is available. However, when the checker is intended to be used with no object around, the following alternate implementation can be better suited:

+
auto has_member = hana::is_valid([](auto t) -> decltype(
(void)hana::traits::declval(t).member
) { });
struct Foo { int member[4]; };
struct Bar { };
BOOST_HANA_CONSTANT_CHECK(has_member(hana::type_c<Foo>));
BOOST_HANA_CONSTANT_CHECK(!has_member(hana::type_c<Bar>));

This validity checker is different from what we saw earlier because the generic lambda is not expecting an usual object anymore; it is now expecting a type (which is an object, but still represents a type). We then use the hana::traits::declval lifted metafunction from the <boost/hana/traits.hpp> header to create an rvalue of the type represented by t, which we can then use to check for a non-static member. Finally, instead of passing an actual object to has_member (like Foo{} or Bar{}), we now pass a type_c<...>. This implementation is ideal for when no object is lying around.

+

+Static members

+

Checking for a static member is easy, and it is provided for completeness:

+
auto has_member = hana::is_valid([](auto t) -> decltype(
(void)decltype(t)::type::member
) { });
struct Foo { static int member[4]; };
struct Bar { };
BOOST_HANA_CONSTANT_CHECK(has_member(hana::type_c<Foo>));
BOOST_HANA_CONSTANT_CHECK(!has_member(hana::type_c<Bar>));

Again, we expect a type to be passed to the checker. Inside the generic lambda, we use decltype(t)::type to fetch the actual C++ type represented by the t object, as explained in the section on type computations. Then, we fetch the static member inside that type and cast it to void, for the same reason as we did for non-static members.

+

+Nested type names

+

Checking for a nested type name is not hard, but it is slightly more convoluted than the previous cases:

+
auto has_member = hana::is_valid([](auto t) -> hana::type<
typename decltype(t)::type::member
//^^^^^^^^ needed because of the dependent context
> { });
struct Foo { struct member; /* not defined! */ };
struct Bar { };
BOOST_HANA_CONSTANT_CHECK(has_member(hana::type_c<Foo>));
BOOST_HANA_CONSTANT_CHECK(!has_member(hana::type_c<Bar>));

One might wonder why we use -> hana::type<typename-expression> instead of simply -> typename-expression. Again, the reason is that we want to support types that can't be returned from functions, like array types or incomplete types.

+

+Nested templates

+

Checking for a nested template name is similar to checking for a nested type name, except we use the template_<...> variable template instead of type<...> in the generic lambda:

+
auto has_member = hana::is_valid([](auto t) -> decltype(hana::template_<
decltype(t)::type::template member
// ^^^^^^^^ needed because of the dependent context
>) { });
struct Foo { template <typename ...> struct member; };
struct Bar { };
BOOST_HANA_CONSTANT_CHECK(has_member(hana::type_c<Foo>));
BOOST_HANA_CONSTANT_CHECK(!has_member(hana::type_c<Bar>));

+Taking control of SFINAE

+

Doing something only if an expression is well-formed is a very common pattern in C++. Indeed, the optionalToString function is just one instance of the following pattern, which is very general:

+
template <typename T>
auto f(T x) {
if (some expression involving x is well-formed)
return something involving x;
else
return something else;
}

To encapsulate this pattern, Hana provides the sfinae function, which allows executing an expression, but only if it is well-formed:

+
auto maybe_add = hana::sfinae([](auto x, auto y) -> decltype(x + y) {
return x + y;
});
maybe_add(1, 2); // hana::just(3)
std::vector<int> v;
maybe_add(v, "foobar"); // hana::nothing

Here, we create a maybe_add function, which is simply a generic lambda wrapped with Hana's sfinae function. maybe_add is a function which takes two inputs and returns just the result of the generic lambda if that call is well-formed, and nothing otherwise. just(...) and nothing both belong to a type of container called hana::optional, which is essentially a compile-time std::optional. All in all, maybe_add is morally equivalent to the following function returning a std::optional, except that the check is done at compile-time:

+
auto maybe_add = [](auto x, auto y) {
if (x + y is well formed)
return std::optional<decltype(x + y)>{x + y};
else
return std::optional<???>{};
};

It turns out that we can take advantage of sfinae and optional to implement the optionalToString function as follows:

+
template <typename T>
std::string optionalToString(T const& obj) {
auto maybe_toString = hana::sfinae([](auto&& x) -> decltype(x.toString()) {
return x.toString();
});
return maybe_toString(obj).value_or("toString not defined");
}

First, we wrap toString with the sfinae function. Hence, maybe_toString is a function which either returns just(x.toString()) if that is well-formed, or nothing otherwise. Secondly, we use the .value_or() function to extract the optional value from the container. If the optional value is nothing, .value_or() returns the default value given to it; otherwise, it returns the value inside the just (here x.toString()). This way of seeing SFINAE as a special case of computations that might fail is very clean and powerful, especially since sfinae'd functions can be combined through the hana::optional Monad, which is left to the reference documentation.

+

+Introspecting user-defined types

+

Have you ever wanted to iterate over the members of a user-defined type? The goal of this section is to show you how Hana can be used to do it quite easily. To allow working with user-defined types, Hana defines the Struct concept. Once a user-defined type is a model of that concept, one can iterate over the members of an object of that type and query other useful information. To turn a user-defined type into a Struct, a couple of options are available. First, you may define the members of your user-defined type with the BOOST_HANA_DEFINE_STRUCT macro:

+
struct Person {
BOOST_HANA_DEFINE_STRUCT(Person,
(std::string, name),
(int, age)
);
};

This macro defines two members (name and age) with the given types. Then, it defines some boilerplate inside a Person::hana nested struct, which is required to make Person a model of the Struct concept. No constructors are defined (so POD-ness is retained), the members are defined in the same order as they appear here and the macro can be used with template structs just as well, and at any scope. Also note that you are free to add more members to the Person type after or before you use the macro. However, only members defined with the macro will be picked up when introspecting the Person type. Easy enough? Now, a Person can be accessed programmatically:

+
Person john{"John", 30};
hana::for_each(john, [](auto pair) {
std::cout << hana::to<char const*>(hana::first(pair)) << ": "
<< hana::second(pair) << std::endl;
});
// name: John
// age: 30

Iteration over a Struct is done as if the Struct was a sequence of pairs, where the first element of a pair is the key associated to a member, and the second element is the member itself. When a Struct is defined through the BOOST_HANA_DEFINE_STRUCT macro, the key associated to any member is a compile-time hana::string representing the name of that member. This is why the function used with for_each takes a single argument pair, and then uses first and second to access the subparts of the pair. Also, notice how the to<char const*> function is used on the name of the member? This converts the compile-time string to a constexpr char const* so it can couted. Since it can be annoying to always use first and second to fetch the subparts of the pair, we can also use the fuse function to wrap our lambda and make it a binary lambda instead:

+
hana::for_each(john, hana::fuse([](auto name, auto member) {
std::cout << hana::to<char const*>(name) << ": " << member << std::endl;
}));

Now, it looks much cleaner. As we just mentioned, Structs are seen as a kind of sequence of pairs for the purpose of iteration. In fact, a Struct can even be searched like an associative data structure whose keys are the names of the members, and whose values are the members themselves:

+
std::string name = hana::at_key(john, "name"_s);
BOOST_HANA_RUNTIME_CHECK(name == "John");
int age = hana::at_key(john, "age"_s);
Note
The _s user-defined literal creates a compile-time hana::string. It is located in the boost::hana::literals namespace. Note that it is not part of the standard yet, but it is supported by Clang and GCC. If you want to stay 100% standard, you can use the BOOST_HANA_STRING macro instead.
+

The main difference between a Struct and a hana::map is that a map can be modified (keys can be added and removed), while a Struct is immutable. However, you can easily convert a Struct into a hana::map with to<map_tag>, and then you can manipulate it in a more flexible way.

+
auto map = hana::insert(hana::to<hana::map_tag>(john), hana::make_pair("last name"_s, "Doe"s));
std::string name = map["name"_s];
BOOST_HANA_RUNTIME_CHECK(name == "John");
std::string last_name = map["last name"_s];
BOOST_HANA_RUNTIME_CHECK(last_name == "Doe");
int age = map["age"_s];

Using the BOOST_HANA_DEFINE_STRUCT macro to adapt a struct is convenient, but sometimes one can't modify the type that needs to be adapted. In these cases, the BOOST_HANA_ADAPT_STRUCT macro can be used to adapt a struct in a ad-hoc manner:

+
namespace not_my_namespace {
struct Person {
std::string name;
int age;
};
}
BOOST_HANA_ADAPT_STRUCT(not_my_namespace::Person, name, age);
Note
The BOOST_HANA_ADAPT_STRUCT macro must be used at global scope.
+

The effect is exactly the same as with the BOOST_HANA_DEFINE_STRUCT macro, except you do not need to modify the type you want to adapt, which is sometimes useful. Finally, it is also possible to define custom accessors by using the BOOST_HANA_ADAPT_ADT macro:

+
namespace also_not_my_namespace {
struct Person {
std::string get_name();
int get_age();
};
}
BOOST_HANA_ADAPT_ADT(also_not_my_namespace::Person,
(name, [](auto const& p) { return p.get_name(); }),
(age, [](auto const& p) { return p.get_age(); })
);

This way, the names used to access the members of the Struct will be those specified, and the associated function will be called on the Struct when retrieving that member. Before we move on to a concrete example of using these introspection features, it should also be mentioned that structs can be adapted without using macros. This advanced interface for defining Structs can be used for example to specify keys that are not compile-time strings. The advanced interface is described in the documentation of the Struct concept.

+

+Example: generating JSON

+

Let's now move on with a concrete example of using the introspection capabilities we just presented for printing custom objects as JSON. Our end goal is to have something like this:

+
struct Car {
BOOST_HANA_DEFINE_STRUCT(Car,
(std::string, brand),
(std::string, model)
);
};
struct Person {
BOOST_HANA_DEFINE_STRUCT(Person,
(std::string, name),
(std::string, last_name),
(int, age)
);
};
Car bmw{"BMW", "Z3"}, audi{"Audi", "A4"};
Person john{"John", "Doe", 30};
auto tuple = hana::make_tuple(john, audi, bmw);
std::cout << to_json(tuple) << std::endl;

And the output, after passing it through a JSON pretty-printer, should look like

+
1 [
2  {
3  "name": "John",
4  "last_name": "Doe",
5  "age": 30
6  },
7  {
8  "brand": "Audi",
9  "model": "A4"
10  },
11  {
12  "brand": "BMW",
13  "model": "Z3"
14  }
15 ]

First, let's define a couple of utility functions to make string manipulation easier:

+
template <typename Xs>
std::string join(Xs&& xs, std::string sep) {
return hana::fold(hana::intersperse(std::forward<Xs>(xs), sep), "", hana::_ + hana::_);
}
std::string quote(std::string s) { return "\"" + s + "\""; }
template <typename T>
auto to_json(T const& x) -> decltype(std::to_string(x)) {
return std::to_string(x);
}
std::string to_json(char c) { return quote({c}); }
std::string to_json(std::string s) { return quote(s); }

The quote and the to_json overloads are pretty self-explanatory. The join function, however, might need a bit of explanation. Basically, the intersperse function takes a sequence and a separator, and returns a new sequence with the separator in between each pair of elements of the original sequence. In other words, we take a sequence of the form [x1, ..., xn] and turn it into a sequence of the form [x1, sep, x2, sep, ..., sep, xn]. Finally, we fold the resulting sequence with the _ + _ function object, which is equivalent to std::plus<>{}. Since our sequence contains std::strings (we assume it does), this has the effect of concatenating all the strings of the sequence into one big string. Now, let's define how to print a Sequence:

+
template <typename Xs>
std::string> to_json(Xs const& xs) {
auto json = hana::transform(xs, [](auto const& x) {
return to_json(x);
});
return "[" + join(std::move(json), ", ") + "]";
}

First, we use the transform algorithm to turn our sequence of objects into a sequence of std::strings in JSON format. Then, we join that sequence with commas and we enclose it with [] to denote a sequence in JSON notation. Simple enough? Let's now take a look at how to print user-defined types:

+
template <typename T>
std::string> to_json(T const& x) {
auto json = hana::transform(hana::keys(x), [&](auto name) {
auto const& member = hana::at_key(x, name);
return quote(hana::to<char const*>(name)) + " : " + to_json(member);
});
return "{" + join(std::move(json), ", ") + "}";
}

Here, we use the keys method to retrieve a tuple containing the names of the members of the user-defined type. Then, we transform that sequence into a sequence of "name" : member strings, which we then join and enclose with {}, which is used to denote objects in JSON notation. And that's it!

+

+Generalities on containers

+
+

This section explains several important notions about Hana's containers: how to create them, the lifetime of their elements and other concerns.

+

+Container creation

+

While the usual way of creating an object in C++ is to use its constructor, heterogeneous programming makes things a bit more complicated. Indeed, in most cases, one is not interested in (or even aware of) the actual type of the heterogeneous container to be created. At other times, one could write out that type explicitly, but it would be redundant or cumbersome to do so. For this reason, Hana uses a different approach borrowed from std::make_tuple to create new containers. Much like one can create a std::tuple with std::make_tuple, a hana::tuple can be created with hana::make_tuple. However, more generally, containers in Hana may be created with the make function:

+
auto xs = hana::make<hana::tuple_tag>(1, 2.2, 'a', "bcde"s);

In fact, make_tuple is just a shortcut for make<tuple_tag> so you don't have to type boost::hana::make<boost::hana::tuple_tag> when you are out of Hana's namespace. Simply put, make<...> is is used all around the library to create different types of objects, thus generalizing the std::make_xxx family of functions. For example, one can create a hana::range of compile-time integers with make<range_tag>:

+
constexpr auto r = hana::make<hana::range_tag>(hana::int_c<3>, hana::int_c<10>);
static_assert(r == hana::make_range(hana::int_c<3>, hana::int_c<10>), "");
+

These types with a trailing _tag are dummy types representing a family of heterogeneous containers (hana::tuple, hana::map, etc..). Tags are documented in the section on Hana's core.

+
+

For convenience, whenever a component of Hana provides a make<xxx_tag> function, it also provides the make_xxx shortcut to reduce typing. Also, an interesting point that can be raised in this example is the fact that r is constexpr. In general, whenever a container is initialized with constant expressions only (which is the case for r), that container may be marked as constexpr.

+

So far, we have only created containers with the make_xxx family of functions. However, some containers do provide constructors as part of their interface. For example, one can create a hana::tuple just like one would create a std::tuple:

+
hana::tuple<int, double, char, std::string> xs{1, 2.2, 'a', "bcde"s};

When constructors (or any member function really) are part of the public interface, they will be documented on a per-container basis. However, in the general case, one should not take for granted that a container can be constructed as the tuple was constructed above. For example, trying to create a hana::range that way will not work:

+
hana::range<???> xs{hana::int_c<3>, hana::int_c<10>};

In fact, we can't even specify the type of the object we'd like to create in that case, because the exact type of a hana::range is implementation-defined, which brings us to the next section.

+

+Container types

+

The goal of this section is to clarify what can be expected from the types of Hana's containers. Indeed, so far, we always let the compiler deduce the actual type of containers by using the make_xxx family of functions along with auto. But in general, what can we say about the type of a container?

+
auto xs = hana::make_tuple(1, '2', "345");
auto ints = hana::make_range(hana::int_c<0>, hana::int_c<100>);
// what can we say about the types of `xs` and `ints`?

The answer is that it depends. Some containers have well defined types, while others do not specify their representation. In this example, the type of the object returned by make_tuple is well-defined, while the type returned by make_range is implementation-defined:

+
hana::tuple<int, char, char const*> xs = hana::make_tuple(1, '2', "345");
auto ints = hana::make_range(hana::int_c<0>, hana::int_c<100>);
// can't specify the type of ints, however

This is documented on a per-container basis; when a container has an implementation-defined representation, a note explaining exactly what can be expected from that representation is included in the container's description. There are several reasons for leaving the representation of a container unspecified; they are explained in the rationales. When the representation of a container is implementation-defined, one must be careful not to make any assumptions about it, unless those assumption are explicitly allowed in the documentation of the container.

+

+Overloading on container types

+

While necessary, leaving the type of some containers unspecified makes some things very difficult to achieve, like overloading functions on heterogeneous containers:

+
template <typename T>
void f(std::vector<T> xs) {
// ...
}
template <typename ...???>
void f(unspecified-range-type<???> r) {
// ...
}

The is_a utility is provided for this reason (and others). is_a allows checking whether a type is a precise kind of container using its tag, regardless of the actual type of the container. For example, the above example could be rewritten as

+
template <typename T>
void f(std::vector<T> xs) {
// ...
}
template <typename R, typename = std::enable_if_t<hana::is_a<hana::range_tag, R>()>>
void f(R r) {
// ...
}

This way, the second overload of f will only match when R is a type whose tag is range_tag, regardless of the exact representation of that range. Of course, is_a can be used with any kind of container: tuple, map, set and so on.

+

+Container elements

+

In Hana, containers own their elements. When a container is created, it makes a copy of the elements used to initialize it and stores them inside the container. Of course, unnecessary copies are avoided by using move semantics. Because of those owning semantics, the lifetime of the objects inside the container is the same as that of the container.

+
std::string hello = "Hello";
std::vector<char> world = {'W', 'o', 'r', 'l', 'd'};
// hello is copied, world is moved-in
auto xs = hana::make_tuple(hello, std::move(world));
// s is a reference to the copy of hello inside xs.
// It becomes a dangling reference as soon as xs is destroyed.
std::string& s = xs[0_c];

Much like containers in the standard library, containers in Hana expect their elements to be objects. For this reason, references may not be stored in them. When references must be stored inside a container, one should use a std::reference_wrapper instead:

+
std::vector<int> ints = { /* huge vector of ints */ };
std::vector<std::string> strings = { /* huge vector of strings */ };
auto map = hana::make_map(
hana::make_pair(hana::type_c<int>, std::ref(ints)),
hana::make_pair(hana::type_c<std::string>, std::ref(strings))
);
auto& v = map[hana::type_c<int>].get();

+Generalities on algorithms

+
+

Much like the previous section introduced general but important notions about heterogeneous containers, this section introduces general notions about heterogeneous algorithms.

+

+By-value semantics

+

Algorithms in Hana always return a new container holding the result. This allows one to easily chain algorithms by simply using the result of the first as the input of the second. For example, to apply a function to every element of a tuple and then reverse the result, one simply has to connect the reverse and transform algorithms:

+
auto to_str = [](auto const& x) {
std::stringstream ss;
ss << x;
return ss.str();
};
auto xs = hana::make_tuple(1, 2.2, 'a', "bcde");
hana::reverse(hana::transform(xs, to_str)) == hana::make_tuple("bcde", "a", "2.2", "1")
);

This is different from the algorithms of the standard library, where one has to provide iterators to the underlying sequence. For reasons documented in the rationales, an iterator-based design was considered but was quickly dismissed in favor of composable and efficient abstractions better suited to the very particular context of heterogeneous programming.

+

One might also think that returning full sequences that own their elements from an algorithm would lead to tons of undesirable copies. For example, when using reverse and transform, one could think that an intermediate copy is made after the call to transform:

+
hana::transform(xs, to_str) // <-- copy into reverse(...) here?
);

To make sure this does not happen, Hana uses perfect forwarding and move semantics heavily so it can provide an almost optimal runtime performance. So instead of doing a copy, a move occurs between reverse and transform:

+
hana::transform(xs, to_str) // <-- nope, move from the temporary instead!
);

Ultimately, the goal is that code written using Hana should be equivalent to clever hand-written code, except it should be enjoyable to write. Performance considerations are explained in depth in their own section.

+

+(Non-)Laziness

+

Algorithms in Hana are not lazy. When an algorithm is called, it does its job and returns a new sequence containing the result, end of the story. For example, calling the permutations algorithm on a large sequence is a stupid idea, because Hana will actually compute all the permutations:

+
auto perms = hana::permutations(hana::make_tuple(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
// perms has 3 628 800 elements, and your compiler just crashed

To contrast, algorithms in Boost.Fusion return views which hold the original sequence by reference and apply the algorithm on demand, as the elements of the sequence are accessed. This leads to subtle lifetime issues, like having a view that refers to a sequence that was destroyed. Hana's design assumes that most of the time, we want to access all or almost all the elements in a sequence anyway, and hence performance is not a big argument in favor of laziness.

+

+What is generated?

+

Algorithms in Hana are a bit special with respect to the runtime code they are expanded into. The goal of this subsection is not to explain exactly what code is generated, which depends on the compiler anyway, but to give a feel for things. Basically, a Hana algorithm is like an unrolled version of an equivalent classical algorithm. Indeed, since the bounds of the processed sequence are known at compile-time, it makes sense that we can unroll the loop over the sequence. For example, let's consider the for_each algorithm:

+
auto xs = hana::make_tuple(0, 1, 2, 3);

If xs was a runtime sequence instead of a tuple, its length would only be known at runtime and the above code would have to be implemented as a loop:

+
for (int i = 0; i < xs.size(); ++i) {
f(xs[i]);
}

However, in our case, the length of the sequence is known at compile-time and so we don't have to check the index at each iteration. Hence, we can just write:

+
f(xs[0_c]);
f(xs[1_c]);
f(xs[2_c]);
f(xs[3_c]);

The main difference here is that no bound checking and index increment is done at each step, because there is no index anymore; the loop was effectively unrolled. In some cases, this can be desirable for performance reasons. In other cases, this can be detrimental to performance because it causes the code size to grow. As always, performance is a tricky subject and whether you actually want loop unrolling to happen should be tackled on a case-by-case basis. As a rule of thumb, algorithms processing all (or a subset) of the elements of a container are unrolled. In fact, if you think about it, this unrolling is the only way to go for heterogeneous sequences, because different elements of the sequence may have different types. As you might have noticed, we're not using normal indices into the tuple, but compile-time indices, which can't be generated by a normal for loop. In other words, the following does not make sense:

+
for (??? i = 0_c; i < xs.size(); ++i) {
f(xs[i]);
}

+Side effects and purity

+

By default, Hana assumes functions to be pure. A pure function is a function that has no side-effects at all. In other words, it is a function whose effect on the program is solely determined by its return value. In particular, such a function may not access any state that outlives a single invocation of the function. These functions have very nice properties, like the ability to reason mathematically about them, to reorder or even eliminate calls, and so on. Except where specified otherwise, all functions used with Hana (i.e. used in higher order algorithms) should be pure. In particular, functions passed to higher order algorithms are not guaranteed to be called any specific number of times. Furthermore, the order of execution is generally not specified and should therefore not be taken for granted. If this lack of guarantees about function invocations seems crazy, consider the following use of the any_of algorithm:

+
auto r = hana::any_of(hana::make_tuple("hello"s, 1.2, 3), [](auto x) {
return std::is_integral<decltype(x)>{};
});
Note
For this to work, the external adapters for std::integral_constant contained in <boost/hana/ext/std/integral_constant.hpp> must be included.
+

According to the previous section on unrolling, this algorithm should be expanded into something like:

+
auto xs = hana::make_tuple("hello"s, 1.2, 3);
auto pred = [](auto x) { return std::is_integral<decltype(x)>{}; };
auto r = hana::bool_c<
pred(xs[0_c]) ? true :
pred(xs[1_c]) ? true :
pred(xs[2_c]) ? true :
false
>;

Of course, the above code can't work as-is, because we're calling pred inside something that would have to be a constant expression, but pred is a lambda (and lambdas can't be called in constant expressions). However, whether any of these objects has an integral type is clearly known at compile-time, and hence we would expect that computing the answer only involves compile-time computations. In fact, this is exactly what Hana does, and the above algorithm is expanded into something like:

+
auto xs = hana::make_tuple("hello"s, 1.2, 3);
auto pred = [](auto x) { return std::is_integral<decltype(x)>{}; };
auto r = hana::bool_c<
decltype(pred(xs[0_c]))::value ? true :
decltype(pred(xs[1_c]))::value ? true :
decltype(pred(xs[2_c]))::value ? true :
false
>;
Note
As you will be able to deduce from the next section on cross-phase computations, the implementation of any_of must actually be more general than this. However, this lie-to-children is perfect for educational purposes.
+

As you can see, the predicate is never even executed; only its result type on a particular object is used. Regarding the order of evaluation, consider the transform algorithm, which is specified (for tuples) as:

+
hana::transform(hana::make_tuple(x1, ..., xn), f) == hana::make_tuple(f(x1), ..., f(xn))

Since make_tuple is a function, and since the evaluation order for the arguments of a function is unspecified, the order in which f is called on each element of the tuple is unspecified too. If one sticks to pure functions, everything works fine and the resulting code is often easier to understand. However, some exceptional algorithms like for_each do expect impure functions, and they guarantee an order of evaluation. Indeed, a for_each algorithm that would only take pure functions would be pretty much useless. When an algorithm can accept an impure function or guarantees some order of evaluation, the documentation for that algorithm will mention it explicitly. However, by default, no guarantees may be taken for granted.

+

+Cross-phase algorithms

+

This section introduces the notion of cross-phase computations and algorithms. In fact, we have already used cross-phase algorithms in the quick start, for example with filter, but we did not explain exactly what was happening at that time. But before we introduce cross-phase algorithms, let's define what we mean by cross-phase. The phases we're referring to here are the compilation and the execution of a program. In C++ as in most statically typed languages, there is a clear distinction between compile-time and runtime; this is called phase distinction. When we speak of a cross-phase computation, we mean a computation that is somehow performed across those phases; i.e. that is partly executed at compile-time and partly executed at runtime.

+

Like we saw in earlier examples, some functions are able to return something that can be used at compile-time even when they are called on a runtime value. For example, let's consider the length function applied to a non-constexpr container:

+
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
auto animals = hana::make_tuple(Fish{"Nemo"}, Cat{"Garfield"}, Dog{"Snoopy"});
// ^^^^^^^ not a compile-time value
BOOST_HANA_CONSTANT_CHECK(hana::length(animals) == hana::size_c<3>);
// ^^^^^^^^^^^^^^^^^^^^^ assertion done at compile-time

Obviously, the tuple can't be made constexpr, since it contains runtime std::strings. Still, even though it is not called on a constant expression, length returns something that can be used at compile-time. If you think of it, the size of the tuple is known at compile-time regardless of its content, and hence it would only make sense for this information to be available to us at compile-time. If that seems surprising, think about std::tuple and std::tuple_size:

+
std::tuple<int, char, std::string> xs{1, '2', std::string{"345"}};
static_assert(std::tuple_size<decltype(xs)>::value == 3u, "");

Since the size of the tuple is encoded in its type, it is always available at compile-time regardless of whether the tuple is constexpr or not. In Hana, this is implemented by having length return an IntegralConstant. Since an IntegralConstant's value is encoded in its type, the result of length is contained in the type of the object it returns, and the length is therefore known at compile-time. Because length goes from a runtime value (the container) to a compile-time value (the IntegralConstant), length is a trivial example of a cross-phase algorithm (trivial because it does not really manipulate the tuple). Another algorithm that is very similar to length is the is_empty algorithm, which returns whether a container is empty:

+
// ^^^^^^^^^^^^^^^^^^^^^^^ assertion done at compile-time

More generally, any algorithm that takes a container whose value is known at runtime but queries something that can be known at compile-time should be able to return an IntegralConstant or another similar compile-time value. Let's make things slightly more complicated by considering the any_of algorithm, which we already encountered in the previous section:

+
bool any_garfield = hana::any_of(animals, [](auto animal) {
return animal.name == "Garfield"s;
});

In this example, the result can't be known at compile-time, because the predicate returns a bool that is the result of comparing two std::strings. Since std::strings can't be compared at compile-time, the predicate must operate at runtime, and the overall result of the algorithm can then only be known at runtime too. However, let's say we used any_of with the following predicate instead:

+
auto any_cat = hana::any_of(animals, [](auto x) {
return std::is_same<decltype(x), Cat>{};
});
Note
For this to work, the external adapters for std::integral_constant contained in <boost/hana/ext/std/integral_constant.hpp> must be included.
+

First, since the predicate is only querying information about the type of each element of the tuple, it is clear that its result can be known at compile-time. Since the number of elements in the tuple is also known at compile-time, the overall result of the algorithm can, in theory, be known at compile-time. More precisely, what happens is that the predicate returns a value initialized std::is_same<...>, which inherits from std::integral_constant. Hana recognizes these objects, and the algorithm is written in such a way that it preserves the compile-timeness of the predicate's result. In the end, any_of hence returns an IntegralConstant holding the result of the algorithm, and we use the compiler's type deduction in a clever way to make it look easy. Hence, it would be equivalent to write (but then you would need to already know the result of the algorithm!):

+
hana::integral_constant<bool, true> any_cat = hana::any_of(animals, [](auto x) {
return std::is_same<decltype(x), Cat>{};
});

Ok, so some algorithms are able to return compile-time values when their input satisfies some constraints with respect to compile-timeness. However, other algorithms are more restrictive and they require their inputs to satisfy some constraints regarding compile-timeness, without which they are not able to operate at all. An example of this is filter, which takes a sequence and a predicate, and returns a new sequence containing only those elements for which the predicate is satisfied. filter requires the predicate to return an IntegralConstant. While this requirement may seem stringent, it really makes sense if you think about it. Indeed, since we're removing some elements from the heterogeneous sequence, the type of the resulting sequence depends on the result of the predicate. Hence, the result of the predicate has to be known at compile-time for the compiler to be able to assign a type to the returned sequence. For example, consider what happens when we try to filter a heterogeneous sequence as follows:

+
auto animals = hana::make_tuple(Fish{"Nemo"}, Cat{"Garfield"}, Dog{"Snoopy"});
auto no_garfield = hana::filter(animals, [](auto animal) {
return animal.name != "Garfield"s;
});

Clearly, we know that the predicate will only return false on the second element, and hence the result should be a [Fish, Dog] tuple. However, the compiler has no way of knowing this since the predicate's result is the result of a runtime computation, which happens way after the compiler has finished its job. Hence, the compiler does not have enough information to determine the return type of the algorithm. However, we could filter the same sequence with any predicate whose result is available at compile-time:

+
auto mammals = hana::filter(animals, [](auto animal) {
return hana::type_c<decltype(animal)> != hana::type_c<Fish>;
});

Since the predicate returns an IntegralConstant, we know which elements of the heterogeneous sequence we'll be keeping at compile-time. Hence, the compiler is able to figure out the return type of the algorithm. Other algorithms like partition and sort work similarly; special algorithm requirements are always documented, just read the reference documentation of an algorithm before using it to avoid surprises.

+

This is the end of the section on algorithms. While this constitutes a fairly complete explanation of phase interaction inside algorithms, a deeper understanding can be gained by reading the advanced section on constexpr and the reference for Constant and IntegralConstant.

+
Warning
Hana's algorithms are constexpr function objects instead of being template functions. This allows passing them to higher-order algorithms, which is very useful. However, since those function objects are defined at namespace scope in the header files, this causes each translation unit to see a different algorithm object. Hence, the address of an algorithm function object is not guaranteed to be unique across translation units, which can cause an ODR violation if one relies on such an address. So, in short, do not rely on the uniqueness of the address of any global object provided by Hana, which does not make sense in the general case anyway because such objects are constexpr. See issue #76 for more information.
+

+Performance considerations

+
+

C++ programmers love performance, so here's a whole section dedicated to it. Since Hana lives on the frontier between runtime and compile-time computations, we are not only interested in runtime performance, but also compile-time performance. Since both topics are pretty much disjoint, we treat them separately below.

+
Note
The benchmarks presented in this section are updated automatically when we push to the repository. If you notice results that do not withstand the claims made here, open a GitHub issue; it could be a performance regression.
+
Warning
As of writing this, not all of Hana's containers are optimized. Implementing Hana was a big enough challenge that containers were initially written naively and are now in the process of being rigorously optimized. In particular, the associative containers (hana::map and hana::set) have a pretty bad compile-time behavior because of their naive implementation, and their runtime behavior also seems to be problematic in some cases. Improving this situation is in the TODO list.
+

+Compile-time performance

+

C++ metaprogramming brings its share of awful things. One of the most annoying and well-known problem associated to it is interminable compilation times. Hana claims to be more compile-time efficient than its predecessors; this is a bold claim and we will now try to back it. Of course, Hana can't do miracles; metaprogramming is a byproduct of the C++ template system and the compiler is not meant to be used as an interpreter for some meta language. However, by using cutting edge and intensely benchmarked techniques, Hana is able to minimize the strain on the compiler.

+
Note
While Hana has better compile-times than pre-C++11 metaprogramming libraries, modern libraries supporting only type-level computations (such as Brigand) can provide better compile-times, at the cost of generality. Indeed, Hana's ability to manipulate runtime values comes at a compile-time cost, no matter how hard we try to mitigate it. If you want to use Hana for intensive type-level computations, you should benchmark and see whether it suits you.
+

Before we dive, let me make a quick note on the methodology used to measure compile-time performance in Hana. Previous metaprogramming libraries measured the compile-time complexity of their meta-algorithms and meta-sequences by looking at the number of instantiations the compiler had to perform. While easy to understand, this way of measuring the compile-time complexity actually does not give us a lot of information regarding the compilation time, which is what we're interested in minimizing at the end of the day. Basically, the reason for this is that template metaprogramming is such a twisted model of computation that it's very hard to find a standard way of measuring the performance of algorithms. Hence, instead of presenting meaningless complexity analyses, we prefer to benchmark everything on every supported compiler and to pick the best implementation on that compiler. Also note that the benchmarks we present here are quite precise. Indeed, even though we do not take multiple measurements and take their mean or something similar to reduce incertitude, the benchmarks are very stable when they are regenerated, which suggests a reasonably good precision. Now, let's dive.

+

First, Hana minimizes its dependency on the preprocessor. In addition to yielding cleaner error messages in many cases, this reduces the overall parsing and preprocessing time for header files. Also, because Hana only supports cutting edge compilers, there are very few workarounds in the library, which results in a cleaner and smaller library. Finally, Hana minimizes reliance on any kind of external dependencies. In particular, it only uses other Boost libraries in a few specific cases, and it does not rely on the standard library for the largest part. There are several reasons (other than include times) for doing so; they are documented in the rationales.

+

Below is a chart showing the time required to include different libraries. The chart shows the time for including everything in the (non-external) public API of each library. For example, for Hana this means the <boost/hana.hpp> header, which excludes the external adapters. For other libraries like Boost.Fusion, this means including all the public headers in the boost/fusion/ directory, but not the adapters for external libraries like the MPL.

+

In addition to reduced preprocessing times, Hana uses modern techniques to implement heterogeneous sequences and algorithms in the most compile-time efficient way possible. Before jumping to the compile-time performance of the algorithms, we will have a look at the compile-time cost of creating heterogeneous sequences. Indeed, since we will be presenting algorithms that work on sequences, we must be aware of the cost of creating the sequences themselves, since that will influence the benchmarks for the algorithms. The following chart presents the compile-time cost of creating a sequence of n heterogeneous elements.

+
Note
You can zoom on the chart by selecting an area to zoom into. Also, you can hide a series of points by clicking on it in the legend on the right.
+

The benchmark methodology is to always create the sequences in the most efficient way possible. For Hana and std::tuple, this simply means using the appropriate make_tuple function. However, for the MPL, this means creating a mpl::vectorN of size up to 20, and then using mpl::push_back to create larger vectors. We use a similar technique for Fusion sequences. The reason for doing so is that Fusion and MPL sequences have fixed size limits, and the techniques used here have been found to be the fastest way to create longer sequences.

+

For completeness, we also present the compile-time cost of creating a std::array with n elements. However, note that std::array can only hold elements with a single type, so we're comparing apples and oranges here. As you can see, the cost of creating a std::array is constant and essentially inexistent (the non-zero overhead is that of simply including the <array> header). Hence, while Hana provides improved compile-times over other heterogeneous containers, please stick with normal homogeneous containers if that's all you need for your application; your compile-times will be much faster that way.

+

You can also see that creating sequences has a non-negligible cost. Actually, this is really the most expensive part of doing heterogeneous computations, as you will see in the following charts. Hence, when you look at the charts below, keep in mind the cost of merely creating the sequences. Also note that only the most important algorithms will be presented here, but the Metabench project provides micro benchmarks for compile-time performance for almost all of Hana's algorithms. Also, the benchmarks we present compare several different libraries. However, since Hana and Fusion can work with values and not only types, comparing their algorithms with type-only libraries like MPL is not really fair. Indeed, Hana and Fusion algorithms are more powerful since they also allow runtime effects to be performed. However, the comparison between Fusion and Hana is fair, because both libraries are just as powerful (strictly speaking). Finally, we can't show benchmarks of the algorithms for std::tuple, because the standard does not provide equivalent algorithms. Of course, we could use Hana's external adapters, but that would not be a faithful comparison.

+

The first algorithm which is ubiquitous in metaprogramming is transform. It takes a sequence and a function, and returns a new sequence containing the result of applying the function to each element. The following chart presents the compile-time performance of applying transform to a sequence of n elements. The x axis represents the number of elements in the sequence, and the y axis represents the compilation time in seconds. Also note that we're using the transform equivalent in each library; we're not using Hana's transform through the Boost.Fusion adapters, for example, because we really want to benchmark their implementation against ours.

+

Here, we can see that Hana's tuple performs better than all the other alternatives. This is mainly due to the fact that we use C++11 variadic parameter pack expansion to implement this algorithm under the hood, which is quite efficient.

+

Before we move on, it is important to mention something regarding the benchmark methodology for Fusion algorithms. Some algorithms in Fusion are lazy, which means that they don't actually perform anything, but simply return a modified view to the original data. This is the case of fusion::transform, which simply returns a transformed view that applies the function to each element of the original sequence as those elements are accessed. If we want to benchmark anything at all, we need to force the evaluation of that view, as would eventually happen when accessing the elements of the sequence in real code. However, for complex computations with multiple layers, a lazy approach may yield a substantially different compile-time profile. Of course, this difference is poorly represented in micro benchmarks, so keep in mind that these benchmarks only give a part of the big picture. For completeness in the rest of the section, we will mention when a Fusion algorithm is lazy, so that you know when we're artificially forcing the evaluation of the algorithm for the purpose of benchmarking.

+
Note
We are currently considering adding lazy views to Hana. If this feature is important to you, please let us know by commenting this issue.
+

The second important class of algorithms are folds. Folds can be used to implement many other algorithms like count_if, minimum and so on. Hence, a good compile-time performance for fold algorithms ensures a good compile-time performance for those derived algorithms, which is why we're only presenting folds here. Also note that all the non-monadic fold variants are somewhat equivalent in terms of compile-time, so we only present the left folds. The following chart presents the compile-time performance of applying fold_left to a sequence of n elements. The x axis represents the number of elements in the sequence, and the y axis represents the compilation time in seconds. The function used for folding is a dummy function that does nothing. In real code, you would likely fold with a nontrivial operation, so the curves would be worse than that. However, these are micro benchmarks and hence they only show the performance of the algorithm itself.

+

The third and last algorithm that we present here is the find_if algorithm. This algorithm is difficult to implement efficiently, because it requires stopping at the first element which satisfies the given predicate. For the same reason, modern techniques don't really help us here, so this algorithm constitutes a good test of the implementation quality of Hana, without taking into account the free lunch given to use by C++14.

+

As you can see, Hana performs better than Fusion, and as well as MPL, yet Hana's find_if can be used with values too, unlike MPL's. This concludes the section on compile-time performance. In case you want to see the performance of an algorithm that we have not presented here, the Metabench project provides compile-time benchmarks for most of Hana's algorithms.

+

+Runtime performance

+

Hana was designed to be very efficient at runtime. But before we dive into the details, let's clarify one thing. Hana being a metaprogramming library which allows manipulating both types and values, it does not always make sense to even talk about runtime performance. Indeed, for type-level computations and computations on IntegralConstants, runtime performance is simply not a concern, because the result of the computation is contained in a type, which is a purely compile-time entity. In other words, these computations involve only compile-time work, and no code is even generated to perform these computations at runtime. The only case where it makes sense to discuss runtime performance is when manipulating runtime values in heterogeneous containers and algorithms, because this is the only case where the compiler has to generate some runtime code. It is therefore only computations of this sort that we will be studying in the remainder of this section.

+

Like we did for compile-time benchmarks, the methodology used to measure runtime performance in Hana is data driven rather than analytical. In other words, instead of trying to determine the complexity of an algorithm by counting the number of basic operations it does as a function of the input size, we simply take measurements for the most interesting cases and see how it behaves. There are a couple of reasons for doing so. First, we do not expect Hana's algorithms to be called on large inputs since those algorithms work on heterogeneous sequences whose length must be known at compile-time. For example, if you tried to call the find_if algorithm on a sequence of 100k elements, your compiler would simply die while trying to generate the code for this algorithm. Hence, algorithms can't be called on very large inputs and the analytical approach then loses a lot of its attractiveness. Secondly, processors have evolved into pretty complex beasts, and the actual performance you'll be able to squeeze out is actually controlled by much more than the mere number of steps your algorithm is doing. For example, bad cache behavior or branch misprediction could turn a theoretically efficient algorithm into a slowpoke, especially for small inputs. Since Hana causes a lot of unrolling to happen, these factors must be considered even more carefully and any analytical approach would probably only comfort us into thinking we're efficient. Instead, we want hard data, and pretty charts to display it!

+
Note
Like for compile-time performance, we're forcing the evaluation of some Fusion algorithms that are normally lazy. Again, depending on the complexity of the computation, a lazy algorithm may cause substantially different code to be generated or a different design to be used, for better or worse. Keep this in mind when you look at these runtime benchmarks. If performance is absolutely critical to your application, you should profile before and after switching from Fusion to Hana. And let us know if Hana performs worse; we'll fix it!
+

There are a couple of different aspects we will want to benchmark. First, we will obviously want to benchmark the execution time of the algorithms. Secondly, because of the by-value semantics used throughout the library, we will also want to make sure that the minimum amount of data is copied around. Finally, we will want to make sure that using Hana does not cause too much code bloat because of unrolling, as explained in the section on algorithms.

+

Just like we studied only a couple of key algorithms for compile-time performance, we will focus on the runtime performance of a few algorithms. For each benchmarked aspect, we will compare the algorithm as implemented by different libraries. Our goal is to always be at least as efficient as Boost.Fusion, which is near from optimality in terms of runtime performance. For comparison, we also show the same algorithm as executed on a runtime sequence, and on a sequence whose length is known at compile-time but whose transform algorithm does not use explicit loop unrolling. All the benchmarks presented here are done in a Release CMake configuration, which takes care of passing the proper optimization flags (usually -O3). Let's start with the following chart, which shows the execution time required to transform different kinds of sequences:

+
Note
Keep in mind that fusion::transform is usually lazy, and we're forcing its evaluation for the purpose of benchmarking.
+

As you can see, Hana and Fusion are pretty much on the same line. std::array is slightly slower for larger collections data sets, and std::vector is noticeably slower for larger collections. Since we also want to look out for code bloat, let's take a look at the size of the executable generated for the exact same scenario:

+

As you can see, code bloat does not seem to be an issue, at least not one that can be detected in micro benchmarks such as this one. Let's now take a look at the fold algorithm, which is used very frequently:

+

Here, you can see that everybody is performing pretty much the same, which is a good sign that Hana is at least not screwing things up. Again, let's look at the executable size:

+

Here again, the code size did not explode. So at least for moderate usages of Hana (and Fusion for that matter, since they have the same problem), code bloat should not be a major concern. The containers in the charts we just presented contain randomly generated ints, which is cheap to copy around and lends itself well to micro benchmarks. However, what happens when we chain multiple algorithms on a container whose elements are expensive to copy? More generally, the question is: when an algorithm is passed a temporary object, does it seize the opportunity to avoid unnecessary copies? Consider:

+
auto xs = hana::make_tuple("some"s, "huge"s, "string"s);
// No copy of xs's elements should be made: they should only be moved around.
auto ys = hana::reverse(std::move(xs));

To answer this question, we'll look at the chart generated when benchmarking the above code for strings of about 1k characters. However, note that it does not really make sense to benchmark this for standard library algorithms, because they do not return containers.

+
Note
Keep in mind that fusion::reverse is usually lazy, and we're forcing its evaluation for the purpose of benchmarking.
+

As you can see, Hana is faster than Fusion, probably because of a more consistent use of move semantics in the implementation. If we had not provided a temporary container to reverse, no move could have been performed by Hana and both libraries would have performed similarly:

+

This concludes the section on runtime performance. Hopefully you are now convinced that Hana was built for speed. Performance is important to us: if you ever encounter a scenario where Hana causes bad code to be generated (and the fault is not on the compiler), please open an issue so the problem can be addressed.

+

+Integration with external libraries

+
+

Hana provides out-of-the-box integration with some existing libraries. Specifically, this means that you can use some containers from these libraries in Hana's algorithms by simply including the appropriate header making the bridge between Hana and the external component. This can be very useful for porting existing code from e.g. Fusion/MPL to Hana:

+
// In the old code, this used to receive a Fusion sequence.
// Now, it can be either a Hana sequence or a Fusion sequence.
template <typename Sequence>
void f(Sequence const& seq) {
hana::for_each(seq, [](auto const& element) {
std::cout << element << std::endl;
});
}
Note
At this time, only adapters to use data types from other libraries inside Hana are provided; adapters for the other way around (using Hana containers inside other libraries) are not provided.
+

However, using external adapters has a couple of pitfalls. For example, after a while using Hana, you might become used to comparing Hana tuples using the normal comparison operators, or doing arithmetic with Hana integral_constants. Of course, nothing guarantees that these operators are defined for external adapters too (and in general they won't be). Hence, you'll have to stick to the functions provided by Hana that implement these operators. For example:

+
auto r = std::ratio<3, 4>{} + std::ratio<4, 5>{}; // error, the operator is not defined!

Instead, you should use the following:

+
#include <ratio>
namespace hana = boost::hana;

But sometimes, it's much worse. Some external components define operators, but they don't necessarily have the same semantics as those from Hana. For example, comparing two std::tuples of different lengths will give an error when using operator==:

+
std::make_tuple(1, 2, 3) == std::make_tuple(1, 2); // compiler error

On the other hand, comparing Hana tuples of different lengths will just return a false IntegralConstant:

+
hana::make_tuple(1, 2, 3) == hana::make_tuple(1, 2); // hana::false_c

This is because std::tuple defines its own operators, and their semantics are different from that of Hana's operators. The solution is to stick with Hana's named functions instead of using operators when you know you'll have to work with other libraries:

+
hana::equal(std::make_tuple(1, 2, 3), std::make_tuple(1, 2)); // hana::false_c

When using external adapters, one should also be careful not to forget including the proper bridge headers. For example, suppose I want to use a Boost.MPL vector with Hana. I include the appropriate bridge header:

+
#include <boost/hana/ext/boost/mpl/vector.hpp> // bridge header
using Vector = mpl::vector<int, char, float>;
static_assert(hana::front(Vector{}) == hana::type_c<int>, "");
Note
The exact layout of these bridge headers is documented in the section about Header organization.
+

Now, however, suppose that I use mpl::size to query the size of the vector and then compare it to some value. I could also use hana::length and everything would be fine, but bear with me for the sake of the example:

+
using Size = mpl::size<Vector>::type;
static_assert(hana::equal(Size{}, hana::int_c<3>), ""); // breaks!

The reason why this breaks is that mpl::size returns a MPL IntegralConstant, and Hana has no way of knowing about these unless you include the proper bridge header. Hence, you should do the following instead:

+
using Size = mpl::size<Vector>::type;
static_assert(hana::equal(Size{}, hana::int_c<3>), "");

The morale is that when working with external libraries, you have to be a bit careful about what objects you are manipulating. The final pitfall is about implementation limits in external libraries. Many older libraries have limits regarding the maximum size of the heterogeneous containers that can be created with them. For example, one may not create a Fusion list of more than FUSION_MAX_LIST_SIZE elements in it. Obviously, these limits are inherited by Hana and for example, trying to compute the permutations of a fusion::list containing 5 elements (the resulting list would contain 120 elements) will fail in a gruesome way:

+
auto list = fusion::make_list(1, 2, 3, 4, 5);
auto oh_jeez = hana::permutations(list); // probably won't make it

Apart from the pitfalls explained in this section, using external adapters should be just as straightforward as using normal Hana containers. Of course, whenever possible, you should try to stick with Hana's containers because they are usually more friendly to work with and are often more optimized.

+

+Hana's core

+
+

The goal of this section is to give a high-level overview of Hana's core. This core is based on the notion of tag, which is borrowed from the Boost.Fusion and Boost.MPL libraries but taken much further by Hana. These tags are then used for several purposes, like algorithm customization, documentation grouping, improving error messages and converting containers into other containers. Because of its modular design, Hana can be extended in a ad-hoc manner very easily. In fact, all the functionality of the library is provided through an ad-hoc customization mechanism, which is explained here.

+

+Tags

+

Heterogeneous programming is basically programming with objects having different types. However, it is clear that some families of objects, while having different representations (C++ types), are strongly related. For example, the std::integral_constant<int, n> types are different for each different n, but conceptually they all represent the same thing; a compile-time number. The fact that std::integral_constant<int, 1>{} and std::integral_constant<int, 2>{} have different types is just a side effect of the fact that we're using their type to encode the value of these objects. Indeed, when manipulating a sequence of std::integral_constant<int, ...>s, chances are that you actually think of it as a homogeneous sequence of an imaginary integral_constant type, disregarding the actual types of the objects and pretending they are all just integral_constants with different values.

+

To reflect this reality, Hana provides tags representing its heterogeneous containers and other compile-time entities. For example, all of Hana's integral_constant<int, ...>s have different types, but they all share the same tag, integral_constant_tag<int>. This allows the programmer to think in terms of that single type instead of trying to think in terms of the actual types of the objects. Concretely, tags are implemented as empty structs. To make them stand out, Hana adopts the convention of naming these tags by adding the _tag suffix.

+
Note
The tag of an object of type T can be obtained by using tag_of<T>::type, or equivalently tag_of_t<T>.
+

Tags are an extension to normal C++ types. Indeed, by default, the tag of a type T is T itself, and the core of the library is designed to work in those cases. For example, hana::make expects either a tag or an actual type; if you send it a type T, it will do the logical thing and construct an object of type T with the arguments you pass it. If you pass a tag to it, however, you should specialize make for that tag and provide your own implementation, as explained below. Because tags are an extension to usual types, we end up mostly reasoning in terms of tags instead of usual types, and the documentation sometimes uses the words type, data type and tag interchangeably.

+

+Tag dispatching

+

Tag dispatching is a generic programming technique for picking the right implementation of a function depending on the type of the arguments passed to the function. The usual mechanism for overriding a function's behavior is overloading. Unfortunately, this mechanism is not always convenient when dealing with families of related types having different base templates, or when the kind of template parameters is not known (is it a type or a non-type template parameter?). For example, consider trying to overload a function for all Boost.Fusion vectors:

+
template <typename ...T>
void function(boost::fusion::vector<T...> v) {
// whatever
}

If you know Boost.Fusion, then you probably know that it won't work. This is because Boost.Fusion vectors are not necessarily specializations of the boost::fusion::vector template. Fusion vectors also exist in numbered forms, which are all of different types:

+
boost::fusion::vector1<T>
boost::fusion::vector2<T, U>
boost::fusion::vector3<T, U, V>
...

This is an implementation detail required by the lack of variadic templates in C++03 that leaks into the interface. This is unfortunate, but we need a way to work around it. To do so, we use an infrastructure with three distinct components:

+
    +
  1. A metafunction associating a single tag to every type in a family of related types. In Hana, this tag can be accessed using the tag_of metafunction. Specifically, for any type T, tag_of<T>::type is the tag used to dispatch it.
  2. +
  3. A function belonging to the public interface of the library, for which we'd like to be able to provide a customized implementation. In Hana, these functions are the algorithms associated to a concept, like transform or unpack.
  4. +
  5. An implementation for the function, parameterized with the tag(s) of the argument(s) passed to the function. In Hana, this is usually done by having a separate template called xxx_impl (for an interface function xxx) with a nested apply static function, as will be shown below.
  6. +
+

When the public interface function xxx is called, it will get the tag of the argument(s) it wishes to dispatch the call on, and then forward the call to the xxx_impl implementation associated to those tags. For example, let's implement a basic setup for tag dispatching of a function that prints its argument to a stream. First, we define the public interface function and the implementation that can be specialized:

+
template <typename Tag>
struct print_impl {
template <typename X>
static void apply(std::ostream&, X const&) {
// possibly some default implementation
}
};
template <typename X>
void print(std::ostream& os, X x) {
using Tag = typename hana::tag_of<X>::type;
}

Now, let's define a type that needs tag dispatching to customize the behavior of print. While some C++14 examples exist, they are too complicated to show in this tutorial and we will therefore use a C++03 tuple implemented as several different types to illustrate the technique:

+
struct vector_tag;
struct vector0 {
using hana_tag = vector_tag;
static constexpr std::size_t size = 0;
};
template <typename T1>
struct vector1 {
T1 t1;
using hana_tag = vector_tag;
static constexpr std::size_t size = 1;
template <typename Index>
auto const& operator[](Index i) const {
static_assert(i == 0u, "index out of bounds");
return t1;
}
};
template <typename T1, typename T2>
struct vector2 {
T1 t1; T2 t2;
using hana_tag = vector_tag;
static constexpr std::size_t size = 2;
// Using Hana as a backend to simplify the example.
template <typename Index>
auto const& operator[](Index i) const {
return *hana::make_tuple(&t1, &t2)[i];
}
};
// and so on...

The nested using hana_tag = vector_tag; part is a terse way of controling the result of the tag_of metafunction, and hence the tag of the vectorN type. This is explained in the reference for tag_of. Finally, if you wanted to customize the behavior of the print function for all the vectorN types, you would normally have to write something along the lines of

+
void print(std::ostream& os, vector0)
{ os << "[]"; }
template <typename T1>
void print(std::ostream& os, vector1<T1> v)
{ os << "[" << v.t1 << "]"; }
template <typename T1, typename T2>
void print(std::ostream& os, vector2<T1, T2> v)
{ os << "[" << v.t1 << ", " << v.t2 << "]"; }
// and so on...

Now, with tag dispatching, you can rely on the vectorNs all sharing the same tag and specialize only the print_impl struct instead:

+
template <>
struct print_impl<vector_tag> {
template <typename vectorN>
static void apply(std::ostream& os, vectorN xs) {
constexpr auto N = hana::size_c<vectorN::size>;
os << "[";
N.times.with_index([&](auto i) {
os << xs[i];
if (i != N - hana::size_c<1>) os << ", ";
});
os << "]";
}
};

One upside is that all vectorNs can now be treated uniformly by the print function, at the cost of some boilerplate when creating the data structure (to specify the tag of each vectorN) and when creating the initial print function (to setup the tag dispatching system with print_impl). There are also other advantages to this technique, like the ability to check for preconditions in the interface function without having to do it in each custom implementation, which would be tedious:

+
template <typename X>
void print(std::ostream& os, X x) {
// **** check some precondition ****
// The precondition only has to be checked here; implementations
// can assume their arguments to always be sane.
using Tag = typename hana::tag_of<X>::type;
}
Note
Checking preconditions does not make much sense for a print function, but consider for example a function to get the nth element of a sequence; you might want to make sure that the index is not out-of-bounds.
+

This technique also makes it easier to provide interface functions as function objects instead of normal overloaded functions, because only the interface function itself must go through the trouble of defining a function object. Function objects have several advantages over overloaded functions, like the ability to be used in higher order algorithms or as variables:

+
// Defining a function object is only needed once and implementations do not
// have to worry about static initialization and other painful tricks.
struct print_t {
template <typename X>
void operator()(std::ostream& os, X x) const {
using Tag = typename hana::tag_of<X>::type;
}
};
constexpr print_t print{};

As you are probably aware of, being able to implement an algorithm for many types at the same time is tremendously useful (that's precisely the goal of C++ templates!). However, even more useful is the ability to implement an algorithm for many types that satisfy some condition. C++ templates are currently missing this ability to constrain their template parameters, but a language feature called concepts is being rolled out with the goal of addressing this issue.

+

With something similar in mind, Hana's algorithms support an additional layer of tag-dispatching to what was explained above. This layer allows us to "specialize" an algorithm for all types that satisfy some predicate. For example, let's say we wanted to implement the print function above for all types that represent some kind of sequence. Right now, we wouldn't have an easy way to do this. However, the tag dispatching for Hana's algorithms is set up slightly differently than what was shown above, and we could hence write the following:

+
template <typename Tag>
struct print_impl<Tag, hana::when<Tag represents some kind of sequence>> {
template <typename Seq>
static void apply(std::ostream& os, Seq xs) {
// Some implementation for any sequence
}
};

where Tag represents some kind of sequence would only need to be a boolean expression representing whether Tag is a sequence. We'll see how such predicates can be created in the next section, but for now let's assume that it just works. Without going into the details of how this tag-dispatching is set up, the above specialization will only be picked up when the predicate is satisfied, and if no better match can be found. Hence, for example, if our vector_tag was to satisfy the predicate, our initial implementation for vector_tag would still be preferred over the hana::when-based specialization, because it represents a better match. In general, any specialization (whether explicit or partial) not using hana::when will be preferred over a specialization using hana::when, which was designed to be as unsurprising as possible from a user point of view. This covers pretty much all there's to say about tag-dispatching in Hana. The next section will explain how we can create C++ concepts for metaprogramming, which could then be used in conjunction with hana::when to achieve a great deal of expressiveness.

+

+Emulation of C++ concepts

+

The implementation of concepts in Hana is very simple. At its heart, a concept is just a template struct that inherits from a boolean integral_constant representing whether the given type is a model of the concept:

+
template <typename T>
struct Concept
: hana::integral_constant<bool, whether T models Concept>
{ };

Then, one can test whether a type T is a model of Concept by looking at Concept<T>::value. Simple enough, right? Now, while the way one might implement the check does not have to be anything specific as far as Hana is concerned, the rest of this section will explain how it is usually done in Hana, and how it interacts with tag dispatching. You should then be able to define your own concepts if you so desire, or at least to understand better how Hana works internally.

+

Usually, a concept defined by Hana will require that any model implements some tag-dispatched functions. For example, the Foldable concept requires that any model defines at least one of hana::unpack and hana::fold_left. Of course, concepts usually also define semantic requirements (called laws) that must be satisfied by their models, but these laws are not (and couldn't be) checked by the concept. But how do we check that some functions are properly implemented? For this, we'll have to slightly modify the way we defined tag-dispatched methods as shown in the previous section. Let's go back to our print example and try to define a Printable concept for those objects that can be printed. Our end goal is to have a template struct such as

+
template <typename T>
struct Printable
: hana::integral_constant<bool, whether print_impl<tag of T> is defined>
{ };

To know whether print_impl<...> has been defined, we'll modify print_impl so that it inherits from a special base class when it is not overridden, and we'll simply check whether print_impl<T> inherits from that base class:

+
struct special_base_class { };
template <typename T>
struct print_impl : special_base_class {
template <typename ...Args>
static constexpr auto apply(Args&& ...) = delete;
};
template <typename T>
struct Printable
: hana::integral_constant<bool,
!std::is_base_of<special_base_class, print_impl<hana::tag_of_t<T>>>::value
>
{ };

Of course, when we specialize print_impl with a custom type, we don't inherit from that special_base_class type:

+
struct Person { std::string name; };
template <>
struct print_impl<Person> /* don't inherit from special_base_class */ {
// ... implementation ...
};
static_assert(Printable<Person>::value, "");
static_assert(!Printable<void>::value, "");

As you can see, Printable<T> really only checks whether the print_impl<T> struct was specialized by a custom type. In particular, it does not even check whether the nested ::apply function is defined or if it is syntactically valid. It is assumed that if one specializes print_impl for a custom type, the nested ::apply function exists and is correct. If it is not, a compilation error will be triggered when one tries to call print on an object of that type. Concepts in Hana make the same assumptions.

+

Since this pattern of inheriting from a special base class is quite abundant in Hana, the library provides a dummy type called hana::default_ that can be used in place of special_base_class. Then, instead of using std::is_base_of, one can use hana::is_default, which looks nicer. With this syntactic sugar, the code now becomes:

+
template <typename T>
struct print_impl : hana::default_ {
template <typename ...Args>
static constexpr auto apply(Args&& ...) = delete;
};
template <typename T>
struct Printable
: hana::integral_constant<bool,
!hana::is_default<print_impl<hana::tag_of_t<T>>>::value
>
{ };

This is all that there's to know about the interaction between tag-dispatched functions and concepts. However, some concepts in Hana do not rely solely on the definition of specific tag-dispatched functions to determine if a type is a model of the concept. This can happen when a concept merely introduces semantic guarantees through laws and refined concepts, but no additional syntactic requirements. Defining such a concept can be useful for several reasons. First, it sometimes happen that an algorithm can be implemented more efficiently if we can assume some semantic guarantees X or Y, so we might create a concept to enforce those guarantees. Secondly, it is sometimes possible to automatically define the models for several concepts when we have additional semantic guarantees, which saves the user the trouble of defining those models manually. For example, this is the case of the Sequence concept, which basically adds semantic guarantees to Iterable and Foldable, and in turn allows us to define the models for a myriad of concepts ranging from Comparable to Monad.

+

For these concepts, it is usually necessary to specialize the corresponding template struct in the boost::hana namespace to provide a model for a custom type. Doing so is like providing a seal saying that the semantic guarantees required by the concept are respected by the custom type. The concepts that require being explicitly specialized will document that fact. So that's it! This is all that there's to know about concepts in Hana, which ends this section about the core of Hana.

+

+Header organization

+
+

The library is designed to be modular while keeping the number of headers that must be included to get basic functionality reasonably low. The structure of the library was also intentionally kept simple, because we all love simplicity. What follows is a general overview of the header organization. A list of all the headers provided by the library is also available in the panel on the left (under the Headers label) in case you need more details.

+
    +
  • boost/hana.hpp
    + This is the master header of the library, which includes the whole public interface of the library. Note that external adapters, experimental features and implementation details are not included by this header, however, since some of them require additional dependencies.
  • +
  • boost/hana/
    + This is the main directory of the library containing the definitions of everything provided by the library. Each algorithm and container provided by the library has its own header. For a container or an algorithm named XXX, the corresponding header is boost/hana/XXX.hpp.
      +
    • boost/hana/concept/
      + This subdirectory contains the definition of Hana's concepts. These headers provide a way to check whether an object is a model of the corresponding concept, and they sometimes also provide default implementations for other related concepts, which are documented on a per-concept basis. They also include all the algorithms associated to that concept.
    • +
    • boost/hana/core/
      + This subdirectory contains the machinery for tag dispatching and other related utilities like make and to.
    • +
    • boost/hana/fwd/
      + This subdirectory contains the forward declaration of everything in the library. It is essentially a mirror of the boost/hana/ directory, except all the headers contain only forward declarations and documentation. For example, to include the hana::tuple container, one can use the boost/hana/tuple.hpp header. However, if one only wants the forward declaration of that container, the boost/hana/fwd/tuple.hpp header can be used instead. Note that forward declarations for headers in boost/hana/ext/ and boost/hana/functional/ are not provided.
    • +
    • boost/hana/functional/
      + This subdirectory contains various function objects that are often useful, but that do not necessarily belong to a concept.
    • +
    • boost/hana/ext/
      + This directory contains adapters for external libraries. For a component named xxx in a namespace ns, the external adapter lives in the boost/hana/ext/ns/xxx.hpp header. For example, the external adapter for std::tuple lives in the boost/hana/ext/std/tuple.hpp header, while the external adapter for boost::mpl::vector is in boost/hana/ext/boost/mpl/vector.hpp.

      +

      Note that only the strict minimum required to adapt the external components is included in these headers (e.g. a forward declaration). This means that the definition of the external component should still be included when one wants to use it. For example:

      #include <tuple> // still required to create a tuple
      namespace hana = boost::hana;
      int main() {
      constexpr std::tuple<int, char, float> xs{1, '2', 3.0f};
      static_assert(hana::front(xs) == 1, "");
      }
    • +
    • boost/hana/experimental/
      + This directory contains experimental features that may or may not make it into the library at some point, but that were deemed useful enough to be made available to the public. Features in this subdirectory reside in the hana::experimental namespace. Also, do not expect these features to be stable; they may be moved, renamed, changed or removed between releases of the library. These features may also require additional external dependencies; each feature documents the additional dependencies it requires, if any.

      +

      Because of the potential additional dependencies, these headers are also not included by the master header of the library.

      +
    • +
    • boost/hana/detail/
      + This directory contains utilities required internally. Nothing in detail/ is guaranteed to be stable, so you should not use it.
    • +
    +
  • +
+

+Conclusion

+
+

You now have everything you need to start using the library. From this point forward, mastering the library is only a matter of understanding how to use the general purpose concepts and containers provided with it, which is best done by looking at the reference documentation. At some point, you will probably also want to create your own concepts and data types that fit your needs better; go ahead, the library was designed to be used that way.

+

+Fair warning: functional programming ahead

+

Programming with heterogeneous objects is inherently functional – since it is impossible to modify the type of an object, a new object must be introduced instead, which rules out mutation. Unlike previous metaprogramming libraries whose design was modeled on the STL, Hana uses a functional style of programming which is the source for a good portion of its expressiveness. However, as a result, many concepts presented in the reference will be unfamiliar to C++ programmers without a knowledge of functional programming. The reference attempts to make these concepts approachable by using intuition whenever possible, but bear in mind that the highest rewards are usually the fruit of some effort.

+

This finishes the tutorial part of the documentation. I hope you enjoy using the library, and please consider contributing to make it even better!

+

– Louis

+

+Using the reference

+
+

As for most generic libraries, algorithms in Hana are documented by the concept to which they belong (Foldable, Iterable, Searchable, Sequence, etc...). The different containers are then documented on their own page, and the concepts that they model are documented there. The concepts modeled by some container defines what algorithms can be used with such a container.

+

More specifically, the structure of the reference (available in the menu to the left) goes as follow:

+
    +
  • Core
    + Documentation for the core module, which contains everything needed to create concepts, data types and related utilities. This is relevant if you need to extend the library, but otherwise you can probably ignore this.
  • +
  • Concepts
    + Documentation for all the concepts provided with the library. Each concept:
      +
    • Documents which functions must be implemented absolutely in order to model that concept. The set of functions that must be provided is called a minimal complete definition.
    • +
    • Documents semantic constraints that any model of that concept must satisfy. These constraints are usually called laws and they are expressed in a semi-formal mathematical language. Of course, those laws can't be checked automatically but you should still make sure you satisfy them.
    • +
    • Documents the concept(s) it refines, if any. Sometimes, a concept is powerful enough to provide a model of a concept it refines, or at least the implementation for some of its associated functions. When this is the case, the concept will document which functions of the refined concept it provides, and how it does so. Also, it is sometimes possible that the model for a refined concept is unique, in which case it can be provided automatically. When this happens, it will be documented but you don't have to do anything special to get that model.
    • +
    +
  • +
  • Data types
    + Documentation for all the data structures provided with the library. Each data structure documents the concept(s) it models, and how it does so. It also documents the methods tied to it but not to any concept, for example maybe for optional.
  • +
  • Functional
    + General purpose function objects that are generally useful in a purely functional setting. These are currently not tied to any concept or container.
  • +
  • External adapters
    + Documentation for all the adapters for external libraries. These adapters are documented as if they were native types provided by Hana, but obviously Hana only provides the compatibility layer between them and the library.
  • +
  • Configuration options
    + Macros that can be used to tweak the global behavior of the library.
  • +
  • Assertions
    + Macros to perform various types of assertions.
  • +
  • Alphabetical index
    + Alphabetical index of everything provided in the library.
  • +
  • Headers
    + A list of all the headers provided by the library.
  • +
  • Details
    + Implementation details; don't go there. Anything not documented at all or documented in this group is not guaranteed to be stable.
  • +
+

After you get to know Hana a bit better, it will probably happen that you just want to find the reference for a precise function, concept or container. If you know the name of what you're looking for, you can use the search box located in the upper right corner of any page of the documentation. My personal experience is that this is by far the quickest way of finding what you want when you already know its name.

+

+Function signatures

+

As you will see in the reference, several functions provide signatures documented in a semi-formal mathematical language. We are in the process of documenting all functions in this way, but this may take a while. The notation used is the usual mathematical notation for defining functions. Specifically, a function Return f(Arg1, ..., ArgN); can be defined equivalently using mathematical notation as

+

+\[ \mathtt{f} : \mathtt{Arg}_1 \times \dots \times \mathtt{Arg}_n \to \mathtt{Return} \] +

+

However, instead of documenting the actual argument and return types of functions, those signatures are written in terms of argument and return tags. This is done because of the heterogeneous setting, where the actual type of an object is usually pretty meaningless and does not help to reason about what's being returned or taken by a function. For example, instead of documenting the equal function for integral_constants as

+

+\[ \mathtt{equal} : \mathtt{integral\_constant<T, n>} \times \mathtt{integral\_constant<T, m>} \to \mathtt{integral\_constant<bool, n == m>} \] +

+

which is not really helpful (as it really presents nothing but the implementation), it is instead documented using integral_constant_tag, which acts as the "type" of all integral_constants. Note that since equal is part of the Comparable concept, it is not actually documented for hana::integral_constant specifically, but the idea is there:

+

+\[ \mathtt{equal} : \mathtt{integral\_constant\_tag<T>} \times \mathtt{integral\_constant\_tag<T>} \to \mathtt{integral\_constant\_tag<bool>} \] +

+

This clearly conveys the intention that comparing two integral_constants gives back another integral_constant holding a bool. In general, this abstraction of the actual representation of objects makes it possible for us to reason in a high level manner about functions, even though their actual return and argument types are heterogeneous and not helpful. Finally, most functions expect container elements to have some properties. For example, this is the case of the sort algorithm, which obviously requires the container elements to be Orderable. Normally, we would write the signature for the non-predicated version of sort as

+

+\[ \mathtt{sort} : \mathtt{S} \to \mathtt{S} \\ \text{where S is a Sequence} \] +

+

However, this fails to express the requirement that the contents of S are Orderable. To express this, we use the following notation:

+

+\[ \mathtt{sort} : \mathtt{S(T)} \to \mathtt{S(T)} \\ \text{where S is a Sequence and T is Orderable} \] +

+

One way to see this is to pretend that S, the sequence tag, is actually parameterized by the tag of the sequence's elements, T. We're also pretending that the elements all have the same tag T, which is not the case in general. Now, by stating that T must be Orderable, we're expressing the fact that the sequence's elements must be Orderable. This notation is used in different flavors to express different kinds of requirements. For example, the cartesian_product algorithm takes a sequence of sequences and returns the cartesian product of those sequences as a sequence of sequences. Using our notation, this can be conveyed very easily:

+

+\[ \mathtt{cartesian\_product} : \mathtt{S(S(T))} \to \mathtt{S(S(T))} \\ \text{where S is a Sequence} \] +

+

+Acknowledgements

+
+

I'd like to thank the following persons and organizations for contributing to Hana in one way or another:

+
    +
  • Zach Laine and Matt Calabrese for the original idea of using function call syntax to do type-level computations, as presented in their BoostCon presentation (slides 1) (slides 2).
  • +
  • Joel Falcou for mentoring me two consecutive years during my work on Hana as part of the Google Summer of Code program, Niall Douglas for being the GSoC admin for Boost and helping me get in the program, and finally Google for their awesome GSoC program.
  • +
  • The Boost Steering committee for unlocking a grant for me to work on Hana in the winter of 2015, as an extension to the previous year's GSoC.
  • +
  • Several C++Now attendees and members of the Boost mailing list for insightful conversations, comments and questions about the project.
  • +
+

+Glossary

+
+

The reference documentation uses a couple of terms that are specific to this library. Also, a simplified implementation of functions is sometimes provided in pseudo-code, the actual implementation sometimes being slightly hard to understand. This section defines terms used in the reference and in the pseudo-code used to describe some functions.

+

forwarded(x)

+

Means that the object is forwarded optimally. This means that if x is a parameter, it is std::forwarded, and if it is a captured variable, it is moved from whenever the enclosing lambda is an rvalue.

+

Also note that when x can be moved from, the statement return forwarded(x); in a function with decltype(auto) does not mean that an rvalue reference to x will be returned, which would create a dangling reference. Rather, it means that x is returned by value, the value being constructed with the std::forwarded x.

+

perfect-capture

+

This is used in lambdas to signify that the captured variables are initialized using perfect forwarding, as if [x(forwarded(x))...]() { } had been used.

+

tag-dispatched

+

This means that the documented function uses tag dispatching, and hence the exact implementation depends on the model of the concept associated to the function.

+

implementation-defined

+

This expresses the fact that the exact implementation of an entity (usually a type) should not be relied upon by users. In particular, this means that one can not assume anything beyond what is written explicitly in the documentation. Usually, the concepts satisfied by an implementation-defined entity will be documented, because one could otherwise do nothing with it. Concretely, assuming too much about an implementation-defined entity will probably not kill you, but it will very probably break your code when you update to a newer version of Hana.

+

+Rationales/FAQ

+
+

This section documents the rationale for some design choices. It also serves as a FAQ for some (not so) frequently asked questions. If you think something should be added to this list, open a GitHub issue and we'll consider either improving the documentation or adding the question here.

+

+Why restrict usage of external dependencies?

+

There are several reasons for doing so. First, Hana is a very fundamental library; we are basically reimplementing the core language and the standard library with support for heterogeneous types. When going through the code, one quickly realizes that other libraries are rarely needed, and that almost everything has to be implemented from scratch. Also, since Hana is very fundamental, there is even more incentive for keeping the dependencies minimal, because those dependencies will be handed down to the users. Regarding the minimal reliance on Boost in particular, one big argument for using it is portability. However, as a cutting edge library, Hana only targets very recent compilers. Hence, we can afford to depend on modern constructs and the portability given to us by using Boost would mostly represent dead weight.

+

+Why no iterators?

+

Iterator based designs have their own merits, but they are also known to reduce the composability of algorithms. Furthermore, the context of heterogeneous programming brings a lot of points that make iterators much less interesting. For example, incrementing an iterator would have to return a new iterator with a different type, because the type of the new object it is pointing to in the sequence might be different. It also turns out that implementing most algorithms in terms of iterators leads to a worse compile-time performance, simply because the execution model of metaprogramming (using the compiler as an interpreter) is so different from the runtime execution model of C++ (a processor accessing contiguous memory).

+

+Why leave some container's representation implementation-defined?

+

First, it gives much more wiggle room for the implementation to perform compile-time and runtime optimizations by using clever representations for specific containers. For example, a tuple containing homogeneous objects of type T could be implemented as an array of type T instead, which is more efficient at compile-time. Secondly, and most importantly, it turns out that knowing the type of a heterogeneous container is not as useful as you would think. Indeed, in the context of heterogeneous programming, the type of the object returned by a computation is usually part of the computation too. In other words, there is no way to know the type of the object returned by an algorithm without actually performing the algorithm. For example, consider the find_if algorithm:

+
auto tuple = hana::make_tuple(1, 'x', 3.4f);
auto result = hana::find_if(tuple, [](auto const& x) {
return hana::traits::is_integral(hana::typeid_(x));
});

If the predicate is satisfied for some element of the tuple, result will be equal to just(x). Otherwise, result will be equal to nothing. However, the nothingness of the result is known at compile-time, which requires just(x) and nothing to have different types. Now, say you wanted to explicitly write the type of the result:

+
some_type result = hana::find_if(tuple, [](auto const& x) {
return hana::traits::is_integral(hana::typeid_(x));
});

In order to possess the knowledge of what some_type is, you would need to actually perform the algorithm, because some_type depends on whether the predicate is satisfied or not for some element in the container. In other words, if you were able to write the above, then you would already know what the result of the algorithm is and you would not need to perform the algorithm in the first place. In Boost.Fusion, this problem is addressed by having a separate result_of namespace, which contains a metafunction computing the result type of any algorithm given the types of the arguments passed to it. For example, the above example could be rewritten with Fusion as:

+
using Container = fusion::result_of::make_vector<int, char, float>::type;
Container tuple = fusion::make_vector(1, 'x', 3.4f);
using Predicate = mpl::quote1<std::is_integral>;
using Result = fusion::result_of::find_if<Container, Predicate>::type;
Result result = fusion::find_if<Predicate>(tuple);

Notice that we're basically doing the computation twice; once in the result_of namespace and once in the normal fusion namespace, which is highly redundant. Before the days of auto and decltype, such techniques were necessary to perform heterogeneous computations. However, since the advent of modern C++, the need for explicit return types in the context of heterogeneous programming is largely obsolete, and knowing the actual type of containers is usually not that useful.

+

+Why Hana?

+

No, it isn't the name of my girlfriend! I just needed a short and good looking name that people would easily remember, and Hana came up. It also came to my attention that Hana means flower in Japanese, and one in Korean. Since Hana is pretty and it unifies type-level and heterogeneous programming under a single paradigm, the name appears to be quite well chosen in retrospect :-).

+

+Why define our own tuple?

+

Since Hana defines a lot of algorithms on tuples, a possible way to go would have been to simply use std::tuple and provide the algorithms only, instead of also providing our own tuple. The reason for providing our own tuple is principally performance. Indeed, all the std::tuple implementations tested so far have a very bad compile-time performance. Also, to get truly amazing compile-time performance, we need to take advantage of the tuple's internal representation in some algorithms, which requires defining our own. Finally, some sugar like operator[] could not be provided if we were using a std::tuple, since that operator must be defined as a member function.

+

+How are names chosen?

+

When deciding upon a name X, I try to balance the following things (in no specific order):

+
    +
  • How idiomatic is X in C++?
  • +
  • How idiomatic is X in the rest of the programming world?
  • +
  • How good of a name X actually is, regardless of historical reasons
  • +
  • How do I, as the library author, feel about X
  • +
  • How do users of the library feel about X
  • +
  • Are there technical reasons not to use X, like name clashes or names reserved by the standard
  • +
+

Of course, good naming is and will always be hard. Names are and will always be tainted by the author's own bias. Still, I try to choose names in a reasonable manner.

+

+How is the parameter order decided?

+

Unlike naming, which is fairly subjective, the order of the parameters of a function is usually pretty straightforward to determine. Basically, the rule of thumb is "the container goes first". It has always been this way in Fusion and MPL, and this is intuitive for most C++ programmers. Also, in higher-order algorithms, I try to put the function parameter last, so that multi-line lambdas look nice:

+
algorithm(container, [](auto x) {
return ...;
});
// is nicer than
algorithm([](auto x) {
return ...;
}, container);

+Why tag dispatching?

+

There are several different techniques we could have used to provide customization points in the library, and tag-dispatching was chosen. Why? First, I wanted a two-layer dispatching system because this allows functions from the first layer (the ones that are called by users) to actually be function objects, which allows passing them to higher-order algorithms. Using a dispatching system with two layers also allows adding some compile-time sanity checks to the first layer, which improves error messages.

+

Now, tag-dispatching was chosen over other techniques with two layers for a couple of reasons. First, having to explicitly state how some tag is a model of a concept gives the responsibility of making sure that the semantic requirements of the concept are respected to the user. Secondly, when checking whether a type is a model of some concept, we basically check that some key functions are implemented. In particular, we check that the functions from the minimal complete definition of that concept are implemented. For example, Iterable<T> checks whether the is_empty, at and drop_front functions implemented for T. However, the only way to detect this without tag-dispatching is to basically check whether the following expressions are valid in a SFINAE-able context:

+
implementation_of_at(std::declval<T>(), std::declval<N>())
implementation_of_is_empty(std::declval<T>())
implementation_of_drop_front(std::declval<T>())

Unfortunately, this requires actually doing the algorithms, which might either trigger a hard compile-time error or hurt compile-time performance. Also, this requires picking an arbitrary index N to call at with: what if the Iterable is empty? With tag dispatching, we can just ask whether at_impl<T>, is_empty_impl<T> and drop_front_impl<T> are defined, and nothing happens until we actually call their nested ::apply function.

+

+Why not provide zip_longest?

+

It would require either (1) padding the shortest sequences with an arbitrary object, or (2) padding the shortest sequences with an object provided by the user when calling zip_longest. Since there is no requirement that all the zipped sequences have elements of similar types, there is no way to provide a single consistent padding object in all cases. A tuple of padding objects should be provided, but I find it perhaps too complicated to be worth it for now. If you need this functionality, open a GitHub issue.

+

+Why aren't concepts constexpr functions?

+

Since the C++ concept proposal maps concepts to boolean constexpr functions, it would make sense that Hana defines its concepts as such too, instead of as structs with a nested ::value. Indeed, this was the first choice, but it had to be revised because template functions have one limitation that makes them less flexible. Specifically, a template function can't be passed to a higher-order metafunction. In other words, it is not possible to write the following

+
template <??? Concept>
struct some_metafunction {
// ...
};

This sort of code is very useful in some contexts, such as checking whether two types have a common embedding modeling a concept:

+
template <??? Concept, typename T, typename U>
struct have_common_embedding {
// whether T and U both model Concept, and share a common type that also models Concept
};

With concepts as boolean constexpr functions, this can't be written generically. When concepts are just template structs, however, we can use template template parameters:

+
template <template <typename ...> class Concept, typename T, typename U>
struct have_common_embedding {
// whether T and U both model Concept, and share a common type that also models Concept
};

+Appendix I: Advanced constexpr

+
+

In C++, the border between compile-time and runtime is hazy, a fact that is even more true with the introduction of generalized constant expressions in C++14. However, being able to manipulate heterogeneous objects is all about understanding that border and then crossing it at one's will. The goal of this section is to set things straight with constexpr; to understand which problems it can solve and which ones it can't. This section covers advanced concepts about to constant expressions; only readers with a good understanding of constexpr should attempt to read this.

+

+Constexpr stripping

+

Let's start with a challenging question. Should the following code compile?

+
template <typename T>
void f(T t) {
static_assert(t == 1, "");
}
constexpr int one = 1;
f(one);

The answer is no, and the error given by Clang goes like

+
error: static_assert expression is not an integral constant expression
static_assert(t == 1, "");
^~~~~~

The explanation is that inside of f's body, t is not a constant expression, and hence it can't be used as the operand to a static_assert. The reason is that such a function simply can't be generated by the compiler. To understand the issue, consider what should happen when we instantiate the f template with a concrete type:

+
// Here, the compiler should generate the code for f<int> and store the
// address of that code into fptr.
void (*fptr)(int) = f<int>;

Clearly, the compiler can't generate f<int>'s code, which should trigger a static_assert if t != 1, because we haven't specified t yet. Even worse, the generated function should work on both constant and non-constant expressions:

+
void (*fptr)(int) = f<int>; // assume this was possible
int i = ...; // user input
fptr(i);

Clearly, fptr's code can't be generated, because it would require being able to static_assert on a runtime value, which does not make sense. Furthermore, note that it does not matter whether you make the function constexpr or not; making f constexpr would only state that the result of f is a constant expression whenever its argument is a constant expression, but it still does not give you the ability to know whether you were called with a constant expression from f's body. In other words, what we would want is something like:

+
template <typename T>
void f(constexpr T t) {
static_assert(t == 1, "");
}
constexpr int one = 1;
f(one);

In this hypothetical scenario, the compiler would know that t is a constant expression from the body of f, and the static_assert could be made to work. However, constexpr parameters do not exist in the current language, and adding them would bring up very challenging design and implementation issues. The conclusion of this little experiment is that argument passing strips away constexpr-ness. What might be unclear by now are the consequences of this stripping, which are explained next.

+

+Constexpr preservation

+

The fact that an argument is not a constant expression means that we can't use it as a non-type template parameter, as an array bound, inside a static_assert or anything else that requires a constant expression. In addition, this means that the return type of a function can't depend on the value of an argument which is nothing new if you think about it:

+
template <int i>
struct foo { };
auto f(int i) -> foo<i>; // obviously won't work

In fact, the return type of a function may only depend on the types of its arguments, and constexpr can't change this fact. This is of utmost importance to us, because we're interested in manipulating heterogeneous objects, which eventually means returning objects with different types depending on the argument of the function. For example, a function might want to return an object of type T in one case and an object of type U in the other; from our analysis, we now know that these "cases" will have to depend on information encoded in the types of the arguments, not in their values.

+

To preserve constexpr-ness through argument passing, we have to encode the constexpr value into a type, and then pass a not-necessarily-constexpr object of that type to the function. The function, which must be a template, may then access the constexpr value encoded inside that type.

+
Todo:
Improve this explanation and talk about non-integral constant expressions wrapped into types.
+

+Side effects

+

Let me ask a tricky question. Is the following code valid?

+
template <typename T>
constexpr int f(T& n) { return 1; }
int n = 0;
constexpr int i = f(n);

The answer is yes, but the reason might not be obvious at first. What happens here is that we have a non-constexpr int n, and a constexpr function f taking a reference to its argument. The reason why most people think it shouldn't work is that n is not constexpr. However, we're not doing anything with n inside of f, so there is no actual reason why this shouldn't work! This is a bit like throwing inside of a constexpr function:

+
constexpr int sqrt(int i) {
if (i < 0) throw "i should be non-negative";
return ...;
}
constexpr int two = sqrt(4); // ok: did not attempt to throw
constexpr int error = sqrt(-4); // error: can't throw in a constant expression

As long as the code path where throw appears is not executed, the result of the invocation can be a constant expression. Similarly, we can do whatever we want inside of f, as long as we don't execute a code path that requires accessing its argument n, which is not a constant expression:

+
template <typename T>
constexpr int f(T& n, bool touch_n) {
if (touch_n) n + 1;
return 1;
}
int n = 0;
constexpr int i = f(n, false); // ok
constexpr int j = f(n, true); // error

The error given by Clang for the second invocation is

+
error: constexpr variable 'j' must be initialized by a constant expression
constexpr int j = f(n, true); // error
^ ~~~~~~~~~~
note: read of non-const variable 'n' is not allowed in a constant expression
if (touch_n) n + 1;
^

Let's now step the game up a bit and consider a more subtle example. Is the following code valid?

+
template <typename T>
constexpr int f(T n) { return 1; }
int n = 0;
constexpr int i = f(n);

The only difference with our initial scenario is that f now takes its argument by value instead of by reference. However, this makes a world of difference. Indeed, we're now asking the compiler to make a copy of n and to pass this copy to f. However, n is not constexpr, so its value is only known at runtime. How could the compiler make a copy (at compile-time) of a variable whose value is only known at runtime? Of course, it can't. Indeed, the error message given by Clang is pretty explicit about what's happening:

+
error: constexpr variable 'i' must be initialized by a constant expression
constexpr int i = f(n);
^ ~~~~
note: read of non-const variable 'n' is not allowed in a constant expression
constexpr int i = f(n);
^
Todo:
Explain how side-effects may not appear inside constant expressions, even if the expression they yield are not accessed.
+

+Appendix II: A minimal MPL

+
+

This section presents a mini reimplementation of the MPL library. The goal is to be as backward compatible as possible with the MPL, while still using Hana under the hood. Only the "Algorithms" part of the MPL is implemented as a case study, but it should be possible to implement many (but not all) metafunctions of the MPL.

+

Scroll down to the main function to see the tests. The tests are exactly the examples in the MPL documentation that were copy/pasted and then modified as little as possible to work with this reimplementation.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/hana.hpp>
#include <boost/mpl/lambda.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/quote.hpp>
#include <iostream>
#include <type_traits>
namespace hana = boost::hana;
namespace mpl = boost::mpl;
namespace hpl {
//////////////////////////////////////////////////////////////////////////////
// Utilities
//////////////////////////////////////////////////////////////////////////////
namespace detail {
template <typename Pred>
constexpr auto mpl_predicate = hana::integral(hana::metafunction_class<
typename mpl::lambda<Pred>::type
>);
template <typename F>
constexpr auto mpl_metafunction = hana::metafunction_class<
typename mpl::lambda<F>::type
>;
}
//////////////////////////////////////////////////////////////////////////////
// integral_c
//////////////////////////////////////////////////////////////////////////////
template <typename T, T v>
using integral_c = std::integral_constant<T, v>;
template <int i>
using int_ = integral_c<int, i>;
template <long i>
using long_ = integral_c<long, i>;
template <bool b>
using bool_ = integral_c<bool, b>;
using true_ = bool_<true>;
using false_ = bool_<false>;
//////////////////////////////////////////////////////////////////////////////
// Sequences, compile-time integers & al
//
// Differences with the MPL:
// 1. `pair<...>::first` and `pair<...>::second` won't work;
// use `first<pair<...>>` instead
//////////////////////////////////////////////////////////////////////////////
template <typename ...T>
using vector = hana::tuple<hana::type<T>...>;
template <typename T, T ...v>
using vector_c = hana::tuple<hana::integral_constant<T, v>...>;
template <typename T, T from, T to>
using range_c = decltype(hana::range_c<T, from, to>);
template <typename T, typename U>
using pair = hana::pair<hana::type<T>, hana::type<U>>;
template <typename P>
struct first : decltype(+hana::first(P{})) { };
template <typename P>
struct second : decltype(+hana::second(P{})) { };
//////////////////////////////////////////////////////////////////////////////
// Miscellaneous metafunctions
//////////////////////////////////////////////////////////////////////////////
template <typename C1, typename C2>
struct equal_to
: bool_<C1::value == C2::value>
{ };
template <typename C1, typename C2>
struct less
: bool_<(C1::value < C2::value)>
{ };
template <typename C1, typename C2>
struct greater
: bool_<(C1::value > C2::value)>
{ };
template <typename N>
struct next
: integral_c<typename N::value_type, N::value + 1>
{ };
//////////////////////////////////////////////////////////////////////////////
// Intrinsics
//
// Differences with the MPL:
// 1. `at` does not work for associative sequences; use `find` instead.
// 2. `begin`, `end`, `clear`, `erase`, `erase_key`, `insert`, `insert_range`,
// `is_sequence`, `key_type`, `order`, `sequence_tag`, `value_type`: not implemented
//////////////////////////////////////////////////////////////////////////////
template <typename Sequence, typename N>
struct at
: decltype(hana::at(Sequence{}, N{}))
{ };
template <typename Sequence, long n>
using at_c = at<Sequence, long_<n>>;
template <typename Sequence>
struct back
: decltype(+hana::back(Sequence{}))
{ };
template <typename Sequence>
struct empty
: decltype(hana::is_empty(Sequence{}))
{ };
template <typename Sequence>
struct front
: decltype(+hana::front(Sequence{}))
{ };
template <typename Sequence>
struct pop_back {
using type = decltype(hana::drop_back(
hana::to_tuple(Sequence{}), hana::size_c<1>
));
};
template <typename Sequence>
struct pop_front {
using type = decltype(hana::drop_front(Sequence{}));
};
template <typename Sequence, typename T>
struct push_back {
using type = decltype(hana::append(Sequence{}, hana::type_c<T>));
};
template <typename Sequence, typename T>
struct push_front {
using type = decltype(hana::prepend(Sequence{}, hana::type_c<T>));
};
template <typename Sequence>
struct size
: decltype(hana::length(Sequence{}))
{ };
//////////////////////////////////////////////////////////////////////////////
// Iteration algorithms
//
// Differences with the MPL:
// 1. reverse_fold:
// Does not take an optional additional ForwardOp argument.
//
// 2. iter_fold, reverse_iter_fold:
// Not implemented because we don't use iterators
//////////////////////////////////////////////////////////////////////////////
template <typename Sequence, typename State, typename F>
struct fold
: decltype(hana::fold(
Sequence{}, hana::type_c<State>, detail::mpl_metafunction<F>
))
{ };
template <typename Sequence, typename State, typename F>
: decltype(hana::reverse_fold(
Sequence{}, hana::type_c<State>, detail::mpl_metafunction<F>
))
{ };
template <typename Sequence, typename State, typename F>
using accumulate = fold<Sequence, State, F>;
//////////////////////////////////////////////////////////////////////////////
// Query algorithms
//
// Differences with the MPL:
// 1. find_if and find:
// Instead of returning an iterator, they either have a nested `::type`
// alias to the answer, or they have no nested `::type` at all, which
// makes them SFINAE-friendly.
//
// 2. lower_bound, upper_bound:
// Not implemented.
//
// 3. {min,max}_element:
// Not returning an iterator, and also won't work on empty sequences.
//////////////////////////////////////////////////////////////////////////////
template <typename Sequence, typename Pred>
struct find_if
: decltype(hana::find_if(Sequence{}, detail::mpl_predicate<Pred>))
{ };
template <typename Sequence, typename T>
struct find
: decltype(hana::find(Sequence{}, hana::type_c<T>))
{ };
template <typename Sequence, typename T>
struct contains
: decltype(hana::contains(Sequence{}, hana::type_c<T>))
{ };
template <typename Sequence, typename T>
struct count
: decltype(hana::count(Sequence{}, hana::type_c<T>))
{ };
template <typename Sequence, typename Pred>
struct count_if
: decltype(hana::count_if(Sequence{}, detail::mpl_predicate<Pred>))
{ };
template <typename Sequence, typename Pred = mpl::quote2<less>>
struct min_element
: decltype(hana::minimum(Sequence{}, detail::mpl_predicate<Pred>))
{ };
template <typename Sequence, typename Pred = mpl::quote2<less>>
struct max_element
: decltype(hana::maximum(Sequence{}, detail::mpl_predicate<Pred>))
{ };
template <typename S1, typename S2, typename Pred = mpl::quote2<std::is_same>>
struct equal
: decltype( // inefficient but whatever
hana::length(S1{}) == hana::length(S2{}) &&
hana::all(hana::zip_shortest_with(detail::mpl_predicate<Pred>,
hana::to_tuple(S1{}),
hana::to_tuple(S2{})))
)
{ };
//////////////////////////////////////////////////////////////////////////////
// Transformation algorithms
//
// Differences from the MPL:
// 1. The algorithms do not accept an optional inserter, and they always
// return a `vector`.
// 2. stable_partition: not implemented
// 3. All the reverse_* algorithms are not implemented.
//////////////////////////////////////////////////////////////////////////////
template <typename Sequence>
struct copy {
using type = decltype(hana::to_tuple(Sequence{}));
};
template <typename Sequence, typename Pred>
struct copy_if {
using type = decltype(hana::filter(
hana::to_tuple(Sequence{}),
detail::mpl_predicate<Pred>
));
};
template <typename Sequence, typename Sequence_or_Op, typename = void>
struct transform;
template <typename Sequence, typename Op>
struct transform<Sequence, Op> {
using type = decltype(hana::transform(
hana::to_tuple(Sequence{}), detail::mpl_metafunction<Op>
));
};
template <typename S1, typename S2, typename Op>
struct transform {
using type = decltype(hana::zip_with(
detail::mpl_metafunction<Op>,
hana::to_tuple(S1{}),
hana::to_tuple(S2{})
));
};
template <typename Sequence, typename OldType, typename NewType>
struct replace {
using type = decltype(hana::replace(
hana::to_tuple(Sequence{}),
hana::type_c<OldType>,
hana::type_c<NewType>
));
};
template <typename Sequence, typename Pred, typename NewType>
struct replace_if {
using type = decltype(hana::replace_if(
hana::to_tuple(Sequence{}),
detail::mpl_predicate<Pred>,
hana::type_c<NewType>
));
};
template <typename Sequence, typename T>
struct remove {
using type = decltype(hana::filter(
hana::to_tuple(Sequence{}),
hana::not_equal.to(hana::type_c<T>)
));
};
template <typename Sequence, typename Pred>
struct remove_if {
using type = decltype(hana::filter(
hana::to_tuple(Sequence{}),
hana::compose(hana::not_, detail::mpl_predicate<Pred>)
));
};
template <typename Sequence, typename Pred>
struct unique {
using type = decltype(hana::unique(
hana::to_tuple(Sequence{}),
detail::mpl_predicate<Pred>
));
};
template <typename Sequence, typename Pred>
struct partition {
using hana_pair = decltype(hana::partition(
hana::to_tuple(Sequence{}),
detail::mpl_predicate<Pred>
));
using type = pair<
decltype(hana::first(hana_pair{})),
decltype(hana::second(hana_pair{}))
>;
};
template <typename Sequence, typename Pred = mpl::quote2<less>>
struct sort {
using type = decltype(hana::sort(
hana::to_tuple(Sequence{}), detail::mpl_predicate<Pred>
));
};
template <typename Sequence>
struct reverse {
using type = decltype(hana::reverse(hana::to_tuple(Sequence{})));
};
//////////////////////////////////////////////////////////////////////////////
// Runtime algorithms
//////////////////////////////////////////////////////////////////////////////
template <typename Sequence, typename F>
void for_each(F f) {
hana::for_each(Sequence{}, [&f](auto t) {
f(typename decltype(t)::type{});
});
}
template <typename Sequence, typename TransformOp, typename F>
void for_each(F f) {
for_each<typename transform<Sequence, TransformOp>::type>(f);
}
} // end namespace hpl
template <typename N>
struct is_odd
: hpl::bool_<(N::value % 2)>
{ };
int main() {
using namespace hpl;
//////////////////////////////////////////////////////////////////////////////
// Misc
//////////////////////////////////////////////////////////////////////////////
// pair
{
static_assert(std::is_same<first<pair<int, float>>::type, int>{}, "");
static_assert(std::is_same<second<pair<int, float>>::type, float>{}, "");
}
//////////////////////////////////////////////////////////////////////////////
// Intrinsics
//////////////////////////////////////////////////////////////////////////////
// at
{
using range = range_c<long,10,50>;
static_assert(at<range, int_<0>>::value == 10, "");
static_assert(at<range, int_<10>>::value == 20, "");
static_assert(at<range, int_<40>>::value == 50, "");
}
// at_c
{
using range = range_c<long, 10, 50>;
static_assert(at_c<range, 0>::value == 10, "");
static_assert(at_c<range, 10>::value == 20, "");
static_assert(at_c<range, 40>::value == 50, "");
}
// back
{
using range1 = range_c<int,0,1>;
using range2 = range_c<int,0,10>;
using range3 = range_c<int,-10,0>;
using types = vector<int, char, float>;
static_assert(back<range1>::value == 0, "");
static_assert(back<range2>::value == 9, "");
static_assert(back<range3>::value == -1, "");
static_assert(std::is_same<back<types>::type, float>{}, "");
}
// empty
{
using empty_range = range_c<int,0,0>;
using types = vector<long,float,double>;
static_assert(empty<empty_range>{}, "");
static_assert(!empty<types>{}, "");
}
// front
{
using types1 = vector<long>;
using types2 = vector<int,long>;
using types3 = vector<char,int,long>;
static_assert(std::is_same<front<types1>::type, long>{}, "");
static_assert(std::is_same<front<types2>::type, int>{}, "");
static_assert(std::is_same<front<types3>::type, char>{}, "");
}
// pop_back
{
using types1 = vector<long>;
using types2 = vector<long,int>;
using types3 = vector<long,int,char>;
using result1 = pop_back<types1>::type;
using result2 = pop_back<types2>::type;
using result3 = pop_back<types3>::type;
static_assert(size<result1>::value == 0, "");
static_assert(size<result2>::value == 1, "");
static_assert(size<result3>::value == 2, "");
static_assert(std::is_same< back<result2>::type, long>{}, "");
static_assert(std::is_same< back<result3>::type, int>{}, "");
}
// pop_front
{
using types1 = vector<long>;
using types2 = vector<int,long>;
using types3 = vector<char,int,long>;
using result1 = pop_front<types1>::type;
using result2 = pop_front<types2>::type;
using result3 = pop_front<types3>::type;
static_assert(size<result1>::value == 0, "");
static_assert(size<result2>::value == 1, "");
static_assert(size<result3>::value == 2, "");
static_assert(std::is_same<front<result2>::type, long>{}, "");
static_assert(std::is_same<front<result3>::type, int>{}, "");
}
// push_back
{
using bools = vector_c<bool,false,false,false,true,true,true,false,false>;
using message = push_back<bools, false_>::type;
static_assert(back<message>::type::value == false, "");
static_assert(count_if<message, equal_to<mpl::_1, false_>>{} == 6u, "");
}
// push_front
{
using v = vector_c<int,1,2,3,5,8,13,21>;
static_assert(size<v>{} == 7u, "");
using fibonacci = push_front<v, int_<1>>::type;
static_assert(size<fibonacci>{} == 8u, "");
static_assert(equal<
fibonacci,
vector_c<int,1,1,2,3,5,8,13,21>,
equal_to<mpl::_, mpl::_>
>{}, "");
}
// size
{
using empty_list = vector<>;
using numbers = vector_c<int,0,1,2,3,4,5>;
using more_numbers = range_c<int,0,100>;
static_assert(size<empty_list>{} == 0u, "");
static_assert(size<numbers>{} == 6u, "");
static_assert(size<more_numbers>{} == 100u, "");
}
//////////////////////////////////////////////////////////////////////////////
// Iteration algorithms
//////////////////////////////////////////////////////////////////////////////
// fold
{
using types = vector<long,float,short,double,float,long,long double>;
using number_of_floats = fold<types, int_<0>,
mpl::if_<std::is_floating_point<mpl::_2>,
next<mpl::_1>,
mpl::_1
>
>::type;
static_assert(number_of_floats{} == 4, "");
}
// reverse_fold
{
using numbers = vector_c<int,5,-1,0,-7,-2,0,-5,4>;
using negatives = vector_c<int,-1,-7,-2,-5>;
using result = reverse_fold<numbers, vector_c<int>,
mpl::if_<less<mpl::_2, int_<0>>,
push_front<mpl::_1, mpl::_2>,
mpl::_1
>
>::type;
static_assert(equal<negatives, result>{}, "");
}
//////////////////////////////////////////////////////////////////////////////
// Query algorithms
//////////////////////////////////////////////////////////////////////////////
// find_if
{
using types = vector<char,int,unsigned,long,unsigned long>;
using found = find_if<types, std::is_same<mpl::_1, unsigned>>::type;
static_assert(std::is_same<found, unsigned>{}, "");
}
// find
{
using types = vector<char,int,unsigned,long,unsigned long>;
static_assert(std::is_same<find<types, unsigned>::type, unsigned>{}, "");
}
// contains
{
using types = vector<char,int,unsigned,long,unsigned long>;
static_assert(!contains<types, bool>{}, "");
}
// count
{
using types = vector<int,char,long,short,char,short,double,long>;
static_assert(count<types, short>{} == 2u, "");
}
// count_if
{
using types = vector<int,char,long,short,char,long,double,long>;
static_assert(count_if<types, std::is_floating_point<mpl::_>>{} == 1u, "");
static_assert(count_if<types, std::is_same<mpl::_, char>>{} == 2u, "");
static_assert(count_if<types, std::is_same<mpl::_, void>>{} == 0u, "");
}
// min_element (MPL's example is completely broken)
{
}
// max_element (MPL's example is completely broken)
{
}
// equal
{
using s1 = vector<char,int,unsigned,long,unsigned long>;
using s2 = vector<char,int,unsigned,long>;
static_assert(!equal<s1,s2>{}, "");
}
//////////////////////////////////////////////////////////////////////////////
// Transformaton algorithms
//////////////////////////////////////////////////////////////////////////////
// copy
{
using numbers = vector_c<int,10, 11, 12, 13, 14, 15, 16, 17, 18, 19>;
using result = copy<range_c<int, 10, 20>>::type;
static_assert(size<result>{} == 10u, "");
static_assert(equal<result, numbers, mpl::quote2<equal_to>>{}, "");
}
// copy_if
{
using result = copy_if<range_c<int, 0, 10>, less<mpl::_1, int_<5>>>::type;
static_assert(size<result>{} == 5u, "");
static_assert(equal<result, range_c<int, 0, 5>>{}, "");
}
// transform
{
using types = vector<char,short,int,long,float,double>;
using pointers = vector<char*,short*,int*,long*,float*,double*>;
using result = transform<types,std::add_pointer<mpl::_1>>::type;
static_assert(equal<result, pointers>{}, "");
}
// replace
{
using types = vector<int,float,char,float,float,double>;
using expected = vector<int,double,char,double,double,double>;
using result = replace< types,float,double >::type;
static_assert(equal<result, expected>{}, "");
}
// replace_if
{
using numbers = vector_c<int,1,4,5,2,7,5,3,5>;
using expected = vector_c<int,1,4,0,2,0,0,3,0>;
using result = replace_if<numbers, greater<mpl::_, int_<4>>, int_<0>>::type;
static_assert(equal<result, expected, mpl::quote2<equal_to>>{}, "");
}
// remove
{
using types = vector<int,float,char,float,float,double>;
using result = hpl::remove<types, float>::type;
static_assert(equal<result, vector<int, char, double>>{}, "");
}
// remove_if
{
using numbers = vector_c<int,1,4,5,2,7,5,3,5>;
using result = remove_if<numbers, greater<mpl::_, int_<4> > >::type;
static_assert(equal<result, vector_c<int,1,4,2,3>, mpl::quote2<equal_to>>{}, "");
}
// unique
{
using types = vector<int,float,float,char,int,int,int,double>;
using expected = vector<int,float,char,int,double>;
using result = unique<types, std::is_same<mpl::_1, mpl::_2>>::type;
static_assert(equal<result, expected>{}, "");
}
// partition
{
using r = partition<range_c<int,0,10>, is_odd<mpl::_1>>::type;
static_assert(equal<first<r>::type, vector_c<int,1,3,5,7,9>>{}, "");
static_assert(equal<second<r>::type, vector_c<int,0,2,4,6,8>>{}, "");
}
// sort
{
using numbers = vector_c<int,3,4,0,-5,8,-1,7>;
using expected = vector_c<int,-5,-1,0,3,4,7,8>;
using result = sort<numbers>::type;
static_assert(equal<result, expected, equal_to<mpl::_, mpl::_>>{}, "");
}
// reverse
{
using numbers = vector_c<int,9,8,7,6,5,4,3,2,1,0>;
using result = reverse<numbers>::type;
static_assert(equal<result, range_c<int,0,10>>{}, "");
}
//////////////////////////////////////////////////////////////////////////////
// Runtime algorithms
//////////////////////////////////////////////////////////////////////////////
// for_each
{
auto value_printer = [](auto x) {
std::cout << x << '\n';
};
for_each<range_c<int, 0, 10> >(value_printer);
}
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/index__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/index__if_8hpp.html new file mode 100644 index 0000000..86f7b78 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/index__if_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/index_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
index_if.hpp File Reference
+
+
+ +

Defines boost::hana::detail::index_if. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::index_if< Pred, Ts, typename >
 Returns the index of the first element of the pack<> that satisfies the predicate, or the size of the pack if there is no such element. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::index_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/infix_8hpp.html b/boost_1_63_0/libs/hana/doc/html/infix_8hpp.html new file mode 100644 index 0000000..e3fe620 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/infix_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/infix.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
infix.hpp File Reference
+
+
+ +

Defines boost::hana::infix. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::infix
 Return an equivalent function that can also be applied in infix notation. More...
 
+

Detailed Description

+

Defines boost::hana::infix.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/infix_8hpp.js b/boost_1_63_0/libs/hana/doc/html/infix_8hpp.js new file mode 100644 index 0000000..1fafd0f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/infix_8hpp.js @@ -0,0 +1,4 @@ +var infix_8hpp = +[ + [ "infix", "infix_8hpp.html#ga7bdafba6dc801f1d2d83731ad9714557", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/insert_8hpp.html b/boost_1_63_0/libs/hana/doc/html/insert_8hpp.html new file mode 100644 index 0000000..1c058f1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/insert_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/insert.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
insert.hpp File Reference
+
+
+ +

Defines boost::hana::insert. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::insert.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/insert__range_8hpp.html b/boost_1_63_0/libs/hana/doc/html/insert__range_8hpp.html new file mode 100644 index 0000000..edd1f19 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/insert__range_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/insert_range.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
insert_range.hpp File Reference
+
+
+ +

Defines boost::hana::insert_range. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::insert_range.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/integer__sequence_8hpp.html b/boost_1_63_0/libs/hana/doc/html/integer__sequence_8hpp.html new file mode 100644 index 0000000..04f34e6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/integer__sequence_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std/integer_sequence.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
integer_sequence.hpp File Reference
+
+
+ +

Adapts std::integer_sequence for use with Hana. +More...

+ + + + + +

+Classes

struct  std::integer_sequence< T, v >
 Adaptation of std::integer_sequence for Hana. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts std::integer_sequence for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/integral__c_8hpp.html b/boost_1_63_0/libs/hana/doc/html/integral__c_8hpp.html new file mode 100644 index 0000000..48359d3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/integral__c_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/mpl/integral_c.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
integral_c.hpp File Reference
+
+
+ +

Adapts Boost.MPL IntegralConstants for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::mpl::integral_c< T, v >
 Adapter for IntegralConstants from the Boost.MPL. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts Boost.MPL IntegralConstants for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/integral__constant_8hpp.html b/boost_1_63_0/libs/hana/doc/html/integral__constant_8hpp.html new file mode 100644 index 0000000..cade5bc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/integral__constant_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/integral_constant.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
integral_constant.hpp File Reference
+
+
+ +

Defines boost::hana::integral_constant. +More...

+

Detailed Description

+

Defines boost::hana::integral_constant.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/intersection_8hpp.html b/boost_1_63_0/libs/hana/doc/html/intersection_8hpp.html new file mode 100644 index 0000000..c1d3f55 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/intersection_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/intersection.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
intersection.hpp File Reference
+
+
+ +

Defines boost::hana::intersection. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::intersection.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/intersperse_8hpp.html b/boost_1_63_0/libs/hana/doc/html/intersperse_8hpp.html new file mode 100644 index 0000000..62fd7b2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/intersperse_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/intersperse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
intersperse.hpp File Reference
+
+
+ +

Defines boost::hana::intersperse. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::intersperse.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/intrinsics_8hpp.html b/boost_1_63_0/libs/hana/doc/html/intrinsics_8hpp.html new file mode 100644 index 0000000..72c9cfb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/intrinsics_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/intrinsics.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
intrinsics.hpp File Reference
+
+
+ +

Defines macros for commonly used type traits. +More...

+

Detailed Description

+

Defines macros for commonly used type traits.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/is__disjoint_8hpp.html b/boost_1_63_0/libs/hana/doc/html/is__disjoint_8hpp.html new file mode 100644 index 0000000..3445a2f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/is__disjoint_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/is_disjoint.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_disjoint.hpp File Reference
+
+
+ +

Defines boost::hana::is_disjoint. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::is_disjoint.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/is__empty_8hpp.html b/boost_1_63_0/libs/hana/doc/html/is__empty_8hpp.html new file mode 100644 index 0000000..20bc062 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/is__empty_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/is_empty.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_empty.hpp File Reference
+
+
+ +

Defines boost::hana::is_empty. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::is_empty.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/is__subset_8hpp.html b/boost_1_63_0/libs/hana/doc/html/is__subset_8hpp.html new file mode 100644 index 0000000..243977d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/is__subset_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/is_subset.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
is_subset.hpp File Reference
+
+
+ +

Defines boost::hana::is_subset. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::is_subset.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/iterate_8hpp.html b/boost_1_63_0/libs/hana/doc/html/iterate_8hpp.html new file mode 100644 index 0000000..670977f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/iterate_8hpp.html @@ -0,0 +1,169 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/iterate.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
iterate.hpp File Reference
+
+
+ +

Defines boost::hana::iterate. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + + +

+Variables

template<std::size_t n>
constexpr auto boost::hana::iterate
 Applies another function n times to its argument. More...
 
+

Detailed Description

+

Defines boost::hana::iterate.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/iterate_8hpp.js b/boost_1_63_0/libs/hana/doc/html/iterate_8hpp.js new file mode 100644 index 0000000..6da5a5d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/iterate_8hpp.js @@ -0,0 +1,4 @@ +var iterate_8hpp = +[ + [ "iterate", "iterate_8hpp.html#gad1b8669c022d8675d68e5974451073d1", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/jquery.js b/boost_1_63_0/libs/hana/doc/html/jquery.js new file mode 100644 index 0000000..fd1dc51 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/jquery.js @@ -0,0 +1,68 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+ +
+
keys.hpp File Reference
+
+
+ +

Defines boost::hana::keys. +More...

+
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::keys.

+ +
+ + + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/lazy_8hpp.html b/boost_1_63_0/libs/hana/doc/html/lazy_8hpp.html new file mode 100644 index 0000000..884d873 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/lazy_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/lazy.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lazy.hpp File Reference
+
+
+ +

Defines boost::hana::lazy. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::lazy.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/length_8hpp.html b/boost_1_63_0/libs/hana/doc/html/length_8hpp.html new file mode 100644 index 0000000..01b2827 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/length_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/length.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
length.hpp File Reference
+
+
+ +

Defines boost::hana::length. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::length.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/less_8hpp.html b/boost_1_63_0/libs/hana/doc/html/less_8hpp.html new file mode 100644 index 0000000..a30a397 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/less_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/less.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
less.hpp File Reference
+
+
+ +

Defines boost::hana::less. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::less.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/less__equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/less__equal_8hpp.html new file mode 100644 index 0000000..5be111b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/less__equal_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/less_equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
less_equal.hpp File Reference
+
+
+ +

Defines boost::hana::less_equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::less_equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/lexicographical__compare_8hpp.html b/boost_1_63_0/libs/hana/doc/html/lexicographical__compare_8hpp.html new file mode 100644 index 0000000..8989d91 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/lexicographical__compare_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/lexicographical_compare.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lexicographical_compare.hpp File Reference
+
+
+ +

Defines boost::hana::lexicographical_compare. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::lexicographical_compare.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/lift_8hpp.html b/boost_1_63_0/libs/hana/doc/html/lift_8hpp.html new file mode 100644 index 0000000..a14a58b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/lift_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/lift.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lift.hpp File Reference
+
+
+ +

Defines boost::hana::lift. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::lift.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.html b/boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.html new file mode 100644 index 0000000..acbfe70 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/lockstep.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
lockstep.hpp File Reference
+
+
+ +

Defines boost::hana::lockstep. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::lockstep
 Invoke a function with the result of invoking other functions on its arguments, in lockstep. More...
 
+

Detailed Description

+

Defines boost::hana::lockstep.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.js b/boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.js new file mode 100644 index 0000000..ef60c73 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/lockstep_8hpp.js @@ -0,0 +1,4 @@ +var lockstep_8hpp = +[ + [ "lockstep", "lockstep_8hpp.html#gafca60c09e1f7a32a2b52baaf6515c279", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/map_8hpp.html b/boost_1_63_0/libs/hana/doc/html/map_8hpp.html new file mode 100644 index 0000000..b019ba7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/map_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/map.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
map.hpp File Reference
+
+
+ +

Defines boost::hana::map. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::map.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/max_8hpp.html b/boost_1_63_0/libs/hana/doc/html/max_8hpp.html new file mode 100644 index 0000000..99cf325 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/max_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/max.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
max.hpp File Reference
+
+
+ +

Defines boost::hana::max. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::max.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/maximum_8hpp.html b/boost_1_63_0/libs/hana/doc/html/maximum_8hpp.html new file mode 100644 index 0000000..6360879 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/maximum_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/maximum.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
maximum.hpp File Reference
+
+
+ +

Defines boost::hana::maximum. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::maximum.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/members_8hpp.html b/boost_1_63_0/libs/hana/doc/html/members_8hpp.html new file mode 100644 index 0000000..9addc95 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/members_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/members.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
members.hpp File Reference
+
+
+ +

Defines boost::hana::members. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/min_8hpp.html b/boost_1_63_0/libs/hana/doc/html/min_8hpp.html new file mode 100644 index 0000000..1e6c88e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/min_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/min.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
min.hpp File Reference
+
+
+ +

Defines boost::hana::min. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::min.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/minimum_8hpp.html b/boost_1_63_0/libs/hana/doc/html/minimum_8hpp.html new file mode 100644 index 0000000..572a7b0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/minimum_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/minimum.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
minimum.hpp File Reference
+
+
+ +

Defines boost::hana::minimum. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::minimum.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/minus_8hpp.html b/boost_1_63_0/libs/hana/doc/html/minus_8hpp.html new file mode 100644 index 0000000..9899198 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/minus_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/minus.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
minus.hpp File Reference
+
+
+ +

Defines boost::hana::minus. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::minus.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/mod_8hpp.html b/boost_1_63_0/libs/hana/doc/html/mod_8hpp.html new file mode 100644 index 0000000..c2a0c04 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/mod_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/mod.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mod.hpp File Reference
+
+
+ +

Defines boost::hana::mod. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::mod.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/modules.html b/boost_1_63_0/libs/hana/doc/html/modules.html new file mode 100644 index 0000000..cb9612d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/modules.html @@ -0,0 +1,181 @@ + + + + + + + + + +Boost.Hana: Reference documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Reference documentation
+
+
+
The reference documentation is split into logical modules, as documented in the user manual.
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 ConceptsConcepts provided by the library
 ApplicativeThe Applicative concept represents Functors with the ability to lift values and combine computations
 ComonadThe Comonad concept represents context-sensitive computations and data
 ComparableThe Comparable concept defines equality and inequality
 ConstantThe Constant concept represents data that can be manipulated at compile-time
 Euclidean RingThe EuclideanRing concept represents a commutative Ring that can also be endowed with a division algorithm
 FoldableThe Foldable concept represents data structures that can be reduced to a single value
 FunctorThe Functor concept represents types that can be mapped over
 GroupThe Group concept represents Monoids where all objects have an inverse w.r.t. the Monoid's binary operation
 HashableThe Hashable concept represents objects that can be normalized to a type-level hash
 IterableThe Iterable concept represents data structures supporting external iteration
 LogicalThe Logical concept represents types with a truth value
 MetafunctionA Metafunction is a function that takes hana::types as inputs and returns a hana::type as output
 MonadThe Monad concept represents Applicatives with the ability to flatten nested levels of structure
 MonadPlusThe MonadPlus concept represents Monads with a monoidal structure
 MonoidThe Monoid concept represents data types with an associative binary operation that has an identity
 OrderableThe Orderable concept represents totally ordered data types
 ProductRepresents types that are generic containers of two elements
 RingThe Ring concept represents Groups that also form a Monoid under a second binary operation that distributes over the first
 SearchableThe Searchable concept represents structures that can be searched
 SequenceThe Sequence concept represents generic index-based sequences
 StructThe Struct concept represents struct-like user-defined types
 Data typesGeneral purpose data types provided by the library
 FunctionalGeneral purpose function objects
 CoreCore utilities of the library
 Experimental featuresExperimental features that may or may not make it into the library. These features should not expected to be stable
 External adaptersAdapters for external libraries
 Boost.Fusion adaptersAdapters for Boost.Fusion containers
 Boost.MPL adaptersAdapters for Boost.MPL containers
 Other Boost adaptersAdapters for miscellaneous heterogeneous containers in Boost
 Standard library adaptersAdapters for components in the standard library
 Configuration optionsConfigurable options to tweak the global behavior of the library
 AssertionsMacros to perform different kinds of assertions
 DetailsImplementation details. Do not rely on anything here, even if it is documented
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/modules.js b/boost_1_63_0/libs/hana/doc/html/modules.js new file mode 100644 index 0000000..a75acc6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/modules.js @@ -0,0 +1,12 @@ +var modules = +[ + [ "Concepts", "group__group-concepts.html", "group__group-concepts" ], + [ "Data types", "group__group-datatypes.html", "group__group-datatypes" ], + [ "Functional", "group__group-functional.html", "group__group-functional" ], + [ "Core", "group__group-core.html", "group__group-core" ], + [ "Experimental features", "group__group-experimental.html", "group__group-experimental" ], + [ "External adapters", "group__group-ext.html", "group__group-ext" ], + [ "Configuration options", "group__group-config.html", "group__group-config" ], + [ "Assertions", "group__group-assertions.html", "group__group-assertions" ], + [ "Details", "group__group-details.html", "group__group-details" ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/monadic__compose_8hpp.html b/boost_1_63_0/libs/hana/doc/html/monadic__compose_8hpp.html new file mode 100644 index 0000000..9a69062 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/monadic__compose_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/monadic_compose.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monadic_compose.hpp File Reference
+
+
+ +

Defines boost::hana::monadic_compose. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::monadic_compose.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/monadic__fold__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/monadic__fold__left_8hpp.html new file mode 100644 index 0000000..048a60b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/monadic__fold__left_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/monadic_fold_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monadic_fold_left.hpp File Reference
+
+
+ +

Defines boost::hana::monadic_fold_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::monadic_fold_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/monadic__fold__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/monadic__fold__right_8hpp.html new file mode 100644 index 0000000..4c92156 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/monadic__fold__right_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/monadic_fold_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
monadic_fold_right.hpp File Reference
+
+
+ +

Defines boost::hana::monadic_fold_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::monadic_fold_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/mpl_2list_8hpp.html b/boost_1_63_0/libs/hana/doc/html/mpl_2list_8hpp.html new file mode 100644 index 0000000..71f5479 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/mpl_2list_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/mpl/list.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
list.hpp File Reference
+
+
+ +

Adapts boost::mpl::list for use with Hana. +More...

+ + + + + +

+Classes

struct  boost::mpl::list< T >
 Adapter for Boost.MPL lists. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts boost::mpl::list for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/mpl_8hpp.html b/boost_1_63_0/libs/hana/doc/html/mpl_8hpp.html new file mode 100644 index 0000000..6251631 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/mpl_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/boost/mpl.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mpl.hpp File Reference
+
+
+ +

Includes all the adaptors for the Boost.MPL library. +More...

+

Detailed Description

+

Includes all the adaptors for the Boost.MPL library.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/mult_8hpp.html b/boost_1_63_0/libs/hana/doc/html/mult_8hpp.html new file mode 100644 index 0000000..eeb2a41 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/mult_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/mult.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mult.hpp File Reference
+
+
+ +

Defines boost::hana::mult. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::mult.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespaceboost.html b/boost_1_63_0/libs/hana/doc/html/namespaceboost.html new file mode 100644 index 0000000..49bb61f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespaceboost.html @@ -0,0 +1,162 @@ + + + + + + + + + +Boost.Hana: boost Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost Namespace Reference
+
+
+ + + + + +

+Namespaces

 hana
 Namespace containing everything in the library.
 
+ + + + +

+Classes

struct  tuple
 Adapter for boost::tuples. More...
 
+

Detailed Description

+
Todo:
Until we strip down headers, this includes too much
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana.html b/boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana.html new file mode 100644 index 0000000..6b29062 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana.html @@ -0,0 +1,821 @@ + + + + + + + + + +Boost.Hana: boost::hana Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana Namespace Reference
+
+
+ +

Namespace containing everything in the library. +More...

+ + + + + +

+Namespaces

 literals
 Namespace containing C++14 user-defined literals provided by Hana.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  basic_tuple
 Stripped down version of hana::tuple. More...
 
struct  basic_tuple_tag
 Tag representing hana::basic_tuple. More...
 
struct  basic_type
 Base class of hana::type; used for pattern-matching. More...
 
struct  common
 Metafunction returning the common data type between two data types. More...
 
struct  default_
 Mark a tag-dispatched method implementation as a default implementation. More...
 
struct  embedding
 Marks a conversion between data types as being an embedding. More...
 
struct  has_common
 Metafunction returning whether two data types share a common data type. More...
 
struct  integral_constant
 Compile-time value of an integral type. More...
 
struct  integral_constant_tag
 Tag representing hana::integral_constant. More...
 
struct  IntegralConstant
 The IntegralConstant concept represents compile-time integral values. More...
 
struct  is_convertible
 Returns whether there is a Hana-conversion from a data type to another. More...
 
struct  is_default
 Returns whether a tag-dispatched method implementation is a default implementation. More...
 
struct  is_embedded
 Returns whether a data type can be embedded into another data type. More...
 
struct  lazy
 hana::lazy implements superficial laziness via a monadic interface. More...
 
struct  lazy_tag
 Tag representing hana::lazy. More...
 
struct  map
 Basic associative container requiring unique, Comparable and Hashable keys. More...
 
struct  map_tag
 Tag representing hana::maps. More...
 
struct  optional
 Optional value whose optional-ness is known at compile-time. More...
 
struct  optional_tag
 Tag representing a hana::optional. More...
 
struct  pair
 Generic container for two elements. More...
 
struct  pair_tag
 Tag representing hana::pair. More...
 
struct  range
 Compile-time half-open interval of hana::integral_constants. More...
 
struct  range_tag
 Tag representing a hana::range. More...
 
struct  set
 Basic unordered container requiring unique, Comparable and Hashable keys. More...
 
struct  set_tag
 Tag representing the hana::set container. More...
 
struct  string
 Compile-time string. More...
 
struct  string_tag
 Tag representing a compile-time string. More...
 
struct  tag_of
 Metafunction returning the tag associated to T. More...
 
struct  tuple
 General purpose index-based heterogeneous sequence with a fixed length. More...
 
struct  tuple_tag
 Tag representing hana::tuples. More...
 
struct  type
 C++ type in value-level representation. More...
 
struct  type_tag
 Tag representing hana::type. More...
 
struct  when
 Enable a partial specialization only if a boolean condition is true. More...
 
+ + + + + + + + + + + + + +

+Typedefs

template<typename T , typename U >
using common_t = typename common< T, U >::type
 Alias to common<T, U>::type, provided for convenience. More...
 
template<typename T >
using tag_of_t = typename hana::tag_of< T >::type
 Alias to tag_of<T>::type, provided for convenience. More...
 
template<typename... >
using when_valid = when< true >
 Variant of when allowing specializations to be enabled only if an expression is well-formed. More...
 
+ + + + + + + + + + +

+Functions

auto BOOST_HANA_ADAPT_ADT (...)
 Defines a model of Struct with the given accessors.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike BOOST_HANA_ADAPT_STRUCT, this macro requires specifying the way to retrieve each member by providing a function that does the extraction. More...
 
auto BOOST_HANA_ADAPT_STRUCT (...)
 Defines a model of Struct with the given members.Using this macro at global scope will define a model of the Struct concept for the given type. This can be used to easily adapt existing user-defined types in a ad-hoc manner. Unlike the BOOST_HANA_DEFINE_STRUCT macro, this macro does not require the types of the members to be specified. More...
 
auto BOOST_HANA_DEFINE_STRUCT (...)
 Defines members of a structure, while at the same time modeling Struct.Using this macro in the body of a user-defined type will define the given members inside that type, and will also provide a model of the Struct concept for that user-defined type. This macro is often the easiest way to define a model of the Struct concept. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

constexpr auto always
 Return a constant function returning x regardless of the argument(s) it is invoked with. More...
 
constexpr auto apply
 Invokes a Callable with the given arguments. More...
 
template<std::size_t n>
constexpr auto arg
 Return the nth passed argument. More...
 
constexpr auto capture
 Create a function capturing the given variables. More...
 
constexpr auto compose
 Return the composition of two functions or more. More...
 
template<std::size_t n>
constexpr auto curry
 Curry a function up to the given number of arguments. More...
 
constexpr auto demux
 Invoke a function with the results of invoking other functions on its arguments. More...
 
constexpr auto fix
 Return a function computing the fixed point of a function. More...
 
constexpr auto flip
 Invoke a function with its two first arguments reversed. More...
 
constexpr auto id
 The identity function – returns its argument unchanged. More...
 
constexpr auto infix
 Return an equivalent function that can also be applied in infix notation. More...
 
template<std::size_t n>
constexpr auto iterate
 Applies another function n times to its argument. More...
 
constexpr auto lockstep
 Invoke a function with the result of invoking other functions on its arguments, in lockstep. More...
 
constexpr auto on
 Invoke a function with the result of invoking another function on each argument. More...
 
constexpr auto overload
 Pick one of several functions to call based on overload resolution. More...
 
constexpr auto overload_linearly
 Call the first function that produces a valid call expression. More...
 
constexpr auto partial
 Partially apply a function to some arguments. More...
 
constexpr unspecified _ {}
 Create simple functions representing C++ operators inline. More...
 
constexpr auto reverse_partial
 Partially apply a function to some arguments. More...
 
template<typename S >
constexpr auto accessors
 Returns a Sequence of pairs representing the accessors of the data structure.Given a Struct S, accessors<S>() is a Sequence of Products where the first element of each pair is the "name" of a member of the Struct, and the second element of each pair is a function that can be used to access that member when given an object of the proper data type. As described in the global documentation for Struct, the accessor functions in this sequence must be move-independent. More...
 
constexpr auto adjust
 Apply a function on all the elements of a structure that compare equal to some value. More...
 
constexpr auto adjust_if
 Apply a function on all the elements of a structure satisfying a predicate.Given a Functor, a predicate pred and a function f, adjust_if will adjust the elements of the Functor that satisfy the predicate with the function f. In other words, adjust_if will return a new Functor equal to the original one, except that the elements satisfying the predicate will be transformed with the given function. Elements for which the predicate is not satisfied are left untouched, and they are kept as-is in the resulting Functor. More...
 
constexpr auto all
 Returns whether all the keys of the structure are true-valued.The keys of the structure must be Logicals. If the structure is not finite, a false-valued key must appear at a finite "index" in order for this method to finish. More...
 
constexpr auto all_of
 Returns whether all the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a false- valued Logical after looking at a finite number of keys for this method to finish. More...
 
constexpr auto and_
 Return whether all the arguments are true-valued.and_ can be called with one argument or more. When called with two arguments, and_ uses tag-dispatching to find the right implementation. Otherwise,. More...
 
constexpr auto any
 Returns whether any key of the structure is true-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish. More...
 
constexpr auto any_of
 Returns whether any key of the structure satisfies the predicate.If the structure is not finite, predicate has to be satisfied after looking at a finite number of keys for this method to finish. More...
 
constexpr auto ap
 Lifted application.Specifically, ap applies a structure containing functions to a structure containing values, and returns a new structure containing values. The exact way in which the functions are applied to the values depends on the Applicative. More...
 
constexpr auto append
 Append an element to a monadic structure.Given an element x and a monadic structure xs, append returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the right) with xs. In other words,. More...
 
constexpr auto at
 Returns the nth element of an iterable.Given an Iterable and an IntegralConstant index, at returns the element located at the index in the linearization of the iterable. Specifically, given an iterable xs with a linearization of [x1, ..., xN], at(xs, k) is equivalent to xk. More...
 
template<std::size_t n>
constexpr auto at_c
 Equivalent to at; provided for convenience. More...
 
constexpr auto at_key
 Returns the value associated to the given key in a structure, or fail.Given a key and a Searchable structure, at_key returns the first value whose key is equal to the given key, and fails at compile-time if no such key exists. This requires the key to be compile-time Comparable, exactly like for find. at_key satisfies the following: More...
 
constexpr auto back
 Returns the last element of a non-empty and finite iterable.Given a non-empty and finite iterable xs with a linearization of [x1, ..., xN], back(xs) is equal to xN. Equivalently, back(xs) must be equivalent to at_c<N-1>(xs), and that regardless of the value category of xs (back must respect the reference semantics of at). More...
 
constexpr auto cartesian_product
 Computes the cartesian product of a sequence of sequences.Given a sequence of sequences, cartesian_product returns a new sequence of sequences containing the cartesian product of the original sequences. For this method to finish, a finite number of finite sequences must be provided. More...
 
constexpr auto chain
 Feed a monadic value into a monadic computation.Given a monadic value and a monadic function, chain feeds the monadic value into the function, thus performing some Monad-specific effects, and returns the result. An implementation of chain must satisfy. More...
 
constexpr auto comparing
 Returns a function performing equal after applying a transformation to both arguments.comparing creates an equivalence relation based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent an equivalence relation. More...
 
constexpr auto concat
 Combine two monadic structures together.Given two monadic structures, concat combines them together and returns a new monadic structure. The exact definition of concat will depend on the exact model of MonadPlus at hand, but for sequences it corresponds intuitively to simple concatenation. More...
 
constexpr auto contains
 Returns whether the key occurs in the structure.Given a Searchable structure xs and a key, contains returns whether any of the keys of the structure is equal to the given key. If the structure is not finite, an equal key has to appear at a finite position in the structure for this method to finish. For convenience, contains can also be applied in infix notation. More...
 
constexpr auto in = hana::infix(hana::flip(hana::contains))
 Return whether the key occurs in the structure.Specifically, this is equivalent to contains, except in takes its arguments in reverse order. Like contains, in can also be applied in infix notation for increased expressiveness. This function is not a method that can be overriden; it is just a convenience function provided with the concept. More...
 
template<typename Tag , typename optional_T >
constexpr auto is_a = see-documentation
 Returns whether the tag of an object matches a given tag. More...
 
+template<typename Tag , typename... T>
constexpr auto is_an = is_a<Tag, T...>
 Equivalent to is_a; provided for consistency with the rules of the English language.
 
template<typename Tag >
constexpr auto make
 Create an object of the given tag with the given arguments. More...
 
template<typename To >
constexpr auto to
 Converts an object from one data type to another. More...
 
constexpr auto count
 Return the number of elements in the structure that compare equal to a given value.Given a Foldable structure xs and a value value, count returns an unsigned integral, or a Constant thereof, representing the number of elements of xs that compare equal to value. For this method to be well-defined, all the elements of the structure must be Comparable with the given value. More...
 
constexpr auto count_if
 Return the number of elements in the structure for which the predicate is satisfied.Specifically, returns an object of an unsigned integral type, or a Constant holding such an object, which represents the number of elements in the structure satisfying the given predicate. More...
 
constexpr auto cycle
 Combine a monadic structure with itself n times.Given a monadic structure xs and a non-negative number n, cycle returns a new monadic structure which is the result of combining xs with itself n times using the concat operation. In other words,. More...
 
constexpr auto div
 Generalized integer division. More...
 
constexpr auto drop_back
 Drop the last n elements of a finite sequence, and return the rest.Given a finite Sequence xs with a linearization of [x1, ..., xm] and a non-negative IntegralConstant n, drop_back(xs, n) is a sequence with the same tag as xs whose linearization is [x1, ..., xm-n]. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
constexpr auto drop_front
 Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
constexpr auto drop_front_exactly
 Drop the first n elements of an iterable, and return the rest.Given an Iterable xs with a linearization of [x1, x2, ...] and a non-negative IntegralConstant n, drop_front_exactly(xs, n) is an iterable with the same tag as xs whose linearization is [xn+1, xn+2, ...]. In particular, note that this function does not mutate the original iterable in any way. If n is not given, it defaults to an IntegralConstant with a value equal to 1. More...
 
constexpr auto drop_while
 Drop elements from an iterable up to, but excluding, the first element for which the predicate is not satisfied.Specifically, drop_while returns an iterable containing all the elements of the original iterable except for those in the range delimited by [head, e), where head is the first element and e is the first element for which the predicate is not satisfied. If the iterable is not finite, the predicate has to return a false- valued Logical at a finite index for this method to return. More...
 
constexpr auto duplicate
 Add an extra layer of comonadic context to a comonadic value.Given a value already in a comonadic context, duplicate wraps this value with an additional layer of comonadic context. This can be seen as the dual operation to flatten from the Monad concept. More...
 
template<typename M >
constexpr auto empty
 Identity of the monadic combination concat.

Signature

+Given a MonadPlus M, the signature is \( \mathtt{empty}_M : \emptyset \to M(T) \). More...
 
constexpr auto equal
 Returns a Logical representing whether x is equal to y.The equal function can be called in two different ways. First, it can be called like a normal function: More...
 
constexpr auto eval_if
 Conditionally execute one of two branches based on a condition.Given a condition and two branches in the form of lambdas or hana::lazys, eval_if will evaluate the branch selected by the condition with eval and return the result. The exact requirements for what the branches may be are the same requirements as those for the eval function. More...
 
constexpr auto extend
 Comonadic application of a function to a comonadic value.Given a comonadic value and a function accepting a comonadic input, extend returns the result of applying the function to that input inside the comonadic context. More...
 
constexpr auto extract
 Extract a value in a given comonadic context.Given a value inside a comonadic context, extract it from that context, performing whatever effects are mandated by that context. This can be seen as the dual operation to the lift method of the Applicative concept. More...
 
constexpr auto fill
 Replace all the elements of a structure with a fixed value. More...
 
constexpr auto filter
 Filter a monadic structure using a custom predicate.Given a monadic structure and a predicate, filter returns a new monadic structure containing only those elements that satisfy the predicate. This is a generalization of the usual filter function for sequences; it works for any MonadPlus. Intuitively, filter is somewhat equivalent to: More...
 
constexpr auto find
 Finds the value associated to the given key in a structure.Given a key and a Searchable structure, find returns the just the first value whose key is equal to the given key, or nothing if there is no such key. Comparison is done with equal. find satisfies the following: More...
 
constexpr auto find_if
 Finds the value associated to the first key satisfying a predicate.Given a Searchable structure xs and a predicate pred, find_if(xs, pred) returns just the first element whose key satisfies the predicate, or nothing if there is no such element. More...
 
constexpr auto first
 Returns the first element of a pair.Note that if the Product actually stores the elements it contains, hana::first is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the first element, where the type of reference must match that of the pair passed to first. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped. More...
 
constexpr auto flatten
 Collapse two levels of monadic structure into a single level.Given a monadic value wrapped into two levels of monad, flatten removes one such level. An implementation of flatten must satisfy. More...
 
constexpr auto fold = fold_left
 Equivalent to fold_left; provided for convenience.fold is equivalent to fold_left. However, it is not tag-dispatched on its own because it is just an alias to fold_left. Also note that fold can be called with or without an initial state, just like fold_left: More...
 
constexpr auto fold_left
 Left-fold of a structure using a binary operation and an optional initial reduction state.fold_left is a left-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_left applies f as follows. More...
 
constexpr auto fold_right
 Right-fold of a structure using a binary operation and an optional initial reduction state.fold_right is a right-associative fold using a binary operation. Given a structure containing x1, ..., xn, a function f and an optional initial state, fold_right applies f as follows. More...
 
constexpr auto for_each
 Perform an action on each element of a foldable, discarding the result each time.Iteration is done from left to right, i.e. in the same order as when using fold_left. If the structure is not finite, this method will not terminate. More...
 
constexpr auto front
 Returns the first element of a non-empty iterable.Given a non-empty Iterable xs with a linearization of [x1, ..., xN], front(xs) is equal to x1. If xs is empty, it is an error to use this function. Equivalently, front(xs) must be equivalent to at_c<0>(xs), and that regardless of the value category of xs (front must respect the reference semantics of at). More...
 
constexpr auto fuse
 Transform a function taking multiple arguments into a function that can be called with a compile-time Foldable. More...
 
constexpr auto greater
 Returns a Logical representing whether x is greater than y. More...
 
constexpr auto greater_equal
 Returns a Logical representing whether x is greater than or equal to y. More...
 
constexpr auto group
 Group adjacent elements of a sequence that all respect a binary predicate, by default equality.Given a finite Sequence and an optional predicate (by default equal), group returns a sequence of subsequences representing groups of adjacent elements that are "equal" with respect to the predicate. In other words, the groups are such that the predicate is satisfied when it is applied to any two adjacent elements in that group. The sequence returned by group is such that the concatenation of its elements is equal to the original sequence, which is equivalent to saying that the order of the elements is not changed. More...
 
constexpr auto hash
 Returns a hana::type representing the compile-time hash of an object.Given an arbitrary object x, hana::hash returns a hana::type representing the hash of x. In normal programming, hashes are usually numerical values that can be used e.g. as indices in an array as part of the implementation of a hash table. In the context of metaprogramming, we are interested in type-level hashes instead. Thus, hana::hash must return a hana::type object instead of an integer. This hana::type must somehow summarize the object being hashed, but that summary may of course lose some information. More...
 
constexpr auto if_
 Conditionally return one of two values based on a condition.Specifically, then is returned iff cond is true-valued, and else_ is returned otherwise. Note that some Logical models may allow then and else_ to have different types, while others may require both values to have the same type. More...
 
constexpr insert_t insert {}
 Insert a value at a given index in a sequence.Given a sequence, an index and an element to insert, insert inserts the element at the given index. More...
 
constexpr auto insert_range
 Insert several values at a given index in a sequence.Given a sequence, an index and any Foldable containing elements to insert, insert_range inserts the elements in the Foldable at the given index of the sequence. More...
 
constexpr auto intersperse
 Insert a value between each pair of elements in a finite sequence.Given a finite Sequence xs with a linearization of [x1, x2, ..., xn], intersperse(xs, z) is a new sequence with a linearization of [x1, z, x2, z, x3, ..., xn-1, z, xn]. In other words, it inserts the z element between every pair of elements of the original sequence. If the sequence is empty or has a single element, intersperse returns the sequence as-is. In all cases, the sequence must be finite. More...
 
constexpr auto is_disjoint
 Returns whether two Searchables are disjoint.Given two Searchables xs and ys, is_disjoint returns a Logical representing whether the keys in xs are disjoint from the keys in ys, i.e. whether both structures have no keys in common. More...
 
constexpr auto is_empty
 Returns whether the iterable is empty.Given an Iterable xs, is_empty returns whether xs contains no more elements. In other words, it returns whether trying to extract the tail of xs would be an error. In the current version of the library, is_empty must return an IntegralConstant holding a value convertible to bool. This is because only compile-time Iterables are supported right now. More...
 
constexpr auto is_subset
 Returns whether a structure contains a subset of the keys of another structure.Given two Searchables xs and ys, is_subset returns a Logical representing whether xs is a subset of ys. In other words, it returns whether all the keys of xs are also present in ys. This method does not return whether xs is a strict subset of ys; if xs and ys are equal, all the keys of xs are also present in ys, and is_subset returns true. More...
 
constexpr keys_t keys {}
 Returns a Sequence containing the name of the members of the data structure.Given a Struct object, keys returns a Sequence containing the name of all the members of the Struct, in the same order as they appear in the accessors sequence. More...
 
constexpr auto length
 Return the number of elements in a foldable structure.Given a Foldable xs, length(xs) must return an object of an unsigned integral type, or an IntegralConstant holding such an object, which represents the number of elements in the structure. More...
 
constexpr auto less
 Returns a Logical representing whether x is less than y. More...
 
constexpr auto less_equal
 Returns a Logical representing whether x is less than or equal to y. More...
 
constexpr auto lexicographical_compare
 Short-circuiting lexicographical comparison of two Iterables with an optional custom predicate, by default hana::less.Given two Iterables xs and ys and a binary predicate pred, lexicographical_compare returns whether xs is to be considered less than ys in a lexicographical ordering. Specifically, let's denote the linearizations of xs and ys by [x1, x2, ...] and [y1, y2, ...], respectively. If the first couple satisfying the predicate is of the form xi, yi, lexicographical_compare returns true. Otherwise, if the first couple to satisfy the predicate is of the form yi, xi, lexicographical_compare returns false. If no such couple can be found, lexicographical_compare returns whether xs has fewer elements than ys. More...
 
template<typename A >
constexpr auto lift
 Lift a value into an Applicative structure.lift<A> takes a normal value and embeds it into a structure whose shape is represented by the A Applicative. Note that the value may be a function, in which case the created structure may be applied to another Applicative structure containing values. More...
 
constexpr auto max
 Returns the greatest of its arguments according to the less ordering. More...
 
constexpr auto maximum
 Return the greatest element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), maximum returns the greatest element of the structure, i.e. an element which is greater than or equal to every other element in the structure, according to the predicate. More...
 
constexpr auto members
 Returns a Sequence containing the members of a Struct.Given a Struct object, members returns a Sequence containing all the members of the Struct, in the same order as their respective accessor appears in the accessors sequence. More...
 
constexpr auto min
 Returns the smallest of its arguments according to the less ordering. More...
 
constexpr auto minimum
 Return the least element of a non-empty structure with respect to a predicate, by default less.Given a non-empty structure and an optional binary predicate (less by default), minimum returns the least element of the structure, i.e. an element which is less than or equal to every other element in the structure, according to the predicate. More...
 
constexpr auto minus
 Subtract two elements of a group.Specifically, this performs the Monoid operation on the first argument and on the inverse of the second argument, thus being equivalent to: More...
 
constexpr auto mod
 Generalized integer modulus.Given two elements of an EuclideanRing x and y, with y nonzero, mod returns the modulus of the division of x by y. In other words, mod can be seen as an equivalent to %. More...
 
constexpr auto monadic_compose
 Composition of monadic functions.Given two monadic functions f and g, monadic_compose returns a new function equivalent to the composition of f with g, except the result of g is chained into f instead of simply passed to it, as with normal composition. monadic_compose satisfies. More...
 
template<typename M >
constexpr auto monadic_fold_left
 Monadic left-fold of a structure with a binary operation and an optional initial reduction state. More...
 
template<typename M >
constexpr auto monadic_fold_right
 Monadic right-fold of a structure with a binary operation and an optional initial reduction state. More...
 
constexpr auto mult
 Associative operation of a Ring. More...
 
constexpr auto negate
 Return the inverse of an element of a group. More...
 
constexpr auto none
 Returns whether all of the keys of the structure are false-valued.The keys of the structure must be Logicals. If the structure is not finite, a true-valued key must appear at a finite "index" in order for this method to finish. More...
 
constexpr auto none_of
 Returns whether none of the keys of the structure satisfy the predicate.If the structure is not finite, predicate has to return a true- valued Logical after looking at a finite number of keys for this method to finish. More...
 
constexpr auto not_
 Negates a Logical.This method returns a Logical with the same tag, but whose truth-value is negated. Specifically, not_(x) returns a false-valued Logical if x is a true-valued Logical, and a true-valued one otherwise. More...
 
constexpr auto not_equal
 Returns a Logical representing whether x is not equal to y.The not_equal function can be called in two different ways. First, it can be called like a normal function: More...
 
template<typename R >
constexpr auto one
 Identity of the Ring multiplication. More...
 
constexpr auto or_
 Return whether any of the arguments is true-valued.or_ can be called with one argument or more. When called with two arguments, or_ uses tag-dispatching to find the right implementation. Otherwise,. More...
 
constexpr auto ordering
 Returns a function performing less after applying a transformation to both arguments.ordering creates a total order based on the result of applying a function to some objects, which is especially useful in conjunction with algorithms that accept a custom predicate that must represent a total order. More...
 
constexpr auto partition
 Partition a sequence based on a predicate.Specifically, returns an unspecified Product whose first element is a sequence of the elements satisfying the predicate, and whose second element is a sequence of the elements that do not satisfy the predicate. More...
 
constexpr auto permutations
 Return a sequence of all the permutations of the given sequence.Specifically, permutations(xs) is a sequence whose elements are permutations of the original sequence xs. The permutations are not guaranteed to be in any specific order. Also note that the number of permutations grows very rapidly as the length of the original sequence increases. The growth rate is O(length(xs)!); with a sequence xs of length only 8, permutations(xs) contains over 40 000 elements! More...
 
constexpr auto plus
 Associative binary operation on a Monoid. More...
 
constexpr auto power
 Elevate a ring element to its nth power.Specifically, power(x, n), is equivalent to multiplying x with itself n times using the Ring's multiplication. If the power is equal to zero, the Ring's identity (one) is returned. More...
 
constexpr auto prefix
 Inserts a value before each element of a monadic structure.Given a monadic structure xs and a value z called the prefix, prefix returns a new monadic structure. prefix satisfies. More...
 
constexpr auto prepend
 Prepend an element to a monadic structure.Given a monadic structure xs and an element x, prepend returns a new monadic structure which is the result of lifting x into the monadic structure and then combining that (to the left) with xs. In other words,. More...
 
constexpr auto product = see documentation
 Compute the product of the numbers of a structure.More generally, product will take any foldable structure containing objects forming a Ring and reduce them using the Ring's binary operation. The initial state for folding is the identity of the Ring's operation. It is sometimes necessary to specify the Ring to use; this is possible by using product<R>. If no Ring is specified, the structure will use the Ring formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,. More...
 
constexpr auto remove
 Remove all the elements of a monadic structure that are equal to some value.Given a monadic structure xs and a value, remove returns a new monadic structure equal to xs without all its elements that are equal to the given value. remove is equivalent to remove_if with the equal.to(value) predicate, i.e. More...
 
constexpr auto remove_at
 Remove the element at a given index from a sequence.remove_at returns a new sequence identical to the original, except that the element at the given index is removed. Specifically, remove_at([x0, ..., xn-1, xn, xn+1, ..., xm], n) is a new sequence equivalent to [x0, ..., xn-1, xn+1, ..., xm]. More...
 
template<std::size_t n>
constexpr auto remove_at_c
 Equivalent to remove_at; provided for convenience. More...
 
constexpr auto remove_if
 Remove all the elements of a monadic structure that satisfy some predicate.Given a monadic structure xs and a unary predicate, remove_if returns a new monadic structure equal to xs without all its elements that satisfy the predicate. This is equivalent to filter with a negated predicate, i.e. More...
 
constexpr auto remove_range
 Remove the elements inside a given range of indices from a sequence.remove_range returns a new sequence identical to the original, except that elements at indices in the provided range are removed. Specifically, remove_range([x0, ..., xn], from, to) is a new sequence equivalent to [x0, ..., x_from-1, x_to, ..., xn]. More...
 
template<std::size_t from, std::size_t to>
constexpr auto remove_range_c
 Equivalent to remove_range; provided for convenience. More...
 
constexpr auto repeat
 Invokes a nullary function n times.Given an IntegralConstant n and a nullary function f, repeat(n, f) will call f n times. In particular, any decent compiler should expand repeat(n, f) to. More...
 
constexpr auto replace
 Replace all the elements of a structure that compare equal to some value with some new fixed value. More...
 
constexpr auto replace_if
 Replace all the elements of a structure satisfying a predicate with a fixed value. More...
 
template<typename M >
constexpr auto replicate
 Create a monadic structure by combining a lifted value with itself n times.Given a value x, a non-negative IntegralConstant n and the tag of a monadic structure M, replicate creates a new monadic structure which is the result of combining x with itself n times inside the monadic structure. In other words, replicate simply lifts x into the monadic structure, and then combines that with itself n times: More...
 
constexpr auto reverse
 Reverse a sequence.Specifically, reverse(xs) is a new sequence containing the same elements as xs, except in reverse order. More...
 
constexpr auto reverse_fold
 Equivalent to reverse_fold in Boost.Fusion and Boost.MPL.This method has the same semantics as reverse_fold in Boost.Fusion and Boost.MPL, with the extension that an initial state is not required. This method is equivalent to fold_right, except that the accumulating function must take its arguments in reverse order, to match the order used in Fusion. In other words,. More...
 
constexpr auto scan_left
 Fold a Sequence to the left and return a list containing the successive reduction states.Like fold_left, scan_left reduces a sequence to a single value using a binary operation. However, unlike fold_left, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_left, scan_left can be used with or without an initial reduction state. More...
 
constexpr auto scan_right
 Fold a Sequence to the right and return a list containing the successive reduction states.Like fold_right, scan_right reduces a sequence to a single value using a binary operation. However, unlike fold_right, it builds up a sequence of the intermediary results computed along the way and returns that instead of only the final reduction state. Like fold_right, scan_right can be used with or without an initial reduction state. More...
 
constexpr auto second
 Returns the second element of a pair.Note that if the Product actually stores the elements it contains, hana::second is required to return a lvalue reference, a lvalue reference to const or a rvalue reference to the second element, where the type of reference must match that of the pair passed to second. If the Product does not store the elements it contains (i.e. it generates them on demand), this requirement is dropped. More...
 
constexpr auto size = hana::length
 Equivalent to length; provided for consistency with the standard library.This method is an alias to length provided for convenience and consistency with the standard library. As an alias, size is not tag-dispatched on its own and length should be customized instead. More...
 
constexpr auto slice
 Extract the elements of a Sequence at the given indices.Given an arbitrary sequence of indices, slice returns a new sequence of the elements of the original sequence that appear at those indices. In other words,. More...
 
template<std::size_t from, std::size_t to>
constexpr auto slice_c
 Shorthand to slice a contiguous range of elements.slice_c is simply a shorthand to slice a contiguous range of elements. In particular, slice_c<from, to>(xs) is equivalent to slice(xs, range_c<std::size_t, from, to>), which simply slices all the elements of xs contained in the half-open interval delimited by [from, to). Like for slice, the indices used with slice_c are 0-based and they must be in the bounds of the sequence being sliced. More...
 
constexpr auto sort
 Sort a sequence, optionally based on a custom predicate.Given a Sequence and an optional predicate (by default less), sort returns a new sequence containing the same elements as the original, except they are ordered in such a way that if x comes before y in the sequence, then either predicate(x, y) is true, or both predicate(x, y) and predicate(y, x) are false. More...
 
constexpr auto span
 Returns a Product containing the longest prefix of a sequence satisfying a predicate, and the rest of the sequence.The first component of the returned Product is a sequence for which all elements satisfy the given predicate. The second component of the returned Product is a sequence containing the remainder of the argument. Both or either sequences may be empty, depending on the input argument. More specifically,. More...
 
constexpr auto suffix
 Inserts a value after each element of a monadic structure.Given a monadic structure xs and a value z (called the suffix), suffix returns a new monadic structure such that. More...
 
constexpr auto sum = see documentation
 Compute the sum of the numbers of a structure.More generally, sum will take any foldable structure containing objects forming a Monoid and reduce them using the Monoid's binary operation. The initial state for folding is the identity of the Monoid. It is sometimes necessary to specify the Monoid to use; this is possible by using sum<M>. If no Monoid is specified, the structure will use the Monoid formed by the elements it contains (if it knows it), or integral_constant_tag<int> otherwise. Hence,. More...
 
constexpr auto take_back
 Returns the last n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_back(xs, n) is a new sequence containing the last n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered. More...
 
constexpr auto take_front
 Returns the first n elements of a sequence, or the whole sequence if the sequence has less than n elements.Given a Sequence xs and an IntegralConstant n, take_front(xs, n) is a new sequence containing the first n elements of xs, in the same order. If length(xs) <= n, the whole sequence is returned and no error is triggered. More...
 
template<std::size_t n>
constexpr auto take_front_c
 Equivalent to take_front; provided for convenience. More...
 
constexpr auto take_while
 Take elements from a sequence while the predicate is satisfied.Specifically, take_while returns a new sequence containing the longest prefix of xs in which all the elements satisfy the given predicate. More...
 
template<typename M >
constexpr auto tap
 Tap inside a monadic chain.Given a function f, tap<M> returns a new function which performs f on its argument and then returns the argument lifted in the M Monad. Combined with the property that chain(m, lift<M>) == m, this provides a way of executing an action inside a monadic chain without influencing its overall result. This is useful to e.g. insert debug statements or perform actions that are not tied to the chain but that need to be executed inside of it. More...
 
constexpr auto then
 Sequentially compose two monadic actions, discarding any value produced by the first but not its effects. More...
 
constexpr auto transform
 Map a function over a Functor. More...
 
template<template< typename... > class F>
constexpr auto template_
 Lift a template to a Metafunction.Given a template class or template alias f, template_<f> is a Metafunction satisfying. More...
 
template<template< typename... > class F>
constexpr auto metafunction
 Lift a MPL-style metafunction to a Metafunction.Given a MPL-style metafunction, metafunction<f> is a Metafunction satisfying. More...
 
template<typename F >
constexpr auto metafunction_class
 Lift a MPL-style metafunction class to a Metafunction.Given a MPL-style metafunction class, metafunction_class<f> is a Metafunction satisfying. More...
 
constexpr auto integral
 Turn a Metafunction into a function taking types and returning a default-constructed object.Given a Metafunction f, integral returns a new Metafunction that default-constructs an object of the type returned by f. More specifically, the following holds: More...
 
template<template< typename... > class F>
constexpr auto trait = hana::integral(hana::metafunction<F>)
 Alias to integral(metafunction<F>), provided for convenience. More...
 
template<typename S >
constexpr auto unfold_left
 Dual operation to fold_left for sequences.While fold_left reduces a structure to a summary value from the left, unfold_left builds a sequence from a seed value and a function, starting from the left. More...
 
template<typename S >
constexpr auto unfold_right
 Dual operation to fold_right for sequences.While fold_right reduces a structure to a summary value from the right, unfold_right builds a sequence from a seed value and a function, starting from the right. More...
 
constexpr auto unique
 Removes all consecutive duplicate elements from a Sequence.Given a Sequence and an optional binary predicate, unique returns a new sequence containing only the first element of every subrange of the original sequence whose elements are all equal. In other words, it turns a sequence of the form [a, a, b, c, c, c, d, d, d, a] into a sequence [a, b, c, d, a]. The equality of two elements is determined by the provided predicate, or by equal if no predicate is provided. More...
 
constexpr auto unpack
 Invoke a function with the elements of a Foldable as arguments.Given a function and a foldable structure whose length can be known at compile-time, unpack invokes the function with the contents of that structure. In other words, unpack(xs, f) is equivalent to f(x...), where x... are the elements of the structure. The length of the structure must be known at compile-time, because the version of f's operator() that will be compiled depends on the number of arguments it is called with, which has to be known at compile-time. More...
 
template<typename T >
constexpr auto value
 Return the compile-time value associated to a constant.This function returns the value associated to a Constant. That value is always a constant expression. The normal way of using value on an object c is. More...
 
constexpr auto value_of
 Equivalent to value, but can be passed to higher-order algorithms.This function object is equivalent to value, except it can be passed to higher order algorithms because it is a function object. value can't be passed to higher-order algorithms because it is implemented as an overloaded function. More...
 
constexpr auto while_
 Apply a function to an initial state while some predicate is satisfied.This method is a natural extension of the while language construct to manipulate a state whose type may change from one iteration to another. However, note that having a state whose type changes from one iteration to the other is only possible as long as the predicate returns a Logical whose truth value is known at compile-time. More...
 
template<typename M >
constexpr auto zero
 Identity of plus. More...
 
constexpr auto zip
 Zip one sequence or more.Given n sequences s1, ..., sn, zip produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip produces a sequence of the form. More...
 
constexpr auto zip_shortest
 Zip one sequence or more.Given n sequences s1, ..., sn, zip_shortest produces a sequence whose i-th element is a tuple of (s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest produces a sequence of the form. More...
 
constexpr auto zip_shortest_with
 Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_shortest_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_shortest_with produces a sequence of the form. More...
 
constexpr auto zip_with
 Zip one sequence or more with a given function.Given a n-ary function f and n sequences s1, ..., sn, zip_with produces a sequence whose i-th element is f(s1[i], ..., sn[i]), where sk[i] denotes the i-th element of the k-th sequence. In other words, zip_with produces a sequence of the form. More...
 
+

Detailed Description

+

Namespace containing everything in the library.

+

Variable Documentation

+ +
+
+ + + + +
constexpr auto boost::hana::repeat
+
+Initial value:
= [](auto const& n, auto&& f) -> void {
f(); f(); ... f();
}
+

Invokes a nullary function n times.Given an IntegralConstant n and a nullary function f, repeat(n, f) will call f n times. In particular, any decent compiler should expand repeat(n, f) to.

+
f(); f(); ... f(); // n times total
Parameters
+ + + +
nAn IntegralConstant holding a non-negative value representing the number of times f should be repeatedly invoked.
fA function to repeatedly invoke n times. f is allowed to have side effects.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
int main() {
std::string s;
for (char letter = 'a'; letter <= 'g'; ++letter)
hana::repeat(hana::int_c<3>, [&] { s += letter; });
BOOST_HANA_RUNTIME_CHECK(s == "aaabbbcccdddeeefffggg");
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana_1_1literals.html b/boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana_1_1literals.html new file mode 100644 index 0000000..a1be3dd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespaceboost_1_1hana_1_1literals.html @@ -0,0 +1,213 @@ + + + + + + + + + +Boost.Hana: boost::hana::literals Namespace Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::literals Namespace Reference
+
+
+ +

Namespace containing C++14 user-defined literals provided by Hana. +More...

+ + + + + + + + + + +

+Functions

template<char... c>
constexpr auto operator""_c ()
 Creates a hana::integral_constant from a literal. More...
 
template<typename CharT , CharT... s>
constexpr auto operator""_s ()
 Creates a compile-time string from a string literal. More...
 
+

Detailed Description

+

Namespace containing C++14 user-defined literals provided by Hana.

+

Function Documentation

+ +
+
+
+template<char... c>
+ + + + + + + +
constexpr auto boost::hana::literals::operator""_c ()
+
+ +

Creates a hana::integral_constant from a literal.

+

The literal is parsed at compile-time and the result is returned as a llong<...>.

+
Note
We use llong<...> instead of ullong<...> because using an unsigned type leads to unexpected behavior when doing stuff like -1_c. If we used an unsigned type, -1_c would be something like ullong<-1> which is actually ullong<something huge>.
+

Example

+
using namespace hana::literals; // contains the _c suffix
BOOST_HANA_CONSTANT_CHECK(1234_c == hana::llong_c<1234>);
BOOST_HANA_CONSTANT_CHECK(-1234_c == hana::llong_c<-1234>);
BOOST_HANA_CONSTANT_CHECK(1_c + (3_c * 4_c) == hana::llong_c<1 + (3 * 4)>);
+

References boost::hana::apply, and boost::hana::value.

+ +
+
+ +
+
+
+template<typename CharT , CharT... s>
+ + + + + + + +
constexpr auto boost::hana::literals::operator""_s ()
+
+ +

Creates a compile-time string from a string literal.

+

The string literal is parsed at compile-time and the result is returned as a hana::string. This feature is an extension that is disabled by default; see below for details.

+
Note
Only narrow string literals are supported right now; support for fancier types of string literals like wide or UTF-XX might be added in the future if there is a demand for it. See this issue if you need this.
+
Warning
This user-defined literal is an extension which requires a special string literal operator that is not part of the standard yet. That operator is supported by both Clang and GCC, and several proposals were made for it to enter C++17. However, since it is not standard, it is disabled by default and defining the BOOST_HANA_CONFIG_ENABLE_STRING_UDL config macro is required to get this operator. Hence, if you want to stay safe, just use the BOOST_HANA_STRING macro instead. If you want to be fast and furious (I do), define BOOST_HANA_CONFIG_ENABLE_STRING_UDL.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
using namespace hana::literals;
// By default, this is disabled
#ifdef BOOST_HANA_CONFIG_ENABLE_STRING_UDL
constexpr auto str = "Hello world!"_s;
BOOST_HANA_CONSTANT_CHECK(str == hana::string_c<'H', 'e', 'l', 'l', 'o', ' ',
'w', 'o', 'r', 'l', 'd', '!'>);
BOOST_HANA_CONSTANT_CHECK(hana::is_a<hana::string_tag>(str));
BOOST_HANA_CONSTANT_CHECK(hana::length(str) == hana::size_c<12>);
#endif
int main() { }
+

References boost::hana::apply, boost::hana::find, boost::hana::if_, boost::hana::lexicographical_compare, and boost::hana::value.

+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespacemembers.html b/boost_1_63_0/libs/hana/doc/html/namespacemembers.html new file mode 100644 index 0000000..cf8b29b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespacemembers.html @@ -0,0 +1,729 @@ + + + + + + + + + +Boost.Hana: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented namespace members with links to the namespaces they belong to:
+ +

- _ -

+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+ + +

- z -

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespacemembers_func.html b/boost_1_63_0/libs/hana/doc/html/namespacemembers_func.html new file mode 100644 index 0000000..ee5e2b2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespacemembers_func.html @@ -0,0 +1,156 @@ + + + + + + + + + +Boost.Hana: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespacemembers_type.html b/boost_1_63_0/libs/hana/doc/html/namespacemembers_type.html new file mode 100644 index 0000000..5fcb28e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespacemembers_type.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespacemembers_vars.html b/boost_1_63_0/libs/hana/doc/html/namespacemembers_vars.html new file mode 100644 index 0000000..5451355 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespacemembers_vars.html @@ -0,0 +1,705 @@ + + + + + + + + + +Boost.Hana: Namespace Members + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- _ -

+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+ + +

- z -

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/namespaces.html b/boost_1_63_0/libs/hana/doc/html/namespaces.html new file mode 100644 index 0000000..11c5d69 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/namespaces.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: Namespace List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Namespace List
+
+
+
Here is a list of all documented namespaces with brief descriptions:
+
[detail level 123]
+ + + +
 Nboost
 NhanaNamespace containing everything in the library
 NliteralsNamespace containing C++14 user-defined literals provided by Hana
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/nav_f.png b/boost_1_63_0/libs/hana/doc/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..3678dad17671fce0c593c16179629b773c943e48 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imV6fm|Vqjp{%*48zfq@~})5S5Qg7NKKN4^#X z9#{Lfx#_MVjnk~I&vOx$OldvV>RwU#^7l*G4R7tYDW4ZF|OxDV;w`3wu zUD}=T;+)m|FSaj_c-Fi(tmb>^%n;`^{kEk$gPsM?+im@~55JeM7f_VmwqVmz1_lNO MPgg&ebxsLQ09+h8i2wiq literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/nav_g.png b/boost_1_63_0/libs/hana/doc/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU|{25V_;xl68K`sz`&s9>Eakt!T9#BAuj_1 z2lGLH5An2?hw;3+c6B?R`YL3e_I+`nnVp?Km|^dqCL2};1_lOCS3j3^P6Eakt!T9#>K~4q( z9wvva%+JGj?KPd?zAb=nF4MO2wW<@8E_G}y-}ImV*dvw>!-N;9AZ?zmelF{r5}E*v C8Xar^ literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/navtree.css b/boost_1_63_0/libs/hana/doc/html/navtree.css new file mode 100644 index 0000000..1e0894e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/navtree.css @@ -0,0 +1,142 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 270px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background:url("splitbar.png") repeat scroll right center transparent; + cursor:e-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FBFCF9; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} diff --git a/boost_1_63_0/libs/hana/doc/html/navtree.js b/boost_1_63_0/libs/hana/doc/html/navtree.js new file mode 100644 index 0000000..111dbe0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/navtree.js @@ -0,0 +1,522 @@ +var navTreeSubIndices = new Array(); + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"arrowright.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"arrowright.png"; + } else { + var span = document.createElement("span"); + span.style.display = 'inline-block'; + span.style.width = 16*(level+1)+'px'; + span.style.height = '22px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"arrowdown.png"; + } else { + node.plus_img.src = node.relpath+"arrowdown.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.src = node.relpath+"arrowdown.png"; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"arrowright.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + $(window).load(function(){ + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + }); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + + + +Boost.Hana: boost/hana/negate.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
negate.hpp File Reference
+
+
+ +

Defines boost::hana::negate. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::negate.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/nested__by_8hpp.html b/boost_1_63_0/libs/hana/doc/html/nested__by_8hpp.html new file mode 100644 index 0000000..aa3bb21 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/nested__by_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/nested_by.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
nested_by.hpp File Reference
+
+
+ +

Defines boost::hana::detail::nested_by. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::nested_by.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/nested__by__fwd_8hpp.html b/boost_1_63_0/libs/hana/doc/html/nested__by__fwd_8hpp.html new file mode 100644 index 0000000..c912e8a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/nested__by__fwd_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/nested_by_fwd.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
nested_by_fwd.hpp File Reference
+
+
+ +

Forward declares boost::hana::detail::nested_by. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::nested_by< Algorithm >
 Provides a .by static constexpr function object. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::detail::nested_by.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/nested__than_8hpp.html b/boost_1_63_0/libs/hana/doc/html/nested__than_8hpp.html new file mode 100644 index 0000000..46b5059 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/nested__than_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/nested_than.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
nested_than.hpp File Reference
+
+
+ +

Defines boost::hana::detail::nested_than. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::nested_than.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/nested__than__fwd_8hpp.html b/boost_1_63_0/libs/hana/doc/html/nested__than__fwd_8hpp.html new file mode 100644 index 0000000..007d8d4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/nested__than__fwd_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/nested_than_fwd.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
nested_than_fwd.hpp File Reference
+
+
+ +

Forward declares boost::hana::detail::nested_than. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::nested_than< Algorithm >
 Provides a .than static constexpr function object. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::detail::nested_than.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/nested__to_8hpp.html b/boost_1_63_0/libs/hana/doc/html/nested__to_8hpp.html new file mode 100644 index 0000000..47ef5fa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/nested__to_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/nested_to.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
nested_to.hpp File Reference
+
+
+ +

Defines boost::hana::detail::nested_to. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::nested_to.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/nested__to__fwd_8hpp.html b/boost_1_63_0/libs/hana/doc/html/nested__to__fwd_8hpp.html new file mode 100644 index 0000000..1245daf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/nested__to__fwd_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/nested_to_fwd.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
nested_to_fwd.hpp File Reference
+
+
+ +

Forward declares boost::hana::detail::nested_to. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::nested_to< Algorithm >
 Provides a .to static constexpr function object. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Forward declares boost::hana::detail::nested_to.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/none_8hpp.html b/boost_1_63_0/libs/hana/doc/html/none_8hpp.html new file mode 100644 index 0000000..df82982 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/none_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/none.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
none.hpp File Reference
+
+
+ +

Defines boost::hana::none. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::none.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/none__of_8hpp.html b/boost_1_63_0/libs/hana/doc/html/none__of_8hpp.html new file mode 100644 index 0000000..7ff492c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/none__of_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/none_of.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
none_of.hpp File Reference
+
+
+ +

Defines boost::hana::none_of. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::none_of.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/not_8hpp.html b/boost_1_63_0/libs/hana/doc/html/not_8hpp.html new file mode 100644 index 0000000..88bd1a5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/not_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/not.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
not.hpp File Reference
+
+
+ +

Defines boost::hana::not_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::not_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/not__equal_8hpp.html b/boost_1_63_0/libs/hana/doc/html/not__equal_8hpp.html new file mode 100644 index 0000000..70e3d2c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/not__equal_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/not_equal.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
not_equal.hpp File Reference
+
+
+ +

Defines boost::hana::not_equal. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::not_equal.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/on_8hpp.html b/boost_1_63_0/libs/hana/doc/html/on_8hpp.html new file mode 100644 index 0000000..5c6c89f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/on_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/on.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
on.hpp File Reference
+
+
+ +

Defines boost::hana::on. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::on
 Invoke a function with the result of invoking another function on each argument. More...
 
+

Detailed Description

+

Defines boost::hana::on.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/on_8hpp.js b/boost_1_63_0/libs/hana/doc/html/on_8hpp.js new file mode 100644 index 0000000..34e6161 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/on_8hpp.js @@ -0,0 +1,4 @@ +var on_8hpp = +[ + [ "on", "on_8hpp.html#ga35c4fc3c5677b9f558150b90e74d3ab1", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/one_8hpp.html b/boost_1_63_0/libs/hana/doc/html/one_8hpp.html new file mode 100644 index 0000000..1799ab4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/one_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/one.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
one.hpp File Reference
+
+
+ +

Defines boost::hana::one. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::one.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/open.png b/boost_1_63_0/libs/hana/doc/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..e655601214fad434dc0255350dbcca7b99fa1b17 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0y~yVBiE{4mJh`h6fYb1Q-|?oIG6|Ln;{G-aW|KV8FwA z;rg1ZvN9(attMDoOixl2Uujug^TE?jMft$}EsyW$uQ+ney;=Xfoza2lbLp9(I{Its b_Ao9o;qiDh_swDk1_lOCS3j3^P6 + + + + + + + + +Boost.Hana: boost/hana/optional.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
optional.hpp File Reference
+
+
+ +

Defines boost::hana::optional. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::optional.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/or_8hpp.html b/boost_1_63_0/libs/hana/doc/html/or_8hpp.html new file mode 100644 index 0000000..dd77f59 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/or_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/or.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
or.hpp File Reference
+
+
+ +

Defines boost::hana::or_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::or_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ordering_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ordering_8hpp.html new file mode 100644 index 0000000..6c03fdd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ordering_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/ordering.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ordering.hpp File Reference
+
+
+ +

Defines boost::hana::ordering. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::ordering.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/overload_8hpp.html b/boost_1_63_0/libs/hana/doc/html/overload_8hpp.html new file mode 100644 index 0000000..8292f5e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/overload_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/overload.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
overload.hpp File Reference
+
+
+ +

Defines boost::hana::overload. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::overload
 Pick one of several functions to call based on overload resolution. More...
 
+

Detailed Description

+

Defines boost::hana::overload.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/overload_8hpp.js b/boost_1_63_0/libs/hana/doc/html/overload_8hpp.js new file mode 100644 index 0000000..6ea1092 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/overload_8hpp.js @@ -0,0 +1,4 @@ +var overload_8hpp = +[ + [ "overload", "overload_8hpp.html#ga83e71bae315e299f9f5f9de77b012139", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.html b/boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.html new file mode 100644 index 0000000..8b8eeaf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/overload_linearly.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
overload_linearly.hpp File Reference
+
+
+ +

Defines boost::hana::overload_linearly. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::overload_linearly
 Call the first function that produces a valid call expression. More...
 
+

Detailed Description

+

Defines boost::hana::overload_linearly.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.js b/boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.js new file mode 100644 index 0000000..396a396 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/overload__linearly_8hpp.js @@ -0,0 +1,4 @@ +var overload__linearly_8hpp = +[ + [ "overload_linearly", "overload__linearly_8hpp.html#gaa46de6f618d9f14edb1589b36b6e75ec", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/pages.html b/boost_1_63_0/libs/hana/doc/html/pages.html new file mode 100644 index 0000000..5eeb887 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/pages.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: Related Pages + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/pair_8hpp.html b/boost_1_63_0/libs/hana/doc/html/pair_8hpp.html new file mode 100644 index 0000000..4b5f221 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/pair_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/pair.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
pair.hpp File Reference
+
+
+ +

Defines boost::hana::pair. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::pair.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/partial_8hpp.html b/boost_1_63_0/libs/hana/doc/html/partial_8hpp.html new file mode 100644 index 0000000..b33fa47 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/partial_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/partial.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
partial.hpp File Reference
+
+
+ +

Defines boost::hana::partial. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::partial
 Partially apply a function to some arguments. More...
 
+

Detailed Description

+

Defines boost::hana::partial.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/partial_8hpp.js b/boost_1_63_0/libs/hana/doc/html/partial_8hpp.js new file mode 100644 index 0000000..4bf2bc8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/partial_8hpp.js @@ -0,0 +1,4 @@ +var partial_8hpp = +[ + [ "partial", "partial_8hpp.html#ga778b2daa27882e71d28b6f2b38982ddf", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/partition_8hpp.html b/boost_1_63_0/libs/hana/doc/html/partition_8hpp.html new file mode 100644 index 0000000..7e3985c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/partition_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/partition.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
partition.hpp File Reference
+
+
+ +

Defines boost::hana::partition. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::partition.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/permutations_8hpp.html b/boost_1_63_0/libs/hana/doc/html/permutations_8hpp.html new file mode 100644 index 0000000..1ad6ed9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/permutations_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/permutations.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
permutations.hpp File Reference
+
+
+ +

Defines boost::hana::permutations. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::permutations.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.html b/boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.html new file mode 100644 index 0000000..d57806c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/placeholder.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
placeholder.hpp File Reference
+
+
+ +

Defines boost::hana::_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr unspecified boost::hana::_ {}
 Create simple functions representing C++ operators inline. More...
 
+

Detailed Description

+

Defines boost::hana::_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.js b/boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.js new file mode 100644 index 0000000..12c1848 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/placeholder_8hpp.js @@ -0,0 +1,4 @@ +var placeholder_8hpp = +[ + [ "_", "placeholder_8hpp.html#gaefe9fd152cba94be71c2b5b9de689d23", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/plus_8hpp.html b/boost_1_63_0/libs/hana/doc/html/plus_8hpp.html new file mode 100644 index 0000000..4443ec3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/plus_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/plus.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
plus.hpp File Reference
+
+
+ +

Defines boost::hana::plus. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::plus.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/power_8hpp.html b/boost_1_63_0/libs/hana/doc/html/power_8hpp.html new file mode 100644 index 0000000..c187365 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/power_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/power.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
power.hpp File Reference
+
+
+ +

Defines boost::hana::power. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::power.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/prefix_8hpp.html b/boost_1_63_0/libs/hana/doc/html/prefix_8hpp.html new file mode 100644 index 0000000..46c083d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/prefix_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/prefix.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
prefix.hpp File Reference
+
+
+ +

Defines boost::hana::prefix. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::prefix.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/prepend_8hpp.html b/boost_1_63_0/libs/hana/doc/html/prepend_8hpp.html new file mode 100644 index 0000000..5dda147 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/prepend_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/prepend.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
prepend.hpp File Reference
+
+
+ +

Defines boost::hana::prepend. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::prepend.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.html b/boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.html new file mode 100644 index 0000000..6999cab --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.html @@ -0,0 +1,180 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/preprocessor.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
preprocessor.hpp File Reference
+
+
+ +

Defines generally useful preprocessor macros. +More...

+ + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define BOOST_HANA_PP_NARG(...)   BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
 Macro expanding to the number of arguments it is passed. More...
 
+#define BOOST_HANA_PP_CONCAT(x, y)   BOOST_HANA_PP_CONCAT_PRIMITIVE(x, y)
 Expands to the concatenation of its two arguments.
 
+#define BOOST_HANA_PP_STRINGIZE(...)   BOOST_HANA_PP_STRINGIZE_PRIMITIVE(__VA_ARGS__)
 Expands to the stringized version of its argument.
 
#define BOOST_HANA_PP_BACK(...)   BOOST_HANA_PP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
 Expands to its last argument. More...
 
#define BOOST_HANA_PP_DROP_BACK(...)   BOOST_HANA_PP_DROP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
 Expands to all of its arguments, except for the last one. More...
 
+#define BOOST_HANA_PP_FRONT(...)   BOOST_HANA_PP_FRONT_IMPL(__VA_ARGS__, )
 Expands to its first argument.
 
#define BOOST_HANA_PP_DROP_FRONT(e0, ...)   __VA_ARGS__
 Expands to all of its arguments, except for the first one. More...
 
+

Detailed Description

+

Defines generally useful preprocessor macros.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.js b/boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.js new file mode 100644 index 0000000..814c615 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/preprocessor_8hpp.js @@ -0,0 +1,10 @@ +var preprocessor_8hpp = +[ + [ "BOOST_HANA_PP_NARG", "group__group-details.html#ga62fe3327023c37706c827cc82624998b", null ], + [ "BOOST_HANA_PP_CONCAT", "group__group-details.html#ga444e73a2fe13732b802a770b55b4a99c", null ], + [ "BOOST_HANA_PP_STRINGIZE", "group__group-details.html#ga6b4ca5cb5cefc6cf77455d7d7ef6f381", null ], + [ "BOOST_HANA_PP_BACK", "group__group-details.html#ga1be7a4bd805ffff2882fe54995dc41bd", null ], + [ "BOOST_HANA_PP_DROP_BACK", "group__group-details.html#gadcf0cf5cb650681b8cac90d94ce52d44", null ], + [ "BOOST_HANA_PP_FRONT", "group__group-details.html#gaf8319341c937c45415ae0eae8d656723", null ], + [ "BOOST_HANA_PP_DROP_FRONT", "group__group-details.html#ga4bd17b3ef62e1e275dfe485923fdf666", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/product_8hpp.html b/boost_1_63_0/libs/hana/doc/html/product_8hpp.html new file mode 100644 index 0000000..8bb126f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/product_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/product.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
product.hpp File Reference
+
+
+ +

Defines boost::hana::product. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::product.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/range_8hpp.html b/boost_1_63_0/libs/hana/doc/html/range_8hpp.html new file mode 100644 index 0000000..dcedf72 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/range_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/range.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
range.hpp File Reference
+
+
+ +

Defines boost::hana::range. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::range.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/ratio_8hpp.html b/boost_1_63_0/libs/hana/doc/html/ratio_8hpp.html new file mode 100644 index 0000000..b381c4c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/ratio_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std/ratio.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ratio.hpp File Reference
+
+
+ +

Adapts std::ratio for use with Hana. +More...

+ + + + + +

+Classes

class  std::ratio< Num, Denom >
 Adaptation of std::ratio for Hana. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts std::ratio for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/remove_8hpp.html b/boost_1_63_0/libs/hana/doc/html/remove_8hpp.html new file mode 100644 index 0000000..15e3cb7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/remove_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/remove.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove.hpp File Reference
+
+
+ +

Defines boost::hana::remove. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::remove.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/remove__at_8hpp.html b/boost_1_63_0/libs/hana/doc/html/remove__at_8hpp.html new file mode 100644 index 0000000..181615d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/remove__at_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/remove_at.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove_at.hpp File Reference
+
+
+ +

Defines boost::hana::remove_at and boost::hana::remove_at_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::remove_at and boost::hana::remove_at_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/remove__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/remove__if_8hpp.html new file mode 100644 index 0000000..0153e7f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/remove__if_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/remove_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove_if.hpp File Reference
+
+
+ +

Defines boost::hana::remove_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::remove_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/remove__range_8hpp.html b/boost_1_63_0/libs/hana/doc/html/remove__range_8hpp.html new file mode 100644 index 0000000..4915b4d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/remove__range_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/remove_range.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
remove_range.hpp File Reference
+
+
+ +

Defines boost::hana::remove_range and boost::hana::remove_range_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::remove_range and boost::hana::remove_range_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/repeat_8hpp.html b/boost_1_63_0/libs/hana/doc/html/repeat_8hpp.html new file mode 100644 index 0000000..f63b66c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/repeat_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/repeat.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
repeat.hpp File Reference
+
+
+ +

Defines boost::hana::repeat. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::repeat.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/replace_8hpp.html b/boost_1_63_0/libs/hana/doc/html/replace_8hpp.html new file mode 100644 index 0000000..9929172 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/replace_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/replace.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
replace.hpp File Reference
+
+
+ +

Defines boost::hana::replace. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::replace.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/replace__if_8hpp.html b/boost_1_63_0/libs/hana/doc/html/replace__if_8hpp.html new file mode 100644 index 0000000..3136a66 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/replace__if_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/replace_if.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
replace_if.hpp File Reference
+
+
+ +

Defines boost::hana::replace_if. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::replace_if.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/replicate_8hpp.html b/boost_1_63_0/libs/hana/doc/html/replicate_8hpp.html new file mode 100644 index 0000000..2daa005 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/replicate_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/replicate.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
replicate.hpp File Reference
+
+
+ +

Defines boost::hana::replicate. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::replicate.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/resize.js b/boost_1_63_0/libs/hana/doc/html/resize.js new file mode 100644 index 0000000..fcee250 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/resize.js @@ -0,0 +1,95 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + var device = navigator.userAgent.toLowerCase(); + var ios = device.match(/(iphone|ipod|ipad)/); + if (ios) { + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + } + }); +} diff --git a/boost_1_63_0/libs/hana/doc/html/reverse_8hpp.html b/boost_1_63_0/libs/hana/doc/html/reverse_8hpp.html new file mode 100644 index 0000000..4ec4562 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/reverse_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/reverse.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
reverse.hpp File Reference
+
+
+ +

Defines boost::hana::reverse. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::reverse.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/reverse__apply_8hpp.html b/boost_1_63_0/libs/hana/doc/html/reverse__apply_8hpp.html new file mode 100644 index 0000000..f4a7dd0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/reverse__apply_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/reverse_apply.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
reverse_apply.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::reverse_apply. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::reverse_apply.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/reverse__fold_8hpp.html b/boost_1_63_0/libs/hana/doc/html/reverse__fold_8hpp.html new file mode 100644 index 0000000..78f3c02 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/reverse__fold_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/reverse_fold.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
reverse_fold.hpp File Reference
+
+
+ +

Defines boost::hana::reverse_fold. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::reverse_fold.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.html b/boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.html new file mode 100644 index 0000000..51fcb58 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/functional/reverse_partial.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
reverse_partial.hpp File Reference
+
+
+ +

Defines boost::hana::reverse_partial. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+ + + + +

+Variables

constexpr auto boost::hana::reverse_partial
 Partially apply a function to some arguments. More...
 
+

Detailed Description

+

Defines boost::hana::reverse_partial.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.js b/boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.js new file mode 100644 index 0000000..a4cd098 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/reverse__partial_8hpp.js @@ -0,0 +1,4 @@ +var reverse__partial_8hpp = +[ + [ "reverse_partial", "reverse__partial_8hpp.html#ga6e648f0d3fc0209ec024e9d759a5e8f8", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/scan__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/scan__left_8hpp.html new file mode 100644 index 0000000..924b459 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/scan__left_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/scan_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
scan_left.hpp File Reference
+
+
+ +

Defines boost::hana::scan_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::scan_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/scan__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/scan__right_8hpp.html new file mode 100644 index 0000000..2736394 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/scan__right_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/scan_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
scan_right.hpp File Reference
+
+
+ +

Defines boost::hana::scan_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::scan_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_0.html b/boost_1_63_0/libs/hana/doc/html/search/all_0.html new file mode 100644 index 0000000..d54e0bd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_0.js b/boost_1_63_0/libs/hana/doc/html/search/all_0.js new file mode 100644 index 0000000..24493c8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5f',['_',['../group__group-functional.html#gaefe9fd152cba94be71c2b5b9de689d23',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_1.html b/boost_1_63_0/libs/hana/doc/html/search/all_1.html new file mode 100644 index 0000000..8cc6a1d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_1.js b/boost_1_63_0/libs/hana/doc/html/search/all_1.js new file mode 100644 index 0000000..eba14ae --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_1.js @@ -0,0 +1,72 @@ +var searchData= +[ + ['accessors',['accessors',['../group__group-Struct.html#ga983a55dbd93d766fd37689ea32e4ddfb',1,'boost::hana']]], + ['accessors_2ehpp',['accessors.hpp',['../fwd_2accessors_8hpp.html',1,'']]], + ['accessors_2ehpp',['accessors.hpp',['../accessors_8hpp.html',1,'']]], + ['adapt_5fadt_2ehpp',['adapt_adt.hpp',['../adapt__adt_8hpp.html',1,'']]], + ['adapt_5fadt_2ehpp',['adapt_adt.hpp',['../fwd_2adapt__adt_8hpp.html',1,'']]], + ['adapt_5fstruct_2ehpp',['adapt_struct.hpp',['../adapt__struct_8hpp.html',1,'']]], + ['adapt_5fstruct_2ehpp',['adapt_struct.hpp',['../fwd_2adapt__struct_8hpp.html',1,'']]], + ['adjust',['adjust',['../group__group-Functor.html#ga7cc731e67ebc1f5303be1a97b2d5e0cd',1,'boost::hana']]], + ['adjust_2ehpp',['adjust.hpp',['../adjust_8hpp.html',1,'']]], + ['adjust_2ehpp',['adjust.hpp',['../fwd_2adjust_8hpp.html',1,'']]], + ['adjust_5fif',['adjust_if',['../group__group-Functor.html#gaa0490f57047c1b0d75fbe233688358f4',1,'boost::hana']]], + ['adjust_5fif_2ehpp',['adjust_if.hpp',['../adjust__if_8hpp.html',1,'']]], + ['adjust_5fif_2ehpp',['adjust_if.hpp',['../fwd_2adjust__if_8hpp.html',1,'']]], + ['adl',['adl',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['adl_2ehpp',['adl.hpp',['../adl_8hpp.html',1,'']]], + ['adl_3c_20tuple_3c_20xn_2e_2e_2e_20_3e_20_3e',['adl< tuple< Xn... > >',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['adl_3c_20tuple_3c_3e_20_3e',['adl< tuple<> >',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['adl_3c_3e',['adl<>',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['advance_5funtil',['advance_until',['../structboost_1_1hana_1_1at__key__detail_1_1advance__until.html',1,'boost::hana::at_key_detail']]], + ['advance_5funtil_3c_20xs_2c_20pred_2c_20i_2b1_2c_20n_2c_20static_5fcast_3c_20bool_20_3e_28detail_3a_3adecay_3c_20decltype_28std_3a_3adeclval_3c_20pred_20_3e_28_29_28hana_3a_3aat_5fc_3c_20i_20_3e_28std_3a_3adeclval_3c_20xs_20_3e_28_29_29_29_29_3e_3a_3atype_3a_3avalue_29_3e',['advance_until< Xs, Pred, i+1, N, static_cast< bool >(detail::decay< decltype(std::declval< Pred >()(hana::at_c< i >(std::declval< Xs >())))>::type::value)>',['../structboost_1_1hana_1_1at__key__detail_1_1advance__until.html',1,'boost::hana::at_key_detail']]], + ['algorithm_2ehpp',['algorithm.hpp',['../algorithm_8hpp.html',1,'']]], + ['alignof_5f',['alignof_',['../structboost_1_1hana_1_1type.html#a6fd9ac456f4b5574dcb16384dbb85736',1,'boost::hana::type']]], + ['all',['all',['../group__group-Searchable.html#ga81ae9764dd7818ad36270c6419fb1082',1,'boost::hana']]], + ['all_2ehpp',['all.hpp',['../all_8hpp.html',1,'']]], + ['all_2ehpp',['all.hpp',['../fwd_2all_8hpp.html',1,'']]], + ['all_5fof',['all_of',['../group__group-Searchable.html#ga3a168950082f38afd9edf256f336c8ba',1,'boost::hana']]], + ['all_5fof_2ehpp',['all_of.hpp',['../all__of_8hpp.html',1,'']]], + ['all_5fof_2ehpp',['all_of.hpp',['../fwd_2all__of_8hpp.html',1,'']]], + ['always',['always',['../group__group-functional.html#ga835970cb25a0c8dc200f1e5f8943538b',1,'boost::hana']]], + ['always_2ehpp',['always.hpp',['../always_8hpp.html',1,'']]], + ['and_2ehpp',['and.hpp',['../and_8hpp.html',1,'']]], + ['and_2ehpp',['and.hpp',['../fwd_2and_8hpp.html',1,'']]], + ['and_5f',['and_',['../group__group-Logical.html#ga14066f5672867c123524e0e0978069eb',1,'boost::hana']]], + ['any',['any',['../group__group-Searchable.html#gab7d632b9319b10b1eb7e98f9e1cf8a28',1,'boost::hana']]], + ['any_2ehpp',['any.hpp',['../any_8hpp.html',1,'']]], + ['any_2ehpp',['any.hpp',['../fwd_2any_8hpp.html',1,'']]], + ['any_5fof',['any_of',['../structboost_1_1hana_1_1detail_1_1any__of.html',1,'boost::hana::detail']]], + ['any_5fof',['any_of',['../group__group-Searchable.html#ga5f7ff0125c448983e1b96c3ffb84f646',1,'boost::hana']]], + ['any_5fof_2ehpp',['any_of.hpp',['../detail_2any__of_8hpp.html',1,'']]], + ['any_5fof_2ehpp',['any_of.hpp',['../any__of_8hpp.html',1,'']]], + ['any_5fof_2ehpp',['any_of.hpp',['../fwd_2any__of_8hpp.html',1,'']]], + ['ap',['ap',['../group__group-Applicative.html#ga6176a32953dbbdee96e3ab3c73e4c890',1,'boost::hana']]], + ['ap_2ehpp',['ap.hpp',['../fwd_2ap_8hpp.html',1,'']]], + ['ap_2ehpp',['ap.hpp',['../ap_8hpp.html',1,'']]], + ['append',['append',['../group__group-MonadPlus.html#ga08624924fe05f0cfbfbd6e439db01873',1,'boost::hana']]], + ['append_2ehpp',['append.hpp',['../append_8hpp.html',1,'']]], + ['append_2ehpp',['append.hpp',['../fwd_2append_8hpp.html',1,'']]], + ['applicative_2ehpp',['applicative.hpp',['../concept_2applicative_8hpp.html',1,'']]], + ['applicative_2ehpp',['applicative.hpp',['../fwd_2concept_2applicative_8hpp.html',1,'']]], + ['apply',['apply',['../group__group-functional.html#ga30027c383676084be151ef3c6cf2829f',1,'boost::hana']]], + ['apply_2ehpp',['apply.hpp',['../apply_8hpp.html',1,'']]], + ['arg',['arg',['../group__group-functional.html#ga6acc765a35c4dc85f0deab4785831a3d',1,'boost::hana']]], + ['arg_2ehpp',['arg.hpp',['../arg_8hpp.html',1,'']]], + ['arithmetic_2ehpp',['arithmetic.hpp',['../arithmetic_8hpp.html',1,'']]], + ['array',['array',['../structstd_1_1array.html',1,'std']]], + ['array',['array',['../structboost_1_1hana_1_1detail_1_1array.html',1,'boost::hana::detail']]], + ['array_2ehpp',['array.hpp',['../detail_2array_8hpp.html',1,'']]], + ['array_2ehpp',['array.hpp',['../ext_2std_2array_8hpp.html',1,'']]], + ['assert_2ehpp',['assert.hpp',['../assert_8hpp.html',1,'']]], + ['at',['at',['../group__group-Iterable.html#ga8a484304380eae38f3d9663d98860129',1,'boost::hana']]], + ['at_2ehpp',['at.hpp',['../fwd_2at_8hpp.html',1,'']]], + ['at_2ehpp',['at.hpp',['../detail_2variadic_2at_8hpp.html',1,'']]], + ['at_2ehpp',['at.hpp',['../at_8hpp.html',1,'']]], + ['at_5fc',['at_c',['../group__group-Iterable.html#ga4cb99cfbef936cb267e76f66f40f529c',1,'boost::hana']]], + ['at_5fkey',['at_key',['../group__group-Searchable.html#ga3c1826aee6c6eb577810bb99c5c3e53d',1,'boost::hana']]], + ['at_5fkey_2ehpp',['at_key.hpp',['../at__key_8hpp.html',1,'']]], + ['at_5fkey_2ehpp',['at_key.hpp',['../fwd_2at__key_8hpp.html',1,'']]], + ['applicative',['Applicative',['../group__group-Applicative.html',1,'']]], + ['assertions',['Assertions',['../group__group-assertions.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_10.html b/boost_1_63_0/libs/hana/doc/html/search/all_10.html new file mode 100644 index 0000000..c25484f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_10.js b/boost_1_63_0/libs/hana/doc/html/search/all_10.js new file mode 100644 index 0000000..bee9910 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_10.js @@ -0,0 +1,39 @@ +var searchData= +[ + ['product',['Product',['../group__group-Product.html',1,'']]], + ['pair',['pair',['../structboost_1_1hana_1_1pair.html',1,'boost::hana']]], + ['pair',['pair',['../structstd_1_1pair.html',1,'std']]], + ['pair',['pair',['../structboost_1_1hana_1_1pair.html#acb8494edc410c10d824e942341f30719',1,'boost::hana::pair::pair()'],['../structboost_1_1hana_1_1pair.html#ad258681a711a7bf24d79e9d13a7a441e',1,'boost::hana::pair::pair(First const &first, Second const &second)'],['../structboost_1_1hana_1_1pair.html#aae31a284451c1c0486339c289a7887fe',1,'boost::hana::pair::pair(T &&t, U &&u)'],['../structboost_1_1hana_1_1pair.html#ad295aada872521bce6e7775795b8318e',1,'boost::hana::pair::pair(pair< T, U > const &other)'],['../structboost_1_1hana_1_1pair.html#a962bff38110b5c39b1267fc88851198d',1,'boost::hana::pair::pair(pair< T, U > &&other)']]], + ['pair_2ehpp',['pair.hpp',['../ext_2std_2pair_8hpp.html',1,'']]], + ['pair_2ehpp',['pair.hpp',['../fwd_2pair_8hpp.html',1,'']]], + ['pair_2ehpp',['pair.hpp',['../pair_8hpp.html',1,'']]], + ['pair_5ftag',['pair_tag',['../structboost_1_1hana_1_1pair__tag.html',1,'boost::hana']]], + ['partial',['partial',['../group__group-functional.html#ga778b2daa27882e71d28b6f2b38982ddf',1,'boost::hana']]], + ['partial_2ehpp',['partial.hpp',['../partial_8hpp.html',1,'']]], + ['partition',['partition',['../group__group-Sequence.html#ga5e84ac3f1eb09c637b6b38ef42dccd8d',1,'boost::hana']]], + ['partition_2ehpp',['partition.hpp',['../fwd_2partition_8hpp.html',1,'']]], + ['partition_2ehpp',['partition.hpp',['../partition_8hpp.html',1,'']]], + ['permutations',['permutations',['../group__group-Sequence.html#gac1e182ac088f1990edd739424d30ea07',1,'boost::hana']]], + ['permutations_2ehpp',['permutations.hpp',['../fwd_2permutations_8hpp.html',1,'']]], + ['permutations_2ehpp',['permutations.hpp',['../permutations_8hpp.html',1,'']]], + ['placeholder_2ehpp',['placeholder.hpp',['../placeholder_8hpp.html',1,'']]], + ['plus',['plus',['../group__group-Monoid.html#gaeb5d4a1e967e319712f9e4791948896c',1,'boost::hana']]], + ['plus_2ehpp',['plus.hpp',['../fwd_2plus_8hpp.html',1,'']]], + ['plus_2ehpp',['plus.hpp',['../plus_8hpp.html',1,'']]], + ['power',['power',['../group__group-Ring.html#ga0ee3cff9ec646bcc7217f00ee6099b72',1,'boost::hana']]], + ['power_2ehpp',['power.hpp',['../fwd_2power_8hpp.html',1,'']]], + ['power_2ehpp',['power.hpp',['../power_8hpp.html',1,'']]], + ['prefix',['prefix',['../group__group-MonadPlus.html#ga3022fdfe454dc9bc1f79b5dfeba13b5e',1,'boost::hana']]], + ['prefix_2ehpp',['prefix.hpp',['../prefix_8hpp.html',1,'']]], + ['prefix_2ehpp',['prefix.hpp',['../fwd_2prefix_8hpp.html',1,'']]], + ['prepend',['prepend',['../group__group-MonadPlus.html#ga69afbfd4e91125e3e52fcb409135ca7c',1,'boost::hana']]], + ['prepend_2ehpp',['prepend.hpp',['../fwd_2prepend_8hpp.html',1,'']]], + ['prepend_2ehpp',['prepend.hpp',['../prepend_8hpp.html',1,'']]], + ['preprocessor_2ehpp',['preprocessor.hpp',['../preprocessor_8hpp.html',1,'']]], + ['print',['print',['../group__group-experimental.html#ga660c0769106006a86948b5b355fad050',1,'boost::hana::experimental']]], + ['product',['product',['../group__group-Foldable.html#ga17fe9c1982c882807f3358b4138c5744',1,'boost::hana']]], + ['product_2ehpp',['product.hpp',['../fwd_2concept_2product_8hpp.html',1,'']]], + ['product_2ehpp',['product.hpp',['../fwd_2product_8hpp.html',1,'']]], + ['product_2ehpp',['product.hpp',['../product_8hpp.html',1,'']]], + ['product_2ehpp',['product.hpp',['../concept_2product_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_11.html b/boost_1_63_0/libs/hana/doc/html/search/all_11.html new file mode 100644 index 0000000..3615c28 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_11.js b/boost_1_63_0/libs/hana/doc/html/search/all_11.js new file mode 100644 index 0000000..c25d6e6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_11.js @@ -0,0 +1,48 @@ +var searchData= +[ + ['ring',['Ring',['../group__group-Ring.html',1,'']]], + ['range',['range',['../structboost_1_1hana_1_1range.html',1,'boost::hana']]], + ['range_2ehpp',['range.hpp',['../fwd_2range_8hpp.html',1,'']]], + ['range_2ehpp',['range.hpp',['../range_8hpp.html',1,'']]], + ['range_5fc',['range_c',['../structboost_1_1hana_1_1range.html#a899b7a0c065ff64cd747fe1671753d3f',1,'boost::hana::range']]], + ['range_5ftag',['range_tag',['../structboost_1_1hana_1_1range__tag.html',1,'boost::hana']]], + ['ratio',['ratio',['../classstd_1_1ratio.html',1,'std']]], + ['ratio_2ehpp',['ratio.hpp',['../ratio_8hpp.html',1,'']]], + ['remove',['remove',['../group__group-MonadPlus.html#gae3cc0d6e0d8feb3d677bd1da64da6f43',1,'boost::hana']]], + ['remove_2ehpp',['remove.hpp',['../fwd_2remove_8hpp.html',1,'']]], + ['remove_2ehpp',['remove.hpp',['../remove_8hpp.html',1,'']]], + ['remove_5fat',['remove_at',['../group__group-Sequence.html#ga80724ec8ecf319a1e695988a69e22f87',1,'boost::hana']]], + ['remove_5fat_2ehpp',['remove_at.hpp',['../fwd_2remove__at_8hpp.html',1,'']]], + ['remove_5fat_2ehpp',['remove_at.hpp',['../remove__at_8hpp.html',1,'']]], + ['remove_5fat_5fc',['remove_at_c',['../group__group-Sequence.html#gae70b0815645c7d81bb636a1eed1a65c6',1,'boost::hana']]], + ['remove_5fif',['remove_if',['../group__group-MonadPlus.html#ga9700169a45664d50377c1be9d58accd3',1,'boost::hana']]], + ['remove_5fif_2ehpp',['remove_if.hpp',['../remove__if_8hpp.html',1,'']]], + ['remove_5fif_2ehpp',['remove_if.hpp',['../fwd_2remove__if_8hpp.html',1,'']]], + ['remove_5frange',['remove_range',['../group__group-Sequence.html#ga6f6d5c1f335780c91d29626fde615c78',1,'boost::hana']]], + ['remove_5frange_2ehpp',['remove_range.hpp',['../fwd_2remove__range_8hpp.html',1,'']]], + ['remove_5frange_2ehpp',['remove_range.hpp',['../remove__range_8hpp.html',1,'']]], + ['remove_5frange_5fc',['remove_range_c',['../group__group-Sequence.html#ga4696efcdee7d95ab4a391bb896a840b5',1,'boost::hana']]], + ['repeat',['repeat',['../namespaceboost_1_1hana.html#a405f3dd84fc6f5003e64f8da104a1b54',1,'boost::hana']]], + ['repeat_2ehpp',['repeat.hpp',['../fwd_2repeat_8hpp.html',1,'']]], + ['repeat_2ehpp',['repeat.hpp',['../repeat_8hpp.html',1,'']]], + ['replace',['replace',['../group__group-Functor.html#ga94cd3a75d59d70d77cfce144c4acf8ab',1,'boost::hana']]], + ['replace_2ehpp',['replace.hpp',['../fwd_2replace_8hpp.html',1,'']]], + ['replace_2ehpp',['replace.hpp',['../replace_8hpp.html',1,'']]], + ['replace_5fif',['replace_if',['../group__group-Functor.html#ga1d21b4bccd16367d164fbe0d9ef52150',1,'boost::hana']]], + ['replace_5fif_2ehpp',['replace_if.hpp',['../fwd_2replace__if_8hpp.html',1,'']]], + ['replace_5fif_2ehpp',['replace_if.hpp',['../replace__if_8hpp.html',1,'']]], + ['replicate',['replicate',['../group__group-MonadPlus.html#gad5f48c79d11923d6c1d70b18b7dd3f19',1,'boost::hana']]], + ['replicate_2ehpp',['replicate.hpp',['../fwd_2replicate_8hpp.html',1,'']]], + ['replicate_2ehpp',['replicate.hpp',['../replicate_8hpp.html',1,'']]], + ['reverse',['reverse',['../group__group-Sequence.html#ga28037560e8f224c53cf6ac168d03a067',1,'boost::hana']]], + ['reverse_2ehpp',['reverse.hpp',['../fwd_2reverse_8hpp.html',1,'']]], + ['reverse_2ehpp',['reverse.hpp',['../reverse_8hpp.html',1,'']]], + ['reverse_5fapply_2ehpp',['reverse_apply.hpp',['../reverse__apply_8hpp.html',1,'']]], + ['reverse_5ffold',['reverse_fold',['../group__group-Foldable.html#ga947602718a53bd7fcd5c20477694cdcd',1,'boost::hana']]], + ['reverse_5ffold_2ehpp',['reverse_fold.hpp',['../reverse__fold_8hpp.html',1,'']]], + ['reverse_5ffold_2ehpp',['reverse_fold.hpp',['../fwd_2reverse__fold_8hpp.html',1,'']]], + ['reverse_5fpartial',['reverse_partial',['../group__group-functional.html#ga6e648f0d3fc0209ec024e9d759a5e8f8',1,'boost::hana']]], + ['reverse_5fpartial_2ehpp',['reverse_partial.hpp',['../reverse__partial_8hpp.html',1,'']]], + ['ring_2ehpp',['ring.hpp',['../concept_2ring_8hpp.html',1,'']]], + ['ring_2ehpp',['ring.hpp',['../fwd_2concept_2ring_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_12.html b/boost_1_63_0/libs/hana/doc/html/search/all_12.html new file mode 100644 index 0000000..abd082a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_12.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_12.js b/boost_1_63_0/libs/hana/doc/html/search/all_12.js new file mode 100644 index 0000000..d0022dd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_12.js @@ -0,0 +1,67 @@ +var searchData= +[ + ['standard_20library_20adapters',['Standard library adapters',['../group__group-ext-std.html',1,'']]], + ['searchable',['Searchable',['../group__group-Searchable.html',1,'']]], + ['sequence',['Sequence',['../group__group-Sequence.html',1,'']]], + ['struct',['Struct',['../group__group-Struct.html',1,'']]], + ['scan_5fleft',['scan_left',['../group__group-Sequence.html#gaec484fb349500149d90717f6e68f7bcd',1,'boost::hana']]], + ['scan_5fleft_2ehpp',['scan_left.hpp',['../scan__left_8hpp.html',1,'']]], + ['scan_5fleft_2ehpp',['scan_left.hpp',['../fwd_2scan__left_8hpp.html',1,'']]], + ['scan_5fright',['scan_right',['../group__group-Sequence.html#ga54d141f901866dfab29b052857123bab',1,'boost::hana']]], + ['scan_5fright_2ehpp',['scan_right.hpp',['../fwd_2scan__right_8hpp.html',1,'']]], + ['scan_5fright_2ehpp',['scan_right.hpp',['../scan__right_8hpp.html',1,'']]], + ['searchable_2ehpp',['searchable.hpp',['../concept_2searchable_8hpp.html',1,'']]], + ['searchable_2ehpp',['searchable.hpp',['../detail_2operators_2searchable_8hpp.html',1,'']]], + ['searchable_2ehpp',['searchable.hpp',['../fwd_2concept_2searchable_8hpp.html',1,'']]], + ['second',['second',['../group__group-Product.html#ga7bb979d59ffc3ab862cb7d9dc7730077',1,'boost::hana']]], + ['second_2ehpp',['second.hpp',['../fwd_2second_8hpp.html',1,'']]], + ['second_2ehpp',['second.hpp',['../second_8hpp.html',1,'']]], + ['sequence_2ehpp',['sequence.hpp',['../concept_2sequence_8hpp.html',1,'']]], + ['sequence_2ehpp',['sequence.hpp',['../fwd_2concept_2sequence_8hpp.html',1,'']]], + ['set',['set',['../structboost_1_1hana_1_1set.html#a937a7d47238690b571e7dd524278f6d5',1,'boost::hana::set::set(set const &other)=default'],['../structboost_1_1hana_1_1set.html#ac5b7025edfb0c6c28f31d84598e130f0',1,'boost::hana::set::set(set &&other)=default']]], + ['set',['set',['../structboost_1_1hana_1_1set.html',1,'boost::hana']]], + ['set_2ehpp',['set.hpp',['../fwd_2set_8hpp.html',1,'']]], + ['set_2ehpp',['set.hpp',['../set_8hpp.html',1,'']]], + ['set_5ftag',['set_tag',['../structboost_1_1hana_1_1set__tag.html',1,'boost::hana']]], + ['sfinae',['sfinae',['../structboost_1_1hana_1_1optional.html#aa4c8c0b1ef3d8206974734b93646c9fd',1,'boost::hana::optional']]], + ['short_5f',['short_',['../structboost_1_1hana_1_1integral__constant.html#a217459eb4ffdd9580b5d8e1bf36d7ac4',1,'boost::hana::integral_constant']]], + ['short_5fc',['short_c',['../structboost_1_1hana_1_1integral__constant.html#aaf48189e927611ea460974ba01beb2c7',1,'boost::hana::integral_constant']]], + ['size',['size',['../group__group-Foldable.html#ga8ec3ac9a6f5014db943f61ebc9e1e36e',1,'boost::hana']]], + ['size_2ehpp',['size.hpp',['../fwd_2size_8hpp.html',1,'']]], + ['size_2ehpp',['size.hpp',['../size_8hpp.html',1,'']]], + ['size_5fc',['size_c',['../structboost_1_1hana_1_1integral__constant.html#ac49b8fd71a0ef9229511bd7d6cc0f150',1,'boost::hana::integral_constant']]], + ['size_5ft',['size_t',['../structboost_1_1hana_1_1integral__constant.html#a022e29dcd19f546f3ac35254f11e56de',1,'boost::hana::integral_constant']]], + ['sizeof_5f',['sizeof_',['../structboost_1_1hana_1_1type.html#a26b702b280ca02f118affaaca9112a8c',1,'boost::hana::type']]], + ['slice',['slice',['../group__group-Sequence.html#ga245d8abaf6ba67e64020be51c8366081',1,'boost::hana']]], + ['slice_2ehpp',['slice.hpp',['../fwd_2slice_8hpp.html',1,'']]], + ['slice_2ehpp',['slice.hpp',['../slice_8hpp.html',1,'']]], + ['slice_5fc',['slice_c',['../group__group-Sequence.html#gae1f6a2a9cb70564d43c6b3c663b25dd7',1,'boost::hana']]], + ['sort',['sort',['../group__group-Sequence.html#gac000a79eb7b9d44ecc8982c93daa40e5',1,'boost::hana']]], + ['sort_2ehpp',['sort.hpp',['../sort_8hpp.html',1,'']]], + ['sort_2ehpp',['sort.hpp',['../fwd_2sort_8hpp.html',1,'']]], + ['span',['span',['../group__group-Sequence.html#ga9bdde56d805517bce8e387f5bcd1887e',1,'boost::hana']]], + ['span_2ehpp',['span.hpp',['../fwd_2span_8hpp.html',1,'']]], + ['span_2ehpp',['span.hpp',['../span_8hpp.html',1,'']]], + ['split_5fat_2ehpp',['split_at.hpp',['../split__at_8hpp.html',1,'']]], + ['std_2ehpp',['std.hpp',['../std_8hpp.html',1,'']]], + ['std_5fcommon_5ftype',['std_common_type',['../structboost_1_1hana_1_1detail_1_1std__common__type.html',1,'boost::hana::detail']]], + ['std_5fcommon_5ftype_2ehpp',['std_common_type.hpp',['../std__common__type_8hpp.html',1,'']]], + ['std_5fcommon_5ftype_3c_20t_2c_20u_20_3e',['std_common_type< T, U >',['../structboost_1_1hana_1_1detail_1_1std__common__type.html',1,'boost::hana::detail']]], + ['string',['string',['../structboost_1_1hana_1_1string.html',1,'boost::hana']]], + ['string_2ehpp',['string.hpp',['../string_8hpp.html',1,'']]], + ['string_2ehpp',['string.hpp',['../fwd_2string_8hpp.html',1,'']]], + ['string_5fc',['string_c',['../structboost_1_1hana_1_1string.html#a810915f5e494decfe47b047a3500c577',1,'boost::hana::string']]], + ['string_5ftag',['string_tag',['../structboost_1_1hana_1_1string__tag.html',1,'boost::hana']]], + ['struct_2ehpp',['struct.hpp',['../concept_2struct_8hpp.html',1,'']]], + ['struct_2ehpp',['struct.hpp',['../fwd_2concept_2struct_8hpp.html',1,'']]], + ['struct_5fmacros_2ehpp',['struct_macros.hpp',['../struct__macros_8hpp.html',1,'']]], + ['suffix',['suffix',['../group__group-MonadPlus.html#ga61dab15f6ecf379121d4096fe0c8ab13',1,'boost::hana']]], + ['suffix_2ehpp',['suffix.hpp',['../suffix_8hpp.html',1,'']]], + ['suffix_2ehpp',['suffix.hpp',['../fwd_2suffix_8hpp.html',1,'']]], + ['sum',['sum',['../group__group-Foldable.html#ga650def4b2e98f4273d8b9b7aa5a2fc28',1,'boost::hana']]], + ['sum_2ehpp',['sum.hpp',['../sum_8hpp.html',1,'']]], + ['sum_2ehpp',['sum.hpp',['../fwd_2sum_8hpp.html',1,'']]], + ['symmetric_5fdifference',['symmetric_difference',['../structboost_1_1hana_1_1set.html#a8bcb2455eb9f7074185d8fb61a99801e',1,'boost::hana::set']]], + ['symmetric_5fdifference_2ehpp',['symmetric_difference.hpp',['../fwd_2symmetric__difference_8hpp.html',1,'']]], + ['symmetric_5fdifference_2ehpp',['symmetric_difference.hpp',['../symmetric__difference_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_13.html b/boost_1_63_0/libs/hana/doc/html/search/all_13.html new file mode 100644 index 0000000..88fa653 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_13.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_13.js b/boost_1_63_0/libs/hana/doc/html/search/all_13.js new file mode 100644 index 0000000..abf1e2b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_13.js @@ -0,0 +1,67 @@ +var searchData= +[ + ['tag_5fof',['tag_of',['../structboost_1_1hana_1_1tag__of.html',1,'boost::hana']]], + ['tag_5fof_2ehpp',['tag_of.hpp',['../core_2tag__of_8hpp.html',1,'']]], + ['tag_5fof_2ehpp',['tag_of.hpp',['../fwd_2core_2tag__of_8hpp.html',1,'']]], + ['tag_5fof_3c_20t_20_3e',['tag_of< T >',['../structboost_1_1hana_1_1tag__of.html',1,'boost::hana']]], + ['tag_5fof_5ft',['tag_of_t',['../group__group-core.html#ga686d1236161b5690ab302500077988e1',1,'boost::hana']]], + ['take_2ehpp',['take.hpp',['../take_8hpp.html',1,'']]], + ['take_5fback',['take_back',['../group__group-Sequence.html#ga8d302de01b94b4b17f3bd81e09f42920',1,'boost::hana']]], + ['take_5fback_2ehpp',['take_back.hpp',['../fwd_2take__back_8hpp.html',1,'']]], + ['take_5fback_2ehpp',['take_back.hpp',['../take__back_8hpp.html',1,'']]], + ['take_5ffront',['take_front',['../group__group-Sequence.html#ga5112e6070d29b4f7fde3f44825da3316',1,'boost::hana']]], + ['take_5ffront_2ehpp',['take_front.hpp',['../fwd_2take__front_8hpp.html',1,'']]], + ['take_5ffront_2ehpp',['take_front.hpp',['../take__front_8hpp.html',1,'']]], + ['take_5ffront_5fc',['take_front_c',['../group__group-Sequence.html#ga3779f62fea92af00113a9290f1c680eb',1,'boost::hana']]], + ['take_5fwhile',['take_while',['../group__group-Sequence.html#ga2d4db4ec5ec5bc16fe74f57de12697fd',1,'boost::hana']]], + ['take_5fwhile_2ehpp',['take_while.hpp',['../fwd_2take__while_8hpp.html',1,'']]], + ['take_5fwhile_2ehpp',['take_while.hpp',['../take__while_8hpp.html',1,'']]], + ['tap',['tap',['../group__group-Monad.html#ga5e0735de01a24f681c55aedfeb6d13bf',1,'boost::hana']]], + ['tap_2ehpp',['tap.hpp',['../fwd_2tap_8hpp.html',1,'']]], + ['tap_2ehpp',['tap.hpp',['../tap_8hpp.html',1,'']]], + ['template_5f',['template_',['../group__group-Metafunction.html#ga246419f6c3263b648412f346106e6543',1,'boost::hana']]], + ['then',['then',['../group__group-Monad.html#gaaddd3789de43cf989babb10cdc0b447a',1,'boost::hana']]], + ['then_2ehpp',['then.hpp',['../fwd_2then_8hpp.html',1,'']]], + ['then_2ehpp',['then.hpp',['../then_8hpp.html',1,'']]], + ['times',['times',['../structboost_1_1hana_1_1integral__constant.html#a2d4bda4a9114a5e803a91def599fae76',1,'boost::hana::integral_constant']]], + ['to',['to',['../group__group-core.html#gadc70755c1d059139297814fb3bfeb91e',1,'boost::hana']]], + ['to_2ehpp',['to.hpp',['../fwd_2core_2to_8hpp.html',1,'']]], + ['to_2ehpp',['to.hpp',['../core_2to_8hpp.html',1,'']]], + ['to_5fmap',['to_map',['../structboost_1_1hana_1_1map.html#a4feb32bd0a065a0732908716d4855b57',1,'boost::hana::map']]], + ['to_5fset',['to_set',['../structboost_1_1hana_1_1set.html#accbea694d32b341e860dac724c0c6933',1,'boost::hana::set']]], + ['to_5ftuple',['to_tuple',['../structboost_1_1hana_1_1tuple.html#a749b564c8f115957837761d75191beac',1,'boost::hana::tuple']]], + ['todo_20list',['Todo List',['../todo.html',1,'']]], + ['trait',['trait',['../group__group-Metafunction.html#ga6d4093318f46472e62f9539a4dc998a9',1,'boost::hana']]], + ['traits_2ehpp',['traits.hpp',['../traits_8hpp.html',1,'']]], + ['transform',['transform',['../group__group-Functor.html#ga5a8975f6e55375d5b6038a9c36ee63e7',1,'boost::hana']]], + ['transform_2ehpp',['transform.hpp',['../fwd_2transform_8hpp.html',1,'']]], + ['transform_2ehpp',['transform.hpp',['../transform_8hpp.html',1,'']]], + ['true_5f',['true_',['../structboost_1_1hana_1_1integral__constant.html#ae0cf9368270efc7fdd2aeec497644892',1,'boost::hana::integral_constant']]], + ['true_5fc',['true_c',['../structboost_1_1hana_1_1integral__constant.html#a96c109b048f822be0ca7578c93694405',1,'boost::hana::integral_constant']]], + ['tuple',['tuple',['../structboost_1_1hana_1_1tuple.html#a8e10223983bfb3873c285be85f7ab273',1,'boost::hana::tuple::tuple()'],['../structboost_1_1hana_1_1tuple.html#a4e4e6193df38146b1eab93bcf963fc81',1,'boost::hana::tuple::tuple(Xn const &...xn)'],['../structboost_1_1hana_1_1tuple.html#a9a5dd3930d94a900190de98247e0c415',1,'boost::hana::tuple::tuple(Yn &&...yn)'],['../structboost_1_1hana_1_1tuple.html#a6cf99e86ab1506594eca03881748fe91',1,'boost::hana::tuple::tuple(tuple< Yn... > const &other)'],['../structboost_1_1hana_1_1tuple.html#ac504757198d85ab9de1258de634e3b71',1,'boost::hana::tuple::tuple(tuple< Yn... > &&other)']]], + ['tuple',['tuple',['../structboost_1_1tuple.html',1,'boost']]], + ['tuple',['tuple',['../structboost_1_1fusion_1_1tuple.html',1,'boost::fusion']]], + ['tuple',['tuple',['../structstd_1_1tuple.html',1,'std']]], + ['tuple',['tuple',['../structboost_1_1hana_1_1tuple.html',1,'boost::hana']]], + ['tuple_2ehpp',['tuple.hpp',['../ext_2boost_2fusion_2tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../ext_2boost_2tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../fwd_2tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../ext_2std_2tuple_8hpp.html',1,'']]], + ['tuple_5fc',['tuple_c',['../structboost_1_1hana_1_1tuple.html#a85c2f16caa2a1e12eefd1b3f69fa658e',1,'boost::hana::tuple']]], + ['tuple_5ft',['tuple_t',['../structboost_1_1hana_1_1tuple.html#a1997546daf58a48cc15498d338a03da3',1,'boost::hana::tuple']]], + ['tuple_5ftag',['tuple_tag',['../structboost_1_1hana_1_1tuple__tag.html',1,'boost::hana']]], + ['type',['type',['../structboost_1_1hana_1_1type.html',1,'boost::hana']]], + ['type_2ehpp',['type.hpp',['../type_8hpp.html',1,'']]], + ['type_2ehpp',['type.hpp',['../fwd_2type_8hpp.html',1,'']]], + ['type_5fat',['type_at',['../structboost_1_1hana_1_1detail_1_1type__at.html',1,'boost::hana::detail']]], + ['type_5fat_2ehpp',['type_at.hpp',['../type__at_8hpp.html',1,'']]], + ['type_5fc',['type_c',['../structboost_1_1hana_1_1type.html#ae35139e732c4b75e91061513cf445628',1,'boost::hana::type']]], + ['type_5ffoldl1_2ehpp',['type_foldl1.hpp',['../type__foldl1_8hpp.html',1,'']]], + ['type_5ffoldr1_2ehpp',['type_foldr1.hpp',['../type__foldr1_8hpp.html',1,'']]], + ['type_5fname',['type_name',['../group__group-experimental.html#gaf14876d1f1a3c42ce7a0243d7b263bec',1,'boost::hana::experimental']]], + ['type_5ftag',['type_tag',['../structboost_1_1hana_1_1type__tag.html',1,'boost::hana']]], + ['typeid_5f',['typeid_',['../structboost_1_1hana_1_1type.html#a0ade557ac4240552c92bf47c7e04dfd4',1,'boost::hana::type']]], + ['types',['types',['../structboost_1_1hana_1_1experimental_1_1types.html',1,'boost::hana::experimental']]], + ['types_2ehpp',['types.hpp',['../types_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_14.html b/boost_1_63_0/libs/hana/doc/html/search/all_14.html new file mode 100644 index 0000000..518db1d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_14.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_14.js b/boost_1_63_0/libs/hana/doc/html/search/all_14.js new file mode 100644 index 0000000..25fdf3e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_14.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['user_20manual',['User Manual',['../index.html',1,'']]], + ['uint',['uint',['../structboost_1_1hana_1_1integral__constant.html#a5071dd223185718f85da1db48fb95d80',1,'boost::hana::integral_constant']]], + ['uint_5fc',['uint_c',['../structboost_1_1hana_1_1integral__constant.html#a79f45e3c2411db1d36127c1341673ffb',1,'boost::hana::integral_constant']]], + ['ullong',['ullong',['../structboost_1_1hana_1_1integral__constant.html#a112e62e2d698846ca9e3940eb15333d3',1,'boost::hana::integral_constant']]], + ['ullong_5fc',['ullong_c',['../structboost_1_1hana_1_1integral__constant.html#a186b6fdf81c9be08f42576cafd63b38d',1,'boost::hana::integral_constant']]], + ['ulong',['ulong',['../structboost_1_1hana_1_1integral__constant.html#aedb2b03831973b4b54c5d0abce1af63c',1,'boost::hana::integral_constant']]], + ['ulong_5fc',['ulong_c',['../structboost_1_1hana_1_1integral__constant.html#a65df6bbd2d90432bdcdc709cdbca9921',1,'boost::hana::integral_constant']]], + ['unfold_5fleft',['unfold_left',['../group__group-Sequence.html#gaf2128be91ad6d32e45db1b8c61f79818',1,'boost::hana']]], + ['unfold_5fleft_2ehpp',['unfold_left.hpp',['../unfold__left_8hpp.html',1,'']]], + ['unfold_5fleft_2ehpp',['unfold_left.hpp',['../fwd_2unfold__left_8hpp.html',1,'']]], + ['unfold_5fright',['unfold_right',['../group__group-Sequence.html#ga497286bf277e6f8e89ddb18661e1033e',1,'boost::hana']]], + ['unfold_5fright_2ehpp',['unfold_right.hpp',['../fwd_2unfold__right_8hpp.html',1,'']]], + ['unfold_5fright_2ehpp',['unfold_right.hpp',['../unfold__right_8hpp.html',1,'']]], + ['union_2ehpp',['union.hpp',['../union_8hpp.html',1,'']]], + ['union_2ehpp',['union.hpp',['../fwd_2union_8hpp.html',1,'']]], + ['union_5f',['union_',['../structboost_1_1hana_1_1set.html#acd511f2c01f38405bfba0b6d5b2922e8',1,'boost::hana::set']]], + ['unique',['unique',['../group__group-Sequence.html#ga35349be79e646c4f5bdd74ec96a846ab',1,'boost::hana']]], + ['unique_2ehpp',['unique.hpp',['../unique_8hpp.html',1,'']]], + ['unique_2ehpp',['unique.hpp',['../fwd_2unique_8hpp.html',1,'']]], + ['unpack',['unpack',['../group__group-Foldable.html#ga7b0c23944364ce61136e10b978ae2170',1,'boost::hana']]], + ['unpack_2ehpp',['unpack.hpp',['../fwd_2unpack_8hpp.html',1,'']]], + ['unpack_2ehpp',['unpack.hpp',['../unpack_8hpp.html',1,'']]], + ['unpack_5fflatten_2ehpp',['unpack_flatten.hpp',['../unpack__flatten_8hpp.html',1,'']]], + ['unrolled_2ehpp',['unrolled.hpp',['../unrolled_8hpp.html',1,'']]], + ['ushort_5f',['ushort_',['../structboost_1_1hana_1_1integral__constant.html#a69a1bcadc259af364eb87d634c76c12e',1,'boost::hana::integral_constant']]], + ['ushort_5fc',['ushort_c',['../structboost_1_1hana_1_1integral__constant.html#ace7c983d1ffed3a1ff10b5287d2c6ddd',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_15.html b/boost_1_63_0/libs/hana/doc/html/search/all_15.html new file mode 100644 index 0000000..1331c0d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_15.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_15.js b/boost_1_63_0/libs/hana/doc/html/search/all_15.js new file mode 100644 index 0000000..bb91bff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_15.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['value',['value',['../structboost_1_1hana_1_1optional.html#acdcf71b43d4e27d5efbf0ad875d0be58',1,'boost::hana::optional::value()'],['../group__group-Constant.html#ga1687520692a6b0c49e3a69de2980f388',1,'boost::hana::value()']]], + ['value_2ehpp',['value.hpp',['../fwd_2value_8hpp.html',1,'']]], + ['value_2ehpp',['value.hpp',['../value_8hpp.html',1,'']]], + ['value_5fof',['value_of',['../group__group-Constant.html#gab46a092deeb205f2c92c335d4312a991',1,'boost::hana']]], + ['value_5for',['value_or',['../structboost_1_1hana_1_1optional.html#a1f511267d94c178e4ef955da60f0888d',1,'boost::hana::optional']]], + ['values',['values',['../structboost_1_1hana_1_1map.html#a2e016a68e3ec6eb25868fadb7ce80132',1,'boost::hana::map']]], + ['vector',['vector',['../structboost_1_1mpl_1_1vector.html',1,'boost::mpl']]], + ['vector',['vector',['../structboost_1_1fusion_1_1vector.html',1,'boost::fusion']]], + ['vector_2ehpp',['vector.hpp',['../boost_2mpl_2vector_8hpp.html',1,'']]], + ['vector_2ehpp',['vector.hpp',['../boost_2fusion_2vector_8hpp.html',1,'']]], + ['vector_2ehpp',['vector.hpp',['../std_2vector_8hpp.html',1,'']]], + ['version_2ehpp',['version.hpp',['../version_8hpp.html',1,'']]], + ['void_5ft_2ehpp',['void_t.hpp',['../void__t_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_16.html b/boost_1_63_0/libs/hana/doc/html/search/all_16.html new file mode 100644 index 0000000..bec9d5d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_16.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_16.js b/boost_1_63_0/libs/hana/doc/html/search/all_16.js new file mode 100644 index 0000000..b453e90 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_16.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['when',['when',['../structboost_1_1hana_1_1when.html',1,'boost::hana']]], + ['when_2ehpp',['when.hpp',['../core_2when_8hpp.html',1,'']]], + ['when_2ehpp',['when.hpp',['../fwd_2core_2when_8hpp.html',1,'']]], + ['when_5fvalid',['when_valid',['../group__group-core.html#ga0f5d717bbf6646619bb6219b104384dc',1,'boost::hana']]], + ['which',['which',['../structboost_1_1hana_1_1constant__detail_1_1which.html',1,'boost::hana::constant_detail']]], + ['while_2ehpp',['while.hpp',['../while_8hpp.html',1,'']]], + ['while_2ehpp',['while.hpp',['../fwd_2while_8hpp.html',1,'']]], + ['while_5f',['while_',['../group__group-Logical.html#ga08a767b86c330cac67daa891406d2730',1,'boost::hana']]], + ['wrong',['wrong',['../structboost_1_1hana_1_1detail_1_1wrong.html',1,'boost::hana::detail']]], + ['wrong_2ehpp',['wrong.hpp',['../wrong_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_17.html b/boost_1_63_0/libs/hana/doc/html/search/all_17.html new file mode 100644 index 0000000..6d010fd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_17.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_17.js b/boost_1_63_0/libs/hana/doc/html/search/all_17.js new file mode 100644 index 0000000..a3a0575 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_17.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['zero',['zero',['../group__group-Monoid.html#gad459ac17b6bab8ead1cae7de0032f3c6',1,'boost::hana']]], + ['zero_2ehpp',['zero.hpp',['../fwd_2zero_8hpp.html',1,'']]], + ['zero_2ehpp',['zero.hpp',['../zero_8hpp.html',1,'']]], + ['zip',['zip',['../group__group-Sequence.html#gaa5a378d4e71a91e0d6cd3959d9818e8a',1,'boost::hana']]], + ['zip_2ehpp',['zip.hpp',['../zip_8hpp.html',1,'']]], + ['zip_2ehpp',['zip.hpp',['../fwd_2zip_8hpp.html',1,'']]], + ['zip_5fshortest',['zip_shortest',['../group__group-Sequence.html#gade78593b3ff51fc5479e1da97142fef5',1,'boost::hana']]], + ['zip_5fshortest_2ehpp',['zip_shortest.hpp',['../zip__shortest_8hpp.html',1,'']]], + ['zip_5fshortest_2ehpp',['zip_shortest.hpp',['../fwd_2zip__shortest_8hpp.html',1,'']]], + ['zip_5fshortest_5fwith',['zip_shortest_with',['../group__group-Sequence.html#gae7a51104a77db79a0407d7d67b034667',1,'boost::hana']]], + ['zip_5fshortest_5fwith_2ehpp',['zip_shortest_with.hpp',['../zip__shortest__with_8hpp.html',1,'']]], + ['zip_5fshortest_5fwith_2ehpp',['zip_shortest_with.hpp',['../fwd_2zip__shortest__with_8hpp.html',1,'']]], + ['zip_5fwith',['zip_with',['../group__group-Sequence.html#ga6a4bf8549ce69b5b5b7377aec225a0e3',1,'boost::hana']]], + ['zip_5fwith_2ehpp',['zip_with.hpp',['../zip__with_8hpp.html',1,'']]], + ['zip_5fwith_2ehpp',['zip_with.hpp',['../fwd_2zip__with_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_2.html b/boost_1_63_0/libs/hana/doc/html/search/all_2.html new file mode 100644 index 0000000..d15ac65 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_2.js b/boost_1_63_0/libs/hana/doc/html/search/all_2.js new file mode 100644 index 0000000..6658f1b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_2.js @@ -0,0 +1,62 @@ +var searchData= +[ + ['back',['back',['../group__group-Iterable.html#gab3f4d0035345a453284e46303862d463',1,'boost::hana']]], + ['back_2ehpp',['back.hpp',['../back_8hpp.html',1,'']]], + ['back_2ehpp',['back.hpp',['../fwd_2back_8hpp.html',1,'']]], + ['basic_5ftuple',['basic_tuple',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_2ehpp',['basic_tuple.hpp',['../basic__tuple_8hpp.html',1,'']]], + ['basic_5ftuple_2ehpp',['basic_tuple.hpp',['../fwd_2basic__tuple_8hpp.html',1,'']]], + ['basic_5ftuple_3c_20f_2c_20args_2e_2e_2e_20_3e',['basic_tuple< F, Args... >',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_3c_20x_20_3e',['basic_tuple< X >',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_3c_20xn_2e_2e_2e_20_3e',['basic_tuple< Xn... >',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_5ftag',['basic_tuple_tag',['../structboost_1_1hana_1_1basic__tuple__tag.html',1,'boost::hana']]], + ['basic_5ftype',['basic_type',['../structboost_1_1hana_1_1basic__type.html',1,'boost::hana']]], + ['bool_2ehpp',['bool.hpp',['../bool_8hpp.html',1,'']]], + ['bool_2ehpp',['bool.hpp',['../fwd_2bool_8hpp.html',1,'']]], + ['bool_5f',['bool_',['../structboost_1_1hana_1_1integral__constant.html#adeaf00ee03ae0daf97d60d5258bd3703',1,'boost::hana::integral_constant']]], + ['bool_5fc',['bool_c',['../structboost_1_1hana_1_1integral__constant.html#aa301b96de91d665fdc846bde4659b0d3',1,'boost::hana::integral_constant']]], + ['boost',['boost',['../namespaceboost.html',1,'']]], + ['boost_2ehpp',['boost.hpp',['../boost_8hpp.html',1,'']]], + ['boost_5fhana_5fadapt_5fadt',['BOOST_HANA_ADAPT_ADT',['../group__group-Struct.html#ga141761435a7826b3cbe646b4f59eaf0a',1,'boost::hana']]], + ['boost_5fhana_5fadapt_5fstruct',['BOOST_HANA_ADAPT_STRUCT',['../group__group-Struct.html#gaba3b4d2cf342bfca773e90fc20bfae91',1,'boost::hana']]], + ['boost_5fhana_5fassert',['BOOST_HANA_ASSERT',['../group__group-assertions.html#ga90c1df2cb8eb67e8e0c822eac180b7bc',1,'assert.hpp']]], + ['boost_5fhana_5fassert_5fmsg',['BOOST_HANA_ASSERT_MSG',['../group__group-assertions.html#gaa7690973ea7b2ba5b6a72a6293fce873',1,'assert.hpp']]], + ['boost_5fhana_5fcheck',['BOOST_HANA_CHECK',['../group__group-assertions.html#ga512de1fcd31e8a34931ffb2c891afd36',1,'assert.hpp']]], + ['boost_5fhana_5fcheck_5fmsg',['BOOST_HANA_CHECK_MSG',['../group__group-assertions.html#ga7af67ae500a237fe350f1bfceb4a5afa',1,'assert.hpp']]], + ['boost_5fhana_5fconfig_5fdisable_5fassertions',['BOOST_HANA_CONFIG_DISABLE_ASSERTIONS',['../group__group-config.html#ga08dcc32bef198420e646244e851d1995',1,'config.hpp']]], + ['boost_5fhana_5fconfig_5fdisable_5fconcept_5fchecks',['BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS',['../group__group-config.html#gad2b44f7cf8a6ba1002437a1a89e62acd',1,'config.hpp']]], + ['boost_5fhana_5fconfig_5fenable_5fdebug_5fmode',['BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE',['../group__group-config.html#ga95603295cd6cc840c0dbc50b75e02ee9',1,'config.hpp']]], + ['boost_5fhana_5fconfig_5fenable_5fstring_5fudl',['BOOST_HANA_CONFIG_ENABLE_STRING_UDL',['../group__group-config.html#ga81de60f5bea16e6ff4a38c94e3022f10',1,'config.hpp']]], + ['boost_5fhana_5fconfig_5fversion',['BOOST_HANA_CONFIG_VERSION',['../version_8hpp.html#a36988ad8e4f82e0bfb7ff8e4808143a7',1,'version.hpp']]], + ['boost_5fhana_5fconstant_5fassert',['BOOST_HANA_CONSTANT_ASSERT',['../group__group-assertions.html#ga2626fa0c92b308cee62ac423ae2dba41',1,'assert.hpp']]], + ['boost_5fhana_5fconstant_5fassert_5fmsg',['BOOST_HANA_CONSTANT_ASSERT_MSG',['../group__group-assertions.html#ga9961218055c571b279bb6e07befbba4d',1,'assert.hpp']]], + ['boost_5fhana_5fconstant_5fcheck',['BOOST_HANA_CONSTANT_CHECK',['../group__group-assertions.html#ga4bf9e0c46c44e21fbe5c5fbb3ace8356',1,'assert.hpp']]], + ['boost_5fhana_5fconstant_5fcheck_5fmsg',['BOOST_HANA_CONSTANT_CHECK_MSG',['../group__group-assertions.html#ga41a7490fd94005e6b6a3b6a900207063',1,'assert.hpp']]], + ['boost_5fhana_5fconstexpr_5fassert',['BOOST_HANA_CONSTEXPR_ASSERT',['../group__group-assertions.html#ga046d7ee458de8da63812fe2f059c0a4d',1,'assert.hpp']]], + ['boost_5fhana_5fconstexpr_5fassert_5fmsg',['BOOST_HANA_CONSTEXPR_ASSERT_MSG',['../group__group-assertions.html#ga0a1327b758604bf330efeba450dd4a95',1,'assert.hpp']]], + ['boost_5fhana_5fconstexpr_5fcheck',['BOOST_HANA_CONSTEXPR_CHECK',['../group__group-assertions.html#ga5150cd7df438a22056a39529d21562d2',1,'assert.hpp']]], + ['boost_5fhana_5fconstexpr_5fcheck_5fmsg',['BOOST_HANA_CONSTEXPR_CHECK_MSG',['../group__group-assertions.html#gaa76ba567944adfec0dce60cc20be35bc',1,'assert.hpp']]], + ['boost_5fhana_5fdefine_5fstruct',['BOOST_HANA_DEFINE_STRUCT',['../group__group-Struct.html#gab9efb238a82207d91643994c5295cf8c',1,'boost::hana']]], + ['boost_5fhana_5fdispatch_5fif',['BOOST_HANA_DISPATCH_IF',['../group__group-details.html#ga5de7a0132a80e37c73d544ece1e6dd4e',1,'dispatch_if.hpp']]], + ['boost_5fhana_5fmajor_5fversion',['BOOST_HANA_MAJOR_VERSION',['../group__group-config.html#gac1f8e58978bf4fe02f68ca4646124aee',1,'version.hpp']]], + ['boost_5fhana_5fminor_5fversion',['BOOST_HANA_MINOR_VERSION',['../group__group-config.html#gafd6a702442b280083efe2690da5621bd',1,'version.hpp']]], + ['boost_5fhana_5fpatch_5fversion',['BOOST_HANA_PATCH_VERSION',['../group__group-config.html#ga50940f9267eacd0da0d4d8ccbfac8817',1,'version.hpp']]], + ['boost_5fhana_5fpp_5fback',['BOOST_HANA_PP_BACK',['../group__group-details.html#ga1be7a4bd805ffff2882fe54995dc41bd',1,'preprocessor.hpp']]], + ['boost_5fhana_5fpp_5fconcat',['BOOST_HANA_PP_CONCAT',['../group__group-details.html#ga444e73a2fe13732b802a770b55b4a99c',1,'preprocessor.hpp']]], + ['boost_5fhana_5fpp_5fdrop_5fback',['BOOST_HANA_PP_DROP_BACK',['../group__group-details.html#gadcf0cf5cb650681b8cac90d94ce52d44',1,'preprocessor.hpp']]], + ['boost_5fhana_5fpp_5fdrop_5ffront',['BOOST_HANA_PP_DROP_FRONT',['../group__group-details.html#ga4bd17b3ef62e1e275dfe485923fdf666',1,'preprocessor.hpp']]], + ['boost_5fhana_5fpp_5ffront',['BOOST_HANA_PP_FRONT',['../group__group-details.html#gaf8319341c937c45415ae0eae8d656723',1,'preprocessor.hpp']]], + ['boost_5fhana_5fpp_5fnarg',['BOOST_HANA_PP_NARG',['../group__group-details.html#ga62fe3327023c37706c827cc82624998b',1,'preprocessor.hpp']]], + ['boost_5fhana_5fpp_5fstringize',['BOOST_HANA_PP_STRINGIZE',['../group__group-details.html#ga6b4ca5cb5cefc6cf77455d7d7ef6f381',1,'preprocessor.hpp']]], + ['boost_5fhana_5fruntime_5fassert',['BOOST_HANA_RUNTIME_ASSERT',['../group__group-assertions.html#gae4eb14a3b31e44f433b080d9bc2d14fd',1,'assert.hpp']]], + ['boost_5fhana_5fruntime_5fassert_5fmsg',['BOOST_HANA_RUNTIME_ASSERT_MSG',['../group__group-assertions.html#ga2e25bbdeefb0e5fbf45ffa9227ddb8d2',1,'assert.hpp']]], + ['boost_5fhana_5fruntime_5fcheck',['BOOST_HANA_RUNTIME_CHECK',['../group__group-assertions.html#ga29b2b21ffa5513e5b706c50ffee980af',1,'assert.hpp']]], + ['boost_5fhana_5fruntime_5fcheck_5fmsg',['BOOST_HANA_RUNTIME_CHECK_MSG',['../group__group-assertions.html#ga1cd7a2be93e2bf4e9a18c7043276373e',1,'assert.hpp']]], + ['boost_5fhana_5fstring',['BOOST_HANA_STRING',['../structboost_1_1hana_1_1string.html#a7f15faa77e126e1c2b08a2224ceefb84',1,'boost::hana::string']]], + ['boost_5fhana_5fversion',['BOOST_HANA_VERSION',['../group__group-config.html#ga2fb384037c12a706e1a1cac053065648',1,'version.hpp']]], + ['bug_20list',['Bug List',['../bug.html',1,'']]], + ['boost_2efusion_20adapters',['Boost.Fusion adapters',['../group__group-ext-fusion.html',1,'']]], + ['boost_2empl_20adapters',['Boost.MPL adapters',['../group__group-ext-mpl.html',1,'']]], + ['hana',['hana',['../namespaceboost_1_1hana.html',1,'boost']]], + ['literals',['literals',['../namespaceboost_1_1hana_1_1literals.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_3.html b/boost_1_63_0/libs/hana/doc/html/search/all_3.html new file mode 100644 index 0000000..9f526c6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_3.js b/boost_1_63_0/libs/hana/doc/html/search/all_3.js new file mode 100644 index 0000000..87e198e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_3.js @@ -0,0 +1,63 @@ +var searchData= +[ + ['c_5fstr',['c_str',['../structboost_1_1hana_1_1string.html#af21839d798df54bcbe3d552740f3b16b',1,'boost::hana::string']]], + ['canonical_5fconstant_2ehpp',['canonical_constant.hpp',['../canonical__constant_8hpp.html',1,'']]], + ['canonicalconstant',['CanonicalConstant',['../structboost_1_1hana_1_1detail_1_1CanonicalConstant.html',1,'boost::hana::detail']]], + ['capture',['capture',['../group__group-functional.html#ga41ada6b336e9d5bcb101ff0c737acbd0',1,'boost::hana']]], + ['capture_2ehpp',['capture.hpp',['../capture_8hpp.html',1,'']]], + ['cartesian_5fproduct',['cartesian_product',['../group__group-Sequence.html#ga66599f0e1f0749daba759dc661946bdc',1,'boost::hana']]], + ['cartesian_5fproduct_2ehpp',['cartesian_product.hpp',['../cartesian__product_8hpp.html',1,'']]], + ['cartesian_5fproduct_2ehpp',['cartesian_product.hpp',['../fwd_2cartesian__product_8hpp.html',1,'']]], + ['chain',['chain',['../group__group-Monad.html#ga05fdc2f887cb9967357487a432ace98b',1,'boost::hana']]], + ['chain_2ehpp',['chain.hpp',['../chain_8hpp.html',1,'']]], + ['chain_2ehpp',['chain.hpp',['../fwd_2chain_8hpp.html',1,'']]], + ['char_5f',['char_',['../structboost_1_1hana_1_1integral__constant.html#a08598ceb1797047d8938049b0cad6ccc',1,'boost::hana::integral_constant']]], + ['char_5fc',['char_c',['../structboost_1_1hana_1_1integral__constant.html#aca22320011be96155645b79fe53dd8c2',1,'boost::hana::integral_constant']]], + ['common',['common',['../structboost_1_1hana_1_1common.html',1,'boost::hana']]], + ['common_2ehpp',['common.hpp',['../core_2common_8hpp.html',1,'']]], + ['common_2ehpp',['common.hpp',['../ext_2boost_2fusion_2detail_2common_8hpp.html',1,'']]], + ['common_2ehpp',['common.hpp',['../fwd_2core_2common_8hpp.html',1,'']]], + ['common_5ft',['common_t',['../group__group-core.html#ga4da46c97755c0f430b063711b66ca05b',1,'boost::hana']]], + ['comonad_2ehpp',['comonad.hpp',['../concept_2comonad_8hpp.html',1,'']]], + ['comonad_2ehpp',['comonad.hpp',['../fwd_2concept_2comonad_8hpp.html',1,'']]], + ['comparable_2ehpp',['comparable.hpp',['../detail_2operators_2comparable_8hpp.html',1,'']]], + ['comparable_2ehpp',['comparable.hpp',['../fwd_2concept_2comparable_8hpp.html',1,'']]], + ['comparable_2ehpp',['comparable.hpp',['../concept_2comparable_8hpp.html',1,'']]], + ['comparing',['comparing',['../group__group-Comparable.html#ga9c2ffe2e51780e57a38d9e7e31b87cdc',1,'boost::hana']]], + ['comparing_2ehpp',['comparing.hpp',['../comparing_8hpp.html',1,'']]], + ['comparing_2ehpp',['comparing.hpp',['../fwd_2comparing_8hpp.html',1,'']]], + ['compose',['compose',['../group__group-functional.html#ga3b16146e53efcdf9ecbb9a7b21f8cd0b',1,'boost::hana']]], + ['compose_2ehpp',['compose.hpp',['../compose_8hpp.html',1,'']]], + ['concat',['concat',['../group__group-MonadPlus.html#ga1946e96c3b4c178c7ae8703724c29c37',1,'boost::hana']]], + ['concat_2ehpp',['concat.hpp',['../concat_8hpp.html',1,'']]], + ['concat_2ehpp',['concat.hpp',['../fwd_2concat_8hpp.html',1,'']]], + ['concept_2ehpp',['concept.hpp',['../concept_8hpp.html',1,'']]], + ['concepts_2ehpp',['concepts.hpp',['../concepts_8hpp.html',1,'']]], + ['config_2ehpp',['config.hpp',['../config_8hpp.html',1,'']]], + ['constant_2ehpp',['constant.hpp',['../concept_2constant_8hpp.html',1,'']]], + ['constant_2ehpp',['constant.hpp',['../fwd_2concept_2constant_8hpp.html',1,'']]], + ['contains',['contains',['../group__group-Searchable.html#ga38e7748956cbc9f3d9bb035ac8577906',1,'boost::hana']]], + ['contains_2ehpp',['contains.hpp',['../contains_8hpp.html',1,'']]], + ['contains_2ehpp',['contains.hpp',['../fwd_2contains_8hpp.html',1,'']]], + ['core_2ehpp',['core.hpp',['../fwd_2core_8hpp.html',1,'']]], + ['core_2ehpp',['core.hpp',['../core_8hpp.html',1,'']]], + ['count',['count',['../group__group-Foldable.html#ga3159cfa41be18a396926741b0a3fdefd',1,'boost::hana']]], + ['count_2ehpp',['count.hpp',['../count_8hpp.html',1,'']]], + ['count_2ehpp',['count.hpp',['../fwd_2count_8hpp.html',1,'']]], + ['count_5fif',['count_if',['../group__group-Foldable.html#ga39d71be65d5b98e7d035a3e5c607e1b4',1,'boost::hana']]], + ['count_5fif_2ehpp',['count_if.hpp',['../fwd_2count__if_8hpp.html',1,'']]], + ['count_5fif_2ehpp',['count_if.hpp',['../count__if_8hpp.html',1,'']]], + ['create',['create',['../structboost_1_1hana_1_1detail_1_1create.html',1,'boost::hana::detail']]], + ['create_2ehpp',['create.hpp',['../create_8hpp.html',1,'']]], + ['curry',['curry',['../group__group-functional.html#ga49ea872ade5ac8f6c10052c495302e89',1,'boost::hana']]], + ['curry_2ehpp',['curry.hpp',['../curry_8hpp.html',1,'']]], + ['cycle',['cycle',['../group__group-MonadPlus.html#gaaf46c168f721da9effcc7336a997f5d6',1,'boost::hana']]], + ['cycle_2ehpp',['cycle.hpp',['../cycle_8hpp.html',1,'']]], + ['cycle_2ehpp',['cycle.hpp',['../fwd_2cycle_8hpp.html',1,'']]], + ['comonad',['Comonad',['../group__group-Comonad.html',1,'']]], + ['comparable',['Comparable',['../group__group-Comparable.html',1,'']]], + ['concepts',['Concepts',['../group__group-concepts.html',1,'']]], + ['configuration_20options',['Configuration options',['../group__group-config.html',1,'']]], + ['constant',['Constant',['../group__group-Constant.html',1,'']]], + ['core',['Core',['../group__group-core.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_4.html b/boost_1_63_0/libs/hana/doc/html/search/all_4.html new file mode 100644 index 0000000..7b814aa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_4.js b/boost_1_63_0/libs/hana/doc/html/search/all_4.js new file mode 100644 index 0000000..d58089f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_4.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['decay',['decay',['../structboost_1_1hana_1_1detail_1_1decay.html',1,'boost::hana::detail']]], + ['decay_2ehpp',['decay.hpp',['../decay_8hpp.html',1,'']]], + ['decltype_5f',['decltype_',['../structboost_1_1hana_1_1type.html#a7d68ff2275cbb295556d83598f04e39a',1,'boost::hana::type']]], + ['default_2ehpp',['default.hpp',['../core_2default_8hpp.html',1,'']]], + ['default_2ehpp',['default.hpp',['../fwd_2core_2default_8hpp.html',1,'']]], + ['default_5f',['default_',['../structboost_1_1hana_1_1default__.html',1,'boost::hana']]], + ['define_5fstruct_2ehpp',['define_struct.hpp',['../fwd_2define__struct_8hpp.html',1,'']]], + ['define_5fstruct_2ehpp',['define_struct.hpp',['../define__struct_8hpp.html',1,'']]], + ['demux',['demux',['../group__group-functional.html#ga3a8316acd5efa22c3d1861b62d5df3c2',1,'boost::hana']]], + ['demux_2ehpp',['demux.hpp',['../demux_8hpp.html',1,'']]], + ['dependent_5fon_2ehpp',['dependent_on.hpp',['../dependent__on_8hpp.html',1,'']]], + ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]], + ['deque',['deque',['../structboost_1_1fusion_1_1deque.html',1,'boost::fusion']]], + ['deque_2ehpp',['deque.hpp',['../deque_8hpp.html',1,'']]], + ['difference',['difference',['../structboost_1_1hana_1_1set.html#a718ddfe86437adbbca1e1a5db651d139',1,'boost::hana::set']]], + ['difference_2ehpp',['difference.hpp',['../difference_8hpp.html',1,'']]], + ['difference_2ehpp',['difference.hpp',['../fwd_2difference_8hpp.html',1,'']]], + ['dispatch_2ehpp',['dispatch.hpp',['../dispatch_8hpp.html',1,'']]], + ['dispatch_5fif_2ehpp',['dispatch_if.hpp',['../dispatch__if_8hpp.html',1,'']]], + ['div',['div',['../group__group-EuclideanRing.html#ga4225a7988ce98903228913dde53762df',1,'boost::hana']]], + ['div_2ehpp',['div.hpp',['../fwd_2div_8hpp.html',1,'']]], + ['div_2ehpp',['div.hpp',['../div_8hpp.html',1,'']]], + ['drop_5fback',['drop_back',['../group__group-Sequence.html#gac10231310abc86b056585ea0d0e96ef7',1,'boost::hana']]], + ['drop_5fback_2ehpp',['drop_back.hpp',['../drop__back_8hpp.html',1,'']]], + ['drop_5fback_2ehpp',['drop_back.hpp',['../fwd_2drop__back_8hpp.html',1,'']]], + ['drop_5ffront',['drop_front',['../group__group-Iterable.html#gad23ce0a4906e2bb0a52f38837b134757',1,'boost::hana']]], + ['drop_5ffront_2ehpp',['drop_front.hpp',['../fwd_2drop__front_8hpp.html',1,'']]], + ['drop_5ffront_2ehpp',['drop_front.hpp',['../drop__front_8hpp.html',1,'']]], + ['drop_5ffront_5fexactly',['drop_front_exactly',['../group__group-Iterable.html#ga4dbc6a82f03ca35b7ac418ca30889cc4',1,'boost::hana']]], + ['drop_5ffront_5fexactly_2ehpp',['drop_front_exactly.hpp',['../drop__front__exactly_8hpp.html',1,'']]], + ['drop_5ffront_5fexactly_2ehpp',['drop_front_exactly.hpp',['../fwd_2drop__front__exactly_8hpp.html',1,'']]], + ['drop_5finto_2ehpp',['drop_into.hpp',['../drop__into_8hpp.html',1,'']]], + ['drop_5fwhile',['drop_while',['../group__group-Iterable.html#ga9f1d02c74a6bdc1db260e0d6a8f1ee56',1,'boost::hana']]], + ['drop_5fwhile_2ehpp',['drop_while.hpp',['../fwd_2drop__while_8hpp.html',1,'']]], + ['drop_5fwhile_2ehpp',['drop_while.hpp',['../drop__while_8hpp.html',1,'']]], + ['duplicate',['duplicate',['../group__group-Comonad.html#ga181751278bd19a4bfc3c08bd7ddef399',1,'boost::hana']]], + ['duplicate_2ehpp',['duplicate.hpp',['../fwd_2duplicate_8hpp.html',1,'']]], + ['duplicate_2ehpp',['duplicate.hpp',['../duplicate_8hpp.html',1,'']]], + ['data_20types',['Data types',['../group__group-datatypes.html',1,'']]], + ['details',['Details',['../group__group-details.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_5.html b/boost_1_63_0/libs/hana/doc/html/search/all_5.html new file mode 100644 index 0000000..d8de556 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_5.js b/boost_1_63_0/libs/hana/doc/html/search/all_5.js new file mode 100644 index 0000000..1124ba1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_5.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['embedding',['embedding',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_20is_5fembedded_3c_20c_3a_3avalue_5ftype_2c_20t_20_3e_3a_3avalue_20_3e',['embedding< is_embedded< C::value_type, T >::value >',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_20is_5fembedded_3c_20from_3a_3avalue_5ftype_2c_20to_20_3e_3a_3avalue_20_3e',['embedding< is_embedded< From::value_type, To >::value >',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_20sequence_3c_20f_20_3e_3a_3avalue_20_3e',['embedding< Sequence< F >::value >',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_3e',['embedding<>',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['empty',['empty',['../group__group-MonadPlus.html#gaa6be1e83ad72b9d69b43b4bada0f3a75',1,'boost::hana']]], + ['empty_2ehpp',['empty.hpp',['../empty_8hpp.html',1,'']]], + ['empty_2ehpp',['empty.hpp',['../fwd_2empty_8hpp.html',1,'']]], + ['equal',['equal',['../group__group-Comparable.html#gacaf1ebea6b3ab96ac9dcb82f0e64e547',1,'boost::hana']]], + ['equal_2ehpp',['equal.hpp',['../equal_8hpp.html',1,'']]], + ['equal_2ehpp',['equal.hpp',['../fwd_2equal_8hpp.html',1,'']]], + ['erase_5fkey',['erase_key',['../structboost_1_1hana_1_1map.html#af856f7bf77f69cdf1b8fd4e566eaef9b',1,'boost::hana::map::erase_key()'],['../structboost_1_1hana_1_1set.html#af856f7bf77f69cdf1b8fd4e566eaef9b',1,'boost::hana::set::erase_key()']]], + ['erase_5fkey_2ehpp',['erase_key.hpp',['../erase__key_8hpp.html',1,'']]], + ['erase_5fkey_2ehpp',['erase_key.hpp',['../fwd_2erase__key_8hpp.html',1,'']]], + ['euclidean_5fring_2ehpp',['euclidean_ring.hpp',['../concept_2euclidean__ring_8hpp.html',1,'']]], + ['euclidean_5fring_2ehpp',['euclidean_ring.hpp',['../fwd_2concept_2euclidean__ring_8hpp.html',1,'']]], + ['eval',['eval',['../structboost_1_1hana_1_1lazy.html#aae2998c08f1f80ed52a6acf57c4eec6c',1,'boost::hana::lazy']]], + ['eval_2ehpp',['eval.hpp',['../eval_8hpp.html',1,'']]], + ['eval_2ehpp',['eval.hpp',['../fwd_2eval_8hpp.html',1,'']]], + ['eval_5fif',['eval_if',['../group__group-Logical.html#gab64636f84de983575aac0208f5fa840c',1,'boost::hana']]], + ['eval_5fif_2ehpp',['eval_if.hpp',['../eval__if_8hpp.html',1,'']]], + ['eval_5fif_2ehpp',['eval_if.hpp',['../fwd_2eval__if_8hpp.html',1,'']]], + ['extend',['extend',['../group__group-Comonad.html#gaf44692351fd9fe4e76815dfef6ff4478',1,'boost::hana']]], + ['extend_2ehpp',['extend.hpp',['../fwd_2extend_8hpp.html',1,'']]], + ['extend_2ehpp',['extend.hpp',['../extend_8hpp.html',1,'']]], + ['extract',['extract',['../group__group-Comonad.html#ga307479a91a21b7ab06a2bc746b003dcc',1,'boost::hana']]], + ['extract_2ehpp',['extract.hpp',['../fwd_2extract_8hpp.html',1,'']]], + ['extract_2ehpp',['extract.hpp',['../extract_8hpp.html',1,'']]], + ['euclidean_20ring',['Euclidean Ring',['../group__group-EuclideanRing.html',1,'']]], + ['experimental_20features',['Experimental features',['../group__group-experimental.html',1,'']]], + ['external_20adapters',['External adapters',['../group__group-ext.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_6.html b/boost_1_63_0/libs/hana/doc/html/search/all_6.html new file mode 100644 index 0000000..9ba0cc2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_6.js b/boost_1_63_0/libs/hana/doc/html/search/all_6.js new file mode 100644 index 0000000..455758f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_6.js @@ -0,0 +1,60 @@ +var searchData= +[ + ['false_5f',['false_',['../structboost_1_1hana_1_1integral__constant.html#a84a8b7c3f824b4f0421d6a834601a0c4',1,'boost::hana::integral_constant']]], + ['false_5fc',['false_c',['../structboost_1_1hana_1_1integral__constant.html#aec1a5deaa7bcdf7c07c2da4af8959454',1,'boost::hana::integral_constant']]], + ['fast_5fand_2ehpp',['fast_and.hpp',['../fast__and_8hpp.html',1,'']]], + ['fill',['fill',['../group__group-Functor.html#ga2ce68d315f981ef35751c4dc25ad5642',1,'boost::hana']]], + ['fill_2ehpp',['fill.hpp',['../fill_8hpp.html',1,'']]], + ['fill_2ehpp',['fill.hpp',['../fwd_2fill_8hpp.html',1,'']]], + ['filter',['filter',['../group__group-MonadPlus.html#ga65cc6d9f522fb9e8e3b28d80ee5c822a',1,'boost::hana']]], + ['filter_2ehpp',['filter.hpp',['../filter_8hpp.html',1,'']]], + ['filter_2ehpp',['filter.hpp',['../fwd_2filter_8hpp.html',1,'']]], + ['find',['find',['../group__group-Searchable.html#ga6b6cdd69942b0fe3bf5254247f9c861e',1,'boost::hana']]], + ['find_2ehpp',['find.hpp',['../find_8hpp.html',1,'']]], + ['find_2ehpp',['find.hpp',['../fwd_2find_8hpp.html',1,'']]], + ['find_5fif',['find_if',['../group__group-Searchable.html#ga7f99b80672aa80a7eb8b223955ce546f',1,'boost::hana']]], + ['find_5fif_2ehpp',['find_if.hpp',['../find__if_8hpp.html',1,'']]], + ['find_5fif_2ehpp',['find_if.hpp',['../fwd_2find__if_8hpp.html',1,'']]], + ['first',['first',['../group__group-Product.html#ga34bbf4281de06dc3540441e8b2bd24f4',1,'boost::hana']]], + ['first_2ehpp',['first.hpp',['../first_8hpp.html',1,'']]], + ['first_2ehpp',['first.hpp',['../fwd_2first_8hpp.html',1,'']]], + ['first_5funsatisfied_5findex',['first_unsatisfied_index',['../structboost_1_1hana_1_1detail_1_1first__unsatisfied__index.html',1,'boost::hana::detail']]], + ['first_5funsatisfied_5findex_2ehpp',['first_unsatisfied_index.hpp',['../first__unsatisfied__index_8hpp.html',1,'']]], + ['fix',['fix',['../group__group-functional.html#ga1393f40da2e8da6e0c12fce953e56a6c',1,'boost::hana']]], + ['fix_2ehpp',['fix.hpp',['../fix_8hpp.html',1,'']]], + ['flat_2ehpp',['flat.hpp',['../flat_8hpp.html',1,'']]], + ['flatten',['flatten',['../group__group-Monad.html#gaa5fec6fb418de5da3ecb500fd6cc54dd',1,'boost::hana']]], + ['flatten_2ehpp',['flatten.hpp',['../fwd_2flatten_8hpp.html',1,'']]], + ['flatten_2ehpp',['flatten.hpp',['../flatten_8hpp.html',1,'']]], + ['flip',['flip',['../group__group-functional.html#ga004f884cdbb85c2efe3383c1db450094',1,'boost::hana']]], + ['flip_2ehpp',['flip.hpp',['../flip_8hpp.html',1,'']]], + ['fold',['fold',['../group__group-Foldable.html#gaa0fde17f3b947a0678a1c0c01232f2cc',1,'boost::hana']]], + ['fold_2ehpp',['fold.hpp',['../fold_8hpp.html',1,'']]], + ['fold_2ehpp',['fold.hpp',['../fwd_2fold_8hpp.html',1,'']]], + ['fold_5fleft',['fold_left',['../group__group-Foldable.html#ga38c6b3f6b1cbadb9b8432a05ff16b7d2',1,'boost::hana']]], + ['fold_5fleft_2ehpp',['fold_left.hpp',['../fold__left_8hpp.html',1,'']]], + ['fold_5fleft_2ehpp',['fold_left.hpp',['../fwd_2fold__left_8hpp.html',1,'']]], + ['fold_5fright',['fold_right',['../group__group-Foldable.html#ga77d43badebd59b046cf93598733649b4',1,'boost::hana']]], + ['fold_5fright_2ehpp',['fold_right.hpp',['../fwd_2fold__right_8hpp.html',1,'']]], + ['fold_5fright_2ehpp',['fold_right.hpp',['../fold__right_8hpp.html',1,'']]], + ['foldable_2ehpp',['foldable.hpp',['../concept_2foldable_8hpp.html',1,'']]], + ['foldable_2ehpp',['foldable.hpp',['../fwd_2concept_2foldable_8hpp.html',1,'']]], + ['foldl1_2ehpp',['foldl1.hpp',['../foldl1_8hpp.html',1,'']]], + ['foldr1_2ehpp',['foldr1.hpp',['../foldr1_8hpp.html',1,'']]], + ['for_5feach',['for_each',['../group__group-Foldable.html#ga2af382f7e644ce3707710bbad313e9c2',1,'boost::hana']]], + ['for_5feach_2ehpp',['for_each.hpp',['../fwd_2for__each_8hpp.html',1,'']]], + ['for_5feach_2ehpp',['for_each.hpp',['../for__each_8hpp.html',1,'']]], + ['front',['front',['../group__group-Iterable.html#ga8a67ea10e8082dbe6705e573fa978444',1,'boost::hana']]], + ['front_2ehpp',['front.hpp',['../front_8hpp.html',1,'']]], + ['front_2ehpp',['front.hpp',['../fwd_2front_8hpp.html',1,'']]], + ['functional_2ehpp',['functional.hpp',['../functional_8hpp.html',1,'']]], + ['functor_2ehpp',['functor.hpp',['../fwd_2concept_2functor_8hpp.html',1,'']]], + ['functor_2ehpp',['functor.hpp',['../concept_2functor_8hpp.html',1,'']]], + ['fuse',['fuse',['../group__group-Foldable.html#ga19fcf61d8d1179903952c0f564c538aa',1,'boost::hana']]], + ['fuse_2ehpp',['fuse.hpp',['../fwd_2fuse_8hpp.html',1,'']]], + ['fuse_2ehpp',['fuse.hpp',['../fuse_8hpp.html',1,'']]], + ['fusion_2ehpp',['fusion.hpp',['../fusion_8hpp.html',1,'']]], + ['foldable',['Foldable',['../group__group-Foldable.html',1,'']]], + ['functional',['Functional',['../group__group-functional.html',1,'']]], + ['functor',['Functor',['../group__group-Functor.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_7.html b/boost_1_63_0/libs/hana/doc/html/search/all_7.html new file mode 100644 index 0000000..9384ec9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_7.js b/boost_1_63_0/libs/hana/doc/html/search/all_7.js new file mode 100644 index 0000000..6298cc0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_7.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['greater',['greater',['../group__group-Orderable.html#gaf9a073eafebbe514fb19dff82318f198',1,'boost::hana']]], + ['greater_2ehpp',['greater.hpp',['../fwd_2greater_8hpp.html',1,'']]], + ['greater_2ehpp',['greater.hpp',['../greater_8hpp.html',1,'']]], + ['greater_5fequal',['greater_equal',['../group__group-Orderable.html#ga6023631e7d0a01e16dc3fa4221fbd703',1,'boost::hana']]], + ['greater_5fequal_2ehpp',['greater_equal.hpp',['../greater__equal_8hpp.html',1,'']]], + ['greater_5fequal_2ehpp',['greater_equal.hpp',['../fwd_2greater__equal_8hpp.html',1,'']]], + ['group',['group',['../group__group-Sequence.html#gacefca884b3580664b63238cf8ba33fd3',1,'boost::hana']]], + ['group',['Group',['../group__group-Group.html',1,'']]], + ['group_2ehpp',['group.hpp',['../concept_2group_8hpp.html',1,'']]], + ['group_2ehpp',['group.hpp',['../fwd_2concept_2group_8hpp.html',1,'']]], + ['group_2ehpp',['group.hpp',['../group_8hpp.html',1,'']]], + ['group_2ehpp',['group.hpp',['../fwd_2group_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_8.html b/boost_1_63_0/libs/hana/doc/html/search/all_8.html new file mode 100644 index 0000000..37566c5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_8.js b/boost_1_63_0/libs/hana/doc/html/search/all_8.js new file mode 100644 index 0000000..c520678 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_8.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['hashable',['Hashable',['../group__group-Hashable.html',1,'']]], + ['hana_2ehpp',['hana.hpp',['../hana_8hpp.html',1,'']]], + ['has_5fcommon',['has_common',['../structboost_1_1hana_1_1has__common.html',1,'boost::hana']]], + ['has_5fcommon_5fembedding',['has_common_embedding',['../group__group-details.html#gae85b604ae6c7a386f0fc3631c561091b',1,'boost::hana::detail']]], + ['has_5fcommon_5fembedding_2ehpp',['has_common_embedding.hpp',['../has__common__embedding_8hpp.html',1,'']]], + ['has_5fduplicates',['has_duplicates',['../structboost_1_1hana_1_1detail_1_1has__duplicates.html',1,'boost::hana::detail']]], + ['has_5fduplicates_2ehpp',['has_duplicates.hpp',['../has__duplicates_8hpp.html',1,'']]], + ['has_5fnontrivial_5fcommon_5fembedding',['has_nontrivial_common_embedding',['../group__group-details.html#ga9acac3c4609cff5f0957572744c61ec4',1,'boost::hana::detail']]], + ['hash',['hash',['../group__group-Hashable.html#ga6e906f44f47b210615491385e5c8a7b5',1,'boost::hana']]], + ['hash_2ehpp',['hash.hpp',['../fwd_2hash_8hpp.html',1,'']]], + ['hash_2ehpp',['hash.hpp',['../hash_8hpp.html',1,'']]], + ['hash_5ftable_2ehpp',['hash_table.hpp',['../hash__table_8hpp.html',1,'']]], + ['hashable_2ehpp',['hashable.hpp',['../fwd_2concept_2hashable_8hpp.html',1,'']]], + ['hashable_2ehpp',['hashable.hpp',['../concept_2hashable_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_9.html b/boost_1_63_0/libs/hana/doc/html/search/all_9.html new file mode 100644 index 0000000..c8c5102 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_9.js b/boost_1_63_0/libs/hana/doc/html/search/all_9.js new file mode 100644 index 0000000..708065d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_9.js @@ -0,0 +1,94 @@ +var searchData= +[ + ['iterable',['Iterable',['../group__group-Iterable.html',1,'']]], + ['id',['id',['../group__group-functional.html#gaef38cf34324c8edbd3597ae71811d00d',1,'boost::hana']]], + ['id_2ehpp',['id.hpp',['../id_8hpp.html',1,'']]], + ['if_2ehpp',['if.hpp',['../fwd_2if_8hpp.html',1,'']]], + ['if_2ehpp',['if.hpp',['../if_8hpp.html',1,'']]], + ['if_5f',['if_',['../group__group-Logical.html#gafd655d2222367131e7a63616e93dd080',1,'boost::hana']]], + ['in',['in',['../group__group-Searchable.html#ga0d9456ceda38b6ca664998e79d7c45b7',1,'boost::hana']]], + ['index_5fif',['index_if',['../structboost_1_1hana_1_1detail_1_1index__if.html',1,'boost::hana::detail']]], + ['index_5fif_2ehpp',['index_if.hpp',['../index__if_8hpp.html',1,'']]], + ['infix',['infix',['../group__group-functional.html#ga7bdafba6dc801f1d2d83731ad9714557',1,'boost::hana']]], + ['infix_2ehpp',['infix.hpp',['../infix_8hpp.html',1,'']]], + ['insert',['insert',['../structboost_1_1hana_1_1map.html#a5791e6dc0e27d8e3a113e4d94482550f',1,'boost::hana::map::insert()'],['../structboost_1_1hana_1_1set.html#a5791e6dc0e27d8e3a113e4d94482550f',1,'boost::hana::set::insert()'],['../group__group-Sequence.html#gae22a1a184b1b2dd550fa4fa619bed2e9',1,'boost::hana::insert()']]], + ['insert_2ehpp',['insert.hpp',['../fwd_2insert_8hpp.html',1,'']]], + ['insert_2ehpp',['insert.hpp',['../insert_8hpp.html',1,'']]], + ['insert_5frange',['insert_range',['../group__group-Sequence.html#ga3410ba833cf1ff1d929fcfda4df2eae1',1,'boost::hana']]], + ['insert_5frange_2ehpp',['insert_range.hpp',['../fwd_2insert__range_8hpp.html',1,'']]], + ['insert_5frange_2ehpp',['insert_range.hpp',['../insert__range_8hpp.html',1,'']]], + ['int_5f',['int_',['../structboost_1_1hana_1_1integral__constant.html#ab4891bf3aec7c15fa2d91c8fbacf4563',1,'boost::hana::integral_constant']]], + ['int_5fc',['int_c',['../structboost_1_1hana_1_1integral__constant.html#a8669179fa3d068951014b3be07a7d673',1,'boost::hana::integral_constant']]], + ['integer_5fsequence',['integer_sequence',['../structstd_1_1integer__sequence.html',1,'std']]], + ['integer_5fsequence_2ehpp',['integer_sequence.hpp',['../integer__sequence_8hpp.html',1,'']]], + ['integral',['integral',['../group__group-Metafunction.html#gaf7045fe6a627f88f5f646dad22d37aae',1,'boost::hana']]], + ['integral_5fc',['integral_c',['../structboost_1_1mpl_1_1integral__c.html',1,'boost::mpl']]], + ['integral_5fc',['integral_c',['../structboost_1_1hana_1_1integral__constant.html#a8e52c0f4a65a852dc88f97259a05ff17',1,'boost::hana::integral_constant']]], + ['integral_5fc_2ehpp',['integral_c.hpp',['../integral__c_8hpp.html',1,'']]], + ['integral_5fconstant',['integral_constant',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant',['integral_constant',['../structstd_1_1integral__constant.html',1,'std']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../concept_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../detail_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../fwd_2concept_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../ext_2std_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../fwd_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_3c_20bool_2c_20false_20_3e',['integral_constant< bool, false >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20hana_3a_3aintegralconstant_3c_20tag_20_3e_3a_3avalue_20_3e',['integral_constant< bool, hana::IntegralConstant< Tag >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20hana_3a_3asequence_3c_20tag_20_3e_3a_3avalue_20_3e',['integral_constant< bool, hana::Sequence< Tag >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20metafunction_3c_20tag_20_3e_3a_3avalue_20_3e',['integral_constant< bool, Metafunction< Tag >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20metafunction_3c_20typename_20tag_5fof_3c_20f_20_3e_3a_3atype_20_3e_3a_3avalue_20_3e',['integral_constant< bool, Metafunction< typename tag_of< F >::type >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20std_3a_3ais_5fsame_3c_20datatype_2c_20hana_3a_3atag_5fof_3c_20t_20_3e_3a_3atype_20_3e_3a_3avalue_20_3e',['integral_constant< bool, std::is_same< DataType, hana::tag_of< T >::type >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20accessors_5fimpl_3c_20tag_5fof_3c_20s_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< accessors_impl< tag_of< S >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20any_5fof_5fimpl_3c_20tag_5fof_3c_20s_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20find_5fif_5fimpl_3c_20tag_5fof_3c_20s_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< any_of_impl< tag_of< S >::type > >::value &&!is_default< find_if_impl< tag_of< S >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20ap_5fimpl_3c_20tag_5fof_3c_20a_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20lift_5fimpl_3c_20tag_5fof_3c_20a_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< ap_impl< tag_of< A >::type > >::value &&!is_default< lift_impl< tag_of< A >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20at_5fimpl_3c_20tag_5fof_3c_20it_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20drop_5ffront_5fimpl_3c_20tag_5fof_3c_20it_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20is_5fempty_5fimpl_3c_20tag_5fof_3c_20it_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< at_impl< tag_of< It >::type > >::value &&!is_default< drop_front_impl< tag_of< It >::type > >::value &&!is_default< is_empty_impl< tag_of< It >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20concat_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20empty_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< concat_impl< tag_of< M >::type > >::value &&!is_default< empty_impl< tag_of< M >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20equal_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_2c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< equal_impl< tag_of< T >::type, tag_of< T >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20eval_5fif_5fimpl_3c_20tag_5fof_3c_20l_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20not_5fimpl_3c_20tag_5fof_3c_20l_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20while_5fimpl_3c_20tag_5fof_3c_20l_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< eval_if_impl< tag_of< L >::type > >::value &&!is_default< not_impl< tag_of< L >::type > >::value &&!is_default< while_impl< tag_of< L >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20extract_5fimpl_3c_20tag_5fof_3c_20w_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_28_21is_5fdefault_3c_20duplicate_5fimpl_3c_20tag_5fof_3c_20w_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20extend_5fimpl_3c_20tag_5fof_3c_20w_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_29_20_3e',['integral_constant< bool,!is_default< extract_impl< tag_of< W >::type > >::value &&(!is_default< duplicate_impl< tag_of< W >::type > >::value||!is_default< extend_impl< tag_of< W >::type > >::value) >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20first_5fimpl_3c_20tag_5fof_3c_20p_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20second_5fimpl_3c_20tag_5fof_3c_20p_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< first_impl< tag_of< P >::type > >::value &&!is_default< second_impl< tag_of< P >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20flatten_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20chain_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< flatten_impl< tag_of< M >::type > >::value||!is_default< chain_impl< tag_of< M >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20fold_5fleft_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20unpack_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< fold_left_impl< tag_of< T >::type > >::value||!is_default< unpack_impl< tag_of< T >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20hash_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< hash_impl< tag_of< T >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20less_5fimpl_3c_20tag_5fof_3c_20ord_20_3e_3a_3atype_2c_20tag_5fof_3c_20ord_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< less_impl< tag_of< Ord >::type, tag_of< Ord >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20mod_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_2c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20div_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_2c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< mod_impl< tag_of< R >::type, tag_of< R >::type > >::value &&!is_default< div_impl< tag_of< R >::type, tag_of< R >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20negate_5fimpl_3c_20tag_5fof_3c_20g_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20minus_5fimpl_3c_20tag_5fof_3c_20g_20_3e_3a_3atype_2c_20tag_5fof_3c_20g_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< negate_impl< tag_of< G >::type > >::value||!is_default< minus_impl< tag_of< G >::type, tag_of< G >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20one_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20mult_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_2c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< one_impl< tag_of< R >::type > >::value &&!is_default< mult_impl< tag_of< R >::type, tag_of< R >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20transform_5fimpl_3c_20tag_5fof_3c_20f_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20adjust_5fif_5fimpl_3c_20tag_5fof_3c_20f_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< transform_impl< tag_of< F >::type > >::value||!is_default< adjust_if_impl< tag_of< F >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20value_5fimpl_3c_20tag_5fof_3c_20c_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< value_impl< tag_of< C >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20zero_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20plus_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_2c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< zero_impl< tag_of< M >::type > >::value &&!is_default< plus_impl< tag_of< M >::type, tag_of< M >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_5ftag',['integral_constant_tag',['../structboost_1_1hana_1_1integral__constant__tag.html',1,'boost::hana']]], + ['integralconstant',['IntegralConstant',['../structboost_1_1hana_1_1IntegralConstant.html',1,'boost::hana']]], + ['intersection',['intersection',['../structboost_1_1hana_1_1set.html#a3b3430482d4e88052e621f63a234f3eb',1,'boost::hana::set']]], + ['intersection_2ehpp',['intersection.hpp',['../fwd_2intersection_8hpp.html',1,'']]], + ['intersection_2ehpp',['intersection.hpp',['../intersection_8hpp.html',1,'']]], + ['intersperse',['intersperse',['../group__group-Sequence.html#gaa18061cd0f63cfaae89abf43ff92b79e',1,'boost::hana']]], + ['intersperse_2ehpp',['intersperse.hpp',['../intersperse_8hpp.html',1,'']]], + ['intersperse_2ehpp',['intersperse.hpp',['../fwd_2intersperse_8hpp.html',1,'']]], + ['intrinsics_2ehpp',['intrinsics.hpp',['../intrinsics_8hpp.html',1,'']]], + ['is_5fa',['is_a',['../group__group-core.html#ga38cf78e1e3e262f7f1c71ddd9ca70cd9',1,'boost::hana']]], + ['is_5fa_2ehpp',['is_a.hpp',['../core_2is__a_8hpp.html',1,'']]], + ['is_5fa_2ehpp',['is_a.hpp',['../fwd_2core_2is__a_8hpp.html',1,'']]], + ['is_5fan',['is_an',['../group__group-core.html#ga7fdbde52f5fe384a816c6f39ff272df9',1,'boost::hana']]], + ['is_5fconvertible',['is_convertible',['../structboost_1_1hana_1_1is__convertible.html',1,'boost::hana']]], + ['is_5fdefault',['is_default',['../structboost_1_1hana_1_1is__default.html',1,'boost::hana']]], + ['is_5fdisjoint',['is_disjoint',['../group__group-Searchable.html#ga3b8269d4f5cdd6dd549fae32280795a0',1,'boost::hana']]], + ['is_5fdisjoint_2ehpp',['is_disjoint.hpp',['../fwd_2is__disjoint_8hpp.html',1,'']]], + ['is_5fdisjoint_2ehpp',['is_disjoint.hpp',['../is__disjoint_8hpp.html',1,'']]], + ['is_5fembedded',['is_embedded',['../structboost_1_1hana_1_1is__embedded.html',1,'boost::hana']]], + ['is_5fempty',['is_empty',['../group__group-Iterable.html#ga2a05f564f8a7e4afa04fcbc07ad8f394',1,'boost::hana']]], + ['is_5fempty_2ehpp',['is_empty.hpp',['../is__empty_8hpp.html',1,'']]], + ['is_5fempty_2ehpp',['is_empty.hpp',['../fwd_2is__empty_8hpp.html',1,'']]], + ['is_5fjust',['is_just',['../structboost_1_1hana_1_1optional.html#a1047a69893a62cd36eb0d2934f85e0e7',1,'boost::hana::optional']]], + ['is_5fnothing',['is_nothing',['../structboost_1_1hana_1_1optional.html#a4eb266d123883c23853f7731a6c5953f',1,'boost::hana::optional']]], + ['is_5fsubset',['is_subset',['../group__group-Searchable.html#gadccfc79f1acdd8043d2baa16df16ec9f',1,'boost::hana']]], + ['is_5fsubset_2ehpp',['is_subset.hpp',['../fwd_2is__subset_8hpp.html',1,'']]], + ['is_5fsubset_2ehpp',['is_subset.hpp',['../is__subset_8hpp.html',1,'']]], + ['is_5fvalid',['is_valid',['../structboost_1_1hana_1_1type.html#a2d2e7e08e284f7e0bd1bd9c3ad0e0a2b',1,'boost::hana::type']]], + ['iterable_2ehpp',['iterable.hpp',['../fwd_2concept_2iterable_8hpp.html',1,'']]], + ['iterable_2ehpp',['iterable.hpp',['../detail_2operators_2iterable_8hpp.html',1,'']]], + ['iterable_2ehpp',['iterable.hpp',['../concept_2iterable_8hpp.html',1,'']]], + ['iterate',['iterate',['../group__group-functional.html#gad1b8669c022d8675d68e5974451073d1',1,'boost::hana']]], + ['iterate_2ehpp',['iterate.hpp',['../iterate_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_a.html b/boost_1_63_0/libs/hana/doc/html/search/all_a.html new file mode 100644 index 0000000..4cb31f0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_a.js b/boost_1_63_0/libs/hana/doc/html/search/all_a.js new file mode 100644 index 0000000..9e86b4a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['just',['just',['../structboost_1_1hana_1_1optional.html#a8ad818d6df7379b0adefa45d2ac844d0',1,'boost::hana::optional']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_b.html b/boost_1_63_0/libs/hana/doc/html/search/all_b.html new file mode 100644 index 0000000..d34a612 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_b.js b/boost_1_63_0/libs/hana/doc/html/search/all_b.js new file mode 100644 index 0000000..5ed265b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['keys',['keys',['../structboost_1_1hana_1_1map.html#a0f32260f859b2510dd16235b7bc011ac',1,'boost::hana::map::keys()'],['../group__group-Struct.html#gaf8c7199742581e6e66c8397def68e2d3',1,'boost::hana::keys()']]], + ['keys_2ehpp',['keys.hpp',['../fwd_2keys_8hpp.html',1,'']]], + ['keys_2ehpp',['keys.hpp',['../keys_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_c.html b/boost_1_63_0/libs/hana/doc/html/search/all_c.html new file mode 100644 index 0000000..c1ae2ca --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_c.js b/boost_1_63_0/libs/hana/doc/html/search/all_c.js new file mode 100644 index 0000000..4e4eda7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_c.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['logical',['Logical',['../group__group-Logical.html',1,'']]], + ['lazy',['lazy',['../structboost_1_1hana_1_1lazy.html',1,'boost::hana']]], + ['lazy_2ehpp',['lazy.hpp',['../fwd_2lazy_8hpp.html',1,'']]], + ['lazy_2ehpp',['lazy.hpp',['../lazy_8hpp.html',1,'']]], + ['lazy_5ftag',['lazy_tag',['../structboost_1_1hana_1_1lazy__tag.html',1,'boost::hana']]], + ['length',['length',['../group__group-Foldable.html#gaf0f8f717245620dc28cd7d7fa44d7475',1,'boost::hana']]], + ['length_2ehpp',['length.hpp',['../fwd_2length_8hpp.html',1,'']]], + ['length_2ehpp',['length.hpp',['../length_8hpp.html',1,'']]], + ['less',['less',['../group__group-Orderable.html#gad510011602bdb14686f1c4ec145301c9',1,'boost::hana']]], + ['less_2ehpp',['less.hpp',['../less_8hpp.html',1,'']]], + ['less_2ehpp',['less.hpp',['../fwd_2less_8hpp.html',1,'']]], + ['less_5fequal',['less_equal',['../group__group-Orderable.html#ga9917dd82beb67151bf5657245d37b851',1,'boost::hana']]], + ['less_5fequal_2ehpp',['less_equal.hpp',['../fwd_2less__equal_8hpp.html',1,'']]], + ['less_5fequal_2ehpp',['less_equal.hpp',['../less__equal_8hpp.html',1,'']]], + ['lexicographical_5fcompare',['lexicographical_compare',['../group__group-Iterable.html#ga660b2649d63ac71dacc64c3852c981e5',1,'boost::hana']]], + ['lexicographical_5fcompare_2ehpp',['lexicographical_compare.hpp',['../fwd_2lexicographical__compare_8hpp.html',1,'']]], + ['lexicographical_5fcompare_2ehpp',['lexicographical_compare.hpp',['../lexicographical__compare_8hpp.html',1,'']]], + ['lift',['lift',['../group__group-Applicative.html#ga712038d7abbc7159f8792788f7cd0c73',1,'boost::hana']]], + ['lift_2ehpp',['lift.hpp',['../fwd_2lift_8hpp.html',1,'']]], + ['lift_2ehpp',['lift.hpp',['../lift_8hpp.html',1,'']]], + ['list',['list',['../structboost_1_1fusion_1_1list.html',1,'boost::fusion']]], + ['list',['list',['../structboost_1_1mpl_1_1list.html',1,'boost::mpl']]], + ['list_2ehpp',['list.hpp',['../mpl_2list_8hpp.html',1,'']]], + ['list_2ehpp',['list.hpp',['../fusion_2list_8hpp.html',1,'']]], + ['llong',['llong',['../structboost_1_1hana_1_1integral__constant.html#aa7bf152c582934a70baa1d6c2bc758ba',1,'boost::hana::integral_constant']]], + ['llong_5fc',['llong_c',['../structboost_1_1hana_1_1integral__constant.html#a81c86537a0d36b8788cba2188314febc',1,'boost::hana::integral_constant']]], + ['lockstep',['lockstep',['../group__group-functional.html#gafca60c09e1f7a32a2b52baaf6515c279',1,'boost::hana']]], + ['lockstep_2ehpp',['lockstep.hpp',['../lockstep_8hpp.html',1,'']]], + ['logical_2ehpp',['logical.hpp',['../concept_2logical_8hpp.html',1,'']]], + ['logical_2ehpp',['logical.hpp',['../detail_2operators_2logical_8hpp.html',1,'']]], + ['logical_2ehpp',['logical.hpp',['../fwd_2concept_2logical_8hpp.html',1,'']]], + ['long_5f',['long_',['../structboost_1_1hana_1_1integral__constant.html#a41f541c4b34b1972d0e84bf10f7908e1',1,'boost::hana::integral_constant']]], + ['long_5fc',['long_c',['../structboost_1_1hana_1_1integral__constant.html#ab7e3b17ac89121823916ebd7c6f96235',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_d.html b/boost_1_63_0/libs/hana/doc/html/search/all_d.html new file mode 100644 index 0000000..712223c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_d.js b/boost_1_63_0/libs/hana/doc/html/search/all_d.js new file mode 100644 index 0000000..72fb9ba --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_d.js @@ -0,0 +1,81 @@ +var searchData= +[ + ['metafunction',['Metafunction',['../group__group-Metafunction.html',1,'']]], + ['monad',['Monad',['../group__group-Monad.html',1,'']]], + ['monadplus',['MonadPlus',['../group__group-MonadPlus.html',1,'']]], + ['monoid',['Monoid',['../group__group-Monoid.html',1,'']]], + ['make',['make',['../group__group-core.html#ga1d92480f0af1029878e773dafa3e2f60',1,'boost::hana']]], + ['make_2ehpp',['make.hpp',['../core_2make_8hpp.html',1,'']]], + ['make_2ehpp',['make.hpp',['../fwd_2core_2make_8hpp.html',1,'']]], + ['make_3c_20basic_5ftuple_5ftag_20_3e',['make< basic_tuple_tag >',['../structboost_1_1hana_1_1basic__tuple.html#a53975be786ae1db16185edab229547cd',1,'boost::hana::basic_tuple']]], + ['make_3c_20lazy_5ftag_20_3e',['make< lazy_tag >',['../structboost_1_1hana_1_1lazy.html#aa968ecf473c93821f1726fd9692e97f3',1,'boost::hana::lazy']]], + ['make_3c_20map_5ftag_20_3e',['make< map_tag >',['../structboost_1_1hana_1_1map.html#a409d52de54cc7e55eca1a7b5dda4ce30',1,'boost::hana::map']]], + ['make_3c_20optional_5ftag_20_3e',['make< optional_tag >',['../structboost_1_1hana_1_1optional.html#a76a84854b3051af000e698157d63a6a8',1,'boost::hana::optional']]], + ['make_3c_20pair_5ftag_20_3e',['make< pair_tag >',['../structboost_1_1hana_1_1pair.html#aab78903e9982284e82744dec570afa8d',1,'boost::hana::pair']]], + ['make_3c_20range_5ftag_20_3e',['make< range_tag >',['../structboost_1_1hana_1_1range.html#ad5ad9a1f847daa24ef62f5d81b8eef8e',1,'boost::hana::range']]], + ['make_3c_20set_5ftag_20_3e',['make< set_tag >',['../structboost_1_1hana_1_1set.html#aa337857e80b8a8c91880b0184aaf7534',1,'boost::hana::set']]], + ['make_3c_20string_5ftag_20_3e',['make< string_tag >',['../structboost_1_1hana_1_1string.html#a75de1ad7b14dc576a98d759dc3176ae9',1,'boost::hana::string']]], + ['make_3c_20tuple_5ftag_20_3e',['make< tuple_tag >',['../structboost_1_1hana_1_1tuple.html#ad9d8c7efa77e573eba2dfc48b3343e66',1,'boost::hana::tuple']]], + ['make_3c_20type_5ftag_20_3e',['make< type_tag >',['../structboost_1_1hana_1_1type.html#a66f97c1903dcb6f227b29f3e35e68a56',1,'boost::hana::type']]], + ['make_5fbasic_5ftuple',['make_basic_tuple',['../structboost_1_1hana_1_1basic__tuple.html#afe2c3fc2808e83353b7274dddd662c7e',1,'boost::hana::basic_tuple']]], + ['make_5flazy',['make_lazy',['../structboost_1_1hana_1_1lazy.html#a7dc86ca61b84fc42aabb525787ae61b4',1,'boost::hana::lazy']]], + ['make_5fmap',['make_map',['../structboost_1_1hana_1_1map.html#ae73cf43ee56352e4c25984b0fe3c3d04',1,'boost::hana::map']]], + ['make_5foptional',['make_optional',['../structboost_1_1hana_1_1optional.html#af1105a435d6435a2437cb5dc162ba463',1,'boost::hana::optional']]], + ['make_5fpair',['make_pair',['../structboost_1_1hana_1_1pair.html#a1bc322b45af2148a413ba45ee8097045',1,'boost::hana::pair']]], + ['make_5frange',['make_range',['../structboost_1_1hana_1_1range.html#aba8dd69deb1d810ef65ec289127bf0ab',1,'boost::hana::range']]], + ['make_5fset',['make_set',['../structboost_1_1hana_1_1set.html#af38c23fb98d8eec68c1491a8bca9ce43',1,'boost::hana::set']]], + ['make_5fstring',['make_string',['../structboost_1_1hana_1_1string.html#acd99ab02697909eba5eb76caf1ca7a8b',1,'boost::hana::string']]], + ['make_5ftuple',['make_tuple',['../structboost_1_1hana_1_1tuple.html#af3c175cfb83276339f91e867d738a2e6',1,'boost::hana::tuple']]], + ['make_5ftype',['make_type',['../structboost_1_1hana_1_1type.html#a0c0e00c0ffe63703f3a04960d13c7b1c',1,'boost::hana::type']]], + ['map',['map',['../structboost_1_1hana_1_1map.html',1,'boost::hana']]], + ['map',['map',['../structboost_1_1hana_1_1map.html#a1ee432be0bd10f08a637a437e311e4e2',1,'boost::hana::map::map()=default'],['../structboost_1_1hana_1_1map.html#a943219d1c9692938167639d8ad2525b8',1,'boost::hana::map::map(map const &other)=default'],['../structboost_1_1hana_1_1map.html#a675bb30af155b40f72cbe8607eefbe4e',1,'boost::hana::map::map(map &&other)=default'],['../structboost_1_1hana_1_1map.html#a4a4f472e036abf9bcbda81e831f46e32',1,'boost::hana::map::map(P &&...pairs)']]], + ['map_2ehpp',['map.hpp',['../map_8hpp.html',1,'']]], + ['map_2ehpp',['map.hpp',['../fwd_2map_8hpp.html',1,'']]], + ['map_5ftag',['map_tag',['../structboost_1_1hana_1_1map__tag.html',1,'boost::hana']]], + ['max',['max',['../group__group-Orderable.html#ga999eee8ca8750f9b1afa0d7a1db28030',1,'boost::hana']]], + ['max_2ehpp',['max.hpp',['../fwd_2max_8hpp.html',1,'']]], + ['max_2ehpp',['max.hpp',['../max_8hpp.html',1,'']]], + ['maximum',['maximum',['../group__group-Foldable.html#gaf3861a91607203b63a12708e18a4eac5',1,'boost::hana']]], + ['maximum_2ehpp',['maximum.hpp',['../fwd_2maximum_8hpp.html',1,'']]], + ['maximum_2ehpp',['maximum.hpp',['../maximum_8hpp.html',1,'']]], + ['maybe',['maybe',['../structboost_1_1hana_1_1optional.html#a6529e11cb228e99a05e81071752807d5',1,'boost::hana::optional']]], + ['members',['members',['../group__group-Struct.html#gad301dd8e9fb4639d7874619c97d6d427',1,'boost::hana']]], + ['members_2ehpp',['members.hpp',['../fwd_2members_8hpp.html',1,'']]], + ['members_2ehpp',['members.hpp',['../members_8hpp.html',1,'']]], + ['metafunction',['metafunction',['../group__group-Metafunction.html#gaaa4f85cb8cbce21f5c04ef40ca35cc6a',1,'boost::hana']]], + ['metafunction_2ehpp',['metafunction.hpp',['../fwd_2concept_2metafunction_8hpp.html',1,'']]], + ['metafunction_2ehpp',['metafunction.hpp',['../concept_2metafunction_8hpp.html',1,'']]], + ['metafunction_5fclass',['metafunction_class',['../group__group-Metafunction.html#gacec153d7f86aa7cf1efd813b3fd212b4',1,'boost::hana']]], + ['min',['min',['../group__group-Orderable.html#ga2d54f189ea6f57fb2c0d772169440c5c',1,'boost::hana']]], + ['min_2ehpp',['min.hpp',['../fwd_2min_8hpp.html',1,'']]], + ['min_2ehpp',['min.hpp',['../min_8hpp.html',1,'']]], + ['minimum',['minimum',['../group__group-Foldable.html#ga347429451fdb15f9f7a7fc0de293be1a',1,'boost::hana']]], + ['minimum_2ehpp',['minimum.hpp',['../fwd_2minimum_8hpp.html',1,'']]], + ['minimum_2ehpp',['minimum.hpp',['../minimum_8hpp.html',1,'']]], + ['minus',['minus',['../group__group-Group.html#ga2020c526324f361a2b990fe8d1b07c20',1,'boost::hana']]], + ['minus_2ehpp',['minus.hpp',['../minus_8hpp.html',1,'']]], + ['minus_2ehpp',['minus.hpp',['../fwd_2minus_8hpp.html',1,'']]], + ['mod',['mod',['../group__group-EuclideanRing.html#ga9b47b223d5b02db933b3c93b5bd1a062',1,'boost::hana']]], + ['mod_2ehpp',['mod.hpp',['../mod_8hpp.html',1,'']]], + ['mod_2ehpp',['mod.hpp',['../fwd_2mod_8hpp.html',1,'']]], + ['monad_2ehpp',['monad.hpp',['../detail_2operators_2monad_8hpp.html',1,'']]], + ['monad_2ehpp',['monad.hpp',['../concept_2monad_8hpp.html',1,'']]], + ['monad_2ehpp',['monad.hpp',['../fwd_2concept_2monad_8hpp.html',1,'']]], + ['monad_5fplus_2ehpp',['monad_plus.hpp',['../fwd_2concept_2monad__plus_8hpp.html',1,'']]], + ['monad_5fplus_2ehpp',['monad_plus.hpp',['../concept_2monad__plus_8hpp.html',1,'']]], + ['monadic_5fcompose',['monadic_compose',['../group__group-Monad.html#gaec3fe26c7378fd3057af83e03bd9b104',1,'boost::hana']]], + ['monadic_5fcompose_2ehpp',['monadic_compose.hpp',['../monadic__compose_8hpp.html',1,'']]], + ['monadic_5fcompose_2ehpp',['monadic_compose.hpp',['../fwd_2monadic__compose_8hpp.html',1,'']]], + ['monadic_5ffold_5fleft',['monadic_fold_left',['../group__group-Foldable.html#gac14edbff755244aa02b57a6383dcebc6',1,'boost::hana']]], + ['monadic_5ffold_5fleft_2ehpp',['monadic_fold_left.hpp',['../fwd_2monadic__fold__left_8hpp.html',1,'']]], + ['monadic_5ffold_5fleft_2ehpp',['monadic_fold_left.hpp',['../monadic__fold__left_8hpp.html',1,'']]], + ['monadic_5ffold_5fright',['monadic_fold_right',['../group__group-Foldable.html#gaa058d91f3e1294f0d3c71bedf33e2360',1,'boost::hana']]], + ['monadic_5ffold_5fright_2ehpp',['monadic_fold_right.hpp',['../fwd_2monadic__fold__right_8hpp.html',1,'']]], + ['monadic_5ffold_5fright_2ehpp',['monadic_fold_right.hpp',['../monadic__fold__right_8hpp.html',1,'']]], + ['monoid_2ehpp',['monoid.hpp',['../fwd_2concept_2monoid_8hpp.html',1,'']]], + ['monoid_2ehpp',['monoid.hpp',['../concept_2monoid_8hpp.html',1,'']]], + ['mpl_2ehpp',['mpl.hpp',['../mpl_8hpp.html',1,'']]], + ['mult',['mult',['../group__group-Ring.html#ga052d31c269a6a438cc8004c9ad1efdfa',1,'boost::hana']]], + ['mult_2ehpp',['mult.hpp',['../fwd_2mult_8hpp.html',1,'']]], + ['mult_2ehpp',['mult.hpp',['../mult_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_e.html b/boost_1_63_0/libs/hana/doc/html/search/all_e.html new file mode 100644 index 0000000..d553ffa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_e.js b/boost_1_63_0/libs/hana/doc/html/search/all_e.js new file mode 100644 index 0000000..2d5399c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_e.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['negate',['negate',['../group__group-Group.html#ga02e81002f40ba52eac4cf1974c7e0cdb',1,'boost::hana']]], + ['negate_2ehpp',['negate.hpp',['../fwd_2negate_8hpp.html',1,'']]], + ['negate_2ehpp',['negate.hpp',['../negate_8hpp.html',1,'']]], + ['nested_5fby',['nested_by',['../structboost_1_1hana_1_1detail_1_1nested__by.html',1,'boost::hana::detail']]], + ['nested_5fby_2ehpp',['nested_by.hpp',['../nested__by_8hpp.html',1,'']]], + ['nested_5fby_5ffwd_2ehpp',['nested_by_fwd.hpp',['../nested__by__fwd_8hpp.html',1,'']]], + ['nested_5fthan',['nested_than',['../structboost_1_1hana_1_1detail_1_1nested__than.html',1,'boost::hana::detail']]], + ['nested_5fthan_2ehpp',['nested_than.hpp',['../nested__than_8hpp.html',1,'']]], + ['nested_5fthan_5ffwd_2ehpp',['nested_than_fwd.hpp',['../nested__than__fwd_8hpp.html',1,'']]], + ['nested_5fto',['nested_to',['../structboost_1_1hana_1_1detail_1_1nested__to.html',1,'boost::hana::detail']]], + ['nested_5fto_2ehpp',['nested_to.hpp',['../nested__to_8hpp.html',1,'']]], + ['nested_5fto_5ffwd_2ehpp',['nested_to_fwd.hpp',['../nested__to__fwd_8hpp.html',1,'']]], + ['none',['none',['../group__group-Searchable.html#ga614ff1e575806f59246b17006e19d479',1,'boost::hana']]], + ['none_2ehpp',['none.hpp',['../fwd_2none_8hpp.html',1,'']]], + ['none_2ehpp',['none.hpp',['../none_8hpp.html',1,'']]], + ['none_5fof',['none_of',['../group__group-Searchable.html#ga43954c791b5b1351fb009e2a643d00f5',1,'boost::hana']]], + ['none_5fof_2ehpp',['none_of.hpp',['../none__of_8hpp.html',1,'']]], + ['none_5fof_2ehpp',['none_of.hpp',['../fwd_2none__of_8hpp.html',1,'']]], + ['not_2ehpp',['not.hpp',['../fwd_2not_8hpp.html',1,'']]], + ['not_2ehpp',['not.hpp',['../not_8hpp.html',1,'']]], + ['not_5f',['not_',['../group__group-Logical.html#ga4a7c9d7037601d5e553fd20777958980',1,'boost::hana']]], + ['not_5fequal',['not_equal',['../group__group-Comparable.html#gae33be2e0d5e04f19082f4b7740dfc9cd',1,'boost::hana']]], + ['not_5fequal_2ehpp',['not_equal.hpp',['../not__equal_8hpp.html',1,'']]], + ['not_5fequal_2ehpp',['not_equal.hpp',['../fwd_2not__equal_8hpp.html',1,'']]], + ['nothing',['nothing',['../structboost_1_1hana_1_1optional.html#a0c315287473aa87fe5ccd9d8a1c10186',1,'boost::hana::optional']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_f.html b/boost_1_63_0/libs/hana/doc/html/search/all_f.html new file mode 100644 index 0000000..c77391a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/all_f.js b/boost_1_63_0/libs/hana/doc/html/search/all_f.js new file mode 100644 index 0000000..6e6ab43 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/all_f.js @@ -0,0 +1,48 @@ +var searchData= +[ + ['other_20boost_20adapters',['Other Boost adapters',['../group__group-ext-boost.html',1,'']]], + ['orderable',['Orderable',['../group__group-Orderable.html',1,'']]], + ['on',['on',['../group__group-functional.html#ga35c4fc3c5677b9f558150b90e74d3ab1',1,'boost::hana']]], + ['on_2ehpp',['on.hpp',['../on_8hpp.html',1,'']]], + ['one',['one',['../group__group-Ring.html#gadea531feb3b0a1c5c3d777f7ab45e932',1,'boost::hana']]], + ['one_2ehpp',['one.hpp',['../fwd_2one_8hpp.html',1,'']]], + ['one_2ehpp',['one.hpp',['../one_8hpp.html',1,'']]], + ['operator_21',['operator!',['../structboost_1_1hana_1_1integral__constant.html#a7d9f9e5adeb222e676ee02d6f28198ee',1,'boost::hana::integral_constant']]], + ['operator_21_3d',['operator!=',['../structboost_1_1hana_1_1integral__constant.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::integral_constant::operator!=()'],['../structboost_1_1hana_1_1map.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::map::operator!=()'],['../structboost_1_1hana_1_1optional.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::optional::operator!=()'],['../structboost_1_1hana_1_1pair.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::pair::operator!=()'],['../structboost_1_1hana_1_1range.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::range::operator!=()'],['../structboost_1_1hana_1_1set.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::set::operator!=()'],['../structboost_1_1hana_1_1string.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::string::operator!=()'],['../structboost_1_1hana_1_1tuple.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::tuple::operator!=()'],['../structboost_1_1hana_1_1type.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::type::operator!=()']]], + ['operator_22_22_5fc',['operator""_c',['../structboost_1_1hana_1_1integral__constant.html#a1c078fd00db48686ca9e0aa17f47344e',1,'boost::hana::integral_constant::operator""_c()'],['../namespaceboost_1_1hana_1_1literals.html#a85ac3c47d02722a334181aab540e732c',1,'boost::hana::literals::operator""_c()']]], + ['operator_22_22_5fs',['operator""_s',['../structboost_1_1hana_1_1string.html#ad77f7afff008c2ce15739ad16a8bf0a8',1,'boost::hana::string::operator""_s()'],['../namespaceboost_1_1hana_1_1literals.html#a325859c7db2c3f8e6a4bfab5a81a6dcb',1,'boost::hana::literals::operator""_s()']]], + ['operator_25',['operator%',['../structboost_1_1hana_1_1integral__constant.html#ad2fabb33632e115e96d0b7474670e6a1',1,'boost::hana::integral_constant']]], + ['operator_26_26',['operator&&',['../structboost_1_1hana_1_1integral__constant.html#a47d2d5df22fc559270029d5eabaae61a',1,'boost::hana::integral_constant']]], + ['operator_2a',['operator*',['../structboost_1_1hana_1_1integral__constant.html#a673f1d9212ae61e8cee093af002bc110',1,'boost::hana::integral_constant::operator*()'],['../structboost_1_1hana_1_1optional.html#a3132b919ab7710d79155674272961d4b',1,'boost::hana::optional::operator*()']]], + ['operator_2b',['operator+',['../structboost_1_1hana_1_1integral__constant.html#a077af435df78fdb178f98b109c8c4297',1,'boost::hana::integral_constant::operator+()'],['../structboost_1_1hana_1_1string.html#a077af435df78fdb178f98b109c8c4297',1,'boost::hana::string::operator+()'],['../structboost_1_1hana_1_1type.html#a2c3bef01b2e0342264c62a67cc471592',1,'boost::hana::type::operator+()']]], + ['operator_2d',['operator-',['../structboost_1_1hana_1_1integral__constant.html#a51facf9760bb93d63efdca06dcf859ad',1,'boost::hana::integral_constant::operator-()'],['../structboost_1_1hana_1_1integral__constant.html#a6be175332d55b7bfcf1afc33856d9b7d',1,'boost::hana::integral_constant::operator-()']]], + ['operator_2d_3e',['operator->',['../structboost_1_1hana_1_1optional.html#a6eeef1512294d408857805eb3a790230',1,'boost::hana::optional']]], + ['operator_2f',['operator/',['../structboost_1_1hana_1_1integral__constant.html#ab8b66ff58605e53149aad7eca0922ad7',1,'boost::hana::integral_constant']]], + ['operator_3c',['operator<',['../structboost_1_1hana_1_1integral__constant.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::integral_constant::operator<()'],['../structboost_1_1hana_1_1optional.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::optional::operator<()'],['../structboost_1_1hana_1_1pair.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::pair::operator<()'],['../structboost_1_1hana_1_1string.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::string::operator<()'],['../structboost_1_1hana_1_1tuple.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::tuple::operator<()']]], + ['operator_3c_3d',['operator<=',['../structboost_1_1hana_1_1integral__constant.html#a53817979990da799e659b2576799a79a',1,'boost::hana::integral_constant::operator<=()'],['../structboost_1_1hana_1_1optional.html#a53817979990da799e659b2576799a79a',1,'boost::hana::optional::operator<=()'],['../structboost_1_1hana_1_1pair.html#a53817979990da799e659b2576799a79a',1,'boost::hana::pair::operator<=()'],['../structboost_1_1hana_1_1string.html#a53817979990da799e659b2576799a79a',1,'boost::hana::string::operator<=()'],['../structboost_1_1hana_1_1tuple.html#a53817979990da799e659b2576799a79a',1,'boost::hana::tuple::operator<=()']]], + ['operator_3d',['operator=',['../structboost_1_1hana_1_1optional.html#abefc885243f38c66c52fdada3588f951',1,'boost::hana::optional::operator=(optional const &)=default'],['../structboost_1_1hana_1_1optional.html#a52057c5da4b9aee49ee15a167459fc9a',1,'boost::hana::optional::operator=(optional &&)=default'],['../structboost_1_1hana_1_1pair.html#a96ada4b84949f1653de497410af50013',1,'boost::hana::pair::operator=(pair< T, U > const &other)'],['../structboost_1_1hana_1_1pair.html#a3f1a25445fa5380a78bdf524b764e1c7',1,'boost::hana::pair::operator=(pair< T, U > &&other)'],['../structboost_1_1hana_1_1tuple.html#acddfa6d631c249ae667d52dd63c0aeaf',1,'boost::hana::tuple::operator=(tuple< Yn... > const &other)'],['../structboost_1_1hana_1_1tuple.html#ad3f0fe520974a22cc12a978f4b061caa',1,'boost::hana::tuple::operator=(tuple< Yn... > &&other)']]], + ['operator_3d_3d',['operator==',['../structboost_1_1hana_1_1integral__constant.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::integral_constant::operator==()'],['../structboost_1_1hana_1_1map.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::map::operator==()'],['../structboost_1_1hana_1_1optional.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::optional::operator==()'],['../structboost_1_1hana_1_1pair.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::pair::operator==()'],['../structboost_1_1hana_1_1range.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::range::operator==()'],['../structboost_1_1hana_1_1set.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::set::operator==()'],['../structboost_1_1hana_1_1string.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::string::operator==()'],['../structboost_1_1hana_1_1tuple.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::tuple::operator==()'],['../structboost_1_1hana_1_1type.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::type::operator==()']]], + ['operator_3e',['operator>',['../structboost_1_1hana_1_1integral__constant.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::integral_constant::operator>()'],['../structboost_1_1hana_1_1optional.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::optional::operator>()'],['../structboost_1_1hana_1_1pair.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::pair::operator>()'],['../structboost_1_1hana_1_1string.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::string::operator>()'],['../structboost_1_1hana_1_1tuple.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::tuple::operator>()']]], + ['operator_3e_3d',['operator>=',['../structboost_1_1hana_1_1integral__constant.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::integral_constant::operator>=()'],['../structboost_1_1hana_1_1optional.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::optional::operator>=()'],['../structboost_1_1hana_1_1pair.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::pair::operator>=()'],['../structboost_1_1hana_1_1string.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::string::operator>=()'],['../structboost_1_1hana_1_1tuple.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::tuple::operator>=()']]], + ['operator_5b_5d',['operator[]',['../structboost_1_1hana_1_1map.html#a4881a1810986e678959af8ccb58f5666',1,'boost::hana::map::operator[]()'],['../structboost_1_1hana_1_1range.html#a5df034200fc77683173f7cecf99f491e',1,'boost::hana::range::operator[]()'],['../structboost_1_1hana_1_1set.html#a00f6165e7a2db4218c67d80929c457d2',1,'boost::hana::set::operator[]()'],['../structboost_1_1hana_1_1string.html#a02f56704524481cf919907caf271d2a1',1,'boost::hana::string::operator[]()'],['../structboost_1_1hana_1_1tuple.html#acef38216a6c6da0296a5f7b5241e951b',1,'boost::hana::tuple::operator[]()']]], + ['operator_7c',['operator|',['../structboost_1_1hana_1_1lazy.html#a97b267b09ee075f1c531b849969e75e6',1,'boost::hana::lazy::operator|()'],['../structboost_1_1hana_1_1optional.html#a833b9d5d44bb431621af9129994b9bbc',1,'boost::hana::optional::operator|()'],['../structboost_1_1hana_1_1tuple.html#a59b4d21f17e2caed8c31d8389d0f0878',1,'boost::hana::tuple::operator|()']]], + ['operator_7c_7c',['operator||',['../structboost_1_1hana_1_1integral__constant.html#a883a869b5e96e32744ebf75d63c763ae',1,'boost::hana::integral_constant']]], + ['optional',['optional',['../structboost_1_1hana_1_1optional.html#aefbd278cf7bb9e921707d6d827014bcb',1,'boost::hana::optional::optional()=default'],['../structboost_1_1hana_1_1optional.html#a9074406adb54a6a848ba482895c51d1f',1,'boost::hana::optional::optional(optional const &)=default'],['../structboost_1_1hana_1_1optional.html#ac46a23f0ada20175c4c9a58af3d15753',1,'boost::hana::optional::optional(optional &&)=default'],['../structboost_1_1hana_1_1optional.html#a2b04ee87c0ac58621edf3ad5476a2949',1,'boost::hana::optional::optional(T const &t)'],['../structboost_1_1hana_1_1optional.html#adf824827b5d6f8c87d23b9526b9f35d2',1,'boost::hana::optional::optional(T &&t)']]], + ['optional',['optional',['../structboost_1_1hana_1_1optional.html',1,'boost::hana']]], + ['optional_2ehpp',['optional.hpp',['../fwd_2optional_8hpp.html',1,'']]], + ['optional_2ehpp',['optional.hpp',['../optional_8hpp.html',1,'']]], + ['optional_5ftag',['optional_tag',['../structboost_1_1hana_1_1optional__tag.html',1,'boost::hana']]], + ['or_2ehpp',['or.hpp',['../fwd_2or_8hpp.html',1,'']]], + ['or_2ehpp',['or.hpp',['../or_8hpp.html',1,'']]], + ['or_5f',['or_',['../group__group-Logical.html#ga68c00efbeb69339bfa157a78ebdd3f87',1,'boost::hana']]], + ['orderable_2ehpp',['orderable.hpp',['../detail_2operators_2orderable_8hpp.html',1,'']]], + ['orderable_2ehpp',['orderable.hpp',['../fwd_2concept_2orderable_8hpp.html',1,'']]], + ['orderable_2ehpp',['orderable.hpp',['../concept_2orderable_8hpp.html',1,'']]], + ['ordering',['ordering',['../group__group-Orderable.html#gaf7e94ba859710cd6ba6152e5dc18977d',1,'boost::hana']]], + ['ordering_2ehpp',['ordering.hpp',['../fwd_2ordering_8hpp.html',1,'']]], + ['ordering_2ehpp',['ordering.hpp',['../ordering_8hpp.html',1,'']]], + ['overload',['overload',['../group__group-functional.html#ga83e71bae315e299f9f5f9de77b012139',1,'boost::hana']]], + ['overload_2ehpp',['overload.hpp',['../overload_8hpp.html',1,'']]], + ['overload_5flinearly',['overload_linearly',['../group__group-functional.html#gaa46de6f618d9f14edb1589b36b6e75ec',1,'boost::hana']]], + ['overload_5flinearly_2ehpp',['overload_linearly.hpp',['../overload__linearly_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_0.html b/boost_1_63_0/libs/hana/doc/html/search/classes_0.html new file mode 100644 index 0000000..025587a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_0.js b/boost_1_63_0/libs/hana/doc/html/search/classes_0.js new file mode 100644 index 0000000..f9e8c15 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_0.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['adl',['adl',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['adl_3c_20tuple_3c_20xn_2e_2e_2e_20_3e_20_3e',['adl< tuple< Xn... > >',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['adl_3c_20tuple_3c_3e_20_3e',['adl< tuple<> >',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['adl_3c_3e',['adl<>',['../structboost_1_1hana_1_1detail_1_1operators_1_1adl.html',1,'boost::hana::detail::operators']]], + ['advance_5funtil',['advance_until',['../structboost_1_1hana_1_1at__key__detail_1_1advance__until.html',1,'boost::hana::at_key_detail']]], + ['advance_5funtil_3c_20xs_2c_20pred_2c_20i_2b1_2c_20n_2c_20static_5fcast_3c_20bool_20_3e_28detail_3a_3adecay_3c_20decltype_28std_3a_3adeclval_3c_20pred_20_3e_28_29_28hana_3a_3aat_5fc_3c_20i_20_3e_28std_3a_3adeclval_3c_20xs_20_3e_28_29_29_29_29_3e_3a_3atype_3a_3avalue_29_3e',['advance_until< Xs, Pred, i+1, N, static_cast< bool >(detail::decay< decltype(std::declval< Pred >()(hana::at_c< i >(std::declval< Xs >())))>::type::value)>',['../structboost_1_1hana_1_1at__key__detail_1_1advance__until.html',1,'boost::hana::at_key_detail']]], + ['any_5fof',['any_of',['../structboost_1_1hana_1_1detail_1_1any__of.html',1,'boost::hana::detail']]], + ['array',['array',['../structboost_1_1hana_1_1detail_1_1array.html',1,'boost::hana::detail']]], + ['array',['array',['../structstd_1_1array.html',1,'std']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_1.html b/boost_1_63_0/libs/hana/doc/html/search/classes_1.html new file mode 100644 index 0000000..86dc4ff --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_1.js b/boost_1_63_0/libs/hana/doc/html/search/classes_1.js new file mode 100644 index 0000000..4a3f6ab --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_1.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['basic_5ftuple',['basic_tuple',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_3c_20f_2c_20args_2e_2e_2e_20_3e',['basic_tuple< F, Args... >',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_3c_20x_20_3e',['basic_tuple< X >',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_3c_20xn_2e_2e_2e_20_3e',['basic_tuple< Xn... >',['../structboost_1_1hana_1_1basic__tuple.html',1,'boost::hana']]], + ['basic_5ftuple_5ftag',['basic_tuple_tag',['../structboost_1_1hana_1_1basic__tuple__tag.html',1,'boost::hana']]], + ['basic_5ftype',['basic_type',['../structboost_1_1hana_1_1basic__type.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_10.html b/boost_1_63_0/libs/hana/doc/html/search/classes_10.html new file mode 100644 index 0000000..f306d99 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_10.js b/boost_1_63_0/libs/hana/doc/html/search/classes_10.js new file mode 100644 index 0000000..8c17f37 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['vector',['vector',['../structboost_1_1fusion_1_1vector.html',1,'boost::fusion']]], + ['vector',['vector',['../structboost_1_1mpl_1_1vector.html',1,'boost::mpl']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_11.html b/boost_1_63_0/libs/hana/doc/html/search/classes_11.html new file mode 100644 index 0000000..7d9c149 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_11.js b/boost_1_63_0/libs/hana/doc/html/search/classes_11.js new file mode 100644 index 0000000..4b5531c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['when',['when',['../structboost_1_1hana_1_1when.html',1,'boost::hana']]], + ['which',['which',['../structboost_1_1hana_1_1constant__detail_1_1which.html',1,'boost::hana::constant_detail']]], + ['wrong',['wrong',['../structboost_1_1hana_1_1detail_1_1wrong.html',1,'boost::hana::detail']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_2.html b/boost_1_63_0/libs/hana/doc/html/search/classes_2.html new file mode 100644 index 0000000..014caf8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_2.js b/boost_1_63_0/libs/hana/doc/html/search/classes_2.js new file mode 100644 index 0000000..b23c622 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['canonicalconstant',['CanonicalConstant',['../structboost_1_1hana_1_1detail_1_1CanonicalConstant.html',1,'boost::hana::detail']]], + ['common',['common',['../structboost_1_1hana_1_1common.html',1,'boost::hana']]], + ['create',['create',['../structboost_1_1hana_1_1detail_1_1create.html',1,'boost::hana::detail']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_3.html b/boost_1_63_0/libs/hana/doc/html/search/classes_3.html new file mode 100644 index 0000000..2e97201 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_3.js b/boost_1_63_0/libs/hana/doc/html/search/classes_3.js new file mode 100644 index 0000000..78af360 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['decay',['decay',['../structboost_1_1hana_1_1detail_1_1decay.html',1,'boost::hana::detail']]], + ['default_5f',['default_',['../structboost_1_1hana_1_1default__.html',1,'boost::hana']]], + ['deque',['deque',['../structboost_1_1fusion_1_1deque.html',1,'boost::fusion']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_4.html b/boost_1_63_0/libs/hana/doc/html/search/classes_4.html new file mode 100644 index 0000000..776fee3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_4.js b/boost_1_63_0/libs/hana/doc/html/search/classes_4.js new file mode 100644 index 0000000..dc320e0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_4.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['embedding',['embedding',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_20is_5fembedded_3c_20c_3a_3avalue_5ftype_2c_20t_20_3e_3a_3avalue_20_3e',['embedding< is_embedded< C::value_type, T >::value >',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_20is_5fembedded_3c_20from_3a_3avalue_5ftype_2c_20to_20_3e_3a_3avalue_20_3e',['embedding< is_embedded< From::value_type, To >::value >',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_20sequence_3c_20f_20_3e_3a_3avalue_20_3e',['embedding< Sequence< F >::value >',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]], + ['embedding_3c_3e',['embedding<>',['../structboost_1_1hana_1_1embedding.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_5.html b/boost_1_63_0/libs/hana/doc/html/search/classes_5.html new file mode 100644 index 0000000..69bbcc8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_5.js b/boost_1_63_0/libs/hana/doc/html/search/classes_5.js new file mode 100644 index 0000000..923d058 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['first_5funsatisfied_5findex',['first_unsatisfied_index',['../structboost_1_1hana_1_1detail_1_1first__unsatisfied__index.html',1,'boost::hana::detail']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_6.html b/boost_1_63_0/libs/hana/doc/html/search/classes_6.html new file mode 100644 index 0000000..2db08a0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_6.js b/boost_1_63_0/libs/hana/doc/html/search/classes_6.js new file mode 100644 index 0000000..b934c46 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['has_5fcommon',['has_common',['../structboost_1_1hana_1_1has__common.html',1,'boost::hana']]], + ['has_5fduplicates',['has_duplicates',['../structboost_1_1hana_1_1detail_1_1has__duplicates.html',1,'boost::hana::detail']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_7.html b/boost_1_63_0/libs/hana/doc/html/search/classes_7.html new file mode 100644 index 0000000..fd67346 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_7.js b/boost_1_63_0/libs/hana/doc/html/search/classes_7.js new file mode 100644 index 0000000..6dcff0d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_7.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['index_5fif',['index_if',['../structboost_1_1hana_1_1detail_1_1index__if.html',1,'boost::hana::detail']]], + ['integer_5fsequence',['integer_sequence',['../structstd_1_1integer__sequence.html',1,'std']]], + ['integral_5fc',['integral_c',['../structboost_1_1mpl_1_1integral__c.html',1,'boost::mpl']]], + ['integral_5fconstant',['integral_constant',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant',['integral_constant',['../structstd_1_1integral__constant.html',1,'std']]], + ['integral_5fconstant_3c_20bool_2c_20false_20_3e',['integral_constant< bool, false >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20hana_3a_3aintegralconstant_3c_20tag_20_3e_3a_3avalue_20_3e',['integral_constant< bool, hana::IntegralConstant< Tag >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20hana_3a_3asequence_3c_20tag_20_3e_3a_3avalue_20_3e',['integral_constant< bool, hana::Sequence< Tag >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20metafunction_3c_20tag_20_3e_3a_3avalue_20_3e',['integral_constant< bool, Metafunction< Tag >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20metafunction_3c_20typename_20tag_5fof_3c_20f_20_3e_3a_3atype_20_3e_3a_3avalue_20_3e',['integral_constant< bool, Metafunction< typename tag_of< F >::type >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_20std_3a_3ais_5fsame_3c_20datatype_2c_20hana_3a_3atag_5fof_3c_20t_20_3e_3a_3atype_20_3e_3a_3avalue_20_3e',['integral_constant< bool, std::is_same< DataType, hana::tag_of< T >::type >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20accessors_5fimpl_3c_20tag_5fof_3c_20s_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< accessors_impl< tag_of< S >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20any_5fof_5fimpl_3c_20tag_5fof_3c_20s_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20find_5fif_5fimpl_3c_20tag_5fof_3c_20s_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< any_of_impl< tag_of< S >::type > >::value &&!is_default< find_if_impl< tag_of< S >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20ap_5fimpl_3c_20tag_5fof_3c_20a_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20lift_5fimpl_3c_20tag_5fof_3c_20a_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< ap_impl< tag_of< A >::type > >::value &&!is_default< lift_impl< tag_of< A >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20at_5fimpl_3c_20tag_5fof_3c_20it_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20drop_5ffront_5fimpl_3c_20tag_5fof_3c_20it_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20is_5fempty_5fimpl_3c_20tag_5fof_3c_20it_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< at_impl< tag_of< It >::type > >::value &&!is_default< drop_front_impl< tag_of< It >::type > >::value &&!is_default< is_empty_impl< tag_of< It >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20concat_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20empty_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< concat_impl< tag_of< M >::type > >::value &&!is_default< empty_impl< tag_of< M >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20equal_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_2c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< equal_impl< tag_of< T >::type, tag_of< T >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20eval_5fif_5fimpl_3c_20tag_5fof_3c_20l_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20not_5fimpl_3c_20tag_5fof_3c_20l_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20while_5fimpl_3c_20tag_5fof_3c_20l_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< eval_if_impl< tag_of< L >::type > >::value &&!is_default< not_impl< tag_of< L >::type > >::value &&!is_default< while_impl< tag_of< L >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20extract_5fimpl_3c_20tag_5fof_3c_20w_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_28_21is_5fdefault_3c_20duplicate_5fimpl_3c_20tag_5fof_3c_20w_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20extend_5fimpl_3c_20tag_5fof_3c_20w_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_29_20_3e',['integral_constant< bool,!is_default< extract_impl< tag_of< W >::type > >::value &&(!is_default< duplicate_impl< tag_of< W >::type > >::value||!is_default< extend_impl< tag_of< W >::type > >::value) >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20first_5fimpl_3c_20tag_5fof_3c_20p_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20second_5fimpl_3c_20tag_5fof_3c_20p_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< first_impl< tag_of< P >::type > >::value &&!is_default< second_impl< tag_of< P >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20flatten_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20chain_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< flatten_impl< tag_of< M >::type > >::value||!is_default< chain_impl< tag_of< M >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20fold_5fleft_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20unpack_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< fold_left_impl< tag_of< T >::type > >::value||!is_default< unpack_impl< tag_of< T >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20hash_5fimpl_3c_20tag_5fof_3c_20t_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< hash_impl< tag_of< T >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20less_5fimpl_3c_20tag_5fof_3c_20ord_20_3e_3a_3atype_2c_20tag_5fof_3c_20ord_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< less_impl< tag_of< Ord >::type, tag_of< Ord >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20mod_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_2c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20div_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_2c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< mod_impl< tag_of< R >::type, tag_of< R >::type > >::value &&!is_default< div_impl< tag_of< R >::type, tag_of< R >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20negate_5fimpl_3c_20tag_5fof_3c_20g_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20minus_5fimpl_3c_20tag_5fof_3c_20g_20_3e_3a_3atype_2c_20tag_5fof_3c_20g_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< negate_impl< tag_of< G >::type > >::value||!is_default< minus_impl< tag_of< G >::type, tag_of< G >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20one_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20mult_5fimpl_3c_20tag_5fof_3c_20r_20_3e_3a_3atype_2c_20tag_5fof_3c_20r_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< one_impl< tag_of< R >::type > >::value &&!is_default< mult_impl< tag_of< R >::type, tag_of< R >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20transform_5fimpl_3c_20tag_5fof_3c_20f_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_7c_7c_21is_5fdefault_3c_20adjust_5fif_5fimpl_3c_20tag_5fof_3c_20f_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< transform_impl< tag_of< F >::type > >::value||!is_default< adjust_if_impl< tag_of< F >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20value_5fimpl_3c_20tag_5fof_3c_20c_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< value_impl< tag_of< C >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_3c_20bool_2c_21is_5fdefault_3c_20zero_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_26_26_21is_5fdefault_3c_20plus_5fimpl_3c_20tag_5fof_3c_20m_20_3e_3a_3atype_2c_20tag_5fof_3c_20m_20_3e_3a_3atype_20_3e_20_3e_3a_3avalue_20_3e',['integral_constant< bool,!is_default< zero_impl< tag_of< M >::type > >::value &&!is_default< plus_impl< tag_of< M >::type, tag_of< M >::type > >::value >',['../structboost_1_1hana_1_1integral__constant.html',1,'boost::hana']]], + ['integral_5fconstant_5ftag',['integral_constant_tag',['../structboost_1_1hana_1_1integral__constant__tag.html',1,'boost::hana']]], + ['integralconstant',['IntegralConstant',['../structboost_1_1hana_1_1IntegralConstant.html',1,'boost::hana']]], + ['is_5fconvertible',['is_convertible',['../structboost_1_1hana_1_1is__convertible.html',1,'boost::hana']]], + ['is_5fdefault',['is_default',['../structboost_1_1hana_1_1is__default.html',1,'boost::hana']]], + ['is_5fembedded',['is_embedded',['../structboost_1_1hana_1_1is__embedded.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_8.html b/boost_1_63_0/libs/hana/doc/html/search/classes_8.html new file mode 100644 index 0000000..369fe52 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_8.js b/boost_1_63_0/libs/hana/doc/html/search/classes_8.js new file mode 100644 index 0000000..04f635d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['lazy',['lazy',['../structboost_1_1hana_1_1lazy.html',1,'boost::hana']]], + ['lazy_5ftag',['lazy_tag',['../structboost_1_1hana_1_1lazy__tag.html',1,'boost::hana']]], + ['list',['list',['../structboost_1_1mpl_1_1list.html',1,'boost::mpl']]], + ['list',['list',['../structboost_1_1fusion_1_1list.html',1,'boost::fusion']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_9.html b/boost_1_63_0/libs/hana/doc/html/search/classes_9.html new file mode 100644 index 0000000..188dbb3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_9.js b/boost_1_63_0/libs/hana/doc/html/search/classes_9.js new file mode 100644 index 0000000..df0b1ce --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['map',['map',['../structboost_1_1hana_1_1map.html',1,'boost::hana']]], + ['map_5ftag',['map_tag',['../structboost_1_1hana_1_1map__tag.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_a.html b/boost_1_63_0/libs/hana/doc/html/search/classes_a.html new file mode 100644 index 0000000..e7610d3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_a.js b/boost_1_63_0/libs/hana/doc/html/search/classes_a.js new file mode 100644 index 0000000..a4ea820 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['nested_5fby',['nested_by',['../structboost_1_1hana_1_1detail_1_1nested__by.html',1,'boost::hana::detail']]], + ['nested_5fthan',['nested_than',['../structboost_1_1hana_1_1detail_1_1nested__than.html',1,'boost::hana::detail']]], + ['nested_5fto',['nested_to',['../structboost_1_1hana_1_1detail_1_1nested__to.html',1,'boost::hana::detail']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_b.html b/boost_1_63_0/libs/hana/doc/html/search/classes_b.html new file mode 100644 index 0000000..4fc0a3f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_b.js b/boost_1_63_0/libs/hana/doc/html/search/classes_b.js new file mode 100644 index 0000000..dd08628 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['optional',['optional',['../structboost_1_1hana_1_1optional.html',1,'boost::hana']]], + ['optional_5ftag',['optional_tag',['../structboost_1_1hana_1_1optional__tag.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_c.html b/boost_1_63_0/libs/hana/doc/html/search/classes_c.html new file mode 100644 index 0000000..d2a582e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_c.js b/boost_1_63_0/libs/hana/doc/html/search/classes_c.js new file mode 100644 index 0000000..e498463 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['pair',['pair',['../structboost_1_1hana_1_1pair.html',1,'boost::hana']]], + ['pair',['pair',['../structstd_1_1pair.html',1,'std']]], + ['pair_5ftag',['pair_tag',['../structboost_1_1hana_1_1pair__tag.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_d.html b/boost_1_63_0/libs/hana/doc/html/search/classes_d.html new file mode 100644 index 0000000..0fa4214 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_d.js b/boost_1_63_0/libs/hana/doc/html/search/classes_d.js new file mode 100644 index 0000000..63a4a02 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['range',['range',['../structboost_1_1hana_1_1range.html',1,'boost::hana']]], + ['range_5ftag',['range_tag',['../structboost_1_1hana_1_1range__tag.html',1,'boost::hana']]], + ['ratio',['ratio',['../classstd_1_1ratio.html',1,'std']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_e.html b/boost_1_63_0/libs/hana/doc/html/search/classes_e.html new file mode 100644 index 0000000..238ea09 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_e.js b/boost_1_63_0/libs/hana/doc/html/search/classes_e.js new file mode 100644 index 0000000..c4d9e19 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['set',['set',['../structboost_1_1hana_1_1set.html',1,'boost::hana']]], + ['set_5ftag',['set_tag',['../structboost_1_1hana_1_1set__tag.html',1,'boost::hana']]], + ['std_5fcommon_5ftype',['std_common_type',['../structboost_1_1hana_1_1detail_1_1std__common__type.html',1,'boost::hana::detail']]], + ['std_5fcommon_5ftype_3c_20t_2c_20u_20_3e',['std_common_type< T, U >',['../structboost_1_1hana_1_1detail_1_1std__common__type.html',1,'boost::hana::detail']]], + ['string',['string',['../structboost_1_1hana_1_1string.html',1,'boost::hana']]], + ['string_5ftag',['string_tag',['../structboost_1_1hana_1_1string__tag.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_f.html b/boost_1_63_0/libs/hana/doc/html/search/classes_f.html new file mode 100644 index 0000000..94d9500 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/classes_f.js b/boost_1_63_0/libs/hana/doc/html/search/classes_f.js new file mode 100644 index 0000000..54aeeba --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/classes_f.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['tag_5fof',['tag_of',['../structboost_1_1hana_1_1tag__of.html',1,'boost::hana']]], + ['tag_5fof_3c_20t_20_3e',['tag_of< T >',['../structboost_1_1hana_1_1tag__of.html',1,'boost::hana']]], + ['tuple',['tuple',['../structstd_1_1tuple.html',1,'std']]], + ['tuple',['tuple',['../structboost_1_1hana_1_1tuple.html',1,'boost::hana']]], + ['tuple',['tuple',['../structboost_1_1tuple.html',1,'boost']]], + ['tuple',['tuple',['../structboost_1_1fusion_1_1tuple.html',1,'boost::fusion']]], + ['tuple_5ftag',['tuple_tag',['../structboost_1_1hana_1_1tuple__tag.html',1,'boost::hana']]], + ['type',['type',['../structboost_1_1hana_1_1type.html',1,'boost::hana']]], + ['type_5fat',['type_at',['../structboost_1_1hana_1_1detail_1_1type__at.html',1,'boost::hana::detail']]], + ['type_5ftag',['type_tag',['../structboost_1_1hana_1_1type__tag.html',1,'boost::hana']]], + ['types',['types',['../structboost_1_1hana_1_1experimental_1_1types.html',1,'boost::hana::experimental']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/close.png b/boost_1_63_0/libs/hana/doc/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0y~yVBiK}4mJh`hLvl|)fgBUZg{#lhDb=32JRJdbKton zA<88pBIW$rbWijSKh6tCh9xi%p+@`?Q+n!RFfgXE*8G*v9+3QmISnNMVo7 z`H9O`PI%UrIqQr?-;QWty6>_6MEwdy;?;}uqfAPBP=a-GbCOi*zGvsM5p1Q(t@|@$3uW)T!;1YH0m_+$m z$Gs|^Q+^9Y21Z{Jd;3e_PX6`M`PrAX90e9+N`*&ixX;u#IA8tS@w}AI>(}g>b5kXA dR_DdqvvXBW;1hH`#K6G7;OXk;vd$@?2>^;gZ`%L> literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/search/defines_0.html b/boost_1_63_0/libs/hana/doc/html/search/defines_0.html new file mode 100644 index 0000000..17cfaa2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/defines_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/defines_0.js b/boost_1_63_0/libs/hana/doc/html/search/defines_0.js new file mode 100644 index 0000000..43528d1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['boost_5fhana_5fconfig_5fversion',['BOOST_HANA_CONFIG_VERSION',['../version_8hpp.html#a36988ad8e4f82e0bfb7ff8e4808143a7',1,'version.hpp']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_0.html b/boost_1_63_0/libs/hana/doc/html/search/files_0.html new file mode 100644 index 0000000..0b637cf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_0.js b/boost_1_63_0/libs/hana/doc/html/search/files_0.js new file mode 100644 index 0000000..bcaedfc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_0.js @@ -0,0 +1,44 @@ +var searchData= +[ + ['accessors_2ehpp',['accessors.hpp',['../accessors_8hpp.html',1,'']]], + ['accessors_2ehpp',['accessors.hpp',['../fwd_2accessors_8hpp.html',1,'']]], + ['adapt_5fadt_2ehpp',['adapt_adt.hpp',['../fwd_2adapt__adt_8hpp.html',1,'']]], + ['adapt_5fadt_2ehpp',['adapt_adt.hpp',['../adapt__adt_8hpp.html',1,'']]], + ['adapt_5fstruct_2ehpp',['adapt_struct.hpp',['../adapt__struct_8hpp.html',1,'']]], + ['adapt_5fstruct_2ehpp',['adapt_struct.hpp',['../fwd_2adapt__struct_8hpp.html',1,'']]], + ['adjust_2ehpp',['adjust.hpp',['../fwd_2adjust_8hpp.html',1,'']]], + ['adjust_2ehpp',['adjust.hpp',['../adjust_8hpp.html',1,'']]], + ['adjust_5fif_2ehpp',['adjust_if.hpp',['../adjust__if_8hpp.html',1,'']]], + ['adjust_5fif_2ehpp',['adjust_if.hpp',['../fwd_2adjust__if_8hpp.html',1,'']]], + ['adl_2ehpp',['adl.hpp',['../adl_8hpp.html',1,'']]], + ['algorithm_2ehpp',['algorithm.hpp',['../algorithm_8hpp.html',1,'']]], + ['all_2ehpp',['all.hpp',['../all_8hpp.html',1,'']]], + ['all_2ehpp',['all.hpp',['../fwd_2all_8hpp.html',1,'']]], + ['all_5fof_2ehpp',['all_of.hpp',['../all__of_8hpp.html',1,'']]], + ['all_5fof_2ehpp',['all_of.hpp',['../fwd_2all__of_8hpp.html',1,'']]], + ['always_2ehpp',['always.hpp',['../always_8hpp.html',1,'']]], + ['and_2ehpp',['and.hpp',['../fwd_2and_8hpp.html',1,'']]], + ['and_2ehpp',['and.hpp',['../and_8hpp.html',1,'']]], + ['any_2ehpp',['any.hpp',['../any_8hpp.html',1,'']]], + ['any_2ehpp',['any.hpp',['../fwd_2any_8hpp.html',1,'']]], + ['any_5fof_2ehpp',['any_of.hpp',['../detail_2any__of_8hpp.html',1,'']]], + ['any_5fof_2ehpp',['any_of.hpp',['../fwd_2any__of_8hpp.html',1,'']]], + ['any_5fof_2ehpp',['any_of.hpp',['../any__of_8hpp.html',1,'']]], + ['ap_2ehpp',['ap.hpp',['../fwd_2ap_8hpp.html',1,'']]], + ['ap_2ehpp',['ap.hpp',['../ap_8hpp.html',1,'']]], + ['append_2ehpp',['append.hpp',['../fwd_2append_8hpp.html',1,'']]], + ['append_2ehpp',['append.hpp',['../append_8hpp.html',1,'']]], + ['applicative_2ehpp',['applicative.hpp',['../fwd_2concept_2applicative_8hpp.html',1,'']]], + ['applicative_2ehpp',['applicative.hpp',['../concept_2applicative_8hpp.html',1,'']]], + ['apply_2ehpp',['apply.hpp',['../apply_8hpp.html',1,'']]], + ['arg_2ehpp',['arg.hpp',['../arg_8hpp.html',1,'']]], + ['arithmetic_2ehpp',['arithmetic.hpp',['../arithmetic_8hpp.html',1,'']]], + ['array_2ehpp',['array.hpp',['../detail_2array_8hpp.html',1,'']]], + ['array_2ehpp',['array.hpp',['../ext_2std_2array_8hpp.html',1,'']]], + ['assert_2ehpp',['assert.hpp',['../assert_8hpp.html',1,'']]], + ['at_2ehpp',['at.hpp',['../at_8hpp.html',1,'']]], + ['at_2ehpp',['at.hpp',['../fwd_2at_8hpp.html',1,'']]], + ['at_2ehpp',['at.hpp',['../detail_2variadic_2at_8hpp.html',1,'']]], + ['at_5fkey_2ehpp',['at_key.hpp',['../at__key_8hpp.html',1,'']]], + ['at_5fkey_2ehpp',['at_key.hpp',['../fwd_2at__key_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_1.html b/boost_1_63_0/libs/hana/doc/html/search/files_1.html new file mode 100644 index 0000000..1094e74 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_1.js b/boost_1_63_0/libs/hana/doc/html/search/files_1.js new file mode 100644 index 0000000..81f7a74 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['back_2ehpp',['back.hpp',['../back_8hpp.html',1,'']]], + ['back_2ehpp',['back.hpp',['../fwd_2back_8hpp.html',1,'']]], + ['basic_5ftuple_2ehpp',['basic_tuple.hpp',['../fwd_2basic__tuple_8hpp.html',1,'']]], + ['basic_5ftuple_2ehpp',['basic_tuple.hpp',['../basic__tuple_8hpp.html',1,'']]], + ['bool_2ehpp',['bool.hpp',['../fwd_2bool_8hpp.html',1,'']]], + ['bool_2ehpp',['bool.hpp',['../bool_8hpp.html',1,'']]], + ['boost_2ehpp',['boost.hpp',['../boost_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_10.html b/boost_1_63_0/libs/hana/doc/html/search/files_10.html new file mode 100644 index 0000000..58e9714 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_10.js b/boost_1_63_0/libs/hana/doc/html/search/files_10.js new file mode 100644 index 0000000..b4daeac --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_10.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['scan_5fleft_2ehpp',['scan_left.hpp',['../fwd_2scan__left_8hpp.html',1,'']]], + ['scan_5fleft_2ehpp',['scan_left.hpp',['../scan__left_8hpp.html',1,'']]], + ['scan_5fright_2ehpp',['scan_right.hpp',['../fwd_2scan__right_8hpp.html',1,'']]], + ['scan_5fright_2ehpp',['scan_right.hpp',['../scan__right_8hpp.html',1,'']]], + ['searchable_2ehpp',['searchable.hpp',['../detail_2operators_2searchable_8hpp.html',1,'']]], + ['searchable_2ehpp',['searchable.hpp',['../concept_2searchable_8hpp.html',1,'']]], + ['searchable_2ehpp',['searchable.hpp',['../fwd_2concept_2searchable_8hpp.html',1,'']]], + ['second_2ehpp',['second.hpp',['../fwd_2second_8hpp.html',1,'']]], + ['second_2ehpp',['second.hpp',['../second_8hpp.html',1,'']]], + ['sequence_2ehpp',['sequence.hpp',['../concept_2sequence_8hpp.html',1,'']]], + ['sequence_2ehpp',['sequence.hpp',['../fwd_2concept_2sequence_8hpp.html',1,'']]], + ['set_2ehpp',['set.hpp',['../fwd_2set_8hpp.html',1,'']]], + ['set_2ehpp',['set.hpp',['../set_8hpp.html',1,'']]], + ['size_2ehpp',['size.hpp',['../fwd_2size_8hpp.html',1,'']]], + ['size_2ehpp',['size.hpp',['../size_8hpp.html',1,'']]], + ['slice_2ehpp',['slice.hpp',['../slice_8hpp.html',1,'']]], + ['slice_2ehpp',['slice.hpp',['../fwd_2slice_8hpp.html',1,'']]], + ['sort_2ehpp',['sort.hpp',['../fwd_2sort_8hpp.html',1,'']]], + ['sort_2ehpp',['sort.hpp',['../sort_8hpp.html',1,'']]], + ['span_2ehpp',['span.hpp',['../span_8hpp.html',1,'']]], + ['span_2ehpp',['span.hpp',['../fwd_2span_8hpp.html',1,'']]], + ['split_5fat_2ehpp',['split_at.hpp',['../split__at_8hpp.html',1,'']]], + ['std_2ehpp',['std.hpp',['../std_8hpp.html',1,'']]], + ['std_5fcommon_5ftype_2ehpp',['std_common_type.hpp',['../std__common__type_8hpp.html',1,'']]], + ['string_2ehpp',['string.hpp',['../fwd_2string_8hpp.html',1,'']]], + ['string_2ehpp',['string.hpp',['../string_8hpp.html',1,'']]], + ['struct_2ehpp',['struct.hpp',['../fwd_2concept_2struct_8hpp.html',1,'']]], + ['struct_2ehpp',['struct.hpp',['../concept_2struct_8hpp.html',1,'']]], + ['struct_5fmacros_2ehpp',['struct_macros.hpp',['../struct__macros_8hpp.html',1,'']]], + ['suffix_2ehpp',['suffix.hpp',['../suffix_8hpp.html',1,'']]], + ['suffix_2ehpp',['suffix.hpp',['../fwd_2suffix_8hpp.html',1,'']]], + ['sum_2ehpp',['sum.hpp',['../sum_8hpp.html',1,'']]], + ['sum_2ehpp',['sum.hpp',['../fwd_2sum_8hpp.html',1,'']]], + ['symmetric_5fdifference_2ehpp',['symmetric_difference.hpp',['../symmetric__difference_8hpp.html',1,'']]], + ['symmetric_5fdifference_2ehpp',['symmetric_difference.hpp',['../fwd_2symmetric__difference_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_11.html b/boost_1_63_0/libs/hana/doc/html/search/files_11.html new file mode 100644 index 0000000..3fcb1cc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_11.js b/boost_1_63_0/libs/hana/doc/html/search/files_11.js new file mode 100644 index 0000000..375c5e7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_11.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['tag_5fof_2ehpp',['tag_of.hpp',['../core_2tag__of_8hpp.html',1,'']]], + ['tag_5fof_2ehpp',['tag_of.hpp',['../fwd_2core_2tag__of_8hpp.html',1,'']]], + ['take_2ehpp',['take.hpp',['../take_8hpp.html',1,'']]], + ['take_5fback_2ehpp',['take_back.hpp',['../take__back_8hpp.html',1,'']]], + ['take_5fback_2ehpp',['take_back.hpp',['../fwd_2take__back_8hpp.html',1,'']]], + ['take_5ffront_2ehpp',['take_front.hpp',['../fwd_2take__front_8hpp.html',1,'']]], + ['take_5ffront_2ehpp',['take_front.hpp',['../take__front_8hpp.html',1,'']]], + ['take_5fwhile_2ehpp',['take_while.hpp',['../fwd_2take__while_8hpp.html',1,'']]], + ['take_5fwhile_2ehpp',['take_while.hpp',['../take__while_8hpp.html',1,'']]], + ['tap_2ehpp',['tap.hpp',['../fwd_2tap_8hpp.html',1,'']]], + ['tap_2ehpp',['tap.hpp',['../tap_8hpp.html',1,'']]], + ['then_2ehpp',['then.hpp',['../fwd_2then_8hpp.html',1,'']]], + ['then_2ehpp',['then.hpp',['../then_8hpp.html',1,'']]], + ['to_2ehpp',['to.hpp',['../fwd_2core_2to_8hpp.html',1,'']]], + ['to_2ehpp',['to.hpp',['../core_2to_8hpp.html',1,'']]], + ['traits_2ehpp',['traits.hpp',['../traits_8hpp.html',1,'']]], + ['transform_2ehpp',['transform.hpp',['../fwd_2transform_8hpp.html',1,'']]], + ['transform_2ehpp',['transform.hpp',['../transform_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../ext_2std_2tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../ext_2boost_2fusion_2tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../ext_2boost_2tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../fwd_2tuple_8hpp.html',1,'']]], + ['tuple_2ehpp',['tuple.hpp',['../tuple_8hpp.html',1,'']]], + ['type_2ehpp',['type.hpp',['../type_8hpp.html',1,'']]], + ['type_2ehpp',['type.hpp',['../fwd_2type_8hpp.html',1,'']]], + ['type_5fat_2ehpp',['type_at.hpp',['../type__at_8hpp.html',1,'']]], + ['type_5ffoldl1_2ehpp',['type_foldl1.hpp',['../type__foldl1_8hpp.html',1,'']]], + ['type_5ffoldr1_2ehpp',['type_foldr1.hpp',['../type__foldr1_8hpp.html',1,'']]], + ['types_2ehpp',['types.hpp',['../types_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_12.html b/boost_1_63_0/libs/hana/doc/html/search/files_12.html new file mode 100644 index 0000000..f68184b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_12.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_12.js b/boost_1_63_0/libs/hana/doc/html/search/files_12.js new file mode 100644 index 0000000..19d3dc1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_12.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['unfold_5fleft_2ehpp',['unfold_left.hpp',['../fwd_2unfold__left_8hpp.html',1,'']]], + ['unfold_5fleft_2ehpp',['unfold_left.hpp',['../unfold__left_8hpp.html',1,'']]], + ['unfold_5fright_2ehpp',['unfold_right.hpp',['../fwd_2unfold__right_8hpp.html',1,'']]], + ['unfold_5fright_2ehpp',['unfold_right.hpp',['../unfold__right_8hpp.html',1,'']]], + ['union_2ehpp',['union.hpp',['../union_8hpp.html',1,'']]], + ['union_2ehpp',['union.hpp',['../fwd_2union_8hpp.html',1,'']]], + ['unique_2ehpp',['unique.hpp',['../fwd_2unique_8hpp.html',1,'']]], + ['unique_2ehpp',['unique.hpp',['../unique_8hpp.html',1,'']]], + ['unpack_2ehpp',['unpack.hpp',['../fwd_2unpack_8hpp.html',1,'']]], + ['unpack_2ehpp',['unpack.hpp',['../unpack_8hpp.html',1,'']]], + ['unpack_5fflatten_2ehpp',['unpack_flatten.hpp',['../unpack__flatten_8hpp.html',1,'']]], + ['unrolled_2ehpp',['unrolled.hpp',['../unrolled_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_13.html b/boost_1_63_0/libs/hana/doc/html/search/files_13.html new file mode 100644 index 0000000..8f4d9e9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_13.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_13.js b/boost_1_63_0/libs/hana/doc/html/search/files_13.js new file mode 100644 index 0000000..b060e1a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_13.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['value_2ehpp',['value.hpp',['../fwd_2value_8hpp.html',1,'']]], + ['value_2ehpp',['value.hpp',['../value_8hpp.html',1,'']]], + ['vector_2ehpp',['vector.hpp',['../boost_2fusion_2vector_8hpp.html',1,'']]], + ['vector_2ehpp',['vector.hpp',['../std_2vector_8hpp.html',1,'']]], + ['vector_2ehpp',['vector.hpp',['../boost_2mpl_2vector_8hpp.html',1,'']]], + ['version_2ehpp',['version.hpp',['../version_8hpp.html',1,'']]], + ['void_5ft_2ehpp',['void_t.hpp',['../void__t_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_14.html b/boost_1_63_0/libs/hana/doc/html/search/files_14.html new file mode 100644 index 0000000..49b98f8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_14.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_14.js b/boost_1_63_0/libs/hana/doc/html/search/files_14.js new file mode 100644 index 0000000..232c4e9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_14.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['when_2ehpp',['when.hpp',['../core_2when_8hpp.html',1,'']]], + ['when_2ehpp',['when.hpp',['../fwd_2core_2when_8hpp.html',1,'']]], + ['while_2ehpp',['while.hpp',['../fwd_2while_8hpp.html',1,'']]], + ['while_2ehpp',['while.hpp',['../while_8hpp.html',1,'']]], + ['wrong_2ehpp',['wrong.hpp',['../wrong_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_15.html b/boost_1_63_0/libs/hana/doc/html/search/files_15.html new file mode 100644 index 0000000..ade46a7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_15.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_15.js b/boost_1_63_0/libs/hana/doc/html/search/files_15.js new file mode 100644 index 0000000..ae9e156 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_15.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['zero_2ehpp',['zero.hpp',['../fwd_2zero_8hpp.html',1,'']]], + ['zero_2ehpp',['zero.hpp',['../zero_8hpp.html',1,'']]], + ['zip_2ehpp',['zip.hpp',['../zip_8hpp.html',1,'']]], + ['zip_2ehpp',['zip.hpp',['../fwd_2zip_8hpp.html',1,'']]], + ['zip_5fshortest_2ehpp',['zip_shortest.hpp',['../fwd_2zip__shortest_8hpp.html',1,'']]], + ['zip_5fshortest_2ehpp',['zip_shortest.hpp',['../zip__shortest_8hpp.html',1,'']]], + ['zip_5fshortest_5fwith_2ehpp',['zip_shortest_with.hpp',['../fwd_2zip__shortest__with_8hpp.html',1,'']]], + ['zip_5fshortest_5fwith_2ehpp',['zip_shortest_with.hpp',['../zip__shortest__with_8hpp.html',1,'']]], + ['zip_5fwith_2ehpp',['zip_with.hpp',['../zip__with_8hpp.html',1,'']]], + ['zip_5fwith_2ehpp',['zip_with.hpp',['../fwd_2zip__with_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_2.html b/boost_1_63_0/libs/hana/doc/html/search/files_2.html new file mode 100644 index 0000000..a08dbd3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_2.js b/boost_1_63_0/libs/hana/doc/html/search/files_2.js new file mode 100644 index 0000000..b648e7d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_2.js @@ -0,0 +1,39 @@ +var searchData= +[ + ['canonical_5fconstant_2ehpp',['canonical_constant.hpp',['../canonical__constant_8hpp.html',1,'']]], + ['capture_2ehpp',['capture.hpp',['../capture_8hpp.html',1,'']]], + ['cartesian_5fproduct_2ehpp',['cartesian_product.hpp',['../fwd_2cartesian__product_8hpp.html',1,'']]], + ['cartesian_5fproduct_2ehpp',['cartesian_product.hpp',['../cartesian__product_8hpp.html',1,'']]], + ['chain_2ehpp',['chain.hpp',['../fwd_2chain_8hpp.html',1,'']]], + ['chain_2ehpp',['chain.hpp',['../chain_8hpp.html',1,'']]], + ['common_2ehpp',['common.hpp',['../core_2common_8hpp.html',1,'']]], + ['common_2ehpp',['common.hpp',['../ext_2boost_2fusion_2detail_2common_8hpp.html',1,'']]], + ['common_2ehpp',['common.hpp',['../fwd_2core_2common_8hpp.html',1,'']]], + ['comonad_2ehpp',['comonad.hpp',['../fwd_2concept_2comonad_8hpp.html',1,'']]], + ['comonad_2ehpp',['comonad.hpp',['../concept_2comonad_8hpp.html',1,'']]], + ['comparable_2ehpp',['comparable.hpp',['../concept_2comparable_8hpp.html',1,'']]], + ['comparable_2ehpp',['comparable.hpp',['../detail_2operators_2comparable_8hpp.html',1,'']]], + ['comparable_2ehpp',['comparable.hpp',['../fwd_2concept_2comparable_8hpp.html',1,'']]], + ['comparing_2ehpp',['comparing.hpp',['../comparing_8hpp.html',1,'']]], + ['comparing_2ehpp',['comparing.hpp',['../fwd_2comparing_8hpp.html',1,'']]], + ['compose_2ehpp',['compose.hpp',['../compose_8hpp.html',1,'']]], + ['concat_2ehpp',['concat.hpp',['../fwd_2concat_8hpp.html',1,'']]], + ['concat_2ehpp',['concat.hpp',['../concat_8hpp.html',1,'']]], + ['concept_2ehpp',['concept.hpp',['../concept_8hpp.html',1,'']]], + ['concepts_2ehpp',['concepts.hpp',['../concepts_8hpp.html',1,'']]], + ['config_2ehpp',['config.hpp',['../config_8hpp.html',1,'']]], + ['constant_2ehpp',['constant.hpp',['../fwd_2concept_2constant_8hpp.html',1,'']]], + ['constant_2ehpp',['constant.hpp',['../concept_2constant_8hpp.html',1,'']]], + ['contains_2ehpp',['contains.hpp',['../contains_8hpp.html',1,'']]], + ['contains_2ehpp',['contains.hpp',['../fwd_2contains_8hpp.html',1,'']]], + ['core_2ehpp',['core.hpp',['../core_8hpp.html',1,'']]], + ['core_2ehpp',['core.hpp',['../fwd_2core_8hpp.html',1,'']]], + ['count_2ehpp',['count.hpp',['../fwd_2count_8hpp.html',1,'']]], + ['count_2ehpp',['count.hpp',['../count_8hpp.html',1,'']]], + ['count_5fif_2ehpp',['count_if.hpp',['../count__if_8hpp.html',1,'']]], + ['count_5fif_2ehpp',['count_if.hpp',['../fwd_2count__if_8hpp.html',1,'']]], + ['create_2ehpp',['create.hpp',['../create_8hpp.html',1,'']]], + ['curry_2ehpp',['curry.hpp',['../curry_8hpp.html',1,'']]], + ['cycle_2ehpp',['cycle.hpp',['../fwd_2cycle_8hpp.html',1,'']]], + ['cycle_2ehpp',['cycle.hpp',['../cycle_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_3.html b/boost_1_63_0/libs/hana/doc/html/search/files_3.html new file mode 100644 index 0000000..647fc8d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_3.js b/boost_1_63_0/libs/hana/doc/html/search/files_3.js new file mode 100644 index 0000000..66e1275 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_3.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['decay_2ehpp',['decay.hpp',['../decay_8hpp.html',1,'']]], + ['default_2ehpp',['default.hpp',['../fwd_2core_2default_8hpp.html',1,'']]], + ['default_2ehpp',['default.hpp',['../core_2default_8hpp.html',1,'']]], + ['define_5fstruct_2ehpp',['define_struct.hpp',['../define__struct_8hpp.html',1,'']]], + ['define_5fstruct_2ehpp',['define_struct.hpp',['../fwd_2define__struct_8hpp.html',1,'']]], + ['demux_2ehpp',['demux.hpp',['../demux_8hpp.html',1,'']]], + ['dependent_5fon_2ehpp',['dependent_on.hpp',['../dependent__on_8hpp.html',1,'']]], + ['deque_2ehpp',['deque.hpp',['../deque_8hpp.html',1,'']]], + ['difference_2ehpp',['difference.hpp',['../difference_8hpp.html',1,'']]], + ['difference_2ehpp',['difference.hpp',['../fwd_2difference_8hpp.html',1,'']]], + ['dispatch_2ehpp',['dispatch.hpp',['../dispatch_8hpp.html',1,'']]], + ['dispatch_5fif_2ehpp',['dispatch_if.hpp',['../dispatch__if_8hpp.html',1,'']]], + ['div_2ehpp',['div.hpp',['../div_8hpp.html',1,'']]], + ['div_2ehpp',['div.hpp',['../fwd_2div_8hpp.html',1,'']]], + ['drop_5fback_2ehpp',['drop_back.hpp',['../fwd_2drop__back_8hpp.html',1,'']]], + ['drop_5fback_2ehpp',['drop_back.hpp',['../drop__back_8hpp.html',1,'']]], + ['drop_5ffront_2ehpp',['drop_front.hpp',['../drop__front_8hpp.html',1,'']]], + ['drop_5ffront_2ehpp',['drop_front.hpp',['../fwd_2drop__front_8hpp.html',1,'']]], + ['drop_5ffront_5fexactly_2ehpp',['drop_front_exactly.hpp',['../drop__front__exactly_8hpp.html',1,'']]], + ['drop_5ffront_5fexactly_2ehpp',['drop_front_exactly.hpp',['../fwd_2drop__front__exactly_8hpp.html',1,'']]], + ['drop_5finto_2ehpp',['drop_into.hpp',['../drop__into_8hpp.html',1,'']]], + ['drop_5fwhile_2ehpp',['drop_while.hpp',['../drop__while_8hpp.html',1,'']]], + ['drop_5fwhile_2ehpp',['drop_while.hpp',['../fwd_2drop__while_8hpp.html',1,'']]], + ['duplicate_2ehpp',['duplicate.hpp',['../duplicate_8hpp.html',1,'']]], + ['duplicate_2ehpp',['duplicate.hpp',['../fwd_2duplicate_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_4.html b/boost_1_63_0/libs/hana/doc/html/search/files_4.html new file mode 100644 index 0000000..186557a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_4.js b/boost_1_63_0/libs/hana/doc/html/search/files_4.js new file mode 100644 index 0000000..adca1d6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_4.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['empty_2ehpp',['empty.hpp',['../empty_8hpp.html',1,'']]], + ['empty_2ehpp',['empty.hpp',['../fwd_2empty_8hpp.html',1,'']]], + ['equal_2ehpp',['equal.hpp',['../equal_8hpp.html',1,'']]], + ['equal_2ehpp',['equal.hpp',['../fwd_2equal_8hpp.html',1,'']]], + ['erase_5fkey_2ehpp',['erase_key.hpp',['../fwd_2erase__key_8hpp.html',1,'']]], + ['erase_5fkey_2ehpp',['erase_key.hpp',['../erase__key_8hpp.html',1,'']]], + ['euclidean_5fring_2ehpp',['euclidean_ring.hpp',['../fwd_2concept_2euclidean__ring_8hpp.html',1,'']]], + ['euclidean_5fring_2ehpp',['euclidean_ring.hpp',['../concept_2euclidean__ring_8hpp.html',1,'']]], + ['eval_2ehpp',['eval.hpp',['../eval_8hpp.html',1,'']]], + ['eval_2ehpp',['eval.hpp',['../fwd_2eval_8hpp.html',1,'']]], + ['eval_5fif_2ehpp',['eval_if.hpp',['../eval__if_8hpp.html',1,'']]], + ['eval_5fif_2ehpp',['eval_if.hpp',['../fwd_2eval__if_8hpp.html',1,'']]], + ['extend_2ehpp',['extend.hpp',['../extend_8hpp.html',1,'']]], + ['extend_2ehpp',['extend.hpp',['../fwd_2extend_8hpp.html',1,'']]], + ['extract_2ehpp',['extract.hpp',['../fwd_2extract_8hpp.html',1,'']]], + ['extract_2ehpp',['extract.hpp',['../extract_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_5.html b/boost_1_63_0/libs/hana/doc/html/search/files_5.html new file mode 100644 index 0000000..671abd3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_5.js b/boost_1_63_0/libs/hana/doc/html/search/files_5.js new file mode 100644 index 0000000..7035caf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_5.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['fast_5fand_2ehpp',['fast_and.hpp',['../fast__and_8hpp.html',1,'']]], + ['fill_2ehpp',['fill.hpp',['../fill_8hpp.html',1,'']]], + ['fill_2ehpp',['fill.hpp',['../fwd_2fill_8hpp.html',1,'']]], + ['filter_2ehpp',['filter.hpp',['../filter_8hpp.html',1,'']]], + ['filter_2ehpp',['filter.hpp',['../fwd_2filter_8hpp.html',1,'']]], + ['find_2ehpp',['find.hpp',['../fwd_2find_8hpp.html',1,'']]], + ['find_2ehpp',['find.hpp',['../find_8hpp.html',1,'']]], + ['find_5fif_2ehpp',['find_if.hpp',['../find__if_8hpp.html',1,'']]], + ['find_5fif_2ehpp',['find_if.hpp',['../fwd_2find__if_8hpp.html',1,'']]], + ['first_2ehpp',['first.hpp',['../first_8hpp.html',1,'']]], + ['first_2ehpp',['first.hpp',['../fwd_2first_8hpp.html',1,'']]], + ['first_5funsatisfied_5findex_2ehpp',['first_unsatisfied_index.hpp',['../first__unsatisfied__index_8hpp.html',1,'']]], + ['fix_2ehpp',['fix.hpp',['../fix_8hpp.html',1,'']]], + ['flat_2ehpp',['flat.hpp',['../flat_8hpp.html',1,'']]], + ['flatten_2ehpp',['flatten.hpp',['../flatten_8hpp.html',1,'']]], + ['flatten_2ehpp',['flatten.hpp',['../fwd_2flatten_8hpp.html',1,'']]], + ['flip_2ehpp',['flip.hpp',['../flip_8hpp.html',1,'']]], + ['fold_2ehpp',['fold.hpp',['../fold_8hpp.html',1,'']]], + ['fold_2ehpp',['fold.hpp',['../fwd_2fold_8hpp.html',1,'']]], + ['fold_5fleft_2ehpp',['fold_left.hpp',['../fold__left_8hpp.html',1,'']]], + ['fold_5fleft_2ehpp',['fold_left.hpp',['../fwd_2fold__left_8hpp.html',1,'']]], + ['fold_5fright_2ehpp',['fold_right.hpp',['../fold__right_8hpp.html',1,'']]], + ['fold_5fright_2ehpp',['fold_right.hpp',['../fwd_2fold__right_8hpp.html',1,'']]], + ['foldable_2ehpp',['foldable.hpp',['../fwd_2concept_2foldable_8hpp.html',1,'']]], + ['foldable_2ehpp',['foldable.hpp',['../concept_2foldable_8hpp.html',1,'']]], + ['foldl1_2ehpp',['foldl1.hpp',['../foldl1_8hpp.html',1,'']]], + ['foldr1_2ehpp',['foldr1.hpp',['../foldr1_8hpp.html',1,'']]], + ['for_5feach_2ehpp',['for_each.hpp',['../for__each_8hpp.html',1,'']]], + ['for_5feach_2ehpp',['for_each.hpp',['../fwd_2for__each_8hpp.html',1,'']]], + ['front_2ehpp',['front.hpp',['../fwd_2front_8hpp.html',1,'']]], + ['front_2ehpp',['front.hpp',['../front_8hpp.html',1,'']]], + ['functional_2ehpp',['functional.hpp',['../functional_8hpp.html',1,'']]], + ['functor_2ehpp',['functor.hpp',['../concept_2functor_8hpp.html',1,'']]], + ['functor_2ehpp',['functor.hpp',['../fwd_2concept_2functor_8hpp.html',1,'']]], + ['fuse_2ehpp',['fuse.hpp',['../fwd_2fuse_8hpp.html',1,'']]], + ['fuse_2ehpp',['fuse.hpp',['../fuse_8hpp.html',1,'']]], + ['fusion_2ehpp',['fusion.hpp',['../fusion_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_6.html b/boost_1_63_0/libs/hana/doc/html/search/files_6.html new file mode 100644 index 0000000..73aff18 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_6.js b/boost_1_63_0/libs/hana/doc/html/search/files_6.js new file mode 100644 index 0000000..aa3f6c5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_6.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['greater_2ehpp',['greater.hpp',['../fwd_2greater_8hpp.html',1,'']]], + ['greater_2ehpp',['greater.hpp',['../greater_8hpp.html',1,'']]], + ['greater_5fequal_2ehpp',['greater_equal.hpp',['../greater__equal_8hpp.html',1,'']]], + ['greater_5fequal_2ehpp',['greater_equal.hpp',['../fwd_2greater__equal_8hpp.html',1,'']]], + ['group_2ehpp',['group.hpp',['../fwd_2concept_2group_8hpp.html',1,'']]], + ['group_2ehpp',['group.hpp',['../concept_2group_8hpp.html',1,'']]], + ['group_2ehpp',['group.hpp',['../fwd_2group_8hpp.html',1,'']]], + ['group_2ehpp',['group.hpp',['../group_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_7.html b/boost_1_63_0/libs/hana/doc/html/search/files_7.html new file mode 100644 index 0000000..364f420 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_7.js b/boost_1_63_0/libs/hana/doc/html/search/files_7.js new file mode 100644 index 0000000..be762c0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_7.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['hana_2ehpp',['hana.hpp',['../hana_8hpp.html',1,'']]], + ['has_5fcommon_5fembedding_2ehpp',['has_common_embedding.hpp',['../has__common__embedding_8hpp.html',1,'']]], + ['has_5fduplicates_2ehpp',['has_duplicates.hpp',['../has__duplicates_8hpp.html',1,'']]], + ['hash_2ehpp',['hash.hpp',['../hash_8hpp.html',1,'']]], + ['hash_2ehpp',['hash.hpp',['../fwd_2hash_8hpp.html',1,'']]], + ['hash_5ftable_2ehpp',['hash_table.hpp',['../hash__table_8hpp.html',1,'']]], + ['hashable_2ehpp',['hashable.hpp',['../concept_2hashable_8hpp.html',1,'']]], + ['hashable_2ehpp',['hashable.hpp',['../fwd_2concept_2hashable_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_8.html b/boost_1_63_0/libs/hana/doc/html/search/files_8.html new file mode 100644 index 0000000..f9f7943 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_8.js b/boost_1_63_0/libs/hana/doc/html/search/files_8.js new file mode 100644 index 0000000..800d221 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_8.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['id_2ehpp',['id.hpp',['../id_8hpp.html',1,'']]], + ['if_2ehpp',['if.hpp',['../fwd_2if_8hpp.html',1,'']]], + ['if_2ehpp',['if.hpp',['../if_8hpp.html',1,'']]], + ['index_5fif_2ehpp',['index_if.hpp',['../index__if_8hpp.html',1,'']]], + ['infix_2ehpp',['infix.hpp',['../infix_8hpp.html',1,'']]], + ['insert_2ehpp',['insert.hpp',['../fwd_2insert_8hpp.html',1,'']]], + ['insert_2ehpp',['insert.hpp',['../insert_8hpp.html',1,'']]], + ['insert_5frange_2ehpp',['insert_range.hpp',['../fwd_2insert__range_8hpp.html',1,'']]], + ['insert_5frange_2ehpp',['insert_range.hpp',['../insert__range_8hpp.html',1,'']]], + ['integer_5fsequence_2ehpp',['integer_sequence.hpp',['../integer__sequence_8hpp.html',1,'']]], + ['integral_5fc_2ehpp',['integral_c.hpp',['../integral__c_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../detail_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../fwd_2concept_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../fwd_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../ext_2std_2integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../integral__constant_8hpp.html',1,'']]], + ['integral_5fconstant_2ehpp',['integral_constant.hpp',['../concept_2integral__constant_8hpp.html',1,'']]], + ['intersection_2ehpp',['intersection.hpp',['../fwd_2intersection_8hpp.html',1,'']]], + ['intersection_2ehpp',['intersection.hpp',['../intersection_8hpp.html',1,'']]], + ['intersperse_2ehpp',['intersperse.hpp',['../fwd_2intersperse_8hpp.html',1,'']]], + ['intersperse_2ehpp',['intersperse.hpp',['../intersperse_8hpp.html',1,'']]], + ['intrinsics_2ehpp',['intrinsics.hpp',['../intrinsics_8hpp.html',1,'']]], + ['is_5fa_2ehpp',['is_a.hpp',['../core_2is__a_8hpp.html',1,'']]], + ['is_5fa_2ehpp',['is_a.hpp',['../fwd_2core_2is__a_8hpp.html',1,'']]], + ['is_5fdisjoint_2ehpp',['is_disjoint.hpp',['../is__disjoint_8hpp.html',1,'']]], + ['is_5fdisjoint_2ehpp',['is_disjoint.hpp',['../fwd_2is__disjoint_8hpp.html',1,'']]], + ['is_5fempty_2ehpp',['is_empty.hpp',['../is__empty_8hpp.html',1,'']]], + ['is_5fempty_2ehpp',['is_empty.hpp',['../fwd_2is__empty_8hpp.html',1,'']]], + ['is_5fsubset_2ehpp',['is_subset.hpp',['../fwd_2is__subset_8hpp.html',1,'']]], + ['is_5fsubset_2ehpp',['is_subset.hpp',['../is__subset_8hpp.html',1,'']]], + ['iterable_2ehpp',['iterable.hpp',['../concept_2iterable_8hpp.html',1,'']]], + ['iterable_2ehpp',['iterable.hpp',['../fwd_2concept_2iterable_8hpp.html',1,'']]], + ['iterable_2ehpp',['iterable.hpp',['../detail_2operators_2iterable_8hpp.html',1,'']]], + ['iterate_2ehpp',['iterate.hpp',['../iterate_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_9.html b/boost_1_63_0/libs/hana/doc/html/search/files_9.html new file mode 100644 index 0000000..306f000 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_9.js b/boost_1_63_0/libs/hana/doc/html/search/files_9.js new file mode 100644 index 0000000..d08e46d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['keys_2ehpp',['keys.hpp',['../fwd_2keys_8hpp.html',1,'']]], + ['keys_2ehpp',['keys.hpp',['../keys_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_a.html b/boost_1_63_0/libs/hana/doc/html/search/files_a.html new file mode 100644 index 0000000..2f6ff8f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_a.js b/boost_1_63_0/libs/hana/doc/html/search/files_a.js new file mode 100644 index 0000000..44ee399 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_a.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['lazy_2ehpp',['lazy.hpp',['../fwd_2lazy_8hpp.html',1,'']]], + ['lazy_2ehpp',['lazy.hpp',['../lazy_8hpp.html',1,'']]], + ['length_2ehpp',['length.hpp',['../fwd_2length_8hpp.html',1,'']]], + ['length_2ehpp',['length.hpp',['../length_8hpp.html',1,'']]], + ['less_2ehpp',['less.hpp',['../fwd_2less_8hpp.html',1,'']]], + ['less_2ehpp',['less.hpp',['../less_8hpp.html',1,'']]], + ['less_5fequal_2ehpp',['less_equal.hpp',['../fwd_2less__equal_8hpp.html',1,'']]], + ['less_5fequal_2ehpp',['less_equal.hpp',['../less__equal_8hpp.html',1,'']]], + ['lexicographical_5fcompare_2ehpp',['lexicographical_compare.hpp',['../fwd_2lexicographical__compare_8hpp.html',1,'']]], + ['lexicographical_5fcompare_2ehpp',['lexicographical_compare.hpp',['../lexicographical__compare_8hpp.html',1,'']]], + ['lift_2ehpp',['lift.hpp',['../fwd_2lift_8hpp.html',1,'']]], + ['lift_2ehpp',['lift.hpp',['../lift_8hpp.html',1,'']]], + ['list_2ehpp',['list.hpp',['../mpl_2list_8hpp.html',1,'']]], + ['list_2ehpp',['list.hpp',['../fusion_2list_8hpp.html',1,'']]], + ['lockstep_2ehpp',['lockstep.hpp',['../lockstep_8hpp.html',1,'']]], + ['logical_2ehpp',['logical.hpp',['../concept_2logical_8hpp.html',1,'']]], + ['logical_2ehpp',['logical.hpp',['../fwd_2concept_2logical_8hpp.html',1,'']]], + ['logical_2ehpp',['logical.hpp',['../detail_2operators_2logical_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_b.html b/boost_1_63_0/libs/hana/doc/html/search/files_b.html new file mode 100644 index 0000000..3e51d90 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_b.js b/boost_1_63_0/libs/hana/doc/html/search/files_b.js new file mode 100644 index 0000000..1f4a171 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_b.js @@ -0,0 +1,39 @@ +var searchData= +[ + ['make_2ehpp',['make.hpp',['../core_2make_8hpp.html',1,'']]], + ['make_2ehpp',['make.hpp',['../fwd_2core_2make_8hpp.html',1,'']]], + ['map_2ehpp',['map.hpp',['../fwd_2map_8hpp.html',1,'']]], + ['map_2ehpp',['map.hpp',['../map_8hpp.html',1,'']]], + ['max_2ehpp',['max.hpp',['../max_8hpp.html',1,'']]], + ['max_2ehpp',['max.hpp',['../fwd_2max_8hpp.html',1,'']]], + ['maximum_2ehpp',['maximum.hpp',['../fwd_2maximum_8hpp.html',1,'']]], + ['maximum_2ehpp',['maximum.hpp',['../maximum_8hpp.html',1,'']]], + ['members_2ehpp',['members.hpp',['../fwd_2members_8hpp.html',1,'']]], + ['members_2ehpp',['members.hpp',['../members_8hpp.html',1,'']]], + ['metafunction_2ehpp',['metafunction.hpp',['../concept_2metafunction_8hpp.html',1,'']]], + ['metafunction_2ehpp',['metafunction.hpp',['../fwd_2concept_2metafunction_8hpp.html',1,'']]], + ['min_2ehpp',['min.hpp',['../fwd_2min_8hpp.html',1,'']]], + ['min_2ehpp',['min.hpp',['../min_8hpp.html',1,'']]], + ['minimum_2ehpp',['minimum.hpp',['../fwd_2minimum_8hpp.html',1,'']]], + ['minimum_2ehpp',['minimum.hpp',['../minimum_8hpp.html',1,'']]], + ['minus_2ehpp',['minus.hpp',['../fwd_2minus_8hpp.html',1,'']]], + ['minus_2ehpp',['minus.hpp',['../minus_8hpp.html',1,'']]], + ['mod_2ehpp',['mod.hpp',['../fwd_2mod_8hpp.html',1,'']]], + ['mod_2ehpp',['mod.hpp',['../mod_8hpp.html',1,'']]], + ['monad_2ehpp',['monad.hpp',['../detail_2operators_2monad_8hpp.html',1,'']]], + ['monad_2ehpp',['monad.hpp',['../fwd_2concept_2monad_8hpp.html',1,'']]], + ['monad_2ehpp',['monad.hpp',['../concept_2monad_8hpp.html',1,'']]], + ['monad_5fplus_2ehpp',['monad_plus.hpp',['../concept_2monad__plus_8hpp.html',1,'']]], + ['monad_5fplus_2ehpp',['monad_plus.hpp',['../fwd_2concept_2monad__plus_8hpp.html',1,'']]], + ['monadic_5fcompose_2ehpp',['monadic_compose.hpp',['../fwd_2monadic__compose_8hpp.html',1,'']]], + ['monadic_5fcompose_2ehpp',['monadic_compose.hpp',['../monadic__compose_8hpp.html',1,'']]], + ['monadic_5ffold_5fleft_2ehpp',['monadic_fold_left.hpp',['../monadic__fold__left_8hpp.html',1,'']]], + ['monadic_5ffold_5fleft_2ehpp',['monadic_fold_left.hpp',['../fwd_2monadic__fold__left_8hpp.html',1,'']]], + ['monadic_5ffold_5fright_2ehpp',['monadic_fold_right.hpp',['../fwd_2monadic__fold__right_8hpp.html',1,'']]], + ['monadic_5ffold_5fright_2ehpp',['monadic_fold_right.hpp',['../monadic__fold__right_8hpp.html',1,'']]], + ['monoid_2ehpp',['monoid.hpp',['../concept_2monoid_8hpp.html',1,'']]], + ['monoid_2ehpp',['monoid.hpp',['../fwd_2concept_2monoid_8hpp.html',1,'']]], + ['mpl_2ehpp',['mpl.hpp',['../mpl_8hpp.html',1,'']]], + ['mult_2ehpp',['mult.hpp',['../fwd_2mult_8hpp.html',1,'']]], + ['mult_2ehpp',['mult.hpp',['../mult_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_c.html b/boost_1_63_0/libs/hana/doc/html/search/files_c.html new file mode 100644 index 0000000..af49202 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_c.js b/boost_1_63_0/libs/hana/doc/html/search/files_c.js new file mode 100644 index 0000000..1065945 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_c.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['negate_2ehpp',['negate.hpp',['../fwd_2negate_8hpp.html',1,'']]], + ['negate_2ehpp',['negate.hpp',['../negate_8hpp.html',1,'']]], + ['nested_5fby_2ehpp',['nested_by.hpp',['../nested__by_8hpp.html',1,'']]], + ['nested_5fby_5ffwd_2ehpp',['nested_by_fwd.hpp',['../nested__by__fwd_8hpp.html',1,'']]], + ['nested_5fthan_2ehpp',['nested_than.hpp',['../nested__than_8hpp.html',1,'']]], + ['nested_5fthan_5ffwd_2ehpp',['nested_than_fwd.hpp',['../nested__than__fwd_8hpp.html',1,'']]], + ['nested_5fto_2ehpp',['nested_to.hpp',['../nested__to_8hpp.html',1,'']]], + ['nested_5fto_5ffwd_2ehpp',['nested_to_fwd.hpp',['../nested__to__fwd_8hpp.html',1,'']]], + ['none_2ehpp',['none.hpp',['../fwd_2none_8hpp.html',1,'']]], + ['none_2ehpp',['none.hpp',['../none_8hpp.html',1,'']]], + ['none_5fof_2ehpp',['none_of.hpp',['../fwd_2none__of_8hpp.html',1,'']]], + ['none_5fof_2ehpp',['none_of.hpp',['../none__of_8hpp.html',1,'']]], + ['not_2ehpp',['not.hpp',['../not_8hpp.html',1,'']]], + ['not_2ehpp',['not.hpp',['../fwd_2not_8hpp.html',1,'']]], + ['not_5fequal_2ehpp',['not_equal.hpp',['../not__equal_8hpp.html',1,'']]], + ['not_5fequal_2ehpp',['not_equal.hpp',['../fwd_2not__equal_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_d.html b/boost_1_63_0/libs/hana/doc/html/search/files_d.html new file mode 100644 index 0000000..3d4c2c2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_d.js b/boost_1_63_0/libs/hana/doc/html/search/files_d.js new file mode 100644 index 0000000..1278a87 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_d.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['on_2ehpp',['on.hpp',['../on_8hpp.html',1,'']]], + ['one_2ehpp',['one.hpp',['../one_8hpp.html',1,'']]], + ['one_2ehpp',['one.hpp',['../fwd_2one_8hpp.html',1,'']]], + ['optional_2ehpp',['optional.hpp',['../fwd_2optional_8hpp.html',1,'']]], + ['optional_2ehpp',['optional.hpp',['../optional_8hpp.html',1,'']]], + ['or_2ehpp',['or.hpp',['../fwd_2or_8hpp.html',1,'']]], + ['or_2ehpp',['or.hpp',['../or_8hpp.html',1,'']]], + ['orderable_2ehpp',['orderable.hpp',['../detail_2operators_2orderable_8hpp.html',1,'']]], + ['orderable_2ehpp',['orderable.hpp',['../concept_2orderable_8hpp.html',1,'']]], + ['orderable_2ehpp',['orderable.hpp',['../fwd_2concept_2orderable_8hpp.html',1,'']]], + ['ordering_2ehpp',['ordering.hpp',['../ordering_8hpp.html',1,'']]], + ['ordering_2ehpp',['ordering.hpp',['../fwd_2ordering_8hpp.html',1,'']]], + ['overload_2ehpp',['overload.hpp',['../overload_8hpp.html',1,'']]], + ['overload_5flinearly_2ehpp',['overload_linearly.hpp',['../overload__linearly_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_e.html b/boost_1_63_0/libs/hana/doc/html/search/files_e.html new file mode 100644 index 0000000..70516d6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_e.js b/boost_1_63_0/libs/hana/doc/html/search/files_e.js new file mode 100644 index 0000000..11da5b6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_e.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['pair_2ehpp',['pair.hpp',['../ext_2std_2pair_8hpp.html',1,'']]], + ['pair_2ehpp',['pair.hpp',['../pair_8hpp.html',1,'']]], + ['pair_2ehpp',['pair.hpp',['../fwd_2pair_8hpp.html',1,'']]], + ['partial_2ehpp',['partial.hpp',['../partial_8hpp.html',1,'']]], + ['partition_2ehpp',['partition.hpp',['../fwd_2partition_8hpp.html',1,'']]], + ['partition_2ehpp',['partition.hpp',['../partition_8hpp.html',1,'']]], + ['permutations_2ehpp',['permutations.hpp',['../fwd_2permutations_8hpp.html',1,'']]], + ['permutations_2ehpp',['permutations.hpp',['../permutations_8hpp.html',1,'']]], + ['placeholder_2ehpp',['placeholder.hpp',['../placeholder_8hpp.html',1,'']]], + ['plus_2ehpp',['plus.hpp',['../plus_8hpp.html',1,'']]], + ['plus_2ehpp',['plus.hpp',['../fwd_2plus_8hpp.html',1,'']]], + ['power_2ehpp',['power.hpp',['../fwd_2power_8hpp.html',1,'']]], + ['power_2ehpp',['power.hpp',['../power_8hpp.html',1,'']]], + ['prefix_2ehpp',['prefix.hpp',['../fwd_2prefix_8hpp.html',1,'']]], + ['prefix_2ehpp',['prefix.hpp',['../prefix_8hpp.html',1,'']]], + ['prepend_2ehpp',['prepend.hpp',['../fwd_2prepend_8hpp.html',1,'']]], + ['prepend_2ehpp',['prepend.hpp',['../prepend_8hpp.html',1,'']]], + ['preprocessor_2ehpp',['preprocessor.hpp',['../preprocessor_8hpp.html',1,'']]], + ['product_2ehpp',['product.hpp',['../fwd_2concept_2product_8hpp.html',1,'']]], + ['product_2ehpp',['product.hpp',['../fwd_2product_8hpp.html',1,'']]], + ['product_2ehpp',['product.hpp',['../product_8hpp.html',1,'']]], + ['product_2ehpp',['product.hpp',['../concept_2product_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_f.html b/boost_1_63_0/libs/hana/doc/html/search/files_f.html new file mode 100644 index 0000000..147a74e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/files_f.js b/boost_1_63_0/libs/hana/doc/html/search/files_f.js new file mode 100644 index 0000000..c865f26 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/files_f.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['range_2ehpp',['range.hpp',['../fwd_2range_8hpp.html',1,'']]], + ['range_2ehpp',['range.hpp',['../range_8hpp.html',1,'']]], + ['ratio_2ehpp',['ratio.hpp',['../ratio_8hpp.html',1,'']]], + ['remove_2ehpp',['remove.hpp',['../fwd_2remove_8hpp.html',1,'']]], + ['remove_2ehpp',['remove.hpp',['../remove_8hpp.html',1,'']]], + ['remove_5fat_2ehpp',['remove_at.hpp',['../fwd_2remove__at_8hpp.html',1,'']]], + ['remove_5fat_2ehpp',['remove_at.hpp',['../remove__at_8hpp.html',1,'']]], + ['remove_5fif_2ehpp',['remove_if.hpp',['../fwd_2remove__if_8hpp.html',1,'']]], + ['remove_5fif_2ehpp',['remove_if.hpp',['../remove__if_8hpp.html',1,'']]], + ['remove_5frange_2ehpp',['remove_range.hpp',['../fwd_2remove__range_8hpp.html',1,'']]], + ['remove_5frange_2ehpp',['remove_range.hpp',['../remove__range_8hpp.html',1,'']]], + ['repeat_2ehpp',['repeat.hpp',['../fwd_2repeat_8hpp.html',1,'']]], + ['repeat_2ehpp',['repeat.hpp',['../repeat_8hpp.html',1,'']]], + ['replace_2ehpp',['replace.hpp',['../fwd_2replace_8hpp.html',1,'']]], + ['replace_2ehpp',['replace.hpp',['../replace_8hpp.html',1,'']]], + ['replace_5fif_2ehpp',['replace_if.hpp',['../fwd_2replace__if_8hpp.html',1,'']]], + ['replace_5fif_2ehpp',['replace_if.hpp',['../replace__if_8hpp.html',1,'']]], + ['replicate_2ehpp',['replicate.hpp',['../fwd_2replicate_8hpp.html',1,'']]], + ['replicate_2ehpp',['replicate.hpp',['../replicate_8hpp.html',1,'']]], + ['reverse_2ehpp',['reverse.hpp',['../reverse_8hpp.html',1,'']]], + ['reverse_2ehpp',['reverse.hpp',['../fwd_2reverse_8hpp.html',1,'']]], + ['reverse_5fapply_2ehpp',['reverse_apply.hpp',['../reverse__apply_8hpp.html',1,'']]], + ['reverse_5ffold_2ehpp',['reverse_fold.hpp',['../fwd_2reverse__fold_8hpp.html',1,'']]], + ['reverse_5ffold_2ehpp',['reverse_fold.hpp',['../reverse__fold_8hpp.html',1,'']]], + ['reverse_5fpartial_2ehpp',['reverse_partial.hpp',['../reverse__partial_8hpp.html',1,'']]], + ['ring_2ehpp',['ring.hpp',['../concept_2ring_8hpp.html',1,'']]], + ['ring_2ehpp',['ring.hpp',['../fwd_2concept_2ring_8hpp.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_0.html b/boost_1_63_0/libs/hana/doc/html/search/functions_0.html new file mode 100644 index 0000000..6bc52b6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_0.js b/boost_1_63_0/libs/hana/doc/html/search/functions_0.js new file mode 100644 index 0000000..945ff01 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['boost_5fhana_5fadapt_5fadt',['BOOST_HANA_ADAPT_ADT',['../group__group-Struct.html#ga141761435a7826b3cbe646b4f59eaf0a',1,'boost::hana']]], + ['boost_5fhana_5fadapt_5fstruct',['BOOST_HANA_ADAPT_STRUCT',['../group__group-Struct.html#gaba3b4d2cf342bfca773e90fc20bfae91',1,'boost::hana']]], + ['boost_5fhana_5fdefine_5fstruct',['BOOST_HANA_DEFINE_STRUCT',['../group__group-Struct.html#gab9efb238a82207d91643994c5295cf8c',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_1.html b/boost_1_63_0/libs/hana/doc/html/search/functions_1.html new file mode 100644 index 0000000..648831f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_1.js b/boost_1_63_0/libs/hana/doc/html/search/functions_1.js new file mode 100644 index 0000000..82940ef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['c_5fstr',['c_str',['../structboost_1_1hana_1_1string.html#af21839d798df54bcbe3d552740f3b16b',1,'boost::hana::string']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_2.html b/boost_1_63_0/libs/hana/doc/html/search/functions_2.html new file mode 100644 index 0000000..c93d089 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_2.js b/boost_1_63_0/libs/hana/doc/html/search/functions_2.js new file mode 100644 index 0000000..a56da50 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['map',['map',['../structboost_1_1hana_1_1map.html#a1ee432be0bd10f08a637a437e311e4e2',1,'boost::hana::map::map()=default'],['../structboost_1_1hana_1_1map.html#a943219d1c9692938167639d8ad2525b8',1,'boost::hana::map::map(map const &other)=default'],['../structboost_1_1hana_1_1map.html#a675bb30af155b40f72cbe8607eefbe4e',1,'boost::hana::map::map(map &&other)=default'],['../structboost_1_1hana_1_1map.html#a4a4f472e036abf9bcbda81e831f46e32',1,'boost::hana::map::map(P &&...pairs)']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_3.html b/boost_1_63_0/libs/hana/doc/html/search/functions_3.html new file mode 100644 index 0000000..caa48ea --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_3.js b/boost_1_63_0/libs/hana/doc/html/search/functions_3.js new file mode 100644 index 0000000..8581941 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_3.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['operator_22_22_5fc',['operator""_c',['../structboost_1_1hana_1_1integral__constant.html#a1c078fd00db48686ca9e0aa17f47344e',1,'boost::hana::integral_constant::operator""_c()'],['../namespaceboost_1_1hana_1_1literals.html#a85ac3c47d02722a334181aab540e732c',1,'boost::hana::literals::operator""_c()']]], + ['operator_22_22_5fs',['operator""_s',['../structboost_1_1hana_1_1string.html#ad77f7afff008c2ce15739ad16a8bf0a8',1,'boost::hana::string::operator""_s()'],['../namespaceboost_1_1hana_1_1literals.html#a325859c7db2c3f8e6a4bfab5a81a6dcb',1,'boost::hana::literals::operator""_s()']]], + ['operator_2a',['operator*',['../structboost_1_1hana_1_1optional.html#a3132b919ab7710d79155674272961d4b',1,'boost::hana::optional']]], + ['operator_2b',['operator+',['../structboost_1_1hana_1_1type.html#a2c3bef01b2e0342264c62a67cc471592',1,'boost::hana::type']]], + ['operator_2d_3e',['operator->',['../structboost_1_1hana_1_1optional.html#a6eeef1512294d408857805eb3a790230',1,'boost::hana::optional']]], + ['operator_3d',['operator=',['../structboost_1_1hana_1_1optional.html#abefc885243f38c66c52fdada3588f951',1,'boost::hana::optional::operator=(optional const &)=default'],['../structboost_1_1hana_1_1optional.html#a52057c5da4b9aee49ee15a167459fc9a',1,'boost::hana::optional::operator=(optional &&)=default'],['../structboost_1_1hana_1_1pair.html#a96ada4b84949f1653de497410af50013',1,'boost::hana::pair::operator=(pair< T, U > const &other)'],['../structboost_1_1hana_1_1pair.html#a3f1a25445fa5380a78bdf524b764e1c7',1,'boost::hana::pair::operator=(pair< T, U > &&other)'],['../structboost_1_1hana_1_1tuple.html#acddfa6d631c249ae667d52dd63c0aeaf',1,'boost::hana::tuple::operator=(tuple< Yn... > const &other)'],['../structboost_1_1hana_1_1tuple.html#ad3f0fe520974a22cc12a978f4b061caa',1,'boost::hana::tuple::operator=(tuple< Yn... > &&other)']]], + ['operator_5b_5d',['operator[]',['../structboost_1_1hana_1_1map.html#a4881a1810986e678959af8ccb58f5666',1,'boost::hana::map::operator[]()'],['../structboost_1_1hana_1_1range.html#a5df034200fc77683173f7cecf99f491e',1,'boost::hana::range::operator[]()'],['../structboost_1_1hana_1_1set.html#a00f6165e7a2db4218c67d80929c457d2',1,'boost::hana::set::operator[]()'],['../structboost_1_1hana_1_1string.html#a02f56704524481cf919907caf271d2a1',1,'boost::hana::string::operator[]()'],['../structboost_1_1hana_1_1tuple.html#acef38216a6c6da0296a5f7b5241e951b',1,'boost::hana::tuple::operator[]()']]], + ['optional',['optional',['../structboost_1_1hana_1_1optional.html#aefbd278cf7bb9e921707d6d827014bcb',1,'boost::hana::optional::optional()=default'],['../structboost_1_1hana_1_1optional.html#a9074406adb54a6a848ba482895c51d1f',1,'boost::hana::optional::optional(optional const &)=default'],['../structboost_1_1hana_1_1optional.html#ac46a23f0ada20175c4c9a58af3d15753',1,'boost::hana::optional::optional(optional &&)=default'],['../structboost_1_1hana_1_1optional.html#a2b04ee87c0ac58621edf3ad5476a2949',1,'boost::hana::optional::optional(T const &t)'],['../structboost_1_1hana_1_1optional.html#adf824827b5d6f8c87d23b9526b9f35d2',1,'boost::hana::optional::optional(T &&t)']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_4.html b/boost_1_63_0/libs/hana/doc/html/search/functions_4.html new file mode 100644 index 0000000..a9c64ad --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_4.js b/boost_1_63_0/libs/hana/doc/html/search/functions_4.js new file mode 100644 index 0000000..3eeaa46 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pair',['pair',['../structboost_1_1hana_1_1pair.html#acb8494edc410c10d824e942341f30719',1,'boost::hana::pair::pair()'],['../structboost_1_1hana_1_1pair.html#ad258681a711a7bf24d79e9d13a7a441e',1,'boost::hana::pair::pair(First const &first, Second const &second)'],['../structboost_1_1hana_1_1pair.html#aae31a284451c1c0486339c289a7887fe',1,'boost::hana::pair::pair(T &&t, U &&u)'],['../structboost_1_1hana_1_1pair.html#ad295aada872521bce6e7775795b8318e',1,'boost::hana::pair::pair(pair< T, U > const &other)'],['../structboost_1_1hana_1_1pair.html#a962bff38110b5c39b1267fc88851198d',1,'boost::hana::pair::pair(pair< T, U > &&other)']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_5.html b/boost_1_63_0/libs/hana/doc/html/search/functions_5.html new file mode 100644 index 0000000..9d135fa --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_5.js b/boost_1_63_0/libs/hana/doc/html/search/functions_5.js new file mode 100644 index 0000000..29b0257 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['set',['set',['../structboost_1_1hana_1_1set.html#a937a7d47238690b571e7dd524278f6d5',1,'boost::hana::set::set(set const &other)=default'],['../structboost_1_1hana_1_1set.html#ac5b7025edfb0c6c28f31d84598e130f0',1,'boost::hana::set::set(set &&other)=default']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_6.html b/boost_1_63_0/libs/hana/doc/html/search/functions_6.html new file mode 100644 index 0000000..5fca897 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_6.js b/boost_1_63_0/libs/hana/doc/html/search/functions_6.js new file mode 100644 index 0000000..8aee031 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['times',['times',['../structboost_1_1hana_1_1integral__constant.html#a2d4bda4a9114a5e803a91def599fae76',1,'boost::hana::integral_constant']]], + ['tuple',['tuple',['../structboost_1_1hana_1_1tuple.html#a8e10223983bfb3873c285be85f7ab273',1,'boost::hana::tuple::tuple()'],['../structboost_1_1hana_1_1tuple.html#a4e4e6193df38146b1eab93bcf963fc81',1,'boost::hana::tuple::tuple(Xn const &...xn)'],['../structboost_1_1hana_1_1tuple.html#a9a5dd3930d94a900190de98247e0c415',1,'boost::hana::tuple::tuple(Yn &&...yn)'],['../structboost_1_1hana_1_1tuple.html#a6cf99e86ab1506594eca03881748fe91',1,'boost::hana::tuple::tuple(tuple< Yn... > const &other)'],['../structboost_1_1hana_1_1tuple.html#ac504757198d85ab9de1258de634e3b71',1,'boost::hana::tuple::tuple(tuple< Yn... > &&other)']]], + ['type_5fname',['type_name',['../group__group-experimental.html#gaf14876d1f1a3c42ce7a0243d7b263bec',1,'boost::hana::experimental']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_7.html b/boost_1_63_0/libs/hana/doc/html/search/functions_7.html new file mode 100644 index 0000000..02631a3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/functions_7.js b/boost_1_63_0/libs/hana/doc/html/search/functions_7.js new file mode 100644 index 0000000..884fc15 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['value',['value',['../structboost_1_1hana_1_1optional.html#acdcf71b43d4e27d5efbf0ad875d0be58',1,'boost::hana::optional']]], + ['value_5for',['value_or',['../structboost_1_1hana_1_1optional.html#a1f511267d94c178e4ef955da60f0888d',1,'boost::hana::optional']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_0.html b/boost_1_63_0/libs/hana/doc/html/search/groups_0.html new file mode 100644 index 0000000..95cee43 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_0.js b/boost_1_63_0/libs/hana/doc/html/search/groups_0.js new file mode 100644 index 0000000..7eb767e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['applicative',['Applicative',['../group__group-Applicative.html',1,'']]], + ['assertions',['Assertions',['../group__group-assertions.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_1.html b/boost_1_63_0/libs/hana/doc/html/search/groups_1.html new file mode 100644 index 0000000..979ea3d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_1.js b/boost_1_63_0/libs/hana/doc/html/search/groups_1.js new file mode 100644 index 0000000..b025dbd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['boost_2efusion_20adapters',['Boost.Fusion adapters',['../group__group-ext-fusion.html',1,'']]], + ['boost_2empl_20adapters',['Boost.MPL adapters',['../group__group-ext-mpl.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_2.html b/boost_1_63_0/libs/hana/doc/html/search/groups_2.html new file mode 100644 index 0000000..310ab32 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_2.js b/boost_1_63_0/libs/hana/doc/html/search/groups_2.js new file mode 100644 index 0000000..497d8eb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['comonad',['Comonad',['../group__group-Comonad.html',1,'']]], + ['comparable',['Comparable',['../group__group-Comparable.html',1,'']]], + ['concepts',['Concepts',['../group__group-concepts.html',1,'']]], + ['configuration_20options',['Configuration options',['../group__group-config.html',1,'']]], + ['constant',['Constant',['../group__group-Constant.html',1,'']]], + ['core',['Core',['../group__group-core.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_3.html b/boost_1_63_0/libs/hana/doc/html/search/groups_3.html new file mode 100644 index 0000000..c24c7bd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_3.js b/boost_1_63_0/libs/hana/doc/html/search/groups_3.js new file mode 100644 index 0000000..9045bc4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['data_20types',['Data types',['../group__group-datatypes.html',1,'']]], + ['details',['Details',['../group__group-details.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_4.html b/boost_1_63_0/libs/hana/doc/html/search/groups_4.html new file mode 100644 index 0000000..a1f3533 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_4.js b/boost_1_63_0/libs/hana/doc/html/search/groups_4.js new file mode 100644 index 0000000..e155554 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['euclidean_20ring',['Euclidean Ring',['../group__group-EuclideanRing.html',1,'']]], + ['experimental_20features',['Experimental features',['../group__group-experimental.html',1,'']]], + ['external_20adapters',['External adapters',['../group__group-ext.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_5.html b/boost_1_63_0/libs/hana/doc/html/search/groups_5.html new file mode 100644 index 0000000..938507d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_5.js b/boost_1_63_0/libs/hana/doc/html/search/groups_5.js new file mode 100644 index 0000000..187df60 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['foldable',['Foldable',['../group__group-Foldable.html',1,'']]], + ['functional',['Functional',['../group__group-functional.html',1,'']]], + ['functor',['Functor',['../group__group-Functor.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_6.html b/boost_1_63_0/libs/hana/doc/html/search/groups_6.html new file mode 100644 index 0000000..e675e85 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_6.js b/boost_1_63_0/libs/hana/doc/html/search/groups_6.js new file mode 100644 index 0000000..15dee7b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['group',['Group',['../group__group-Group.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_7.html b/boost_1_63_0/libs/hana/doc/html/search/groups_7.html new file mode 100644 index 0000000..c974917 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_7.js b/boost_1_63_0/libs/hana/doc/html/search/groups_7.js new file mode 100644 index 0000000..952791c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hashable',['Hashable',['../group__group-Hashable.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_8.html b/boost_1_63_0/libs/hana/doc/html/search/groups_8.html new file mode 100644 index 0000000..863b2f7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_8.js b/boost_1_63_0/libs/hana/doc/html/search/groups_8.js new file mode 100644 index 0000000..e61cc3b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['iterable',['Iterable',['../group__group-Iterable.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_9.html b/boost_1_63_0/libs/hana/doc/html/search/groups_9.html new file mode 100644 index 0000000..d811100 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_9.js b/boost_1_63_0/libs/hana/doc/html/search/groups_9.js new file mode 100644 index 0000000..ead4aa0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['logical',['Logical',['../group__group-Logical.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_a.html b/boost_1_63_0/libs/hana/doc/html/search/groups_a.html new file mode 100644 index 0000000..39a07c3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_a.js b/boost_1_63_0/libs/hana/doc/html/search/groups_a.js new file mode 100644 index 0000000..8b31b49 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['metafunction',['Metafunction',['../group__group-Metafunction.html',1,'']]], + ['monad',['Monad',['../group__group-Monad.html',1,'']]], + ['monadplus',['MonadPlus',['../group__group-MonadPlus.html',1,'']]], + ['monoid',['Monoid',['../group__group-Monoid.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_b.html b/boost_1_63_0/libs/hana/doc/html/search/groups_b.html new file mode 100644 index 0000000..aaceea6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_b.js b/boost_1_63_0/libs/hana/doc/html/search/groups_b.js new file mode 100644 index 0000000..79c600e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['other_20boost_20adapters',['Other Boost adapters',['../group__group-ext-boost.html',1,'']]], + ['orderable',['Orderable',['../group__group-Orderable.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_c.html b/boost_1_63_0/libs/hana/doc/html/search/groups_c.html new file mode 100644 index 0000000..f184151 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_c.js b/boost_1_63_0/libs/hana/doc/html/search/groups_c.js new file mode 100644 index 0000000..8e2ba41 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['product',['Product',['../group__group-Product.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_d.html b/boost_1_63_0/libs/hana/doc/html/search/groups_d.html new file mode 100644 index 0000000..34d3ca2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_d.js b/boost_1_63_0/libs/hana/doc/html/search/groups_d.js new file mode 100644 index 0000000..2e64b16 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ring',['Ring',['../group__group-Ring.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_e.html b/boost_1_63_0/libs/hana/doc/html/search/groups_e.html new file mode 100644 index 0000000..5abd0ac --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/groups_e.js b/boost_1_63_0/libs/hana/doc/html/search/groups_e.js new file mode 100644 index 0000000..5b56614 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/groups_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['standard_20library_20adapters',['Standard library adapters',['../group__group-ext-std.html',1,'']]], + ['searchable',['Searchable',['../group__group-Searchable.html',1,'']]], + ['sequence',['Sequence',['../group__group-Sequence.html',1,'']]], + ['struct',['Struct',['../group__group-Struct.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/mag_sel.png b/boost_1_63_0/libs/hana/doc/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmeAS@N?(olHy`uVBq!ia0y~yU=U$oU=ZeDV_;yI(4)JRfq{Xuz$3Dlfq`2Xgc%uT z&5>YWU{FZ*2=ZlM$eqE!P~6AB@W6tBq3J3ELlrv%!>KI{48|@D3^HXcW?Fk07#MeY zx;TbZ+1W+|^)#0~pZkN$kUYB?uZb;*>P<#iv<{`%gy@B7i8HPa@a zYN-@l_t>`F zS6{6bU-bC)`|t6@!v-s^W<3fH-gaA;;b@Ye?`4*TWtoctG(Kd@2(%^IBsBckbh^`p ziQ#x5!#(xbe|PL3$uD@+pFH{WQwE9t<1?0ZzTS1o#P`@^Lxz_nQVmgSzctvs{ZzGg z+Tn*2e%Ab3swu;F`DMw4(pZKbx5fS9fB3%G_`fT&7VBp1d%WTP`_AK!mt4-wx&5rf zO0d^0bNg-n7ngY$ZO%_#_xe$#-1ghN^Ut?0(umO$ui7hj{PDyH9k + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/namespaces_0.js b/boost_1_63_0/libs/hana/doc/html/search/namespaces_0.js new file mode 100644 index 0000000..93bb280 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/namespaces_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['boost',['boost',['../namespaceboost.html',1,'']]], + ['hana',['hana',['../namespaceboost_1_1hana.html',1,'boost']]], + ['literals',['literals',['../namespaceboost_1_1hana_1_1literals.html',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/nomatches.html b/boost_1_63_0/libs/hana/doc/html/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_0.html b/boost_1_63_0/libs/hana/doc/html/search/pages_0.html new file mode 100644 index 0000000..0db7267 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_0.js b/boost_1_63_0/libs/hana/doc/html/search/pages_0.js new file mode 100644 index 0000000..8d42650 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bug_20list',['Bug List',['../bug.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_1.html b/boost_1_63_0/libs/hana/doc/html/search/pages_1.html new file mode 100644 index 0000000..2c67a8e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_1.js b/boost_1_63_0/libs/hana/doc/html/search/pages_1.js new file mode 100644 index 0000000..038da54 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_2.html b/boost_1_63_0/libs/hana/doc/html/search/pages_2.html new file mode 100644 index 0000000..9cb4325 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_2.js b/boost_1_63_0/libs/hana/doc/html/search/pages_2.js new file mode 100644 index 0000000..441b2de --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['todo_20list',['Todo List',['../todo.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_3.html b/boost_1_63_0/libs/hana/doc/html/search/pages_3.html new file mode 100644 index 0000000..118095e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/pages_3.js b/boost_1_63_0/libs/hana/doc/html/search/pages_3.js new file mode 100644 index 0000000..898b0ef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['user_20manual',['User Manual',['../index.html',1,'']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/related_0.html b/boost_1_63_0/libs/hana/doc/html/search/related_0.html new file mode 100644 index 0000000..e40ed42 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/related_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/related_0.js b/boost_1_63_0/libs/hana/doc/html/search/related_0.js new file mode 100644 index 0000000..d75886e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/related_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['boost_5fhana_5fstring',['BOOST_HANA_STRING',['../structboost_1_1hana_1_1string.html#a7f15faa77e126e1c2b08a2224ceefb84',1,'boost::hana::string']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/related_1.html b/boost_1_63_0/libs/hana/doc/html/search/related_1.html new file mode 100644 index 0000000..e25d1b3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/related_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/related_1.js b/boost_1_63_0/libs/hana/doc/html/search/related_1.js new file mode 100644 index 0000000..41dc006 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/related_1.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['operator_21',['operator!',['../structboost_1_1hana_1_1integral__constant.html#a7d9f9e5adeb222e676ee02d6f28198ee',1,'boost::hana::integral_constant']]], + ['operator_21_3d',['operator!=',['../structboost_1_1hana_1_1integral__constant.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::integral_constant::operator!=()'],['../structboost_1_1hana_1_1map.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::map::operator!=()'],['../structboost_1_1hana_1_1optional.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::optional::operator!=()'],['../structboost_1_1hana_1_1pair.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::pair::operator!=()'],['../structboost_1_1hana_1_1range.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::range::operator!=()'],['../structboost_1_1hana_1_1set.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::set::operator!=()'],['../structboost_1_1hana_1_1string.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::string::operator!=()'],['../structboost_1_1hana_1_1tuple.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::tuple::operator!=()'],['../structboost_1_1hana_1_1type.html#a0cae3af55edb3eb05bfa184bda633f7d',1,'boost::hana::type::operator!=()']]], + ['operator_25',['operator%',['../structboost_1_1hana_1_1integral__constant.html#ad2fabb33632e115e96d0b7474670e6a1',1,'boost::hana::integral_constant']]], + ['operator_26_26',['operator&&',['../structboost_1_1hana_1_1integral__constant.html#a47d2d5df22fc559270029d5eabaae61a',1,'boost::hana::integral_constant']]], + ['operator_2a',['operator*',['../structboost_1_1hana_1_1integral__constant.html#a673f1d9212ae61e8cee093af002bc110',1,'boost::hana::integral_constant']]], + ['operator_2b',['operator+',['../structboost_1_1hana_1_1integral__constant.html#a077af435df78fdb178f98b109c8c4297',1,'boost::hana::integral_constant::operator+()'],['../structboost_1_1hana_1_1string.html#a077af435df78fdb178f98b109c8c4297',1,'boost::hana::string::operator+()']]], + ['operator_2d',['operator-',['../structboost_1_1hana_1_1integral__constant.html#a51facf9760bb93d63efdca06dcf859ad',1,'boost::hana::integral_constant::operator-()'],['../structboost_1_1hana_1_1integral__constant.html#a6be175332d55b7bfcf1afc33856d9b7d',1,'boost::hana::integral_constant::operator-()']]], + ['operator_2f',['operator/',['../structboost_1_1hana_1_1integral__constant.html#ab8b66ff58605e53149aad7eca0922ad7',1,'boost::hana::integral_constant']]], + ['operator_3c',['operator<',['../structboost_1_1hana_1_1integral__constant.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::integral_constant::operator<()'],['../structboost_1_1hana_1_1optional.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::optional::operator<()'],['../structboost_1_1hana_1_1pair.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::pair::operator<()'],['../structboost_1_1hana_1_1string.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::string::operator<()'],['../structboost_1_1hana_1_1tuple.html#ada078dcf9e68b8e9a82b33c75dde8457',1,'boost::hana::tuple::operator<()']]], + ['operator_3c_3d',['operator<=',['../structboost_1_1hana_1_1integral__constant.html#a53817979990da799e659b2576799a79a',1,'boost::hana::integral_constant::operator<=()'],['../structboost_1_1hana_1_1optional.html#a53817979990da799e659b2576799a79a',1,'boost::hana::optional::operator<=()'],['../structboost_1_1hana_1_1pair.html#a53817979990da799e659b2576799a79a',1,'boost::hana::pair::operator<=()'],['../structboost_1_1hana_1_1string.html#a53817979990da799e659b2576799a79a',1,'boost::hana::string::operator<=()'],['../structboost_1_1hana_1_1tuple.html#a53817979990da799e659b2576799a79a',1,'boost::hana::tuple::operator<=()']]], + ['operator_3d_3d',['operator==',['../structboost_1_1hana_1_1integral__constant.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::integral_constant::operator==()'],['../structboost_1_1hana_1_1map.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::map::operator==()'],['../structboost_1_1hana_1_1optional.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::optional::operator==()'],['../structboost_1_1hana_1_1pair.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::pair::operator==()'],['../structboost_1_1hana_1_1range.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::range::operator==()'],['../structboost_1_1hana_1_1set.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::set::operator==()'],['../structboost_1_1hana_1_1string.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::string::operator==()'],['../structboost_1_1hana_1_1tuple.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::tuple::operator==()'],['../structboost_1_1hana_1_1type.html#a27607958295e6da8a0ba602a2db468f1',1,'boost::hana::type::operator==()']]], + ['operator_3e',['operator>',['../structboost_1_1hana_1_1integral__constant.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::integral_constant::operator>()'],['../structboost_1_1hana_1_1optional.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::optional::operator>()'],['../structboost_1_1hana_1_1pair.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::pair::operator>()'],['../structboost_1_1hana_1_1string.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::string::operator>()'],['../structboost_1_1hana_1_1tuple.html#aedd11fddefddbbbb87d3b24c7117528f',1,'boost::hana::tuple::operator>()']]], + ['operator_3e_3d',['operator>=',['../structboost_1_1hana_1_1integral__constant.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::integral_constant::operator>=()'],['../structboost_1_1hana_1_1optional.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::optional::operator>=()'],['../structboost_1_1hana_1_1pair.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::pair::operator>=()'],['../structboost_1_1hana_1_1string.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::string::operator>=()'],['../structboost_1_1hana_1_1tuple.html#aa3f0436b623de5208767751e1e9f7e59',1,'boost::hana::tuple::operator>=()']]], + ['operator_7c',['operator|',['../structboost_1_1hana_1_1lazy.html#a97b267b09ee075f1c531b849969e75e6',1,'boost::hana::lazy::operator|()'],['../structboost_1_1hana_1_1optional.html#a833b9d5d44bb431621af9129994b9bbc',1,'boost::hana::optional::operator|()'],['../structboost_1_1hana_1_1tuple.html#a59b4d21f17e2caed8c31d8389d0f0878',1,'boost::hana::tuple::operator|()']]], + ['operator_7c_7c',['operator||',['../structboost_1_1hana_1_1integral__constant.html#a883a869b5e96e32744ebf75d63c763ae',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/search.css b/boost_1_63_0/libs/hana/doc/html/search/search.css new file mode 100644 index 0000000..ed0caad --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/search.css @@ -0,0 +1,270 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 0px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #BFCE90; + background-color: #FBFCF9; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #788C3D; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #F5F7EE; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #829742; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #829742; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F6F8F0; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} diff --git a/boost_1_63_0/libs/hana/doc/html/search/search.js b/boost_1_63_0/libs/hana/doc/html/search/search.js new file mode 100644 index 0000000..fe9d8eb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/search.js @@ -0,0 +1,790 @@ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; eYWU{FZ*2=ZlM$eqE!P~6AB@W6tBq3J3ELlrv%!>KI{48|@D3^HXcW?Fk07#JUU zx;TbZ+*%W2yZTmuMBTZQmWIB691Pq<-UPUa>(AXKdh6msy}Q;TUJL7&mF#u?-}0BW z>DJO_**jew3tXCyX{?p^yrC2G)@;7t^7THKYXa9_PmB~RiEW=EG~Gc*jC*p&y=z&fcQ@%sv@t5O z=&^pcSs$r4eZK1{i|0GoY&e?S76w$5tlgx%aLT7lwaE_y)4qSd^!+cp{=C`6p`n{6 zh8~kRWUxp2ljPOs&tkkR*$QI1cf2mVW+Yhp?f2h{udXf?xVZgmm268QhtjTj0fAH2 z_dWh|=WW>!`3IdYkB%4Z{PWI&ujame)c*TrIfvX9f7Iq^y8W==g^n0Eiz9>5t{pP} z(pmRa%==zxAkmY)S<+Q?Zm_3|g$$pC?&ov)%n6z;KVDSMyZ!$A{pnsyk6#Q92^9@G zwO@o=QLd+bu3XgGX$%4Ci_BN8GUGk0p*GobVdktumizopr04E;^4gdfE literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/search/search_m.png b/boost_1_63_0/libs/hana/doc/html/search/search_m.png new file mode 100644 index 0000000000000000000000000000000000000000..b429a16ba641960da1e52e5da85dc80fd82635c8 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ckU=Zd2k*0Cpz6=ZuEa{HEjtmUfZd~z?Fk)a} zkSuYHC<)F_D=AMbN@Z|N$xljE@XSq2PYp^OWFBt>K?i-XJBAp@O1Ta JS?83{1OS@7FGc_W literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/search/search_r.png b/boost_1_63_0/libs/hana/doc/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0y~yU=U(pU=ZeDV_;yIJ1O=P0|NtRfk$L90|U1(2s1Lw znj^u$z@U)q5#-CjkUN8cp}3EM;eiDML(^3ThAMUjhErP@7>r#Q7-Y&?%(V70FfhLI zba4!+xV7ZU{#8zs=vomAy2qdLnKjHCBRvI!?(cCvqrJpudOF7vL7ku& zCzXUQ6HTW8N5uuxuZC{k{ch8_cV|2&Y8>Kywrcs@!~MlGezuib$sXzya#HzOQx~Np zWlq6(@LXPU%h8C`)oY> ziSK_WPnhzlp*6ANX_4pSj}gZT{~X-*_Icmq7KQ^$rl>0_HBAu;@>-JFrO~w^LdQUc zul4n=_t{%-`L4d&WpeC>CVP*eMi-M()4JCNJj^>|_}UUz1f5#``RAYX{rBsaK4?5D z!JN!9YuUm8jRip~7sRd4W{6vJ{k1!PTc2ZSXyPn2t*Kl&x3@JZRFs)*IsR>O=;~0l zmWnkp@t=1teQl+4x@q0(-ONieZ`};m>|(lXGBZ))ba$Bbv44JL<)SVw59V+y{aO{% z?4c>x_OPvEU%ctXyzR};D{VtVYcH^>E>$^a>8m!`b^GmFCzk-dNKcN&uT^t>mR~M+ z>d0qU@RonGj`fq5@jsP+P0l@M8Mb<=1Yi67CWVT-dD|~nzf@mT%^|4h8(eTs@c71( z*z5DprrDnR>3zKL9pC!`6RC&w{{ttf+{oLWDB?Qb@_D{w^7g*RF2`&4vopk(yY(38 T+?dP2z`)??>gTe~DWM4f%J>KN literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/search/searchdata.js b/boost_1_63_0/libs/hana/doc/html/search/searchdata.js new file mode 100644 index 0000000..ac3f372 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/searchdata.js @@ -0,0 +1,44 @@ +var indexSectionsWithContent = +{ + 0: "_abcdefghijklmnoprstuvwz", + 1: "abcdefhilmnoprstvw", + 2: "b", + 3: "abcdefghiklmnoprstuvwz", + 4: "bcmopstv", + 5: "_abcdefghijklmnoprstuvwz", + 6: "bcfhilstuw", + 7: "bo", + 8: "b", + 9: "abcdefghilmoprs", + 10: "bdtu" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "namespaces", + 3: "files", + 4: "functions", + 5: "variables", + 6: "typedefs", + 7: "related", + 8: "defines", + 9: "groups", + 10: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Namespaces", + 3: "Files", + 4: "Functions", + 5: "Variables", + 6: "Typedefs", + 7: "Friends", + 8: "Macros", + 9: "Modules", + 10: "Pages" +}; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_0.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_0.html new file mode 100644 index 0000000..fb07195 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_0.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_0.js new file mode 100644 index 0000000..f6f1a35 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bool_5f',['bool_',['../structboost_1_1hana_1_1integral__constant.html#adeaf00ee03ae0daf97d60d5258bd3703',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_1.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_1.html new file mode 100644 index 0000000..6edac96 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_1.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_1.js new file mode 100644 index 0000000..2c2ca2f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['char_5f',['char_',['../structboost_1_1hana_1_1integral__constant.html#a08598ceb1797047d8938049b0cad6ccc',1,'boost::hana::integral_constant']]], + ['common_5ft',['common_t',['../group__group-core.html#ga4da46c97755c0f430b063711b66ca05b',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_2.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_2.html new file mode 100644 index 0000000..cc5cc40 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_2.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_2.js new file mode 100644 index 0000000..66e3803 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['false_5f',['false_',['../structboost_1_1hana_1_1integral__constant.html#a84a8b7c3f824b4f0421d6a834601a0c4',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_3.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_3.html new file mode 100644 index 0000000..3fdb8f2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_3.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_3.js new file mode 100644 index 0000000..d8edfa0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['has_5fcommon_5fembedding',['has_common_embedding',['../group__group-details.html#gae85b604ae6c7a386f0fc3631c561091b',1,'boost::hana::detail']]], + ['has_5fnontrivial_5fcommon_5fembedding',['has_nontrivial_common_embedding',['../group__group-details.html#ga9acac3c4609cff5f0957572744c61ec4',1,'boost::hana::detail']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_4.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_4.html new file mode 100644 index 0000000..fb50819 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_4.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_4.js new file mode 100644 index 0000000..01cc35e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['int_5f',['int_',['../structboost_1_1hana_1_1integral__constant.html#ab4891bf3aec7c15fa2d91c8fbacf4563',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_5.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_5.html new file mode 100644 index 0000000..0ad02a6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_5.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_5.js new file mode 100644 index 0000000..72bea05 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['llong',['llong',['../structboost_1_1hana_1_1integral__constant.html#aa7bf152c582934a70baa1d6c2bc758ba',1,'boost::hana::integral_constant']]], + ['long_5f',['long_',['../structboost_1_1hana_1_1integral__constant.html#a41f541c4b34b1972d0e84bf10f7908e1',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_6.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_6.html new file mode 100644 index 0000000..10007d2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_6.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_6.js new file mode 100644 index 0000000..9b700ef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['short_5f',['short_',['../structboost_1_1hana_1_1integral__constant.html#a217459eb4ffdd9580b5d8e1bf36d7ac4',1,'boost::hana::integral_constant']]], + ['size_5ft',['size_t',['../structboost_1_1hana_1_1integral__constant.html#a022e29dcd19f546f3ac35254f11e56de',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_7.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_7.html new file mode 100644 index 0000000..4e61d87 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_7.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_7.js new file mode 100644 index 0000000..ffec301 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tag_5fof_5ft',['tag_of_t',['../group__group-core.html#ga686d1236161b5690ab302500077988e1',1,'boost::hana']]], + ['true_5f',['true_',['../structboost_1_1hana_1_1integral__constant.html#ae0cf9368270efc7fdd2aeec497644892',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_8.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_8.html new file mode 100644 index 0000000..4d3d6b6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_8.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_8.js new file mode 100644 index 0000000..bf95d23 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['uint',['uint',['../structboost_1_1hana_1_1integral__constant.html#a5071dd223185718f85da1db48fb95d80',1,'boost::hana::integral_constant']]], + ['ullong',['ullong',['../structboost_1_1hana_1_1integral__constant.html#a112e62e2d698846ca9e3940eb15333d3',1,'boost::hana::integral_constant']]], + ['ulong',['ulong',['../structboost_1_1hana_1_1integral__constant.html#aedb2b03831973b4b54c5d0abce1af63c',1,'boost::hana::integral_constant']]], + ['ushort_5f',['ushort_',['../structboost_1_1hana_1_1integral__constant.html#a69a1bcadc259af364eb87d634c76c12e',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_9.html b/boost_1_63_0/libs/hana/doc/html/search/typedefs_9.html new file mode 100644 index 0000000..8dbf62f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/typedefs_9.js b/boost_1_63_0/libs/hana/doc/html/search/typedefs_9.js new file mode 100644 index 0000000..ab07ca7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/typedefs_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['when_5fvalid',['when_valid',['../group__group-core.html#ga0f5d717bbf6646619bb6219b104384dc',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_0.html b/boost_1_63_0/libs/hana/doc/html/search/variables_0.html new file mode 100644 index 0000000..3835278 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_0.js b/boost_1_63_0/libs/hana/doc/html/search/variables_0.js new file mode 100644 index 0000000..24493c8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5f',['_',['../group__group-functional.html#gaefe9fd152cba94be71c2b5b9de689d23',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_1.html b/boost_1_63_0/libs/hana/doc/html/search/variables_1.html new file mode 100644 index 0000000..3c65cf2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_1.js b/boost_1_63_0/libs/hana/doc/html/search/variables_1.js new file mode 100644 index 0000000..a43a9bf --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_1.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['accessors',['accessors',['../group__group-Struct.html#ga983a55dbd93d766fd37689ea32e4ddfb',1,'boost::hana']]], + ['adjust',['adjust',['../group__group-Functor.html#ga7cc731e67ebc1f5303be1a97b2d5e0cd',1,'boost::hana']]], + ['adjust_5fif',['adjust_if',['../group__group-Functor.html#gaa0490f57047c1b0d75fbe233688358f4',1,'boost::hana']]], + ['alignof_5f',['alignof_',['../structboost_1_1hana_1_1type.html#a6fd9ac456f4b5574dcb16384dbb85736',1,'boost::hana::type']]], + ['all',['all',['../group__group-Searchable.html#ga81ae9764dd7818ad36270c6419fb1082',1,'boost::hana']]], + ['all_5fof',['all_of',['../group__group-Searchable.html#ga3a168950082f38afd9edf256f336c8ba',1,'boost::hana']]], + ['always',['always',['../group__group-functional.html#ga835970cb25a0c8dc200f1e5f8943538b',1,'boost::hana']]], + ['and_5f',['and_',['../group__group-Logical.html#ga14066f5672867c123524e0e0978069eb',1,'boost::hana']]], + ['any',['any',['../group__group-Searchable.html#gab7d632b9319b10b1eb7e98f9e1cf8a28',1,'boost::hana']]], + ['any_5fof',['any_of',['../group__group-Searchable.html#ga5f7ff0125c448983e1b96c3ffb84f646',1,'boost::hana']]], + ['ap',['ap',['../group__group-Applicative.html#ga6176a32953dbbdee96e3ab3c73e4c890',1,'boost::hana']]], + ['append',['append',['../group__group-MonadPlus.html#ga08624924fe05f0cfbfbd6e439db01873',1,'boost::hana']]], + ['apply',['apply',['../group__group-functional.html#ga30027c383676084be151ef3c6cf2829f',1,'boost::hana']]], + ['arg',['arg',['../group__group-functional.html#ga6acc765a35c4dc85f0deab4785831a3d',1,'boost::hana']]], + ['at',['at',['../group__group-Iterable.html#ga8a484304380eae38f3d9663d98860129',1,'boost::hana']]], + ['at_5fc',['at_c',['../group__group-Iterable.html#ga4cb99cfbef936cb267e76f66f40f529c',1,'boost::hana']]], + ['at_5fkey',['at_key',['../group__group-Searchable.html#ga3c1826aee6c6eb577810bb99c5c3e53d',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_10.html b/boost_1_63_0/libs/hana/doc/html/search/variables_10.html new file mode 100644 index 0000000..52b5fe8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_10.js b/boost_1_63_0/libs/hana/doc/html/search/variables_10.js new file mode 100644 index 0000000..2f0abf1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_10.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['partial',['partial',['../group__group-functional.html#ga778b2daa27882e71d28b6f2b38982ddf',1,'boost::hana']]], + ['partition',['partition',['../group__group-Sequence.html#ga5e84ac3f1eb09c637b6b38ef42dccd8d',1,'boost::hana']]], + ['permutations',['permutations',['../group__group-Sequence.html#gac1e182ac088f1990edd739424d30ea07',1,'boost::hana']]], + ['plus',['plus',['../group__group-Monoid.html#gaeb5d4a1e967e319712f9e4791948896c',1,'boost::hana']]], + ['power',['power',['../group__group-Ring.html#ga0ee3cff9ec646bcc7217f00ee6099b72',1,'boost::hana']]], + ['prefix',['prefix',['../group__group-MonadPlus.html#ga3022fdfe454dc9bc1f79b5dfeba13b5e',1,'boost::hana']]], + ['prepend',['prepend',['../group__group-MonadPlus.html#ga69afbfd4e91125e3e52fcb409135ca7c',1,'boost::hana']]], + ['print',['print',['../group__group-experimental.html#ga660c0769106006a86948b5b355fad050',1,'boost::hana::experimental']]], + ['product',['product',['../group__group-Foldable.html#ga17fe9c1982c882807f3358b4138c5744',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_11.html b/boost_1_63_0/libs/hana/doc/html/search/variables_11.html new file mode 100644 index 0000000..476f36e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_11.js b/boost_1_63_0/libs/hana/doc/html/search/variables_11.js new file mode 100644 index 0000000..d3d07a2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_11.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['range_5fc',['range_c',['../structboost_1_1hana_1_1range.html#a899b7a0c065ff64cd747fe1671753d3f',1,'boost::hana::range']]], + ['remove',['remove',['../group__group-MonadPlus.html#gae3cc0d6e0d8feb3d677bd1da64da6f43',1,'boost::hana']]], + ['remove_5fat',['remove_at',['../group__group-Sequence.html#ga80724ec8ecf319a1e695988a69e22f87',1,'boost::hana']]], + ['remove_5fat_5fc',['remove_at_c',['../group__group-Sequence.html#gae70b0815645c7d81bb636a1eed1a65c6',1,'boost::hana']]], + ['remove_5fif',['remove_if',['../group__group-MonadPlus.html#ga9700169a45664d50377c1be9d58accd3',1,'boost::hana']]], + ['remove_5frange',['remove_range',['../group__group-Sequence.html#ga6f6d5c1f335780c91d29626fde615c78',1,'boost::hana']]], + ['remove_5frange_5fc',['remove_range_c',['../group__group-Sequence.html#ga4696efcdee7d95ab4a391bb896a840b5',1,'boost::hana']]], + ['repeat',['repeat',['../namespaceboost_1_1hana.html#a405f3dd84fc6f5003e64f8da104a1b54',1,'boost::hana']]], + ['replace',['replace',['../group__group-Functor.html#ga94cd3a75d59d70d77cfce144c4acf8ab',1,'boost::hana']]], + ['replace_5fif',['replace_if',['../group__group-Functor.html#ga1d21b4bccd16367d164fbe0d9ef52150',1,'boost::hana']]], + ['replicate',['replicate',['../group__group-MonadPlus.html#gad5f48c79d11923d6c1d70b18b7dd3f19',1,'boost::hana']]], + ['reverse',['reverse',['../group__group-Sequence.html#ga28037560e8f224c53cf6ac168d03a067',1,'boost::hana']]], + ['reverse_5ffold',['reverse_fold',['../group__group-Foldable.html#ga947602718a53bd7fcd5c20477694cdcd',1,'boost::hana']]], + ['reverse_5fpartial',['reverse_partial',['../group__group-functional.html#ga6e648f0d3fc0209ec024e9d759a5e8f8',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_12.html b/boost_1_63_0/libs/hana/doc/html/search/variables_12.html new file mode 100644 index 0000000..ff143dc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_12.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_12.js b/boost_1_63_0/libs/hana/doc/html/search/variables_12.js new file mode 100644 index 0000000..42113fb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_12.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['scan_5fleft',['scan_left',['../group__group-Sequence.html#gaec484fb349500149d90717f6e68f7bcd',1,'boost::hana']]], + ['scan_5fright',['scan_right',['../group__group-Sequence.html#ga54d141f901866dfab29b052857123bab',1,'boost::hana']]], + ['second',['second',['../group__group-Product.html#ga7bb979d59ffc3ab862cb7d9dc7730077',1,'boost::hana']]], + ['sfinae',['sfinae',['../structboost_1_1hana_1_1optional.html#aa4c8c0b1ef3d8206974734b93646c9fd',1,'boost::hana::optional']]], + ['short_5fc',['short_c',['../structboost_1_1hana_1_1integral__constant.html#aaf48189e927611ea460974ba01beb2c7',1,'boost::hana::integral_constant']]], + ['size',['size',['../group__group-Foldable.html#ga8ec3ac9a6f5014db943f61ebc9e1e36e',1,'boost::hana']]], + ['size_5fc',['size_c',['../structboost_1_1hana_1_1integral__constant.html#ac49b8fd71a0ef9229511bd7d6cc0f150',1,'boost::hana::integral_constant']]], + ['sizeof_5f',['sizeof_',['../structboost_1_1hana_1_1type.html#a26b702b280ca02f118affaaca9112a8c',1,'boost::hana::type']]], + ['slice',['slice',['../group__group-Sequence.html#ga245d8abaf6ba67e64020be51c8366081',1,'boost::hana']]], + ['slice_5fc',['slice_c',['../group__group-Sequence.html#gae1f6a2a9cb70564d43c6b3c663b25dd7',1,'boost::hana']]], + ['sort',['sort',['../group__group-Sequence.html#gac000a79eb7b9d44ecc8982c93daa40e5',1,'boost::hana']]], + ['span',['span',['../group__group-Sequence.html#ga9bdde56d805517bce8e387f5bcd1887e',1,'boost::hana']]], + ['string_5fc',['string_c',['../structboost_1_1hana_1_1string.html#a810915f5e494decfe47b047a3500c577',1,'boost::hana::string']]], + ['suffix',['suffix',['../group__group-MonadPlus.html#ga61dab15f6ecf379121d4096fe0c8ab13',1,'boost::hana']]], + ['sum',['sum',['../group__group-Foldable.html#ga650def4b2e98f4273d8b9b7aa5a2fc28',1,'boost::hana']]], + ['symmetric_5fdifference',['symmetric_difference',['../structboost_1_1hana_1_1set.html#a8bcb2455eb9f7074185d8fb61a99801e',1,'boost::hana::set']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_13.html b/boost_1_63_0/libs/hana/doc/html/search/variables_13.html new file mode 100644 index 0000000..f62f946 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_13.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_13.js b/boost_1_63_0/libs/hana/doc/html/search/variables_13.js new file mode 100644 index 0000000..983b5af --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_13.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['take_5fback',['take_back',['../group__group-Sequence.html#ga8d302de01b94b4b17f3bd81e09f42920',1,'boost::hana']]], + ['take_5ffront',['take_front',['../group__group-Sequence.html#ga5112e6070d29b4f7fde3f44825da3316',1,'boost::hana']]], + ['take_5ffront_5fc',['take_front_c',['../group__group-Sequence.html#ga3779f62fea92af00113a9290f1c680eb',1,'boost::hana']]], + ['take_5fwhile',['take_while',['../group__group-Sequence.html#ga2d4db4ec5ec5bc16fe74f57de12697fd',1,'boost::hana']]], + ['tap',['tap',['../group__group-Monad.html#ga5e0735de01a24f681c55aedfeb6d13bf',1,'boost::hana']]], + ['template_5f',['template_',['../group__group-Metafunction.html#ga246419f6c3263b648412f346106e6543',1,'boost::hana']]], + ['then',['then',['../group__group-Monad.html#gaaddd3789de43cf989babb10cdc0b447a',1,'boost::hana']]], + ['to',['to',['../group__group-core.html#gadc70755c1d059139297814fb3bfeb91e',1,'boost::hana']]], + ['to_5fmap',['to_map',['../structboost_1_1hana_1_1map.html#a4feb32bd0a065a0732908716d4855b57',1,'boost::hana::map']]], + ['to_5fset',['to_set',['../structboost_1_1hana_1_1set.html#accbea694d32b341e860dac724c0c6933',1,'boost::hana::set']]], + ['to_5ftuple',['to_tuple',['../structboost_1_1hana_1_1tuple.html#a749b564c8f115957837761d75191beac',1,'boost::hana::tuple']]], + ['trait',['trait',['../group__group-Metafunction.html#ga6d4093318f46472e62f9539a4dc998a9',1,'boost::hana']]], + ['transform',['transform',['../group__group-Functor.html#ga5a8975f6e55375d5b6038a9c36ee63e7',1,'boost::hana']]], + ['true_5fc',['true_c',['../structboost_1_1hana_1_1integral__constant.html#a96c109b048f822be0ca7578c93694405',1,'boost::hana::integral_constant']]], + ['tuple_5fc',['tuple_c',['../structboost_1_1hana_1_1tuple.html#a85c2f16caa2a1e12eefd1b3f69fa658e',1,'boost::hana::tuple']]], + ['tuple_5ft',['tuple_t',['../structboost_1_1hana_1_1tuple.html#a1997546daf58a48cc15498d338a03da3',1,'boost::hana::tuple']]], + ['type_5fc',['type_c',['../structboost_1_1hana_1_1type.html#ae35139e732c4b75e91061513cf445628',1,'boost::hana::type']]], + ['typeid_5f',['typeid_',['../structboost_1_1hana_1_1type.html#a0ade557ac4240552c92bf47c7e04dfd4',1,'boost::hana::type']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_14.html b/boost_1_63_0/libs/hana/doc/html/search/variables_14.html new file mode 100644 index 0000000..edd9b91 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_14.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_14.js b/boost_1_63_0/libs/hana/doc/html/search/variables_14.js new file mode 100644 index 0000000..2b5338c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_14.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['uint_5fc',['uint_c',['../structboost_1_1hana_1_1integral__constant.html#a79f45e3c2411db1d36127c1341673ffb',1,'boost::hana::integral_constant']]], + ['ullong_5fc',['ullong_c',['../structboost_1_1hana_1_1integral__constant.html#a186b6fdf81c9be08f42576cafd63b38d',1,'boost::hana::integral_constant']]], + ['ulong_5fc',['ulong_c',['../structboost_1_1hana_1_1integral__constant.html#a65df6bbd2d90432bdcdc709cdbca9921',1,'boost::hana::integral_constant']]], + ['unfold_5fleft',['unfold_left',['../group__group-Sequence.html#gaf2128be91ad6d32e45db1b8c61f79818',1,'boost::hana']]], + ['unfold_5fright',['unfold_right',['../group__group-Sequence.html#ga497286bf277e6f8e89ddb18661e1033e',1,'boost::hana']]], + ['union_5f',['union_',['../structboost_1_1hana_1_1set.html#acd511f2c01f38405bfba0b6d5b2922e8',1,'boost::hana::set']]], + ['unique',['unique',['../group__group-Sequence.html#ga35349be79e646c4f5bdd74ec96a846ab',1,'boost::hana']]], + ['unpack',['unpack',['../group__group-Foldable.html#ga7b0c23944364ce61136e10b978ae2170',1,'boost::hana']]], + ['ushort_5fc',['ushort_c',['../structboost_1_1hana_1_1integral__constant.html#ace7c983d1ffed3a1ff10b5287d2c6ddd',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_15.html b/boost_1_63_0/libs/hana/doc/html/search/variables_15.html new file mode 100644 index 0000000..6ee4d58 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_15.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_15.js b/boost_1_63_0/libs/hana/doc/html/search/variables_15.js new file mode 100644 index 0000000..81bf352 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_15.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['value',['value',['../group__group-Constant.html#ga1687520692a6b0c49e3a69de2980f388',1,'boost::hana']]], + ['value_5fof',['value_of',['../group__group-Constant.html#gab46a092deeb205f2c92c335d4312a991',1,'boost::hana']]], + ['values',['values',['../structboost_1_1hana_1_1map.html#a2e016a68e3ec6eb25868fadb7ce80132',1,'boost::hana::map']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_16.html b/boost_1_63_0/libs/hana/doc/html/search/variables_16.html new file mode 100644 index 0000000..0f264c9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_16.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_16.js b/boost_1_63_0/libs/hana/doc/html/search/variables_16.js new file mode 100644 index 0000000..a51fd1c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['while_5f',['while_',['../group__group-Logical.html#ga08a767b86c330cac67daa891406d2730',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_17.html b/boost_1_63_0/libs/hana/doc/html/search/variables_17.html new file mode 100644 index 0000000..0d82cea --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_17.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_17.js b/boost_1_63_0/libs/hana/doc/html/search/variables_17.js new file mode 100644 index 0000000..dc60ec0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_17.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['zero',['zero',['../group__group-Monoid.html#gad459ac17b6bab8ead1cae7de0032f3c6',1,'boost::hana']]], + ['zip',['zip',['../group__group-Sequence.html#gaa5a378d4e71a91e0d6cd3959d9818e8a',1,'boost::hana']]], + ['zip_5fshortest',['zip_shortest',['../group__group-Sequence.html#gade78593b3ff51fc5479e1da97142fef5',1,'boost::hana']]], + ['zip_5fshortest_5fwith',['zip_shortest_with',['../group__group-Sequence.html#gae7a51104a77db79a0407d7d67b034667',1,'boost::hana']]], + ['zip_5fwith',['zip_with',['../group__group-Sequence.html#ga6a4bf8549ce69b5b5b7377aec225a0e3',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_2.html b/boost_1_63_0/libs/hana/doc/html/search/variables_2.html new file mode 100644 index 0000000..7b43e0a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_2.js b/boost_1_63_0/libs/hana/doc/html/search/variables_2.js new file mode 100644 index 0000000..847da6f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['back',['back',['../group__group-Iterable.html#gab3f4d0035345a453284e46303862d463',1,'boost::hana']]], + ['bool_5fc',['bool_c',['../structboost_1_1hana_1_1integral__constant.html#aa301b96de91d665fdc846bde4659b0d3',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_3.html b/boost_1_63_0/libs/hana/doc/html/search/variables_3.html new file mode 100644 index 0000000..ea0392d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_3.js b/boost_1_63_0/libs/hana/doc/html/search/variables_3.js new file mode 100644 index 0000000..b11cc7a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_3.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['capture',['capture',['../group__group-functional.html#ga41ada6b336e9d5bcb101ff0c737acbd0',1,'boost::hana']]], + ['cartesian_5fproduct',['cartesian_product',['../group__group-Sequence.html#ga66599f0e1f0749daba759dc661946bdc',1,'boost::hana']]], + ['chain',['chain',['../group__group-Monad.html#ga05fdc2f887cb9967357487a432ace98b',1,'boost::hana']]], + ['char_5fc',['char_c',['../structboost_1_1hana_1_1integral__constant.html#aca22320011be96155645b79fe53dd8c2',1,'boost::hana::integral_constant']]], + ['comparing',['comparing',['../group__group-Comparable.html#ga9c2ffe2e51780e57a38d9e7e31b87cdc',1,'boost::hana']]], + ['compose',['compose',['../group__group-functional.html#ga3b16146e53efcdf9ecbb9a7b21f8cd0b',1,'boost::hana']]], + ['concat',['concat',['../group__group-MonadPlus.html#ga1946e96c3b4c178c7ae8703724c29c37',1,'boost::hana']]], + ['contains',['contains',['../group__group-Searchable.html#ga38e7748956cbc9f3d9bb035ac8577906',1,'boost::hana']]], + ['count',['count',['../group__group-Foldable.html#ga3159cfa41be18a396926741b0a3fdefd',1,'boost::hana']]], + ['count_5fif',['count_if',['../group__group-Foldable.html#ga39d71be65d5b98e7d035a3e5c607e1b4',1,'boost::hana']]], + ['curry',['curry',['../group__group-functional.html#ga49ea872ade5ac8f6c10052c495302e89',1,'boost::hana']]], + ['cycle',['cycle',['../group__group-MonadPlus.html#gaaf46c168f721da9effcc7336a997f5d6',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_4.html b/boost_1_63_0/libs/hana/doc/html/search/variables_4.html new file mode 100644 index 0000000..1ed95cb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_4.js b/boost_1_63_0/libs/hana/doc/html/search/variables_4.js new file mode 100644 index 0000000..ffba922 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_4.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['decltype_5f',['decltype_',['../structboost_1_1hana_1_1type.html#a7d68ff2275cbb295556d83598f04e39a',1,'boost::hana::type']]], + ['demux',['demux',['../group__group-functional.html#ga3a8316acd5efa22c3d1861b62d5df3c2',1,'boost::hana']]], + ['difference',['difference',['../structboost_1_1hana_1_1set.html#a718ddfe86437adbbca1e1a5db651d139',1,'boost::hana::set']]], + ['div',['div',['../group__group-EuclideanRing.html#ga4225a7988ce98903228913dde53762df',1,'boost::hana']]], + ['drop_5fback',['drop_back',['../group__group-Sequence.html#gac10231310abc86b056585ea0d0e96ef7',1,'boost::hana']]], + ['drop_5ffront',['drop_front',['../group__group-Iterable.html#gad23ce0a4906e2bb0a52f38837b134757',1,'boost::hana']]], + ['drop_5ffront_5fexactly',['drop_front_exactly',['../group__group-Iterable.html#ga4dbc6a82f03ca35b7ac418ca30889cc4',1,'boost::hana']]], + ['drop_5fwhile',['drop_while',['../group__group-Iterable.html#ga9f1d02c74a6bdc1db260e0d6a8f1ee56',1,'boost::hana']]], + ['duplicate',['duplicate',['../group__group-Comonad.html#ga181751278bd19a4bfc3c08bd7ddef399',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_5.html b/boost_1_63_0/libs/hana/doc/html/search/variables_5.html new file mode 100644 index 0000000..ecc883b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_5.js b/boost_1_63_0/libs/hana/doc/html/search/variables_5.js new file mode 100644 index 0000000..f71a44b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['empty',['empty',['../group__group-MonadPlus.html#gaa6be1e83ad72b9d69b43b4bada0f3a75',1,'boost::hana']]], + ['equal',['equal',['../group__group-Comparable.html#gacaf1ebea6b3ab96ac9dcb82f0e64e547',1,'boost::hana']]], + ['erase_5fkey',['erase_key',['../structboost_1_1hana_1_1map.html#af856f7bf77f69cdf1b8fd4e566eaef9b',1,'boost::hana::map::erase_key()'],['../structboost_1_1hana_1_1set.html#af856f7bf77f69cdf1b8fd4e566eaef9b',1,'boost::hana::set::erase_key()']]], + ['eval',['eval',['../structboost_1_1hana_1_1lazy.html#aae2998c08f1f80ed52a6acf57c4eec6c',1,'boost::hana::lazy']]], + ['eval_5fif',['eval_if',['../group__group-Logical.html#gab64636f84de983575aac0208f5fa840c',1,'boost::hana']]], + ['extend',['extend',['../group__group-Comonad.html#gaf44692351fd9fe4e76815dfef6ff4478',1,'boost::hana']]], + ['extract',['extract',['../group__group-Comonad.html#ga307479a91a21b7ab06a2bc746b003dcc',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_6.html b/boost_1_63_0/libs/hana/doc/html/search/variables_6.html new file mode 100644 index 0000000..0c1a66b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_6.js b/boost_1_63_0/libs/hana/doc/html/search/variables_6.js new file mode 100644 index 0000000..b9f5abe --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_6.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['false_5fc',['false_c',['../structboost_1_1hana_1_1integral__constant.html#aec1a5deaa7bcdf7c07c2da4af8959454',1,'boost::hana::integral_constant']]], + ['fill',['fill',['../group__group-Functor.html#ga2ce68d315f981ef35751c4dc25ad5642',1,'boost::hana']]], + ['filter',['filter',['../group__group-MonadPlus.html#ga65cc6d9f522fb9e8e3b28d80ee5c822a',1,'boost::hana']]], + ['find',['find',['../group__group-Searchable.html#ga6b6cdd69942b0fe3bf5254247f9c861e',1,'boost::hana']]], + ['find_5fif',['find_if',['../group__group-Searchable.html#ga7f99b80672aa80a7eb8b223955ce546f',1,'boost::hana']]], + ['first',['first',['../group__group-Product.html#ga34bbf4281de06dc3540441e8b2bd24f4',1,'boost::hana']]], + ['fix',['fix',['../group__group-functional.html#ga1393f40da2e8da6e0c12fce953e56a6c',1,'boost::hana']]], + ['flatten',['flatten',['../group__group-Monad.html#gaa5fec6fb418de5da3ecb500fd6cc54dd',1,'boost::hana']]], + ['flip',['flip',['../group__group-functional.html#ga004f884cdbb85c2efe3383c1db450094',1,'boost::hana']]], + ['fold',['fold',['../group__group-Foldable.html#gaa0fde17f3b947a0678a1c0c01232f2cc',1,'boost::hana']]], + ['fold_5fleft',['fold_left',['../group__group-Foldable.html#ga38c6b3f6b1cbadb9b8432a05ff16b7d2',1,'boost::hana']]], + ['fold_5fright',['fold_right',['../group__group-Foldable.html#ga77d43badebd59b046cf93598733649b4',1,'boost::hana']]], + ['for_5feach',['for_each',['../group__group-Foldable.html#ga2af382f7e644ce3707710bbad313e9c2',1,'boost::hana']]], + ['front',['front',['../group__group-Iterable.html#ga8a67ea10e8082dbe6705e573fa978444',1,'boost::hana']]], + ['fuse',['fuse',['../group__group-Foldable.html#ga19fcf61d8d1179903952c0f564c538aa',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_7.html b/boost_1_63_0/libs/hana/doc/html/search/variables_7.html new file mode 100644 index 0000000..e0da2ef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_7.js b/boost_1_63_0/libs/hana/doc/html/search/variables_7.js new file mode 100644 index 0000000..5d5e549 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['greater',['greater',['../group__group-Orderable.html#gaf9a073eafebbe514fb19dff82318f198',1,'boost::hana']]], + ['greater_5fequal',['greater_equal',['../group__group-Orderable.html#ga6023631e7d0a01e16dc3fa4221fbd703',1,'boost::hana']]], + ['group',['group',['../group__group-Sequence.html#gacefca884b3580664b63238cf8ba33fd3',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_8.html b/boost_1_63_0/libs/hana/doc/html/search/variables_8.html new file mode 100644 index 0000000..0c3d1df --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_8.js b/boost_1_63_0/libs/hana/doc/html/search/variables_8.js new file mode 100644 index 0000000..db4937b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hash',['hash',['../group__group-Hashable.html#ga6e906f44f47b210615491385e5c8a7b5',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_9.html b/boost_1_63_0/libs/hana/doc/html/search/variables_9.html new file mode 100644 index 0000000..e14a107 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_9.js b/boost_1_63_0/libs/hana/doc/html/search/variables_9.js new file mode 100644 index 0000000..b228ea3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_9.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['id',['id',['../group__group-functional.html#gaef38cf34324c8edbd3597ae71811d00d',1,'boost::hana']]], + ['if_5f',['if_',['../group__group-Logical.html#gafd655d2222367131e7a63616e93dd080',1,'boost::hana']]], + ['in',['in',['../group__group-Searchable.html#ga0d9456ceda38b6ca664998e79d7c45b7',1,'boost::hana']]], + ['infix',['infix',['../group__group-functional.html#ga7bdafba6dc801f1d2d83731ad9714557',1,'boost::hana']]], + ['insert',['insert',['../structboost_1_1hana_1_1map.html#a5791e6dc0e27d8e3a113e4d94482550f',1,'boost::hana::map::insert()'],['../structboost_1_1hana_1_1set.html#a5791e6dc0e27d8e3a113e4d94482550f',1,'boost::hana::set::insert()'],['../group__group-Sequence.html#gae22a1a184b1b2dd550fa4fa619bed2e9',1,'boost::hana::insert()']]], + ['insert_5frange',['insert_range',['../group__group-Sequence.html#ga3410ba833cf1ff1d929fcfda4df2eae1',1,'boost::hana']]], + ['int_5fc',['int_c',['../structboost_1_1hana_1_1integral__constant.html#a8669179fa3d068951014b3be07a7d673',1,'boost::hana::integral_constant']]], + ['integral',['integral',['../group__group-Metafunction.html#gaf7045fe6a627f88f5f646dad22d37aae',1,'boost::hana']]], + ['integral_5fc',['integral_c',['../structboost_1_1hana_1_1integral__constant.html#a8e52c0f4a65a852dc88f97259a05ff17',1,'boost::hana::integral_constant']]], + ['intersection',['intersection',['../structboost_1_1hana_1_1set.html#a3b3430482d4e88052e621f63a234f3eb',1,'boost::hana::set']]], + ['intersperse',['intersperse',['../group__group-Sequence.html#gaa18061cd0f63cfaae89abf43ff92b79e',1,'boost::hana']]], + ['is_5fa',['is_a',['../group__group-core.html#ga38cf78e1e3e262f7f1c71ddd9ca70cd9',1,'boost::hana']]], + ['is_5fan',['is_an',['../group__group-core.html#ga7fdbde52f5fe384a816c6f39ff272df9',1,'boost::hana']]], + ['is_5fdisjoint',['is_disjoint',['../group__group-Searchable.html#ga3b8269d4f5cdd6dd549fae32280795a0',1,'boost::hana']]], + ['is_5fempty',['is_empty',['../group__group-Iterable.html#ga2a05f564f8a7e4afa04fcbc07ad8f394',1,'boost::hana']]], + ['is_5fjust',['is_just',['../structboost_1_1hana_1_1optional.html#a1047a69893a62cd36eb0d2934f85e0e7',1,'boost::hana::optional']]], + ['is_5fnothing',['is_nothing',['../structboost_1_1hana_1_1optional.html#a4eb266d123883c23853f7731a6c5953f',1,'boost::hana::optional']]], + ['is_5fsubset',['is_subset',['../group__group-Searchable.html#gadccfc79f1acdd8043d2baa16df16ec9f',1,'boost::hana']]], + ['is_5fvalid',['is_valid',['../structboost_1_1hana_1_1type.html#a2d2e7e08e284f7e0bd1bd9c3ad0e0a2b',1,'boost::hana::type']]], + ['iterate',['iterate',['../group__group-functional.html#gad1b8669c022d8675d68e5974451073d1',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_a.html b/boost_1_63_0/libs/hana/doc/html/search/variables_a.html new file mode 100644 index 0000000..4e38be7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_a.js b/boost_1_63_0/libs/hana/doc/html/search/variables_a.js new file mode 100644 index 0000000..9e86b4a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['just',['just',['../structboost_1_1hana_1_1optional.html#a8ad818d6df7379b0adefa45d2ac844d0',1,'boost::hana::optional']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_b.html b/boost_1_63_0/libs/hana/doc/html/search/variables_b.html new file mode 100644 index 0000000..c98ef41 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_b.js b/boost_1_63_0/libs/hana/doc/html/search/variables_b.js new file mode 100644 index 0000000..081d7c2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keys',['keys',['../structboost_1_1hana_1_1map.html#a0f32260f859b2510dd16235b7bc011ac',1,'boost::hana::map::keys()'],['../group__group-Struct.html#gaf8c7199742581e6e66c8397def68e2d3',1,'boost::hana::keys()']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_c.html b/boost_1_63_0/libs/hana/doc/html/search/variables_c.html new file mode 100644 index 0000000..d5f4449 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_c.js b/boost_1_63_0/libs/hana/doc/html/search/variables_c.js new file mode 100644 index 0000000..84560bc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['length',['length',['../group__group-Foldable.html#gaf0f8f717245620dc28cd7d7fa44d7475',1,'boost::hana']]], + ['less',['less',['../group__group-Orderable.html#gad510011602bdb14686f1c4ec145301c9',1,'boost::hana']]], + ['less_5fequal',['less_equal',['../group__group-Orderable.html#ga9917dd82beb67151bf5657245d37b851',1,'boost::hana']]], + ['lexicographical_5fcompare',['lexicographical_compare',['../group__group-Iterable.html#ga660b2649d63ac71dacc64c3852c981e5',1,'boost::hana']]], + ['lift',['lift',['../group__group-Applicative.html#ga712038d7abbc7159f8792788f7cd0c73',1,'boost::hana']]], + ['llong_5fc',['llong_c',['../structboost_1_1hana_1_1integral__constant.html#a81c86537a0d36b8788cba2188314febc',1,'boost::hana::integral_constant']]], + ['lockstep',['lockstep',['../group__group-functional.html#gafca60c09e1f7a32a2b52baaf6515c279',1,'boost::hana']]], + ['long_5fc',['long_c',['../structboost_1_1hana_1_1integral__constant.html#ab7e3b17ac89121823916ebd7c6f96235',1,'boost::hana::integral_constant']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_d.html b/boost_1_63_0/libs/hana/doc/html/search/variables_d.html new file mode 100644 index 0000000..a57e383 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_d.js b/boost_1_63_0/libs/hana/doc/html/search/variables_d.js new file mode 100644 index 0000000..121972f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_d.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['make',['make',['../group__group-core.html#ga1d92480f0af1029878e773dafa3e2f60',1,'boost::hana']]], + ['make_3c_20basic_5ftuple_5ftag_20_3e',['make< basic_tuple_tag >',['../structboost_1_1hana_1_1basic__tuple.html#a53975be786ae1db16185edab229547cd',1,'boost::hana::basic_tuple']]], + ['make_3c_20lazy_5ftag_20_3e',['make< lazy_tag >',['../structboost_1_1hana_1_1lazy.html#aa968ecf473c93821f1726fd9692e97f3',1,'boost::hana::lazy']]], + ['make_3c_20map_5ftag_20_3e',['make< map_tag >',['../structboost_1_1hana_1_1map.html#a409d52de54cc7e55eca1a7b5dda4ce30',1,'boost::hana::map']]], + ['make_3c_20optional_5ftag_20_3e',['make< optional_tag >',['../structboost_1_1hana_1_1optional.html#a76a84854b3051af000e698157d63a6a8',1,'boost::hana::optional']]], + ['make_3c_20pair_5ftag_20_3e',['make< pair_tag >',['../structboost_1_1hana_1_1pair.html#aab78903e9982284e82744dec570afa8d',1,'boost::hana::pair']]], + ['make_3c_20range_5ftag_20_3e',['make< range_tag >',['../structboost_1_1hana_1_1range.html#ad5ad9a1f847daa24ef62f5d81b8eef8e',1,'boost::hana::range']]], + ['make_3c_20set_5ftag_20_3e',['make< set_tag >',['../structboost_1_1hana_1_1set.html#aa337857e80b8a8c91880b0184aaf7534',1,'boost::hana::set']]], + ['make_3c_20string_5ftag_20_3e',['make< string_tag >',['../structboost_1_1hana_1_1string.html#a75de1ad7b14dc576a98d759dc3176ae9',1,'boost::hana::string']]], + ['make_3c_20tuple_5ftag_20_3e',['make< tuple_tag >',['../structboost_1_1hana_1_1tuple.html#ad9d8c7efa77e573eba2dfc48b3343e66',1,'boost::hana::tuple']]], + ['make_3c_20type_5ftag_20_3e',['make< type_tag >',['../structboost_1_1hana_1_1type.html#a66f97c1903dcb6f227b29f3e35e68a56',1,'boost::hana::type']]], + ['make_5fbasic_5ftuple',['make_basic_tuple',['../structboost_1_1hana_1_1basic__tuple.html#afe2c3fc2808e83353b7274dddd662c7e',1,'boost::hana::basic_tuple']]], + ['make_5flazy',['make_lazy',['../structboost_1_1hana_1_1lazy.html#a7dc86ca61b84fc42aabb525787ae61b4',1,'boost::hana::lazy']]], + ['make_5fmap',['make_map',['../structboost_1_1hana_1_1map.html#ae73cf43ee56352e4c25984b0fe3c3d04',1,'boost::hana::map']]], + ['make_5foptional',['make_optional',['../structboost_1_1hana_1_1optional.html#af1105a435d6435a2437cb5dc162ba463',1,'boost::hana::optional']]], + ['make_5fpair',['make_pair',['../structboost_1_1hana_1_1pair.html#a1bc322b45af2148a413ba45ee8097045',1,'boost::hana::pair']]], + ['make_5frange',['make_range',['../structboost_1_1hana_1_1range.html#aba8dd69deb1d810ef65ec289127bf0ab',1,'boost::hana::range']]], + ['make_5fset',['make_set',['../structboost_1_1hana_1_1set.html#af38c23fb98d8eec68c1491a8bca9ce43',1,'boost::hana::set']]], + ['make_5fstring',['make_string',['../structboost_1_1hana_1_1string.html#acd99ab02697909eba5eb76caf1ca7a8b',1,'boost::hana::string']]], + ['make_5ftuple',['make_tuple',['../structboost_1_1hana_1_1tuple.html#af3c175cfb83276339f91e867d738a2e6',1,'boost::hana::tuple']]], + ['make_5ftype',['make_type',['../structboost_1_1hana_1_1type.html#a0c0e00c0ffe63703f3a04960d13c7b1c',1,'boost::hana::type']]], + ['max',['max',['../group__group-Orderable.html#ga999eee8ca8750f9b1afa0d7a1db28030',1,'boost::hana']]], + ['maximum',['maximum',['../group__group-Foldable.html#gaf3861a91607203b63a12708e18a4eac5',1,'boost::hana']]], + ['maybe',['maybe',['../structboost_1_1hana_1_1optional.html#a6529e11cb228e99a05e81071752807d5',1,'boost::hana::optional']]], + ['members',['members',['../group__group-Struct.html#gad301dd8e9fb4639d7874619c97d6d427',1,'boost::hana']]], + ['metafunction',['metafunction',['../group__group-Metafunction.html#gaaa4f85cb8cbce21f5c04ef40ca35cc6a',1,'boost::hana']]], + ['metafunction_5fclass',['metafunction_class',['../group__group-Metafunction.html#gacec153d7f86aa7cf1efd813b3fd212b4',1,'boost::hana']]], + ['min',['min',['../group__group-Orderable.html#ga2d54f189ea6f57fb2c0d772169440c5c',1,'boost::hana']]], + ['minimum',['minimum',['../group__group-Foldable.html#ga347429451fdb15f9f7a7fc0de293be1a',1,'boost::hana']]], + ['minus',['minus',['../group__group-Group.html#ga2020c526324f361a2b990fe8d1b07c20',1,'boost::hana']]], + ['mod',['mod',['../group__group-EuclideanRing.html#ga9b47b223d5b02db933b3c93b5bd1a062',1,'boost::hana']]], + ['monadic_5fcompose',['monadic_compose',['../group__group-Monad.html#gaec3fe26c7378fd3057af83e03bd9b104',1,'boost::hana']]], + ['monadic_5ffold_5fleft',['monadic_fold_left',['../group__group-Foldable.html#gac14edbff755244aa02b57a6383dcebc6',1,'boost::hana']]], + ['monadic_5ffold_5fright',['monadic_fold_right',['../group__group-Foldable.html#gaa058d91f3e1294f0d3c71bedf33e2360',1,'boost::hana']]], + ['mult',['mult',['../group__group-Ring.html#ga052d31c269a6a438cc8004c9ad1efdfa',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_e.html b/boost_1_63_0/libs/hana/doc/html/search/variables_e.html new file mode 100644 index 0000000..d1502e0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_e.js b/boost_1_63_0/libs/hana/doc/html/search/variables_e.js new file mode 100644 index 0000000..3604267 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['negate',['negate',['../group__group-Group.html#ga02e81002f40ba52eac4cf1974c7e0cdb',1,'boost::hana']]], + ['none',['none',['../group__group-Searchable.html#ga614ff1e575806f59246b17006e19d479',1,'boost::hana']]], + ['none_5fof',['none_of',['../group__group-Searchable.html#ga43954c791b5b1351fb009e2a643d00f5',1,'boost::hana']]], + ['not_5f',['not_',['../group__group-Logical.html#ga4a7c9d7037601d5e553fd20777958980',1,'boost::hana']]], + ['not_5fequal',['not_equal',['../group__group-Comparable.html#gae33be2e0d5e04f19082f4b7740dfc9cd',1,'boost::hana']]], + ['nothing',['nothing',['../structboost_1_1hana_1_1optional.html#a0c315287473aa87fe5ccd9d8a1c10186',1,'boost::hana::optional']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_f.html b/boost_1_63_0/libs/hana/doc/html/search/variables_f.html new file mode 100644 index 0000000..f777e71 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/boost_1_63_0/libs/hana/doc/html/search/variables_f.js b/boost_1_63_0/libs/hana/doc/html/search/variables_f.js new file mode 100644 index 0000000..0182bfe --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/search/variables_f.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['on',['on',['../group__group-functional.html#ga35c4fc3c5677b9f558150b90e74d3ab1',1,'boost::hana']]], + ['one',['one',['../group__group-Ring.html#gadea531feb3b0a1c5c3d777f7ab45e932',1,'boost::hana']]], + ['or_5f',['or_',['../group__group-Logical.html#ga68c00efbeb69339bfa157a78ebdd3f87',1,'boost::hana']]], + ['ordering',['ordering',['../group__group-Orderable.html#gaf7e94ba859710cd6ba6152e5dc18977d',1,'boost::hana']]], + ['overload',['overload',['../group__group-functional.html#ga83e71bae315e299f9f5f9de77b012139',1,'boost::hana']]], + ['overload_5flinearly',['overload_linearly',['../group__group-functional.html#gaa46de6f618d9f14edb1589b36b6e75ec',1,'boost::hana']]] +]; diff --git a/boost_1_63_0/libs/hana/doc/html/second_8hpp.html b/boost_1_63_0/libs/hana/doc/html/second_8hpp.html new file mode 100644 index 0000000..e2c9f07 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/second_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/second.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
second.hpp File Reference
+
+
+ +

Defines boost::hana::second. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::second.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/set_8hpp.html b/boost_1_63_0/libs/hana/doc/html/set_8hpp.html new file mode 100644 index 0000000..33990e7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/set_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/set.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
set.hpp File Reference
+
+
+ +

Defines boost::hana::set. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::set.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/size_8hpp.html b/boost_1_63_0/libs/hana/doc/html/size_8hpp.html new file mode 100644 index 0000000..f9640b8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/size_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/size.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
size.hpp File Reference
+
+
+ +

Defines boost::hana::size. +More...

+

Detailed Description

+

Defines boost::hana::size.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/slice_8hpp.html b/boost_1_63_0/libs/hana/doc/html/slice_8hpp.html new file mode 100644 index 0000000..f5813e2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/slice_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/slice.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
slice.hpp File Reference
+
+
+ +

Defines boost::hana::slice and boost::hana::slice_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::slice and boost::hana::slice_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/sort_8hpp.html b/boost_1_63_0/libs/hana/doc/html/sort_8hpp.html new file mode 100644 index 0000000..443dada --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/sort_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/sort.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sort.hpp File Reference
+
+
+ +

Defines boost::hana::sort. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::sort.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/span_8hpp.html b/boost_1_63_0/libs/hana/doc/html/span_8hpp.html new file mode 100644 index 0000000..0e93f37 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/span_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/span.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
span.hpp File Reference
+
+
+ +

Defines boost::hana::span. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::span.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/split__at_8hpp.html b/boost_1_63_0/libs/hana/doc/html/split__at_8hpp.html new file mode 100644 index 0000000..35bcfb5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/split__at_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/split_at.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
split_at.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::split_at. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::split_at.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/splitbar.png b/boost_1_63_0/libs/hana/doc/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f1bed32c5e2f0d8feae0d693928db1c6566933 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0y~yU|?flU}4~3VqjqK-LYSgfq~(lr;B4q1>@Vh3%#5Z zW!gSI*WlPTSx4O}ENl&1;>n~~`ArAI+7ABS5Rq + + + + + + + + +Boost.Hana: boost/hana/ext/std/vector.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
vector.hpp File Reference
+
+
+ +

Adapts std::vector for use with Hana. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Adapts std::vector for use with Hana.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/std_8hpp.html b/boost_1_63_0/libs/hana/doc/html/std_8hpp.html new file mode 100644 index 0000000..36aa240 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/std_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost/hana/ext/std.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std.hpp File Reference
+
+
+ +

Includes all the adaptors for the standard library. +More...

+

Detailed Description

+

Includes all the adaptors for the standard library.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/std__common__type_8hpp.html b/boost_1_63_0/libs/hana/doc/html/std__common__type_8hpp.html new file mode 100644 index 0000000..214cd4c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/std__common__type_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/std_common_type.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
std_common_type.hpp File Reference
+
+
+ +

Defines a SFINAE-friendly version of std::common_type. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::std_common_type< T, U, typename >
 Equivalent to std::common_type, except it is SFINAE-friendly and does not support custom specializations. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines a SFINAE-friendly version of std::common_type.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/string_8hpp.html b/boost_1_63_0/libs/hana/doc/html/string_8hpp.html new file mode 100644 index 0000000..5847c1d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/string_8hpp.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: boost/hana/string.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
string.hpp File Reference
+
+
+ +

Defines boost::hana::string. +More...

+ + + + + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
 boost::hana::literals
 Namespace containing C++14 user-defined literals provided by Hana.
 
+ + + + + +

+Functions

template<typename CharT , CharT... s>
constexpr auto boost::hana::literals::operator""_s ()
 Creates a compile-time string from a string literal. More...
 
+

Detailed Description

+

Defines boost::hana::string.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/string_8hpp.js b/boost_1_63_0/libs/hana/doc/html/string_8hpp.js new file mode 100644 index 0000000..7b9335d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/string_8hpp.js @@ -0,0 +1,4 @@ +var string_8hpp = +[ + [ "operator\"\"_s", "string_8hpp.html#a325859c7db2c3f8e6a4bfab5a81a6dcb", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/struct__macros_8hpp.html b/boost_1_63_0/libs/hana/doc/html/struct__macros_8hpp.html new file mode 100644 index 0000000..e47568f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/struct__macros_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/struct_macros.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
struct_macros.hpp File Reference
+
+
+ +

Defines the BOOST_HANA_DEFINE_STRUCT, BOOST_HANA_ADAPT_STRUCT, and BOOST_HANA_ADAPT_ADT macros. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines the BOOST_HANA_DEFINE_STRUCT, BOOST_HANA_ADAPT_STRUCT, and BOOST_HANA_ADAPT_ADT macros.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1deque.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1deque.html new file mode 100644 index 0000000..fcc6cc1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1deque.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::fusion::deque< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::fusion::deque< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::fusion::deque< T >

+ +

Adapter for Boost.Fusion deques.

+

Modeled concepts

+

A Fusion deque is a model of the Sequence concept, and all the concepts it refines. That makes it essentially the same as a Hana tuple, although the complexity of some operations might differ from that of a tuple.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/fusion/include/deque.hpp>
#include <boost/fusion/include/make_deque.hpp>
#include <string>
namespace fusion = boost::fusion;
namespace hana = boost::hana;
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
int main() {
fusion::deque<Fish, Cat, Dog> animals{{"Nemo"}, {"Garfield"}, {"Snoopy"}};
hana::front(animals).name = "Moby Dick";
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
names,
fusion::make_deque("Moby Dick", "Garfield", "Snoopy")
));
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1list.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1list.html new file mode 100644 index 0000000..7a4fc92 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1list.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::fusion::list< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::fusion::list< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::fusion::list< T >

+ +

Adapter for Boost.Fusion lists.

+

Modeled concepts

+

A Fusion list is a model of the Sequence concept, and all the concepts it refines. That makes it essentially the same as a Hana tuple, although the complexity of some operations might differ from that of a tuple.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/fusion/include/make_list.hpp>
#include <boost/fusion/include/list.hpp>
#include <string>
namespace fusion = boost::fusion;
namespace hana = boost::hana;
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
int main() {
fusion::list<Fish, Cat, Dog> animals{{"Nemo"}, {"Garfield"}, {"Snoopy"}};
hana::front(animals).name = "Moby Dick";
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
names,
fusion::make_list("Moby Dick", "Garfield", "Snoopy")
));
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1tuple.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1tuple.html new file mode 100644 index 0000000..5669ad4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1tuple.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::fusion::tuple< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::fusion::tuple< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::fusion::tuple< T >

+ +

Adapter for Boost.Fusion tuples.

+

Modeled concepts

+

A Fusion tuple is a model of the Sequence concept, and all the concepts it refines. That makes it essentially the same as a Hana tuple, although the complexity of some operations might differ from that of a tuple.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/fusion/include/make_tuple.hpp>
#include <boost/fusion/include/tuple.hpp>
#include <string>
namespace fusion = boost::fusion;
namespace hana = boost::hana;
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
int main() {
fusion::tuple<Fish, Cat, Dog> animals{Fish{"Nemo"}, Cat{"Garfield"}, Dog{"Snoopy"}};
hana::front(animals).name = "Moby Dick";
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
names,
fusion::make_tuple("Moby Dick", "Garfield", "Snoopy")
));
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1vector.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1vector.html new file mode 100644 index 0000000..fddbdcb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1fusion_1_1vector.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::fusion::vector< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::fusion::vector< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::fusion::vector< T >

+ +

Adapter for Boost.Fusion vectors.

+

Modeled concepts

+

A Fusion vector is a model of the Sequence concept, and all the concepts it refines. That makes it essentially the same as a Hana tuple, although the complexity of some operations might differ from that of a tuple.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/fusion/include/make_vector.hpp>
#include <boost/fusion/include/vector.hpp>
#include <string>
namespace fusion = boost::fusion;
namespace hana = boost::hana;
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
int main() {
fusion::vector<Fish, Cat, Dog> animals{Fish{"Nemo"}, Cat{"Garfield"}, Dog{"Snoopy"}};
hana::front(animals).name = "Moby Dick";
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
names,
fusion::make_vector("Moby Dick", "Garfield", "Snoopy")
));
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1IntegralConstant.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1IntegralConstant.html new file mode 100644 index 0000000..c5a7510 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1IntegralConstant.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: boost::hana::IntegralConstant< C > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::IntegralConstant< C > Struct Template Reference
+
+
+

Description

+

template<typename C>
+struct boost::hana::IntegralConstant< C >

+ +

The IntegralConstant concept represents compile-time integral values.

+

The IntegralConstant concept represents objects that hold a constexpr value of an integral type. In other words, it describes the essential functionality provided by std::integral_constant. An IntegralConstant is also just a special kind of Constant whose inner value is of an integral type.

+

Minimal complete definition

+

The requirements for being an IntegralConstant are quite simple. First, an IntegralConstant C must be a Constant such that Tag::value_type is an integral type, where Tag is the tag of C.

+

Secondly, C must have a nested static constexpr member named value, such that the following code is valid:

constexpr auto v = C::value;

Because of the requirement that Tag::value_type be an integral type, it follows that C::value must be an integral value.

+

Finally, it is necessary to specialize the IntegralConstant template in the boost::hana namespace to tell Hana that a type is a model of IntegralConstant:

namespace boost { namespace hana {
template <>
struct IntegralConstant<your_custom_tag> {
static constexpr bool value = true;
};
}}

Refined concept

+
    +
  1. Constant (free implementation of value)
    +The value function required to be a Constant can be implemented as follows for IntegralConstants:
    value<C>() == C::value
    The to function must still be provided explicitly for the model of Constant to be complete.
  2. +
+

Concrete models

+

hana::integral_constant

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1at__key__detail_1_1advance__until.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1at__key__detail_1_1advance__until.html new file mode 100644 index 0000000..5148680 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1at__key__detail_1_1advance__until.html @@ -0,0 +1,149 @@ + + + + + + + + + +Boost.Hana: boost::hana::at_key_detail::advance_until< Xs, Pred, i, N, Done > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::at_key_detail::advance_until< Xs, Pred, i, N, Done > Struct Template Reference
+
+
+

Description

+

template<typename Xs, typename Pred, std::size_t i, std::size_t N, bool Done>
+struct boost::hana::at_key_detail::advance_until< Xs, Pred, i, N, Done >

+ +
Todo:
This causes an awful duplication of code with find_if.
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple-members.html new file mode 100644 index 0000000..56f86fb --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple-members.html @@ -0,0 +1,148 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::basic_tuple< Xs > Member List
+
+
+ +

This is the complete list of members for boost::hana::basic_tuple< Xs >, including all inherited members.

+ + + +
make< basic_tuple_tag >boost::hana::basic_tuple< Xs >related
make_basic_tupleboost::hana::basic_tuple< Xs >related
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple.html new file mode 100644 index 0000000..b2c4283 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple.html @@ -0,0 +1,220 @@ + + + + + + + + + +Boost.Hana: boost::hana::basic_tuple< Xs > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::basic_tuple< Xs > Struct Template Reference
+
+
+

Description

+

template<typename... Xs>
+struct boost::hana::basic_tuple< Xs >

+ +

Stripped down version of hana::tuple.

+

Whereas hana::tuple aims to provide an interface somewhat close to a std::tuple, basic_tuple provides the strict minimum required to implement a closure with maximum compile-time efficiency.

+

Modeled concepts

+

Sequence, and all the concepts it refines

+
+ + + + + + + + +

+Synopsis of associated functions

template<>
constexpr auto make< basic_tuple_tag >
 Function object for creating a basic_tuple. More...
 
constexpr auto make_basic_tuple = make<basic_tuple_tag>
 Alias to make<basic_tuple_tag>; provided for convenience. More...
 
+

Associated functions

+ +
+
+
+template<typename... Xs>
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< basic_tuple_tag >
+
+related
+
+Initial value:
= [](auto&& ...xs) {
return basic_tuple<std::decay_t<decltype(xs)>...>{forwarded(xs)...};
}
+

Function object for creating a basic_tuple.

+

Given zero or more objects xs..., make<basic_tuple_tag> returns a new basic_tuple containing those objects. The elements are held by value inside the resulting tuple, and they are hence copied or moved in. This is analogous to std::make_tuple for creating basic_tuples.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
constexpr hana::basic_tuple<int, char, double> xs{1, '2', 3.3};
constexpr auto ys = hana::make<hana::basic_tuple_tag>(1, '2', 3.3);
constexpr auto zs = hana::make_basic_tuple(1, '2', 3.3);
static_assert(std::is_same<decltype(ys), decltype(xs)>::value, "");
static_assert(std::is_same<decltype(zs), decltype(xs)>::value, "");
int main() { }
+
+
+ +
+
+
+template<typename... Xs>
+ + + + + +
+ + + + +
constexpr auto make_basic_tuple = make<basic_tuple_tag>
+
+related
+
+ +

Alias to make<basic_tuple_tag>; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
constexpr hana::basic_tuple<int, char, double> xs{1, '2', 3.3};
constexpr auto ys = hana::make<hana::basic_tuple_tag>(1, '2', 3.3);
constexpr auto zs = hana::make_basic_tuple(1, '2', 3.3);
static_assert(std::is_same<decltype(ys), decltype(xs)>::value, "");
static_assert(std::is_same<decltype(zs), decltype(xs)>::value, "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple__tag.html new file mode 100644 index 0000000..bfba351 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__tuple__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::basic_tuple_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::basic_tuple_tag Struct Reference
+
+
+

Description

+

Tag representing hana::basic_tuple.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__type.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__type.html new file mode 100644 index 0000000..6f20c57 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1basic__type.html @@ -0,0 +1,152 @@ + + + + + + + + + +Boost.Hana: boost::hana::basic_type< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::basic_type< T > Struct Template Reference
+
+
+

Description

+

template<typename T>
+struct boost::hana::basic_type< T >

+ +

Base class of hana::type; used for pattern-matching.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/core/demangle.hpp>
#include <cstdlib>
#include <iostream>
#include <string>
namespace hana = boost::hana;
// Using hana::type<T> as a parameter type wouldn't work, since it may be
// a dependent type, in which case template argument deduction will fail.
// Using hana::basic_type<T> is fine, since this one is guaranteed to be
// a non dependent base of hana::type<T>.
template <typename T>
std::string const& name_of(hana::basic_type<T>) {
static std::string name = boost::core::demangle(typeid(T).name());
return name;
}
int main() {
hana::for_each(hana::tuple_t<int, char, void, std::string>, [](auto type) {
std::cout << name_of(type) << std::endl;
});
}
+

Inherited by boost::hana::type_impl< T >::_.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1common.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1common.html new file mode 100644 index 0000000..3958198 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1common.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: boost::hana::common< T, U, enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::common< T, U, enabler > Struct Template Reference
+
+
+

Description

+

template<typename T, typename U, optional when-based enabler>
+struct boost::hana::common< T, U, enabler >

+ +

Metafunction returning the common data type between two data types.

+

common is a natural extension of the std::common_type metafunction to data types. Given two data types T and U, we say that they share a common type C if both objects of data type T and objects of data type U may be converted (using to) to an object of data type C, and if that conversion is equality preserving. In other words, this means that for any objects t1, t2 of data type T and u1, u2 of data type U, the following law is satisfied:

to<C>(t1) == to<C>(t2) if and only if t1 == t2
to<C>(u1) == to<C>(u2) if and only if u1 == u2

The role of common is to provide an alias to such a C if it exists. In other words, if T and U have a common data type C, common<T, U>::type is an alias to C. Otherwise, common<T, U> has no nested type and can be used in dependent contexts to exploit SFINAE. By default, the exact steps followed by common to determine the common type C of T and U are

    +
  1. If T and U are the same, then C is T.
  2. +
  3. Otherwise, if true ? std::declval<T>() : std::declval<U>() is well-formed, then C is the type of this expression after using std::decay on it. This is exactly the type that would have been returned by std::common_type, except that custom specializations of std::common_type are not taken into account.
  4. +
  5. Otherwise, no common data type is detected and common<T, U> does not have a nested type alias, unless it is specialized explicitly.
  6. +
+

As point 3 suggests, it is also possible (and sometimes necessary) to specialize common in the boost::hana namespace for pairs of custom data types when the default behavior of common is not sufficient. Note that when-based specialization is supported when specializing common in the boost::hana namespace.

+
+

Rationale for requiring the conversion to be equality-preserving

+

This decision is aligned with a proposed concept design for the standard library (N3351). Also, if we did not require this, then all data types would trivially share the common data type void, since all objects can be converted to it.

+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
struct Person { };
struct Employee : Person { };
static_assert(std::is_same<hana::common<int, float>::type, float>{}, "");
static_assert(std::is_same<hana::common<Person, Employee>::type, Person>{}, "");
int main() { }
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which-members.html new file mode 100644 index 0000000..8f13ec0 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::constant_detail::which< A, B, C > Member List
+
+
+ +

This is the complete list of members for boost::hana::constant_detail::which< A, B, C >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which.html new file mode 100644 index 0000000..618e067 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1constant__detail_1_1which.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::hana::constant_detail::which< A, B, C > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::constant_detail::which< A, B, C > Struct Template Reference
+
+
+

Description

+

template<typename A, typename B, typename C>
+struct boost::hana::constant_detail::which< A, B, C >

+ +
Todo:
This is an awful hack to avoid having
+
common<integral_constant_tag<int>, integral_constant_tag<long>>
==
CanonicalConstant<long>
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1default__.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1default__.html new file mode 100644 index 0000000..b06e14b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1default__.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost::hana::default_ Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::default_ Struct Reference
+
+
+

Description

+

Mark a tag-dispatched method implementation as a default implementation.

+

When defining a new concept with tag-dispatched methods, it is sometimes possible to provide a default implementation for some method(s). Making default_ a base class of such a default implementation makes it possible to detect whether the method was dispatched to the default implementation afterwards.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <algorithm>
#include <iterator>
#include <sstream>
#include <vector>
namespace hana = boost::hana;
// In the header defining the concept of a Printable
template <typename T>
struct print_impl : hana::default_ {
template <typename Stream, typename X>
static void apply(Stream& out, X const& x)
{ out << x; }
};
auto print = [](auto& stream, auto const& x) {
return print_impl<hana::tag_of_t<decltype(x)>>::apply(stream, x);
};
// In some other header
template <typename T>
struct print_impl<std::vector<T>> {
template <typename Stream>
static void apply(Stream& out, std::vector<T> const& xs) {
out << '[';
std::copy(begin(xs), end(xs), std::ostream_iterator<T>{out, ", "});
out << ']';
}
};
static_assert(hana::is_default<print_impl<int>>{}, "");
static_assert(!hana::is_default<print_impl<std::vector<int>>>{}, "");
int main() {
{
std::stringstream s;
print(s, std::vector<int>{1, 2, 3});
BOOST_HANA_RUNTIME_CHECK(s.str() == "[1, 2, 3, ]");
}
{
std::stringstream s;
print(s, "abcd");
BOOST_HANA_RUNTIME_CHECK(s.str() == "abcd");
}
}
+

Inherited by boost::hana::accessors_impl< S, when< condition > >, boost::hana::adjust_if_impl< Fun, when< condition > >, boost::hana::adjust_impl< Fun, when< condition > >, boost::hana::all_impl< S, when< condition > >, boost::hana::all_of_impl< S, when< condition > >, boost::hana::and_impl< L, when< condition > >, boost::hana::any_impl< S, when< condition > >, boost::hana::any_of_impl< S, when< condition > >, boost::hana::ap_impl< A, when< condition > >, boost::hana::append_impl< M, when< condition > >, boost::hana::at_impl< It, when< condition > >, boost::hana::at_key_impl< S, when< condition > >, boost::hana::back_impl< It, when< condition > >, boost::hana::cartesian_product_impl< S, when< condition > >, boost::hana::chain_impl< M, when< condition > >, boost::hana::concat_impl< M, when< condition > >, boost::hana::contains_impl< S, when< condition > >, boost::hana::count_if_impl< T, when< condition > >, boost::hana::count_impl< T, when< condition > >, boost::hana::cycle_impl< M, when< condition > >, boost::hana::difference_impl< S, when< condition > >, boost::hana::div_impl< T, U, when< condition > >, boost::hana::drop_back_impl< S, when< condition > >, boost::hana::drop_front_exactly_impl< It, when< condition > >, boost::hana::drop_front_impl< It, when< condition > >, boost::hana::drop_while_impl< It, when< condition > >, boost::hana::duplicate_impl< W, when< condition > >, boost::hana::empty_impl< M, when< condition > >, boost::hana::equal_impl< T, U, when< condition > >, boost::hana::erase_key_impl< T, when< condition > >, boost::hana::eval_if_impl< L, when< condition > >, boost::hana::eval_impl< T, when< condition > >, boost::hana::extend_impl< W, when< condition > >, boost::hana::extract_impl< W, when< condition > >, boost::hana::fill_impl< Fun, when< condition > >, boost::hana::filter_impl< M, when< condition > >, boost::hana::find_if_impl< S, when< condition > >, boost::hana::find_impl< S, when< condition > >, boost::hana::first_impl< P, when< condition > >, boost::hana::flatten_impl< M, when< condition > >, boost::hana::fold_left_impl< T, when< condition > >, boost::hana::fold_right_impl< T, when< condition > >, boost::hana::for_each_impl< T, when< condition > >, boost::hana::front_impl< It, when< condition > >, boost::hana::greater_equal_impl< T, U, when< condition > >, boost::hana::greater_impl< T, U, when< condition > >, boost::hana::group_impl< S, when< condition > >, boost::hana::hash_impl< Tag, when< condition > >, boost::hana::if_impl< L, when< condition > >, boost::hana::insert_impl< T, when< condition > >, boost::hana::intersection_impl< S, when< condition > >, boost::hana::intersperse_impl< S, when< condition > >, boost::hana::is_disjoint_impl< S1, S2, when< condition > >, boost::hana::is_empty_impl< It, when< condition > >, boost::hana::is_subset_impl< S1, S2, when< condition > >, boost::hana::keys_impl< T, when< condition > >, boost::hana::length_impl< T, when< condition > >, boost::hana::less_equal_impl< T, U, when< condition > >, boost::hana::less_impl< T, U, when< condition > >, boost::hana::lexicographical_compare_impl< It, when< condition > >, boost::hana::lift_impl< A, when< condition > >, boost::hana::make_impl< Datatype, when< condition > >, boost::hana::max_impl< T, U, when< condition > >, boost::hana::maximum_impl< T, when< condition > >, boost::hana::maximum_pred_impl< T, when< condition > >, boost::hana::members_impl< S, when< condition > >, boost::hana::min_impl< T, U, when< condition > >, boost::hana::minimum_impl< T, when< condition > >, boost::hana::minimum_pred_impl< T, when< condition > >, boost::hana::minus_impl< T, T, when< condition > >, boost::hana::minus_impl< T, U, when< condition > >, boost::hana::mod_impl< T, U, when< condition > >, boost::hana::monadic_fold_left_impl< T, when< condition > >, boost::hana::monadic_fold_right_impl< T, when< condition > >, boost::hana::mult_impl< T, U, when< condition > >, boost::hana::negate_impl< T, when< condition > >, boost::hana::none_impl< S, when< condition > >, boost::hana::none_of_impl< S, when< condition > >, boost::hana::not_equal_impl< T, U, when< condition > >, boost::hana::not_impl< L, when< condition > >, boost::hana::one_impl< R, when< condition > >, boost::hana::or_impl< L, when< condition > >, boost::hana::partition_impl< S, when< condition > >, boost::hana::permutations_impl< S, when< condition > >, boost::hana::plus_impl< T, U, when< condition > >, boost::hana::power_impl< R, when< condition > >, boost::hana::prefix_impl< M, when< condition > >, boost::hana::prepend_impl< M, when< condition > >, boost::hana::product_impl< T, when< condition > >, boost::hana::remove_at_impl< S, when< condition > >, boost::hana::remove_if_impl< M, when< condition > >, boost::hana::remove_impl< M, when< condition > >, boost::hana::remove_range_impl< S, when< condition > >, boost::hana::repeat_impl< I, when< condition > >, boost::hana::replace_if_impl< Fun, when< condition > >, boost::hana::replace_impl< Fun, when< condition > >, boost::hana::replicate_impl< M, when< condition > >, boost::hana::reverse_impl< S, when< condition > >, boost::hana::scan_left_impl< S, when< condition > >, boost::hana::scan_right_impl< S, when< condition > >, boost::hana::second_impl< P, when< condition > >, boost::hana::slice_impl< S, when< condition > >, boost::hana::sort_impl< S, when< condition > >, boost::hana::span_impl< S, when< condition > >, boost::hana::suffix_impl< M, when< condition > >, boost::hana::sum_impl< T, when< condition > >, boost::hana::symmetric_difference_impl< S, when< condition > >, boost::hana::take_back_impl< S, when< condition > >, boost::hana::take_front_impl< S, when< condition > >, boost::hana::take_while_impl< S, when< condition > >, boost::hana::tap_impl< M, when< condition > >, boost::hana::then_impl< M, when< condition > >, boost::hana::transform_impl< Fun, when< condition > >, boost::hana::unfold_left_impl< S, when< condition > >, boost::hana::unfold_right_impl< S, when< condition > >, boost::hana::union_impl< S, when< condition > >, boost::hana::unique_impl< S, when< condition > >, boost::hana::unpack_impl< T, when< condition > >, boost::hana::value_impl< C, when< condition > >, boost::hana::while_impl< L, hana::when< condition > >, boost::hana::zero_impl< M, when< condition > >, boost::hana::zip_impl< S, when< condition > >, boost::hana::zip_shortest_impl< S, when< condition > >, and boost::hana::zip_shortest_with_impl< S, when< condition > >.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant-members.html new file mode 100644 index 0000000..aeb62a6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::CanonicalConstant< T > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::CanonicalConstant< T >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant.html new file mode 100644 index 0000000..8e4e879 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1CanonicalConstant.html @@ -0,0 +1,152 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::CanonicalConstant< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::CanonicalConstant< T > Struct Template Reference
+
+
+

Description

+

template<typename T>
+struct boost::hana::detail::CanonicalConstant< T >

+ +

Tag representing a canonical Constant.

+

This is an implementation detail used to provide many models for stuff like Monoid, Group, etc. To create a CanonicalConstant, simply create an object with a nested hana_tag equal to the proper specialization of CanonicalConstant<T>, and then also provide a constexpr static member ::value holding the value of the constant.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1any__of.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1any__of.html new file mode 100644 index 0000000..64d1941 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1any__of.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::any_of< Predicate, T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::any_of< Predicate, T > Struct Template Reference
+
+
+

Description

+

template<template< typename... > class Predicate, typename... T>
+struct boost::hana::detail::any_of< Predicate, T >

+ +

Returns whether the Predicate is satisfied by any of the T....

+

This metafunction will short-circuit the evaluation at the first type satisfying the predicate, if such a type exists.

+
Note
The implementation technique used here was originally shown to me by Eric Fiselier. All credits where due.
+
+

Inherits decltypeany_of_implint< Predicate, T... >.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array-members.html new file mode 100644 index 0000000..012f0e2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::array< T, Size > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::array< T, Size >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array.html new file mode 100644 index 0000000..357df6d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1array.html @@ -0,0 +1,152 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::array< T, Size > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::array< T, Size > Struct Template Reference
+
+
+

Description

+

template<typename T, std::size_t Size>
+struct boost::hana::detail::array< T, Size >

+ +

A minimal std::array with better constexpr support.

+

We also provide some algorithms from the constexpr/algorithm.hpp header as member functions to make them easier to use in constexpr contexts, since a constexpr array can't be mutated in place.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create-members.html new file mode 100644 index 0000000..4c3c240 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::create< T > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::create< T >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create.html new file mode 100644 index 0000000..875794e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1create.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::create< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::create< T > Struct Template Reference
+
+
+

Description

+

template<template< typename... > class T>
+struct boost::hana::detail::create< T >

+ +

Implementation of the generic std::make_xxx pattern for arbitrary xxxs.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay-members.html new file mode 100644 index 0000000..a5463ef --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::decay< T, U > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::decay< T, U >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay.html new file mode 100644 index 0000000..81f5140 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1decay.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::decay< T, U > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::decay< T, U > Struct Template Reference
+
+
+

Description

+

template<typename T, typename U = typename std::remove_reference<T>::type>
+struct boost::hana::detail::decay< T, U >

+ +

Equivalent to std::decay, except faster.

+

std::decay in libc++ is implemented in a suboptimal way. Since this is used literally everywhere by the make<...> functions, it is very important to keep this as efficient as possible.

+
Note
std::decay is still being used in some places in the library. Indeed, this is a peephole optimization and it would not be wise to clutter the code with our own implementation of std::decay, except when this actually makes a difference in compile-times.
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index-members.html new file mode 100644 index 0000000..0db49e1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::first_unsatisfied_index< Pred > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::first_unsatisfied_index< Pred >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index.html new file mode 100644 index 0000000..eadd538 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1first__unsatisfied__index.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::first_unsatisfied_index< Pred > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::first_unsatisfied_index< Pred > Struct Template Reference
+
+
+

Description

+

template<typename Pred>
+struct boost::hana::detail::first_unsatisfied_index< Pred >

+ +

Returns the index of the first element which does not satisfy Pred, or sizeof...(Xs) if no such element exists.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates-members.html new file mode 100644 index 0000000..1b24e48 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::has_duplicates< T > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::has_duplicates< T >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates.html new file mode 100644 index 0000000..fdbf96e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1has__duplicates.html @@ -0,0 +1,154 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::has_duplicates< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::has_duplicates< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::hana::detail::has_duplicates< T >

+ +

Returns whether any of the Ts are duplicate w.r.t. hana::equal.

+

In particular, this does not check whether all of the Ts are unique as types, but rather whether they are unique when compared as hana::equal(std::declval<T>(), std::declval<U>()). This assumes the comparison to return an IntegralConstant that can be explicitly converted to bool.

+
Note
Since this utility is mostly used in assertions to check that there are no duplicates in a sequence, we expect it to return false most of the time (otherwise we will assert). Hence, this implementation is biased towards the fact that we will have to compare every pair of elements in most cases, and it does not try to be lazy.
+
Todo:
This implementation is O(n^2). We could do it in O(n), but that would require a more elaborate setup including storage with O(1) lookup (which could be based on a compile-time hash). If we implement such storage for associative sequences, we could use it to optimize this.
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1index__if.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1index__if.html new file mode 100644 index 0000000..21e7498 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1index__if.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::index_if< Pred, Ts, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::index_if< Pred, Ts, typename > Struct Template Reference
+
+
+

Description

+

template<typename Pred, typename Ts, typename = when<true>>
+struct boost::hana::detail::index_if< Pred, Ts, typename >

+ +

Returns the index of the first element of the pack<> that satisfies the predicate, or the size of the pack if there is no such element.

+
Note
The predicate must return an IntegralConstant that can be explicitly converted to bool.
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by-members.html new file mode 100644 index 0000000..a7c903a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::nested_by< Algorithm > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::nested_by< Algorithm >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by.html new file mode 100644 index 0000000..cd946ee --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__by.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::nested_by< Algorithm > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::nested_by< Algorithm > Struct Template Reference
+
+
+

Description

+

template<typename Algorithm>
+struct boost::hana::detail::nested_by< Algorithm >

+ +

Provides a .by static constexpr function object.

+

When creating a binary function object of type Algorithm whose signature is Object x Predicate -> Return, nested_by<Algorithm> can be used as a base class to Algorithm. Doing so will provide a static constexpr member called by, which has the two following signatures:

Predicate x Object -> Return
Predicate -> (Object -> Return)

In other words, nested_by is a curryed and flipped version of Algorithm. Note that the function object Algorithm must be default-constructible, since the algorithm will be called as Algorithm{}(arguments...).

+
Note
This function object is especially useful because it takes care of avoiding ODR violations caused by the nested static constexpr member.
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than-members.html new file mode 100644 index 0000000..699d457 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::nested_than< Algorithm > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::nested_than< Algorithm >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than.html new file mode 100644 index 0000000..0e8e3a3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__than.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::nested_than< Algorithm > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::nested_than< Algorithm > Struct Template Reference
+
+
+

Description

+

template<typename Algorithm>
+struct boost::hana::detail::nested_than< Algorithm >

+ +

Provides a .than static constexpr function object.

+

When creating a binary function object of type Algo whose signature is A x B -> Return, nested_than<Algo> can be used as a base class of Algo. Doing so will provide a static constexpr member called than, which has the following signature:

B -> A -> Return

Note that the function object Algo must be default-constructible, since it will be called as Algo{}(arguments...).

+
Note
This function object is especially useful because it takes care of avoiding ODR violations caused by the nested static constexpr member.
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to-members.html new file mode 100644 index 0000000..aa5e78d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::nested_to< Algorithm > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::nested_to< Algorithm >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to.html new file mode 100644 index 0000000..e500e6d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__to.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::nested_to< Algorithm > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::nested_to< Algorithm > Struct Template Reference
+
+
+

Description

+

template<typename Algorithm>
+struct boost::hana::detail::nested_to< Algorithm >

+ +

Provides a .to static constexpr function object.

+

When creating a binary function object of type Algo whose signature is Object x Object -> Return, nested_to<Algo> can be used as a base class of Algo. Doing so will provide a static constexpr member called to, which has the following signature:

Object -> Object -> Return

Note that the function object Algo must be default-constructible, since the algorithm will be called as Algo{}(arguments...).

+
Note
This function object is especially useful because it takes care of avoiding ODR violations caused by the nested static constexpr member.
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1operators_1_1adl.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1operators_1_1adl.html new file mode 100644 index 0000000..47c8cc4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1operators_1_1adl.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::operators::adl<... > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::operators::adl<... > Struct Template Reference
+
+
+

Description

+

template<typename...>
+struct boost::hana::detail::operators::adl<... >

+ +

Enables ADL in the hana::detail::operators namespace.

+

This is used by containers in Hana as a quick way to automatically define the operators associated to some concepts, in conjunction with the detail::xxx_operators family of metafunctions.

+

Note that adl can be passed template arguments to make it unique amongst a set of derived classes. This allows a set of derived classes not to possess a common base class, which would disable the EBO when many of these derived classes are stored in a Hana container. If EBO is not a concern, adl<> can simply be used.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1std__common__type.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1std__common__type.html new file mode 100644 index 0000000..3ca11c9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1std__common__type.html @@ -0,0 +1,149 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::std_common_type< T, U, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::std_common_type< T, U, typename > Struct Template Reference
+
+
+

Description

+

template<typename T, typename U, typename = void>
+struct boost::hana::detail::std_common_type< T, U, typename >

+ +

Equivalent to std::common_type, except it is SFINAE-friendly and does not support custom specializations.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at-members.html new file mode 100644 index 0000000..0c36ac7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::type_at< n, T > Member List
+
+
+ +

This is the complete list of members for boost::hana::detail::type_at< n, T >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at.html new file mode 100644 index 0000000..3c1ee18 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1type__at.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::type_at< n, T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::detail::type_at< n, T > Struct Template Reference
+
+
+

Description

+

template<std::size_t n, typename... T>
+struct boost::hana::detail::type_at< n, T >

+ +

Classic MPL-style metafunction returning the nth element of a type parameter pack.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1wrong.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1wrong.html new file mode 100644 index 0000000..39850c7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1wrong.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::detail::wrong<... > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::detail::wrong<... > Struct Template Reference
+
+
+

Description

+

template<typename...>
+struct boost::hana::detail::wrong<... >

+ +

Equivalent to a type-dependent std::false_type.

+

This is useful for making a static assertion that would otherwise always fire up dependent on some template parameters.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
template <typename T, typename U>
struct base_template {
// Can't write this because the assertion would always fire up:
// static_assert(false, "...");
// So instead we write this:
static_assert(hana::detail::wrong<base_template<T, U>>::value,
"base_template does not have a valid default definition");
};
template <>
struct base_template<int, int> {
// something useful
};
int main() { }
+

Inherits false_type.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1embedding.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1embedding.html new file mode 100644 index 0000000..914a769 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1embedding.html @@ -0,0 +1,155 @@ + + + + + + + + + +Boost.Hana: boost::hana::embedding< bool > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::embedding< bool > Struct Template Reference
+
+
+

Description

+

template<bool = true>
+struct boost::hana::embedding< bool >

+ +

Marks a conversion between data types as being an embedding.

+

To mark a conversion between two data types To and From as an embedding, simply use embedding<true> (or simply embedding<>) as a base class of the corresponding to_impl specialization. If a to_impl specialization does not inherit embedding<true> or embedding<>, then it is not considered an embedding by the is_embedded metafunction.

+
+

Tip

+

The boolean template parameter is useful for marking a conversion as an embedding only when some condition is satisfied.

+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <vector>
namespace hana = boost::hana;
namespace boost { namespace hana {
template <typename To, typename From>
struct to_impl<std::vector<To>, std::vector<From>,
when<is_convertible<From, To>::value>>
: embedding<is_embedded<From, To>::value>
{
static std::vector<To> apply(std::vector<From> const& xs) {
std::vector<To> result;
for (auto const& x: xs)
result.push_back(to<To>(x));
return result;
}
};
}}
int main() {
hana::to<std::vector<int>>(std::vector<float>{1.1, 2.2, 3.3})
==
std::vector<int>{1, 2, 3}
);
static_assert(!hana::is_embedded<std::vector<float>, std::vector<int>>{}, "");
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1experimental_1_1types.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1experimental_1_1types.html new file mode 100644 index 0000000..96a4b00 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1experimental_1_1types.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: boost::hana::experimental::types< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::experimental::types< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::hana::experimental::types< T >

+ +

Container optimized for holding types.

+

It is often useful to manipulate a sequence that contains types only, without any associated runtime value. This container allows storing and manipulating pure types in a much more compile-time efficient manner than using hana::tuple, which must assume that its contents might have runtime values.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1has__common.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1has__common.html new file mode 100644 index 0000000..a4018ce --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1has__common.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::has_common< T, U, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::has_common< T, U, typename > Struct Template Reference
+
+
+

Description

+

template<typename T, typename U, typename>
+struct boost::hana::has_common< T, U, typename >

+ +

Metafunction returning whether two data types share a common data type.

+

Given two data types T and U, this metafunction simply returns whether common<T, U>::type is well-formed.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::has_common<int, float>{}, "");
static_assert(!hana::has_common<void, float>{}, "");
int main() { }
+

Inherits false_type.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant-members.html new file mode 100644 index 0000000..1d54e37 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant-members.html @@ -0,0 +1,190 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::integral_constant< T, v > Member List
+
+
+ +

This is the complete list of members for boost::hana::integral_constant< T, v >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool_ typedefboost::hana::integral_constant< T, v >related
bool_cboost::hana::integral_constant< T, v >related
char_ typedefboost::hana::integral_constant< T, v >related
char_cboost::hana::integral_constant< T, v >related
false_ typedefboost::hana::integral_constant< T, v >related
false_cboost::hana::integral_constant< T, v >related
int_ typedefboost::hana::integral_constant< T, v >related
int_cboost::hana::integral_constant< T, v >related
integral_cboost::hana::integral_constant< T, v >related
llong typedefboost::hana::integral_constant< T, v >related
llong_cboost::hana::integral_constant< T, v >related
long_ typedefboost::hana::integral_constant< T, v >related
long_cboost::hana::integral_constant< T, v >related
operator!(X &&x)boost::hana::integral_constant< T, v >friend
operator!=(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator""_c()boost::hana::integral_constant< T, v >related
operator%(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator&&(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator*(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator+(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator-(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator-(X &&x)boost::hana::integral_constant< T, v >friend
operator/(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator<(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator<=(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator==(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator>(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator>=(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
operator||(X &&x, Y &&y)boost::hana::integral_constant< T, v >friend
short_ typedefboost::hana::integral_constant< T, v >related
short_cboost::hana::integral_constant< T, v >related
size_cboost::hana::integral_constant< T, v >related
size_t typedefboost::hana::integral_constant< T, v >related
times(F &&f)boost::hana::integral_constant< T, v >static
true_ typedefboost::hana::integral_constant< T, v >related
true_cboost::hana::integral_constant< T, v >related
uint typedefboost::hana::integral_constant< T, v >related
uint_cboost::hana::integral_constant< T, v >related
ullong typedefboost::hana::integral_constant< T, v >related
ullong_cboost::hana::integral_constant< T, v >related
ulong typedefboost::hana::integral_constant< T, v >related
ulong_cboost::hana::integral_constant< T, v >related
ushort_ typedefboost::hana::integral_constant< T, v >related
ushort_cboost::hana::integral_constant< T, v >related
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant.html new file mode 100644 index 0000000..acb44dd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant.html @@ -0,0 +1,1069 @@ + + + + + + + + + +Boost.Hana: boost::hana::integral_constant< T, v > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::integral_constant< T, v > Struct Template Reference
+
+
+

Description

+

template<typename T, T v>
+struct boost::hana::integral_constant< T, v >

+ +

Compile-time value of an integral type.

+

An integral_constant is an object that represents a compile-time integral value. As the name suggests, hana::integral_constant is basically equivalent to std::integral_constant, except that hana::integral_constant also provide other goodies to make them easier to use, like arithmetic operators and similar features. In particular, hana::integral_constant is guaranteed to inherit from the corresponding std::integral_constant, and hence have the same members and capabilities. The sections below explain the extensions to std::integral_constant provided by hana::integral_constant.

+

Arithmetic operators

+

hana::integral_constant provides arithmetic operators that return hana::integral_constants to ease writing compile-time arithmetic:

BOOST_HANA_CONSTANT_CHECK(hana::int_c<1> + hana::int_c<3> == hana::int_c<4>);
// Mixed-type operations are supported, but only when it involves a
// promotion, and not a conversion that could be lossy.
BOOST_HANA_CONSTANT_CHECK(hana::size_c<3> * hana::ushort_c<5> == hana::size_c<15>);
BOOST_HANA_CONSTANT_CHECK(hana::llong_c<15> == hana::int_c<15>);

It is pretty important to realize that these operators return other integral_constants, not normal values of an integral type. Actually, all those operators work pretty much in the same way. Simply put, for an operator @,

integral_constant<T, x>{} @ integral_constant<T, y>{} == integral_constant<T, x @ y>{}

The fact that the operators return Constants is very important because it allows all the information that's known at compile-time to be conserved as long as it's only used with other values known at compile-time. It is also interesting to observe that whenever an integral_constant is combined with a normal runtime value, the result will be a runtime value (because of the implicit conversion). In general, this gives us the following table

+ + + + + + + + + + + +
left operand right operand result
integral_constant integral_constant integral_constant
integral_constant runtime runtime
runtime integral_constant runtime
runtime runtime runtime
+

The full range of provided operators is

    +
  • Arithmetic: binary +, binary -, /, *, %, unary +, unary -
  • +
  • Bitwise: ~, &, |, ^, <<, >>
  • +
  • Comparison: ==, !=, <, <=, >, >=
  • +
  • Logical: ||, &&, !
  • +
+

Construction with user-defined literals

+

integral_constants of type long long can be created with the _c user-defined literal, which is contained in the literals namespace:

using namespace hana::literals; // contains the _c suffix
BOOST_HANA_CONSTANT_CHECK(1234_c == hana::llong_c<1234>);
BOOST_HANA_CONSTANT_CHECK(-1234_c == hana::llong_c<-1234>);
BOOST_HANA_CONSTANT_CHECK(1_c + (3_c * 4_c) == hana::llong_c<1 + (3 * 4)>);

Modeled concepts

+
    +
  1. Constant and IntegralConstant
    +An integral_constant is a model of the IntegralConstant concept in the most obvious way possible. Specifically, The model of Constant follows naturally from the model of IntegralConstant, i.e.
    value<integral_constant<T, v>>() == v // of type T
  2. +
  3. Comparable, Orderable, Logical, Monoid, Group, Ring, and EuclideanRing, Hashable
    +Those models are exactly those provided for Constants, which are documented in their respective concepts.
  4. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Synopsis of associated functions

template<bool b>
using bool_ = integral_constant< bool, b >
 
using true_ = bool_< true >
 
using false_ = bool_< false >
 
template<char c>
using char_ = integral_constant< char, c >
 
template<short i>
using short_ = integral_constant< short, i >
 
template<unsigned short i>
using ushort_ = integral_constant< unsigned short, i >
 
template<int i>
using int_ = integral_constant< int, i >
 
template<unsigned int i>
using uint = integral_constant< unsigned int, i >
 
template<long i>
using long_ = integral_constant< long, i >
 
template<unsigned long i>
using ulong = integral_constant< unsigned long, i >
 
template<long long i>
using llong = integral_constant< long long, i >
 
template<unsigned long long i>
using ullong = integral_constant< unsigned long long, i >
 
template<std::size_t i>
using size_t = integral_constant< std::size_t, i >
 
template<typename T , T v>
constexpr integral_constant< T, v > integral_c {}
 Creates an integral_constant holding the given compile-time value. More...
 
template<bool b>
constexpr bool_< b > bool_c {}
 
constexpr auto true_c = bool_c<true>
 
constexpr auto false_c = bool_c<false>
 
template<char c>
constexpr char_< c > char_c {}
 
template<short i>
constexpr short_< i > short_c {}
 
template<unsigned short i>
constexpr ushort_< i > ushort_c {}
 
template<int i>
constexpr int_< i > int_c {}
 
template<unsigned int i>
constexpr uint< i > uint_c {}
 
template<long i>
constexpr long_< i > long_c {}
 
template<unsigned long i>
constexpr ulong< i > ulong_c {}
 
template<long long i>
constexpr llong< i > llong_c {}
 
template<unsigned long long i>
constexpr ullong< i > ullong_c {}
 
template<std::size_t i>
constexpr size_t< i > size_c {}
 
template<char... c>
constexpr auto operator""_c ()
 Creates a hana::integral_constant from a literal. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Friends

+template<typename X , typename Y >
constexpr auto operator+ (X &&x, Y &&y)
 Equivalent to hana::plus
 
+template<typename X , typename Y >
constexpr auto operator- (X &&x, Y &&y)
 Equivalent to hana::minus
 
+template<typename X >
constexpr auto operator- (X &&x)
 Equivalent to hana::negate
 
+template<typename X , typename Y >
constexpr auto operator* (X &&x, Y &&y)
 Equivalent to hana::mult
 
+template<typename X , typename Y >
constexpr auto operator/ (X &&x, Y &&y)
 Equivalent to hana::div
 
+template<typename X , typename Y >
constexpr auto operator% (X &&x, Y &&y)
 Equivalent to hana::mod
 
+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+template<typename X , typename Y >
constexpr auto operator|| (X &&x, Y &&y)
 Equivalent to hana::or_
 
+template<typename X , typename Y >
constexpr auto operator&& (X &&x, Y &&y)
 Equivalent to hana::and_
 
+template<typename X >
constexpr auto operator! (X &&x)
 Equivalent to hana::not_
 
+template<typename X , typename Y >
constexpr auto operator< (X &&x, Y &&y)
 Equivalent to hana::less
 
+template<typename X , typename Y >
constexpr auto operator> (X &&x, Y &&y)
 Equivalent to hana::greater
 
+template<typename X , typename Y >
constexpr auto operator<= (X &&x, Y &&y)
 Equivalent to hana::less_equal
 
+template<typename X , typename Y >
constexpr auto operator>= (X &&x, Y &&y)
 Equivalent to hana::greater_equal
 
+ + + + + +

+Static Public Member Functions

template<typename F >
static constexpr void times (F &&f)
 Call a function n times. More...
 
+

Associated functions

+ +
+
+
+template<typename T, T v>
+
+template<bool b>
+ + + + + +
+ + + + +
using bool_ = integral_constant<bool, b>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+ + + + + +
+ + + + +
using true_ = bool_<true>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+ + + + + +
+ + + + +
using false_ = bool_<false>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<char c>
+ + + + + +
+ + + + +
using char_ = integral_constant<char, c>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<short i>
+ + + + + +
+ + + + +
using short_ = integral_constant<short, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned short i>
+ + + + + +
+ + + + +
using ushort_ = integral_constant<unsigned short, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<int i>
+ + + + + +
+ + + + +
using int_ = integral_constant<int, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned int i>
+ + + + + +
+ + + + +
using uint = integral_constant<unsigned int, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<long i>
+ + + + + +
+ + + + +
using long_ = integral_constant<long, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned long i>
+ + + + + +
+ + + + +
using ulong = integral_constant<unsigned long, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<long long i>
+ + + + + +
+ + + + +
using llong = integral_constant<long long, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned long long i>
+ + + + + +
+ + + + +
using ullong = integral_constant<unsigned long long, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<std::size_t i>
+ + + + + +
+ + + + +
using size_t = integral_constant<std::size_t, i>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<typename T , T v>
+ + + + + +
+ + + + +
constexpr integral_constant<T, v> integral_c {}
+
+related
+
+ +

Creates an integral_constant holding the given compile-time value.

+

Specifically, integral_c<T, v> is a hana::integral_constant holding the compile-time value v of an integral type T.

+
Template Parameters
+ + + +
TThe type of the value to hold in the integral_constant. It must be an integral type.
vThe integral value to hold in the integral_constant.
+
+
+

Example

+
BOOST_HANA_CONSTANT_CHECK(hana::integral_c<int, 2> == hana::int_c<2>);
static_assert(decltype(hana::integral_c<int, 2>)::value == 2, "");
+
+
+ +
+
+
+template<typename T, T v>
+
+template<bool b>
+ + + + + +
+ + + + +
constexpr bool_<b> bool_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+ + + + + +
+ + + + +
constexpr auto true_c = bool_c<true>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+ + + + + +
+ + + + +
constexpr auto false_c = bool_c<false>
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<char c>
+ + + + + +
+ + + + +
constexpr char_<c> char_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<short i>
+ + + + + +
+ + + + +
constexpr short_<i> short_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned short i>
+ + + + + +
+ + + + +
constexpr ushort_<i> ushort_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<int i>
+ + + + + +
+ + + + +
constexpr int_<i> int_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned int i>
+ + + + + +
+ + + + +
constexpr uint<i> uint_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<long i>
+ + + + + +
+ + + + +
constexpr long_<i> long_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned long i>
+ + + + + +
+ + + + +
constexpr ulong<i> ulong_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<long long i>
+ + + + + +
+ + + + +
constexpr llong<i> llong_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<unsigned long long i>
+ + + + + +
+ + + + +
constexpr ullong<i> ullong_c {}
+
+related
+
+ +
+
+ +
+
+
+template<typename T, T v>
+
+template<std::size_t i>
+ + + + + +
+ + + + +
constexpr size_t<i> size_c {}
+
+related
+
+ +
+
+ +
+
+
+template<char... c>
+ + + + + +
+ + + + + + + +
constexpr auto operator""_c ()
+
+related
+
+ +

Creates a hana::integral_constant from a literal.

+

The literal is parsed at compile-time and the result is returned as a llong<...>.

+
Note
We use llong<...> instead of ullong<...> because using an unsigned type leads to unexpected behavior when doing stuff like -1_c. If we used an unsigned type, -1_c would be something like ullong<-1> which is actually ullong<something huge>.
+

Example

+
using namespace hana::literals; // contains the _c suffix
BOOST_HANA_CONSTANT_CHECK(1234_c == hana::llong_c<1234>);
BOOST_HANA_CONSTANT_CHECK(-1234_c == hana::llong_c<-1234>);
BOOST_HANA_CONSTANT_CHECK(1_c + (3_c * 4_c) == hana::llong_c<1 + (3 * 4)>);
+
+
+

Member Function Documentation

+ +
+
+
+template<typename T, T v>
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
static constexpr void boost::hana::integral_constant< T, v >::times (F && f)
+
+static
+
+ +

Call a function n times.

+

times allows a nullary function to be invoked n times:

should be expanded by any decent compiler to

f(); f(); f();

This can be useful in several contexts, e.g. for loop unrolling:

std::string s;
for (char c = 'x'; c <= 'z'; ++c)
hana::int_<5>::times([&] { s += c; });
BOOST_HANA_RUNTIME_CHECK(s == "xxxxxyyyyyzzzzz");

Note that times is really a static function object, not just a static function. This allows int_<n>::times to be passed to higher-order algorithms:

std::string s;
BOOST_HANA_CONSTEXPR_LAMBDA auto functions = hana::make_tuple(
[&] { s += "x"; },
[&] { s += "y"; },
[&] { s += "z"; }
);
hana::for_each(functions, hana::int_<5>::times);
BOOST_HANA_RUNTIME_CHECK(s == "xxxxxyyyyyzzzzz");

Also, since static members can be accessed using both the . and the :: syntax, one can take advantage of this (loophole?) to call times on objects just as well as on types:

std::string s;
for (char c = 'x'; c <= 'z'; ++c)
hana::int_c<5>.times([&] { s += c; });
BOOST_HANA_RUNTIME_CHECK(s == "xxxxxyyyyyzzzzz");
Note
times is equivalent to the hana::repeat function, which works on an arbitrary IntegralConstant.
+

Sometimes, it is also useful to know the index we're at inside the function. This can be achieved by using times.with_index:

std::vector<int> v;
hana::int_<5>::times.with_index([&](auto index) { v.push_back(index); });
BOOST_HANA_RUNTIME_CHECK(v == std::vector<int>{0, 1, 2, 3, 4});

Remember that times is a function object, and hence it can have subobjects. with_index is just a function object nested inside times, which allows for this nice little interface. Also note that the indices passed to the function are integral_constants; they are known at compile-time. Hence, we can do compile-time stuff with them, like indexing inside a tuple:

constexpr auto xs = hana::tuple_c<int, 0, 1, 2>;
hana::int_<3>::times.with_index([xs](auto index) {
BOOST_HANA_CONSTANT_CHECK(xs[index] == index);
});
Note
times.with_index(f) guarantees that the calls to f will be done in order of ascending index. In other words, f will be called as f(0), f(1), f(2), etc., but with integral_constants instead of normal integers. Side effects can also be done in the function passed to times and times.with_index.
+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag-members.html new file mode 100644 index 0000000..5e5cf95 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag-members.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::integral_constant_tag< T > Member List
+
+
+ +

This is the complete list of members for boost::hana::integral_constant_tag< T >, including all inherited members.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag.html new file mode 100644 index 0000000..875083a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1integral__constant__tag.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::hana::integral_constant_tag< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::integral_constant_tag< T > Struct Template Reference
+
+
+

Description

+

template<typename T>
+struct boost::hana::integral_constant_tag< T >

+ +

Tag representing hana::integral_constant.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__convertible.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__convertible.html new file mode 100644 index 0000000..5a61569 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__convertible.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::is_convertible< From, To, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::is_convertible< From, To, typename > Struct Template Reference
+
+
+

Description

+

template<typename From, typename To, typename>
+struct boost::hana::is_convertible< From, To, typename >

+ +

Returns whether there is a Hana-conversion from a data type to another.

+

Specifically, is_convertible<From, To> is whether calling to<To> with an object of data type From would not trigger a static assertion.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
struct Person { };
struct Employee : Person { };
static_assert(hana::is_convertible<Employee, Person>{}, "");
static_assert(!hana::is_convertible<Person, Employee>{}, "");
static_assert(hana::is_convertible<int, float>{}, "");
int main() { }
+

Inherits true_type.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__default.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__default.html new file mode 100644 index 0000000..031103c --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__default.html @@ -0,0 +1,154 @@ + + + + + + + + + +Boost.Hana: boost::hana::is_default< Method, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::is_default< Method, typename > Struct Template Reference
+
+
+

Description

+

template<typename Method, typename>
+struct boost::hana::is_default< Method, typename >

+ +

Returns whether a tag-dispatched method implementation is a default implementation.

+

Given a tag-dispatched method implementation method_impl<T...>, is_default<method_impl<T...>> returns whether method_impl<T...> is a default implementation. Note that if there is no default implementation for the method, then is_default should not be used unless a static assertion saying that "the method is not +implemented" is acceptable.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <algorithm>
#include <iterator>
#include <sstream>
#include <vector>
namespace hana = boost::hana;
// In the header defining the concept of a Printable
template <typename T>
struct print_impl : hana::default_ {
template <typename Stream, typename X>
static void apply(Stream& out, X const& x)
{ out << x; }
};
auto print = [](auto& stream, auto const& x) {
return print_impl<hana::tag_of_t<decltype(x)>>::apply(stream, x);
};
// In some other header
template <typename T>
struct print_impl<std::vector<T>> {
template <typename Stream>
static void apply(Stream& out, std::vector<T> const& xs) {
out << '[';
std::copy(begin(xs), end(xs), std::ostream_iterator<T>{out, ", "});
out << ']';
}
};
static_assert(hana::is_default<print_impl<int>>{}, "");
static_assert(!hana::is_default<print_impl<std::vector<int>>>{}, "");
int main() {
{
std::stringstream s;
print(s, std::vector<int>{1, 2, 3});
BOOST_HANA_RUNTIME_CHECK(s.str() == "[1, 2, 3, ]");
}
{
std::stringstream s;
print(s, "abcd");
BOOST_HANA_RUNTIME_CHECK(s.str() == "abcd");
}
}
+

Inherits false_type.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__embedded.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__embedded.html new file mode 100644 index 0000000..495eea9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1is__embedded.html @@ -0,0 +1,153 @@ + + + + + + + + + +Boost.Hana: boost::hana::is_embedded< From, To, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::is_embedded< From, To, typename > Struct Template Reference
+
+
+

Description

+

template<typename From, typename To, typename>
+struct boost::hana::is_embedded< From, To, typename >

+ +

Returns whether a data type can be embedded into another data type.

+

Given two data types To and From, is_embedded<From, To> returns whether From is convertible to To, and whether that conversion is also an embedding, as signaled by the embedding type.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::is_embedded<int, long>{}, "");
// int -> unsigned long could cause negative values to be lost
static_assert(!hana::is_embedded<int, unsigned int long>{}, "");
// similarly, float can't represent all the values of int
static_assert(!hana::is_embedded<int, float>{}, "");
// OK, the conversion is lossless
static_assert(hana::is_embedded<float, double>{}, "");
int main() { }
+

Inherits false_type.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy-members.html new file mode 100644 index 0000000..627cd72 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy-members.html @@ -0,0 +1,150 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::lazy< implementation_defined > Member List
+
+ +
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy.html new file mode 100644 index 0000000..0391dc1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy.html @@ -0,0 +1,271 @@ + + + + + + + + + +Boost.Hana: boost::hana::lazy< implementation_defined > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::lazy< implementation_defined > Struct Template Reference
+
+
+

Description

+

template<typename implementation_defined>
+struct boost::hana::lazy< implementation_defined >

+ +

hana::lazy implements superficial laziness via a monadic interface.

+

It is important to understand that the laziness implemented by lazy is only superficial; only function applications made inside the lazy monad can be made lazy, not all their subexpressions.

+
Note
The actual representation of hana::lazy is completely implementation-defined. Lazy values may only be created through hana::make_lazy, and they can be stored in variables using auto, but any other assumption about the representation of hana::lazy<...> should be avoided. In particular, one should not rely on the fact that hana::lazy<...> can be pattern-matched on, because it may be a dependent type.
+

Modeled concepts

+
    +
  1. Functor
    +Applying a function over a lazy value with transform returns the result of applying the function, as a lazy value.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    using hana::_;
    int main() {
    static_assert(hana::eval(hana::transform(hana::make_lazy(4 / _)(1), _ * 3)) == (4 / 1) * 3, "");
    hana::transform(hana::make_lazy(4 / _)(0), _ * 3); // never evaluated
    }
  2. +
  3. Applicative
    +A normal value can be lifted into a lazy value by using lift<lazy_tag>. A lazy function can be lazily applied to a lazy value by using ap.
  4. +
  5. Monad
    +The lazy monad allows combining lazy computations into larger lazy computations. Note that the | operator can be used in place of the chain function.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <functional>
    #include <iostream>
    #include <sstream>
    namespace hana = boost::hana;
    template <typename T>
    T read_(std::istream& stream) {
    T x;
    stream >> x;
    std::cout << "read " << x << " from the stream\n";
    return x;
    }
    int main() {
    std::stringstream ss;
    int in = 123;
    std::cout << "creating the monadic chain...\n";
    auto out = hana::make_lazy(read_<int>)(std::ref(ss))
    | [](auto x) {
    std::cout << "performing x + 1...\n";
    return hana::make_lazy(x + 1);
    }
    | [](auto x) {
    std::cout << "performing x / 2...\n";
    return hana::make_lazy(x / 2);
    };
    std::cout << "putting " << in << " in the stream...\n";
    ss << in; // nothing is evaluated yet
    std::cout << "evaluating the monadic chain...\n";
    auto eout = hana::eval(out);
    std::cout << "the result of the monadic chain is " << eout << "\n";
    BOOST_HANA_RUNTIME_CHECK(eout == (in + 1) / 2);
    }
  6. +
  7. Comonad
    +The lazy comonad allows evaluating a lazy computation to get its result and lazily applying functions taking lazy inputs to lazy values. This blog post goes into more details about lazy evaluation and comonads.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <sstream>
    namespace hana = boost::hana;
    int main() {
    std::stringstream s("1 2 3");
    auto i = hana::make_lazy([&] {
    int i;
    s >> i;
    return i;
    })();
    auto i_plus_one = hana::extend(i, [](auto lazy_int) {
    return hana::eval(lazy_int) + 1;
    });
    }
  8. +
+
Note
hana::lazy only models a few concepts because providing more functionality would require evaluating the lazy values in most cases. Since this raises some issues such as side effects and memoization, the interface is kept minimal.
+
+ + + + + + + + + + + +

+Synopsis of associated functions

constexpr auto eval
 Evaluate a lazy value and return it. More...
 
template<>
constexpr auto make< lazy_tag >
 Lifts a normal value to a lazy one. More...
 
constexpr auto make_lazy = make<lazy_tag>
 Alias to make<lazy_tag>; provided for convenience. More...
 
+ + + + + +

+Friends

+template<typename... T, typename F >
constexpr auto operator| (lazy< T... >, F)
 Equivalent to hana::chain.
 
+

Associated functions

+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto eval
+
+related
+
+Initial value:
= [](auto&& see_documentation) -> decltype(auto) {
return tag-dispatched;
}
+

Evaluate a lazy value and return it.

+

Given a lazy expression expr, eval evaluates expr and returns the result as a normal value. However, for convenience, eval can also be used with nullary and unary function objects. Specifically, if expr is not a hana::lazy, it is called with no arguments at all and the result of that call (expr()) is returned. Otherwise, if expr() is ill-formed, then expr(hana::id) is returned instead. If that expression is ill-formed, then a compile-time error is triggered.

+

The reason for allowing nullary callables in eval is because this allows using nullary lambdas as lazy branches to eval_if, which is convenient. The reason for allowing unary callables and calling them with hana::id is because this allows deferring the compile-time evaluation of selected expressions inside the callable. How this can be achieved is documented by hana::eval_if.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::eval(hana::make_lazy(hana::_ + 1)(3)) == 4, "");
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< lazy_tag >
+
+related
+
+Initial value:
= [](auto&& x) {
return lazy<implementation_defined>{forwarded(x)};
}
+

Lifts a normal value to a lazy one.

+

make<lazy_tag> can be used to lift a normal value or a function call into a lazy expression. Precisely, make<lazy_tag>(x) is a lazy value equal to x, and make<lazy_tag>(f)(x1, ..., xN) is a lazy function call that is equal to f(x1, ..., xN) when it is evaluated.

+
Note
It is interesting to note that make<lazy_tag>(f)(x1, ..., xN) is equivalent to
ap(make<lazy_tag>(f), lift<lazy_tag>(x1), ..., lift<lazy_tag>(xN))
which in turn is equivalent to make<lazy_tag>(f(x1, ..., xN)), except for the fact that the inner call to f is evaluated lazily.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto f = hana::make<hana::lazy_tag>([](auto x) {
return 1 / x;
});
BOOST_HANA_CONSTEXPR_LAMBDA auto g = hana::make_lazy([](auto x) {
return x + 1;
});
BOOST_HANA_CONSTEXPR_CHECK(hana::eval(hana::if_(hana::false_c, f(0), g(0))) == 0 + 1);
}
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto make_lazy = make<lazy_tag>
+
+related
+
+ +

Alias to make<lazy_tag>; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto f = hana::make<hana::lazy_tag>([](auto x) {
return 1 / x;
});
BOOST_HANA_CONSTEXPR_LAMBDA auto g = hana::make_lazy([](auto x) {
return x + 1;
});
BOOST_HANA_CONSTEXPR_CHECK(hana::eval(hana::if_(hana::false_c, f(0), g(0))) == 0 + 1);
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy__tag.html new file mode 100644 index 0000000..79a4a37 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1lazy__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::lazy_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::lazy_tag Struct Reference
+
+
+

Description

+

Tag representing hana::lazy.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map-members.html new file mode 100644 index 0000000..a552c1a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map-members.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::map< Pairs > Member List
+
+ +
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map.html new file mode 100644 index 0000000..313bf19 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map.html @@ -0,0 +1,431 @@ + + + + + + + + + +Boost.Hana: boost::hana::map< Pairs > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::map< Pairs > Struct Template Reference
+
+
+

Description

+

template<typename... Pairs>
+struct boost::hana::map< Pairs >

+ +

Basic associative container requiring unique, Comparable and Hashable keys.

+

The order of the elements of the map is unspecified. Also, all the keys must be Hashable, and any two keys with equal hashes must be Comparable with each other at compile-time.

+

Note that the actual representation of a hana::map is an implementation detail. As such, one should not assume anything more than what is explicitly documented as being part of the interface of a map, such as:

    +
  • the presence of additional constructors
  • +
  • the presence of additional assignment operators
  • +
  • the fact that hana::map<Pairs...> is, or is not, a dependent type
  • +
+

In particular, the last point is very important; hana::map<Pairs...> is only a shortcut for

decltype(hana::make_pair(std::declval<Pairs>()...))

which is not something that can be pattern-matched on during template argument deduction, for example.

+

Modeled concepts

+
    +
  1. Comparable
    +Two maps are equal iff all their keys are equal and are associated to equal values.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <string>
    namespace hana = boost::hana;
    using namespace std::literals;
    int main() {
    hana::make_map(
    hana::make_pair(hana::char_c<'a'>, "foobar"s),
    hana::make_pair(hana::type_c<int&&>, nullptr)
    )
    ==
    hana::make_map(
    hana::make_pair(hana::type_c<int&&>, (void*)0),
    hana::make_pair(hana::char_c<'a'>, "foobar"s)
    )
    );
    }
  2. +
  3. Searchable
    +A map can be searched by its keys with a predicate yielding a compile-time Logical. Also note that operator[] can be used instead of at_key.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    constexpr auto m = hana::make_map(
    hana::make_pair(hana::type_c<int>, 'i'),
    hana::make_pair(hana::type_c<float>, 'f')
    );
    static_assert(hana::find(m, hana::type_c<int>) == hana::just('i'), "");
    static_assert(hana::find(m, hana::type_c<float>) == hana::just('f'), "");
    BOOST_HANA_CONSTANT_CHECK(hana::find(m, hana::type_c<void>) == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(hana::find(m, hana::int_c<3>) == hana::nothing);
    // operator[] is equivalent to at_key
    static_assert(m[hana::type_c<int>] == 'i', "");
    static_assert(m[hana::type_c<float>] == 'f', "");
    int main() { }
  4. +
  5. Foldable
    +Folding a map is equivalent to folding a list of the key/value pairs it contains. In particular, since that list is not guaranteed to be in any specific order, folding a map with an operation that is not both commutative and associative will yield non-deterministic behavior.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    // Given a map of (key, value) pairs, returns a map of (value, key) pairs.
    // This requires both the keys and the values to be compile-time Comparable.
    auto invert = [](auto map) {
    return hana::fold_left(map, hana::make_map(), [](auto map, auto pair) {
    return hana::insert(map, hana::make_pair(hana::second(pair), hana::first(pair)));
    });
    };
    auto m = hana::make_map(
    hana::make_pair(hana::type_c<int>, hana::int_c<1>),
    hana::make_pair(hana::type_c<float>, hana::int_c<2>),
    hana::make_pair(hana::int_c<3>, hana::type_c<void>)
    );
    hana::make_map(
    hana::make_pair(hana::int_c<1>, hana::type_c<int>),
    hana::make_pair(hana::int_c<2>, hana::type_c<float>),
    hana::make_pair(hana::type_c<void>, hana::int_c<3>)
    )
    );
    }
  6. +
+

Conversion from any Foldable

+

Any Foldable of Products can be converted to a hana::map with hana::to<hana::map_tag> or, equivalently, hana::to_map. If the Foldable contains duplicate keys, only the value associated to the first occurence of each key is kept.

// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
auto xs = hana::make_tuple(
hana::make_pair(hana::type_c<int>, "abcd"s),
hana::make_pair(hana::type_c<void>, 1234),
hana::make_pair(hana::type_c<int>, nullptr)
);
hana::to<hana::map_tag>(xs) == hana::make_map(
hana::make_pair(hana::type_c<int>, "abcd"s),
hana::make_pair(hana::type_c<void>, 1234)
)
);
}

Example

+
// Copyright Louis Dionne 2016
// Distributed under the Boost Software License, Version 1.0.
#include <functional>
#include <string>
#include <vector>
namespace hana = boost::hana;
template <typename ...Events>
struct event_system {
using Callback = std::function<void()>;
hana::map<hana::pair<Events, std::vector<Callback>>...> map_;
template <typename Event, typename F>
void on(Event e, F handler) {
auto is_known_event = hana::contains(map_, e);
static_assert(is_known_event,
"trying to add a handler to an unknown event");
map_[e].push_back(handler);
}
template <typename Event>
void trigger(Event e) const {
auto is_known_event = hana::contains(map_, e);
static_assert(is_known_event,
"trying to trigger an unknown event");
for (auto& handler : this->map_[e])
handler();
}
};
template <typename ...Events>
event_system<Events...> make_event_system(Events ...events) {
return {};
}
int main() {
auto events = make_event_system(
BOOST_HANA_STRING("foo"),
BOOST_HANA_STRING("bar"),
BOOST_HANA_STRING("baz")
);
std::vector<std::string> triggered_events;
events.on(BOOST_HANA_STRING("foo"), [&] {
triggered_events.push_back("foo:1");
});
events.on(BOOST_HANA_STRING("foo"), [&] {
triggered_events.push_back("foo:2");
});
events.on(BOOST_HANA_STRING("bar"), [&] {
triggered_events.push_back("bar:1");
});
events.on(BOOST_HANA_STRING("baz"), [&] {
triggered_events.push_back("baz:1");
});
events.trigger(BOOST_HANA_STRING("foo"));
events.trigger(BOOST_HANA_STRING("bar"));
events.trigger(BOOST_HANA_STRING("baz"));
BOOST_HANA_RUNTIME_CHECK(triggered_events == std::vector<std::string>{
"foo:1", "foo:2", "bar:1", "baz:1"
});
}
+ + + + + + + + + + + + + + + + + + + + + + + +

+Synopsis of associated functions

template<>
constexpr auto make< map_tag >
 Function object for creating a hana::map. More...
 
constexpr auto make_map = make<map_tag>
 Alias to make<map_tag>; provided for convenience. More...
 
constexpr auto to_map = to<map_tag>
 Equivalent to to<map_tag>; provided for convenience. More...
 
constexpr auto keys
 Returns a Sequence of the keys of the map, in unspecified order. More...
 
constexpr auto values
 Returns a Sequence of the values of the map, in unspecified order. More...
 
constexpr auto insert
 Inserts a new key/value pair in a map. More...
 
constexpr auto erase_key
 Removes a key/value pair from a map. More...
 
+ + + + + + + + + +

+Friends

+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr map ()=default
 Default-construct a map. This constructor only exists when all the elements of the map are default-constructible.
 
+constexpr map (map const &other)=default
 Copy-construct a map from another map. This constructor only exists when all the elements of the map are copy-constructible.
 
+constexpr map (map &&other)=default
 Move-construct a map from another map. This constructor only exists when all the elements of the map are move-constructible.
 
+template<typename... P>
constexpr map (P &&...pairs)
 Construct the map from the provided pairs. P... must be pairs of the same type (modulo ref and cv-qualifiers), and in the same order, as those appearing in Pairs.... The pairs provided to this constructor are emplaced into the map's storage using perfect forwarding.
 
+template<typename Key >
decltype(auto) constexpr operator[] (Key &&key)
 Equivalent to hana::at_key
 
+

Associated functions

+ +
+
+
+template<typename... Pairs>
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< map_tag >
+
+related
+
+Initial value:
= [](auto&& ...pairs) {
return map<implementation_defined>{forwarded(pairs)...};
}
+

Function object for creating a hana::map.

+

Given zero or more Products representing key/value associations, make<map_tag> returns a hana::map associating these keys to these values.

+

make<map_tag> requires all the keys to be unique and to have different hashes. If you need to create a map with duplicate keys or with keys whose hashes might collide, use hana::to_map or insert (key, value) pairs to an empty map successively. However, be aware that doing so will be much more compile-time intensive than using make<map_tag>, because the uniqueness of keys will have to be enforced.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
hana::make_map(
hana::make_pair(hana::int_c<1>, "foobar"s),
hana::make_pair(hana::type_c<void>, 1234)
)
==
hana::make<hana::map_tag>(
hana::make_pair(hana::int_c<1>, "foobar"s),
hana::make_pair(hana::type_c<void>, 1234)
)
);
}
+
+
+ +
+
+
+template<typename... Pairs>
+ + + + + +
+ + + + +
constexpr auto make_map = make<map_tag>
+
+related
+
+ +

Alias to make<map_tag>; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
hana::make_map(
hana::make_pair(hana::int_c<1>, "foobar"s),
hana::make_pair(hana::type_c<void>, 1234)
)
==
hana::make<hana::map_tag>(
hana::make_pair(hana::int_c<1>, "foobar"s),
hana::make_pair(hana::type_c<void>, 1234)
)
);
}
+
+
+ +
+
+
+template<typename... Pairs>
+ + + + + +
+ + + + +
constexpr auto to_map = to<map_tag>
+
+related
+
+ +

Equivalent to to<map_tag>; provided for convenience.

+ +
+
+ +
+
+
+template<typename... Pairs>
+ + + + + +
+ + + + +
constexpr auto keys
+
+related
+
+Initial value:
= [](auto&& map) {
return implementation_defined;
}
+

Returns a Sequence of the keys of the map, in unspecified order.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
auto m = hana::make_map(
hana::make_pair(hana::int_c<1>, "foobar"s),
hana::make_pair(hana::type_c<void>, 1234)
);
// The order of the keys is unspecified.
hana::keys(m) ^hana::in^ hana::permutations(hana::make_tuple(hana::int_c<1>, hana::type_c<void>))
);
}
+
+
+ +
+
+
+template<typename... Pairs>
+ + + + + +
+ + + + +
constexpr auto values
+
+related
+
+Initial value:
= [](auto&& map) -> decltype(auto) {
return implementation_defined;
}
+

Returns a Sequence of the values of the map, in unspecified order.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
auto m = hana::make_map(
hana::make_pair(hana::int_c<1>, "foobar"s),
hana::make_pair(hana::type_c<void>, 1234)
);
// The order of the values is unspecified.
hana::values(m) ^hana::in^ hana::permutations(hana::make_tuple("foobar"s, 1234))
);
}
+
+
+ +
+
+
+template<typename... Pairs>
+ + + + + +
+ + + + +
constexpr auto insert
+
+related
+
+Initial value:
= [](auto&& map, auto&& pair) {
return tag-dispatched;
}
+

Inserts a new key/value pair in a map.

+

Given a (key, value) pair, insert inserts this new pair into a map. If the map already contains this key, nothing is done and the map is returned as-is.

+
Parameters
+ + + +
mapThe map in which to insert a (key,value) pair.
pairAn arbitrary Product representing a (key, value) pair to insert in the map. The key must be compile-time Comparable.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
auto m = hana::make_map(
hana::make_pair(hana::type_c<int>, "abcd"s),
hana::make_pair(hana::type_c<void>, 1234)
);
hana::insert(m, hana::make_pair(hana::type_c<float>, 'x')) ==
hana::make_map(
hana::make_pair(hana::type_c<int>, "abcd"s),
hana::make_pair(hana::type_c<void>, 1234),
hana::make_pair(hana::type_c<float>, 'x')
)
);
BOOST_HANA_RUNTIME_CHECK(hana::insert(m, hana::make_pair(hana::type_c<void>, 'x')) == m);
}
+
+
+ +
+
+
+template<typename... Pairs>
+ + + + + +
+ + + + +
constexpr auto erase_key
+
+related
+
+Initial value:
= [](auto&& map, auto&& key) {
return tag-dispatched;
}
+

Removes a key/value pair from a map.

+

Returns a new hana::map containing all the elements of the original, except for the (key, value) pair whose key compares equal to the given key. If the map does not contain such an element, a new map equal to the original is returned.

+
Parameters
+ + + +
mapThe map in which to erase a key.
keyA key to remove from the map. It must be compile-time Comparable.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace std::literals;
int main() {
auto m = hana::make_map(
hana::make_pair(hana::type_c<int>, "abcd"s),
hana::make_pair(hana::type_c<void>, 1234),
hana::make_pair(BOOST_HANA_STRING("foobar!"), hana::type_c<char>)
);
hana::erase_key(m, BOOST_HANA_STRING("foobar!")) ==
hana::make_map(
hana::make_pair(hana::type_c<int>, "abcd"s),
hana::make_pair(hana::type_c<void>, 1234)
)
);
BOOST_HANA_RUNTIME_CHECK(hana::erase_key(m, hana::type_c<char>) == m);
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map__tag.html new file mode 100644 index 0000000..a8382d9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1map__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::map_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::map_tag Struct Reference
+
+
+

Description

+

Tag representing hana::maps.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional-members.html new file mode 100644 index 0000000..d4db376 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional-members.html @@ -0,0 +1,172 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ + + + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional.html new file mode 100644 index 0000000..17ab236 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional.html @@ -0,0 +1,600 @@ + + + + + + + + + +Boost.Hana: boost::hana::optional< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::optional< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::hana::optional< T >

+ +

Optional value whose optional-ness is known at compile-time.

+

An optional either contains a value (represented as just(x)), or it is empty (represented as nothing). In essence, hana::optional is pretty much like a boost::optional or the upcoming std::optional, except for the fact that whether a hana::optional is empty or not is known at compile-time. This can be particularly useful for returning from a function that might fail, but whose reason for failing is not important. Of course, whether the function will fail has to be known at compile-time.

+

This is really an important difference between hana::optional and std::optional. Unlike std::optional<T>{} and std::optional<T>{x} who share the same type (std::optional<T>), hana::just(x) and hana::nothing do not share the same type, since the state of the optional has to be known at compile-time. Hence, whether a hana::just or a hana::nothing will be returned from a function has to be known at compile-time for the return type of that function to be computable by the compiler. This makes hana::optional well suited for static metaprogramming tasks, but very poor for anything dynamic.

+

Interoperation with types

+

When a just contains an object of type T which is a type, it has a nested ::type alias equivalent to T::type. nothing, however, never has a nested ::type alias. If t is a type, this allows decltype(just(t)) to be seen as a nullary metafunction equivalent to decltype(t). Along with the sfinae function, this allows hana::optional to interact seamlessly with SFINAE-friendly metafunctions. Example:

// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
#include <utility>
namespace hana = boost::hana;
template <typename ...>
using void_t = void;
template <typename T, typename = void>
struct has_type : std::false_type { };
template <typename T>
struct has_type<T, void_t<typename T::type>>
: std::true_type
{ };
auto common_type_impl = hana::sfinae([](auto t, auto u) -> decltype(hana::type_c<
decltype(true ? hana::traits::declval(t) : hana::traits::declval(u))
>) { return {}; });
template <typename T, typename U>
using common_type2 = decltype(common_type_impl(hana::type_c<T>, hana::type_c<U>));
static_assert(!has_type<common_type2<int, int*>>{}, "");
static_assert(std::is_same<common_type2<int, float>::type, float>{}, "");
int main() { }

Modeled concepts

+
    +
  1. Comparable
    +Two optionals are equal if and only if they are both empty or they both contain a value and those values are equal.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    BOOST_HANA_CONSTANT_CHECK(hana::nothing == hana::nothing);
    static_assert(hana::just('x') == hana::just('x'), "");
    static_assert(hana::just('x') != hana::just('y'), "");
    BOOST_HANA_CONSTANT_CHECK(hana::just('x') != hana::nothing);
    int main() { }
  2. +
  3. Orderable
    +Optional values can be ordered by considering the value they are holding, if any. To handle the case of an empty optional value, we arbitrarily set nothing as being less than any other just. Hence,
    just(x) < just(y) if and only if x < y
    nothing < just(anything)
    Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    BOOST_HANA_CONSTANT_CHECK(hana::nothing < hana::just(3));
    BOOST_HANA_CONSTANT_CHECK(hana::just(0) > hana::nothing);
    static_assert(hana::just(1) < hana::just(3), "");
    static_assert(hana::just(3) > hana::just(2), "");
    int main() { }
  4. +
  5. Functor
    +An optional value can be seen as a list containing either one element (just(x)) or no elements at all (nothing). As such, mapping a function over an optional value is equivalent to applying it to its value if there is one, and to nothing otherwise:
    transform(just(x), f) == just(f(x))
    transform(nothing, f) == nothing
    Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    BOOST_HANA_CONSTANT_CHECK(hana::transform(hana::nothing, hana::_ + 1) == hana::nothing);
    static_assert(hana::transform(hana::just(1), hana::_ + 1) == hana::just(2), "");
    int main() { }
  6. +
  7. Applicative
    +First, a value can be made optional with lift<optional_tag>, which is equivalent to just. Second, one can feed an optional value to an optional function with ap, which will return just(f(x)) if there is both a function and a value, and nothing otherwise:
    ap(just(f), just(x)) == just(f(x))
    ap(nothing, just(x)) == nothing
    ap(just(f), nothing) == nothing
    ap(nothing, nothing) == nothing
    A simple example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    constexpr char next(char c) { return c + 1; }
    static_assert(hana::ap(hana::just(next), hana::just('x')) == hana::just('y'), "");
    BOOST_HANA_CONSTANT_CHECK(hana::ap(hana::nothing, hana::just('x')) == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(hana::ap(hana::just(next), hana::nothing) == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(hana::ap(hana::nothing, hana::nothing) == hana::nothing);
    int main() { }
    A more complex example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    template <char op>
    constexpr auto function = hana::nothing;
    template <>
    BOOST_HANA_CONSTEXPR_LAMBDA auto function<'+'> = hana::just([](auto x, auto y) {
    return x + y;
    });
    template <>
    BOOST_HANA_CONSTEXPR_LAMBDA auto function<'-'> = hana::just([](auto x, auto y) {
    return x - y;
    });
    // and so on...
    template <char n>
    constexpr auto digit = hana::if_(hana::bool_c<(n >= '0' && n <= '9')>,
    hana::just(static_cast<int>(n - 48)),
    hana::nothing
    );
    template <char x, char op, char y>
    BOOST_HANA_CONSTEXPR_LAMBDA auto evaluate = hana::ap(function<op>, digit<x>, digit<y>);
    int main() {
    BOOST_HANA_CONSTEXPR_CHECK(evaluate<'1', '+', '2'> == hana::just(1 + 2));
    BOOST_HANA_CONSTANT_CHECK(evaluate<'?', '+', '2'> == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(evaluate<'1', '?', '2'> == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(evaluate<'1', '+', '?'> == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(evaluate<'?', '?', '?'> == hana::nothing);
    static_assert(hana::lift<hana::optional_tag>(123) == hana::just(123), "");
    }
  8. +
  9. Monad
    +The Monad model makes it easy to compose actions that might fail. One can feed an optional value if there is one into a function with chain, which will return nothing if there is no value. Finally, optional-optional values can have their redundant level of optionality removed with flatten. Also note that the | operator can be used in place of the chain function. Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    BOOST_HANA_CONSTEXPR_LAMBDA auto inc = [](auto x) {
    return hana::just(x + 1);
    };
    BOOST_HANA_CONSTEXPR_CHECK(hana::chain(hana::just(1), inc) == hana::just(2));
    BOOST_HANA_CONSTANT_CHECK(hana::chain(hana::nothing, inc) == hana::nothing);
    BOOST_HANA_CONSTEXPR_CHECK(hana::flatten(hana::just(hana::just(2))) == hana::just(2));
    }
  10. +
  11. MonadPlus
    +The MonadPlus model allows choosing the first valid value out of two optional values with concat. If both optional values are nothings, concat will return nothing. Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::concat(hana::nothing, hana::just('x')) == hana::just('x'), "");
    BOOST_HANA_CONSTANT_CHECK(hana::concat(hana::nothing, hana::nothing) == hana::nothing);
    static_assert(hana::concat(hana::just('x'), hana::just('y')) == hana::just('x'), "");
    BOOST_HANA_CONSTANT_CHECK(hana::empty<hana::optional_tag>() == hana::nothing);
    int main() { }
  12. +
  13. Foldable
    +Folding an optional value is equivalent to folding a list containing either no elements (for nothing) or x (for just(x)). Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::fold_right(hana::nothing, 1, hana::plus) == 1, "");
    static_assert(hana::fold_right(hana::just(4), 1, hana::plus) == 5, "");
    int main() { }
  14. +
  15. Searchable
    +Searching an optional value is equivalent to searching a list containing x for just(x) and an empty list for nothing. Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    auto odd = [](auto x) {
    return x % hana::int_c<2> != hana::int_c<0>;
    };
    BOOST_HANA_CONSTANT_CHECK(hana::find_if(hana::just(hana::int_c<3>), odd) == hana::just(hana::int_c<3>));
    BOOST_HANA_CONSTANT_CHECK(hana::find_if(hana::just(hana::int_c<2>), odd) == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(hana::find_if(hana::nothing, odd) == hana::nothing);
    BOOST_HANA_CONSTANT_CHECK(hana::all_of(hana::just(hana::int_c<3>), odd));
    int main() { }
  16. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Synopsis of associated functions

template<>
constexpr auto make< optional_tag >
 Create an optional value. More...
 
constexpr auto make_optional = make<optional_tag>
 Alias to make<optional_tag>; provided for convenience. More...
 
constexpr auto just
 Create an optional value containing x. More...
 
constexpr optional nothing {}
 An empty optional value. More...
 
constexpr auto maybe
 Apply a function to the contents of an optional, with a fallback result. More...
 
auto sfinae
 Calls a function if the call expression is well-formed. More...
 
constexpr auto is_just
 Return whether an optional contains a value. More...
 
constexpr auto is_nothing
 Return whether an optional is empty. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Friends

+template<typename... T, typename F >
constexpr auto operator| (optional< T... >, F)
 Equivalent to hana::chain.
 
+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+template<typename X , typename Y >
constexpr auto operator< (X &&x, Y &&y)
 Equivalent to hana::less
 
+template<typename X , typename Y >
constexpr auto operator> (X &&x, Y &&y)
 Equivalent to hana::greater
 
+template<typename X , typename Y >
constexpr auto operator<= (X &&x, Y &&y)
 Equivalent to hana::less_equal
 
+template<typename X , typename Y >
constexpr auto operator>= (X &&x, Y &&y)
 Equivalent to hana::greater_equal
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr optional ()=default
 Default-construct an optional. Only exists if the optional contains a value, and if that value is DefaultConstructible.
 
optional (optional const &)=default
 Copy-construct an optional. An empty optional may only be copy-constructed from another empty optional, and an optional with a value may only be copy-constructed from another optional with a value. Furthermore, this constructor only exists if the value held in the optional is CopyConstructible.
 
optional (optional &&)=default
 Move-construct an optional. An empty optional may only be move-constructed from another empty optional, and an optional with a value may only be move-constructed from another optional with a value. Furthermore, this constructor only exists if the value held in the optional is MoveConstructible.
 
+constexpr optional (T const &t)
 Construct an optional holding a value of type T from another object of type T. The value is copy-constructed.
 
+constexpr optional (T &&t)
 Construct an optional holding a value of type T from another object of type T. The value is move-constructed.
 
+constexpr optionaloperator= (optional const &)=default
 Copy-assign an optional. An empty optional may only be copy-assigned from another empty optional, and an optional with a value may only be copy-assigned from another optional with a value. Furthermore, this assignment operator only exists if the value held in the optional is CopyAssignable.
 
+constexpr optionaloperator= (optional &&)=default
 Move-assign an optional. An empty optional may only be move-assigned from another empty optional, and an optional with a value may only be move-assigned from another optional with a value. Furthermore, this assignment operator only exists if the value held in the optional is MoveAssignable.
 
constexpr T * operator-> ()
 Returns a pointer to the contained value, or a nullptr if the optional is empty. More...
 
constexpr T & value ()
 Extract the content of an optional, or fail at compile-time. More...
 
constexpr T & operator* ()
 Equivalent to value(), provided for convenience. More...
 
template<typename U >
decltype(auto) constexpr value_or (U &&default_)
 Return the contents of an optional, with a fallback result. More...
 
+

Associated functions

+ +
+
+
+template<typename... T>
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< optional_tag >
+
+related
+
+Initial value:
= []([auto&& x]) {
return optional<std::decay<decltype(x)>::type>{forwarded(x)};
}
+

Create an optional value.

+

Specifically, make<optional_tag>() is equivalent to nothing, and make<optional_tag>(x) is equivalent to just(x). This is provided for consistency with the other make<...> functions.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto x = hana::make<hana::optional_tag>();
BOOST_HANA_CONSTANT_CHECK(x == hana::make_optional());
BOOST_HANA_CONSTANT_CHECK(hana::is_nothing(x));
constexpr auto just_x = hana::make<hana::optional_tag>('x');
static_assert(just_x == hana::make_optional('x'), "");
BOOST_HANA_CONSTANT_CHECK(hana::is_just(just_x));
}
+
+
+ +
+
+
+template<typename... T>
+ + + + + +
+ + + + +
constexpr auto make_optional = make<optional_tag>
+
+related
+
+ +

Alias to make<optional_tag>; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto x = hana::make<hana::optional_tag>();
BOOST_HANA_CONSTANT_CHECK(x == hana::make_optional());
BOOST_HANA_CONSTANT_CHECK(hana::is_nothing(x));
constexpr auto just_x = hana::make<hana::optional_tag>('x');
static_assert(just_x == hana::make_optional('x'), "");
BOOST_HANA_CONSTANT_CHECK(hana::is_just(just_x));
}
+
+
+ +
+
+
+template<typename... T>
+ + + + + +
+ + + + +
constexpr auto just
+
+related
+
+Initial value:
= [](auto&& x) {
return optional<std::decay<decltype(x)>::type>{forwarded(x)};
}
+

Create an optional value containing x.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto just_x = hana::just('x');
BOOST_HANA_CONSTANT_CHECK(hana::is_just(just_x));
int main() { }
+
+
+ +
+
+
+template<typename... T>
+ + + + + +
+ + + + +
constexpr optional nothing {}
+
+related
+
+ +

An empty optional value.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto x = hana::nothing;
BOOST_HANA_CONSTANT_CHECK(hana::is_nothing(x));
int main() { }
+
+
+ +
+
+
+template<typename... T>
+ + + + + +
+ + + + +
constexpr auto maybe
+
+related
+
+Initial value:
= [](auto&& default_, auto&& f, auto&& m) -> decltype(auto) {
if (m is a just(x)) {
return forwarded(f)(forwarded(x));
else
return forwarded(default_);
}
}
+

Apply a function to the contents of an optional, with a fallback result.

+

Specifically, maybe takes a default value, a function and an optional value. If the optional value is nothing, the default value is returned. Otherwise, the function is applied to the content of the just.

+
Parameters
+ + + + +
default_A default value returned if m is nothing.
fA function called as f(x) if and only if m is an optional value of the form just(x). In that case, the result returend by maybe is the result of f.
mAn optional value.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::maybe('x', hana::_ + 1, hana::just(1)) == 2, "");
static_assert(hana::maybe('x', hana::_ + 1, hana::nothing) == 'x', "");
int main() { }
+
+
+ +
+
+
+template<typename... T>
+ + + + + +
+ + + + +
auto sfinae
+
+related
+
+Initial value:
= [](auto&& f) {
return [perfect-capture](auto&& ...x) {
if (decltype(forwarded(f)(forwarded(x)...)) is well-formed)
return just(forwarded(f)(forwarded(x)...));
else
return nothing;
};
}
+

Calls a function if the call expression is well-formed.

+

Given a function f, sfinae returns a new function applying f to its arguments and returning just the result if the call is well-formed, and nothing otherwise. In other words, sfinae(f)(x...) is just(f(x...)) if that expression is well-formed, and nothing otherwise. Note, however, that it is possible for an expression f(x...) to be well-formed as far as SFINAE is concerned, but trying to actually compile f(x...) still fails. In this case, sfinae won't be able to detect it and a hard failure is likely to happen.

+
Note
The function given to sfinae must not return void, since just(void) does not make sense. A compilation error is triggered if the function returns void.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto incr = [](auto x) -> decltype(x + 1) {
return x + 1;
};
BOOST_HANA_CONSTEXPR_CHECK(hana::sfinae(incr)(1) == hana::just(2));
struct invalid { };
BOOST_HANA_CONSTANT_CHECK(hana::sfinae(incr)(invalid{}) == hana::nothing);
}
+
+
+ +
+
+
+template<typename... T>
+ + + + + +
+ + + + +
constexpr auto is_just
+
+related
+
+Initial value:
= [](auto const& m) {
return m is a just(x);
}
+

Return whether an optional contains a value.

+

Specifically, returns a compile-time true-valued Logical if m is of the form just(x) for some x, and a false-valued one otherwise.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK( hana::is_just(hana::just('x')));
BOOST_HANA_CONSTANT_CHECK( hana::is_just(hana::just(hana::nothing)));
BOOST_HANA_CONSTANT_CHECK(!hana::is_just(hana::nothing));
int main() { }
+
+
+ +
+
+
+template<typename... T>
+ + + + + +
+ + + + +
constexpr auto is_nothing
+
+related
+
+Initial value:
= [](auto const& m) {
return m is a nothing;
}
+

Return whether an optional is empty.

+

Specifically, returns a compile-time true-valued Logical if m is a nothing, and a false-valued one otherwise.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK( hana::is_nothing(hana::nothing));
BOOST_HANA_CONSTANT_CHECK(!hana::is_nothing(hana::just('x')));
BOOST_HANA_CONSTANT_CHECK(!hana::is_nothing(hana::just(hana::nothing)));
int main() { }
+
+
+

Member Function Documentation

+ +
+
+
+template<typename... T>
+ + + + + + + +
constexpr T* boost::hana::optional< T >::operator-> ()
+
+ +

Returns a pointer to the contained value, or a nullptr if the optional is empty.

+
Note
Overloads of this method are provided for both the const and the non-const cases.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
int main() {
static_assert(hana::just('x').value() == 'x', "");
BOOST_HANA_CONSTANT_CHECK(*hana::just(hana::type_c<int>) == hana::type_c<int>);
BOOST_HANA_RUNTIME_CHECK(hana::just(std::string{"abcd"})->size() == 4);
// hana::nothing.value(); // compile-time error
}
+
+
+ +
+
+
+template<typename... T>
+ + + + + + + +
constexpr T& boost::hana::optional< T >::value ()
+
+ +

Extract the content of an optional, or fail at compile-time.

+

If *this contains a value, that value is returned. Otherwise, a static assertion is triggered.

+
Note
Overloads of this method are provided for the cases where *this is a reference, a rvalue-reference and their const counterparts.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
int main() {
static_assert(hana::just('x').value() == 'x', "");
BOOST_HANA_CONSTANT_CHECK(*hana::just(hana::type_c<int>) == hana::type_c<int>);
BOOST_HANA_RUNTIME_CHECK(hana::just(std::string{"abcd"})->size() == 4);
// hana::nothing.value(); // compile-time error
}
+
+
+ +
+
+
+template<typename... T>
+ + + + + + + +
constexpr T& boost::hana::optional< T >::operator* ()
+
+ +

Equivalent to value(), provided for convenience.

+
Note
Overloads of this method are provided for the cases where *this is a reference, a rvalue-reference and their const counterparts.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
int main() {
static_assert(hana::just('x').value() == 'x', "");
BOOST_HANA_CONSTANT_CHECK(*hana::just(hana::type_c<int>) == hana::type_c<int>);
BOOST_HANA_RUNTIME_CHECK(hana::just(std::string{"abcd"})->size() == 4);
// hana::nothing.value(); // compile-time error
}
+
+
+ +
+
+
+template<typename... T>
+
+template<typename U >
+ + + + + + + + +
decltype(auto) constexpr boost::hana::optional< T >::value_or (U && default_)
+
+ +

Return the contents of an optional, with a fallback result.

+

If *this contains a value, that value is returned. Otherwise, the default value provided is returned.

+
Note
Overloads of this method are provided for the cases where *this is a reference, a rvalue-reference and their const counterparts.
+
Parameters
+ + +
default_The default value to return if *this does not contain a value.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::just(1).value_or('x') == 1, "");
static_assert(hana::nothing.value_or('x') == 'x', "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional__tag.html new file mode 100644 index 0000000..7d25337 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1optional__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::optional_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::optional_tag Struct Reference
+
+
+

Description

+

Tag representing a hana::optional.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair-members.html new file mode 100644 index 0000000..3aee5e3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair-members.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::pair< First, Second > Member List
+
+ +
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair.html new file mode 100644 index 0000000..a1f3af8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair.html @@ -0,0 +1,299 @@ + + + + + + + + + +Boost.Hana: boost::hana::pair< First, Second > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::pair< First, Second > Struct Template Reference
+
+
+

Description

+

template<typename First, typename Second>
+struct boost::hana::pair< First, Second >

+ +

Generic container for two elements.

+

hana::pair is conceptually the same as std::pair. However, hana::pair automatically compresses the storage of empty types, and as a result it does not have the .first and .second members. Instead, one must use the hana::first and hana::second free functions to access the elements of a pair.

+

Modeled concepts

+
    +
  1. Comparable
    +Two pairs (x, y) and `(x', y')are equal if and only if both x == x'andy == y'`.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::make_pair(1, 'x') == hana::make_pair(1, 'x'), "");
    static_assert(hana::make_pair(2, 'x') != hana::make_pair(1, 'x'), "");
    static_assert(hana::make_pair(1, 'y') != hana::make_pair(1, 'x'), "");
    int main() { }
  2. +
  3. Orderable
    +Pairs are ordered as-if they were 2-element tuples, using a lexicographical ordering.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::make_pair(1, 'x') < hana::make_pair(1, 'y'), "");
    static_assert(hana::make_pair(1, 'x') < hana::make_pair(10, 'x'), "");
    static_assert(hana::make_pair(1, 'y') < hana::make_pair(10, 'x'), "");
    int main() { }
  4. +
  5. Foldable
    +Folding a pair is equivalent to folding a 2-element tuple. In other words:
    fold_left(make_pair(x, y), s, f) == f(f(s, x), y)
    fold_right(make_pair(x, y), s, f) == f(x, f(y, s))
    Example:
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::fold_left(hana::make_pair(1, 3), 0, hana::plus) == 4, "");
    static_assert(hana::fold_right(hana::make_pair(1, 3), 0, hana::minus) == -2, "");
    int main() { }
  6. +
  7. Product
    +The model of Product is the simplest one possible; the first element of a pair (x, y) is x, and its second element is y.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    static_assert(hana::first(hana::make_pair(1, 'x')) == 1, "");
    static_assert(hana::second(hana::make_pair(1, 'x')) == 'x', "");
    int main() { }
  8. +
+
+ + + + + + + + +

+Synopsis of associated functions

template<>
constexpr auto make< pair_tag >
 Creates a hana::pair with the given elements. More...
 
constexpr auto make_pair = make<pair_tag>
 Alias to make<pair_tag>; provided for convenience. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Friends

+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+template<typename X , typename Y >
constexpr auto operator< (X &&x, Y &&y)
 Equivalent to hana::less
 
+template<typename X , typename Y >
constexpr auto operator> (X &&x, Y &&y)
 Equivalent to hana::greater
 
+template<typename X , typename Y >
constexpr auto operator<= (X &&x, Y &&y)
 Equivalent to hana::less_equal
 
+template<typename X , typename Y >
constexpr auto operator>= (X &&x, Y &&y)
 Equivalent to hana::greater_equal
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr pair ()
 Default constructs the pair. Only exists when both elements of the pair are default constructible.
 
+constexpr pair (First const &first, Second const &second)
 Initialize each element of the pair with the corresponding element. Only exists when both elements of the pair are copy-constructible.
 
+template<typename T , typename U >
constexpr pair (T &&t, U &&u)
 Initialize both elements of the pair by perfect-forwarding the corresponding argument. Only exists when both arguments are implicitly-convertible to the corresponding element of the pair.
 
+template<typename T , typename U >
constexpr pair (pair< T, U > const &other)
 Copy-initialize a pair from another pair. Only exists when both elements of the source pair are implicitly convertible to the corresponding element of the constructed pair.
 
+template<typename T , typename U >
constexpr pair (pair< T, U > &&other)
 Move-initialize a pair from another pair. Only exists when both elements of the source pair are implicitly convertible to the corresponding element of the constructed pair.
 
+template<typename T , typename U >
constexpr pairoperator= (pair< T, U > const &other)
 Assign a pair to another pair. Only exists when both elements of the destination pair are assignable from the corresponding element in the source pair.
 
+template<typename T , typename U >
constexpr pairoperator= (pair< T, U > &&other)
 Move-assign a pair to another pair. Only exists when both elements of the destination pair are move-assignable from the corresponding element in the source pair.
 
+

Associated functions

+ +
+
+
+template<typename First, typename Second>
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< pair_tag >
+
+related
+
+Initial value:
= [](auto&& first, auto&& second)
-> hana::pair<std::decay_t<decltype(first)>, std::decay_t<decltype(second)>>
{
return {forwarded(first), forwarded(second)};
}
+

Creates a hana::pair with the given elements.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::first(hana::make<hana::pair_tag>(1, 'x')) == 1, "");
static_assert(hana::second(hana::make<hana::pair_tag>(1, 'x')) == 'x', "");
static_assert(hana::make_pair(1, 'x') == hana::make<hana::pair_tag>(1, 'x'), "");
int main() { }
+
+
+ +
+
+
+template<typename First, typename Second>
+ + + + + +
+ + + + +
constexpr auto make_pair = make<pair_tag>
+
+related
+
+ +

Alias to make<pair_tag>; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
static_assert(hana::first(hana::make<hana::pair_tag>(1, 'x')) == 1, "");
static_assert(hana::second(hana::make<hana::pair_tag>(1, 'x')) == 'x', "");
static_assert(hana::make_pair(1, 'x') == hana::make<hana::pair_tag>(1, 'x'), "");
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair__tag.html new file mode 100644 index 0000000..99ab95e --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1pair__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::pair_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::pair_tag Struct Reference
+
+
+

Description

+

Tag representing hana::pair.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range-members.html new file mode 100644 index 0000000..17d16ba --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range-members.html @@ -0,0 +1,152 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::range< T, from, to > Member List
+
+ +
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range.html new file mode 100644 index 0000000..663716d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range.html @@ -0,0 +1,292 @@ + + + + + + + + + +Boost.Hana: boost::hana::range< T, from, to > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::range< T, from, to > Struct Template Reference
+
+
+

Description

+

template<typename T, T from, T to>
+struct boost::hana::range< T, from, to >

+ +

Compile-time half-open interval of hana::integral_constants.

+

A range represents a half-open interval of the form [from, to) containing hana::integral_constants of a given type. The [from, to) notation represents the values starting at from (inclusively) up to but excluding from. In other words, it is a bit like the list from, from+1, ..., to-1.

+

In particular, note that the bounds of the range can be any hana::integral_constants (negative numbers are allowed) and the range does not have to start at zero. The only requirement is that from <= to.

+
Note
The representation of hana::range is implementation defined. In particular, one should not take for granted the number and types of template parameters. The proper way to create a hana::range is to use hana::range_c or hana::make_range.
+

Modeled concepts

+
    +
  1. Comparable
    +Two ranges are equal if and only if they are both empty or they both span the same interval.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    // empty ranges are equal
    BOOST_HANA_CONSTANT_CHECK(hana::make_range(hana::int_c<6>, hana::int_c<6>) == hana::make_range(hana::int_c<0>, hana::int_c<0>));
    // otherwise, ranges are equal if and only if they span the same interval
    BOOST_HANA_CONSTANT_CHECK(hana::make_range(hana::int_c<2>, hana::int_c<5>) == hana::make_range(hana::int_c<2>, hana::int_c<5>));
    BOOST_HANA_CONSTANT_CHECK(hana::make_range(hana::int_c<0>, hana::int_c<3>) != hana::make_range(hana::int_c<-1>, hana::int_c<3>));
    int main() { }
  2. +
  3. Foldable
    +Folding a range is equivalent to folding a list of the integral_constants in the interval it spans.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    hana::fold_left(hana::make_range(hana::int_c<0>, hana::int_c<4>), hana::int_c<0>, hana::plus) == hana::int_c<6>
    );
    hana::unpack(hana::make_range(hana::int_c<-2>, hana::int_c<2>), hana::make_tuple) ==
    hana::make_tuple(hana::int_c<-2>, hana::int_c<-1>, hana::int_c<0>, hana::int_c<1>)
    );
    int main() { }
  4. +
  5. Iterable
    +Iterating over a range is equivalent to iterating over a list of the values it spans. In other words, iterating over the range [from, to) is equivalent to iterating over a list containing from, from+1, from+2, ..., to-1. Also note that operator[] can be used in place of the at function.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    constexpr auto r = hana::make_range(hana::int_c<0>, hana::int_c<1000>);
    BOOST_HANA_CONSTANT_CHECK(hana::front(r) == hana::int_c<0>);
    BOOST_HANA_CONSTANT_CHECK(hana::back(r) == hana::int_c<999>);
    BOOST_HANA_CONSTANT_CHECK(hana::drop_front(r) == hana::make_range(hana::int_c<1>, hana::int_c<1000>));
    BOOST_HANA_CONSTANT_CHECK(hana::is_empty(hana::make_range(hana::int_c<3>, hana::int_c<3>)));
    int main() { }
  6. +
  7. Searchable
    +Searching a range is equivalent to searching a list of the values in the range [from, to), but it is much more compile-time efficient.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    BOOST_HANA_CONSTANT_CHECK(hana::find(hana::make_range(hana::int_c<1>, hana::int_c<25>), hana::int_c<10>) == hana::just(hana::int_c<10>));
    BOOST_HANA_CONSTANT_CHECK(hana::find(hana::make_range(hana::int_c<1>, hana::int_c<25>), hana::int_c<200>) == hana::nothing);
    int main() { }
  8. +
+
+ + + + + + + + + + + + +

+Synopsis of associated functions

template<>
constexpr auto make< range_tag >
 Create a hana::range representing a half-open interval of integral_constants. More...
 
constexpr auto make_range = make<range_tag>
 Alias to make<range_tag>; provided for convenience. More...
 
template<typename T , T from, T to>
constexpr auto range_c = make_range(integral_c<T, from>, integral_c<T, to>)
 Shorthand to create a hana::range with the given bounds. More...
 
+ + + + + + + + + +

+Friends

+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+ + + + + +

+Public Member Functions

+template<typename N >
decltype(auto) constexpr operator[] (N &&n)
 Equivalent to hana::at
 
+

Associated functions

+ +
+
+
+template<typename T , T from, T to>
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< range_tag >
+
+related
+
+Initial value:
= [](auto const& from, auto const& to) {
return range<implementation_defined>{implementation_defined};
}
+

Create a hana::range representing a half-open interval of integral_constants.

+

Given two IntegralConstants from and to, make<range_tag> returns a hana::range representing the half-open interval of integral_constants [from, to). from and to must form a valid interval, which means that from <= to must be true. Otherwise, a compilation error is triggered. Also note that if from and to are IntegralConstants with different underlying integral types, the created range contains integral_constants whose underlying type is their common type.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto irange = hana::make<hana::range_tag>(hana::int_c<0>, hana::int_c<10>); // [0, 10) int
BOOST_HANA_CONSTANT_CHECK(irange == hana::make<hana::range_tag>(hana::int_c<0>, hana::int_c<10>));
constexpr auto lrange = hana::make<hana::range_tag>(hana::int_c<0>, hana::long_c<10>); // [0, 10) long
BOOST_HANA_CONSTANT_CHECK(lrange == hana::make<hana::range_tag>(hana::long_c<0>, hana::long_c<10>));
int main() { }
+
+
+ +
+
+
+template<typename T , T from, T to>
+ + + + + +
+ + + + +
constexpr auto make_range = make<range_tag>
+
+related
+
+ +

Alias to make<range_tag>; provided for convenience.

+ +
+
+ +
+
+
+template<typename T , T from, T to>
+
+template<typename T , T from, T to>
+ + + + + +
+ + + + +
constexpr auto range_c = make_range(integral_c<T, from>, integral_c<T, to>)
+
+related
+
+ +

Shorthand to create a hana::range with the given bounds.

+

This shorthand is provided for convenience only and it is equivalent to make_range. Specifically, range_c<T, from, to> is such that

range_c<T, from, to> == make_range(integral_c<T, from>, integral_c<T, to>)
Template Parameters
+ + + + +
TThe underlying integral type of the integral_constants in the created range.
fromThe inclusive lower bound of the created range.
toThe exclusive upper bound of the created range.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
BOOST_HANA_CONSTANT_CHECK(hana::front(hana::range_c<int, 0, 5>) == hana::int_c<0>);
BOOST_HANA_CONSTANT_CHECK(hana::back(hana::range_c<unsigned long, 0, 5>) == hana::ulong_c<4>);
BOOST_HANA_CONSTANT_CHECK(hana::drop_front(hana::range_c<int, 0, 5>) == hana::make_range(hana::int_c<1>, hana::int_c<5>));
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range__tag.html new file mode 100644 index 0000000..ae859ec --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1range__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::range_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::range_tag Struct Reference
+
+
+

Description

+

Tag representing a hana::range.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set-members.html new file mode 100644 index 0000000..84fd8e5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set-members.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ + + + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set.html new file mode 100644 index 0000000..0150f69 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set.html @@ -0,0 +1,497 @@ + + + + + + + + + +Boost.Hana: boost::hana::set< implementation_defined > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::set< implementation_defined > Struct Template Reference
+
+
+

Description

+

template<typename implementation_defined>
+struct boost::hana::set< implementation_defined >

+ +

Basic unordered container requiring unique, Comparable and Hashable keys.

+

A set is an unordered container that can hold heterogeneous keys. A set requires (and ensures) that no duplicates are present when inserting new keys.

+
Note
The actual representation of a hana::set is implementation-defined. In particular, one should not take for granted the order of the template parameters and the presence of any additional constructors or assignment operators than what is documented. The canonical way of creating a hana::set is through hana::make_set.
+

Modeled concepts

+
    +
  1. Comparable
    +Two sets are equal iff they contain the same elements, regardless of the order.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    hana::make_set(hana::int_c<0>, hana::type_c<char>, hana::int_c<1>)
    ==
    hana::make_set(hana::int_c<1>, hana::int_c<0>, hana::type_c<char>)
    );
    hana::make_set(hana::int_c<0>, hana::type_c<char>)
    !=
    hana::make_set(hana::int_c<1>)
    );
    }
  2. +
  3. Foldable
    +Folding a set is equivalent to folding the sequence of its values. However, note that the values are not required to be in any specific order, so using the folds provided here with an operation that is not both commutative and associative will yield non-deterministic behavior.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    constexpr auto xs = hana::make_set(hana::int_c<0>, hana::int_c<1>, hana::int_c<2>);
    static_assert(hana::minimum(xs) == hana::int_c<0>, "");
    static_assert(hana::maximum(xs) == hana::int_c<2>, "");
    static_assert(hana::sum<>(xs) == hana::int_c<3>, "");
    }
  4. +
  5. Searchable
    +The elements in a set act as both its keys and its values. Since the elements of a set are unique, searching for an element will return either the only element which is equal to the searched value, or nothing. Also note that operator[] can be used instead of the at_key function.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    constexpr auto xs = hana::make_set(hana::int_c<0>, hana::int_c<1>, hana::int_c<2>);
    BOOST_HANA_CONSTANT_CHECK(hana::find(xs, hana::int_c<0>) == hana::just(hana::int_c<0>));
    BOOST_HANA_CONSTANT_CHECK(hana::find(xs, hana::int_c<3>) == hana::nothing);
    // operator[] is equivalent to at_key
    BOOST_HANA_CONSTANT_CHECK(xs[hana::int_c<2>] == hana::int_c<2>);
    // long_c<0> == int_<0>, and therefore int_<0> is found
    BOOST_HANA_CONSTANT_CHECK(xs[hana::long_c<0>] == hana::int_c<0>);
    }
  6. +
+

Conversion from any Foldable

+

Any Foldable structure can be converted into a hana::set with to<set_tag>. The elements of the structure must all be compile-time Comparable. If the structure contains duplicate elements, only the first occurence will appear in the resulting set. More specifically, conversion from a Foldable is equivalent to

to<set_tag>(xs) == fold_left(xs, make_set(), insert)

Example

// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto xs = hana::make_tuple(
hana::int_c<1>,
hana::int_c<3>,
hana::type_c<int>,
hana::long_c<1>
);
hana::to<hana::set_tag>(xs)
==
hana::make_set(hana::int_c<1>, hana::int_c<3>, hana::type_c<int>)
);
}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Synopsis of associated functions

constexpr auto difference
 Returns the set-theoretic difference of two sets. More...
 
constexpr auto intersection
 Returns the intersection of two sets. More...
 
template<>
constexpr auto make< set_tag >
 Function object for creating a hana::set. More...
 
constexpr auto make_set = make<set_tag>
 Equivalent to make<set_tag>; provided for convenience. More...
 
constexpr auto insert
 Insert an element in a hana::set. More...
 
constexpr auto erase_key
 Remove an element from a hana::set. More...
 
constexpr auto to_set = to<set_tag>
 Equivalent to to<set_tag>; provided for convenience. More...
 
constexpr auto symmetric_difference
 Returns the symmetric set-theoretic difference of two sets. More...
 
constexpr auto union_
 Returns the union of two sets. More...
 
+ + + + + + + + + +

+Friends

+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+ + + + + + + + + + + +

+Public Member Functions

+constexpr set (set const &other)=default
 Copy-construct a set from another set. This constructor only exists when all the elements of the set are copy-constructible.
 
+constexpr set (set &&other)=default
 Move-construct a set from another set. This constructor only exists when all the elements of the set are move-constructible.
 
+template<typename Key >
decltype(auto) constexpr operator[] (Key &&key)
 Equivalent to hana::at_key
 
+

Associated functions

+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto difference
+
+related
+
+Initial value:
= [](auto&& xs, auto&& ys) {
return tag-dispatched;
}
+

Returns the set-theoretic difference of two sets.

+

Given two sets xs and ys, difference(xs, ys) is a new set containing all the elements of xs that are not contained in ys. For any object x, the following holds:

x ^in^ difference(xs, ys) if and only if x ^in^ xs && !(x ^in^ ys)
Note
This operation is not commutative, i.e. difference(xs, ys) is not necessarily the same as difference(ys, xs). Indeed, consider the case where xs is empty and ys isn't. Then, difference(xs, ys) is empty but difference(ys, xs) is equal to ys. For the symmetric version of this operation, see symmetric_difference.
+
Parameters
+ + + +
xsA set to remove values from.
ysThe set whose values are removed from xs.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_set(hana::int_c<1>, hana::int_c<2>, hana::type_c<int>, hana::int_c<3>);
constexpr auto ys = hana::make_set(hana::int_c<3>, hana::type_c<void>, hana::type_c<int>);
BOOST_HANA_CONSTANT_CHECK(hana::difference(xs, ys) == hana::make_set(hana::int_c<1>, hana::int_c<2>));
BOOST_HANA_CONSTANT_CHECK(hana::difference(ys, xs) == hana::make_set(hana::type_c<void>));
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto intersection
+
+related
+
+Initial value:
= [](auto&& xs, auto&& ys) {
return tag-dispatched;
}
+

Returns the intersection of two sets.

+

Given two sets xs and ys, intersection(xs, ys) is a new set containing exactly those elements that are present both in xs and in ys. In other words, the following holds for any object x:

x ^in^ intersection(xs, ys) if and only if x ^in^ xs && x ^in^ ys
Parameters
+ + +
xs,ysTwo sets to intersect.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_set(hana::int_c<1>, hana::type_c<void>, hana::int_c<2>);
constexpr auto ys = hana::make_set(hana::int_c<2>, hana::type_c<int>, hana::int_c<3>);
BOOST_HANA_CONSTANT_CHECK(hana::intersection(xs, ys) == hana::make_set(hana::int_c<2>));
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< set_tag >
+
+related
+
+Initial value:
= [](auto&& ...xs) {
return set<implementation_defined>{forwarded(xs)...};
}
+

Function object for creating a hana::set.

+

Given zero or more values xs..., make<set_tag> returns a set containing those values. The values must all be compile-time Comparable, and no duplicate values may be provided. To create a set from a sequence with possible duplicates, use to<set_tag> instead.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_set(hana::int_c<1>, hana::type_c<void>);
BOOST_HANA_CONSTANT_CHECK(xs == hana::make<hana::set_tag>(hana::int_c<1>, hana::type_c<void>));
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto make_set = make<set_tag>
+
+related
+
+ +

Equivalent to make<set_tag>; provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_set(hana::int_c<1>, hana::type_c<void>);
BOOST_HANA_CONSTANT_CHECK(xs == hana::make<hana::set_tag>(hana::int_c<1>, hana::type_c<void>));
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto insert
+
+related
+
+Initial value:
= [](auto&& set, auto&& element) {
return tag-dispatched;
}
+

Insert an element in a hana::set.

+

If the set already contains an element that compares equal, then nothing is done and the set is returned as is.

+
Parameters
+ + + +
setThe set in which to insert a value.
elementThe value to insert. It must be compile-time Comparable.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto xs = hana::make_set(hana::int_c<0>, hana::type_c<int>);
hana::insert(xs, BOOST_HANA_STRING("abc")) ==
hana::make_set(hana::int_c<0>, hana::type_c<int>, BOOST_HANA_STRING("abc"))
);
hana::insert(xs, hana::int_c<0>) == hana::make_set(hana::int_c<0>, hana::type_c<int>)
);
}
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto erase_key
+
+related
+
+Initial value:
= [](auto&& set, auto&& element) {
return tag-dispatched;
}
+

Remove an element from a hana::set.

+

Returns a new set containing all the elements of the original, except the one comparing equal to the given element. If the set does not contain such an element, a new set equal to the original set is returned.

+
Parameters
+ + + +
setThe set in which to remove a value.
elementThe value to remove. It must be compile-time Comparable.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
constexpr auto xs = hana::make_set(hana::int_c<0>, hana::type_c<int>, hana::type_c<void>);
BOOST_HANA_CONSTANT_CHECK(hana::erase_key(xs, hana::type_c<int>) == hana::make_set(hana::int_c<0>, hana::type_c<void>));
BOOST_HANA_CONSTANT_CHECK(hana::erase_key(xs, hana::type_c<char>) == xs);
}
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto to_set = to<set_tag>
+
+related
+
+ +

Equivalent to to<set_tag>; provided for convenience.

+ +
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto symmetric_difference
+
+related
+
+Initial value:
= [](auto&& xs, auto&& ys) {
return tag-dispatched;
}
+

Returns the symmetric set-theoretic difference of two sets.

+

Given two sets xs and ys, symmetric_difference(xs, ys) is a new set containing all the elements of xs that are not contained in ys, and all the elements of ys that are not contained in xs. The symmetric difference of two sets satisfies the following:

symmetric_difference(xs, ys) == union_(difference(xs, ys), difference(ys, xs))
Parameters
+ + +
xs,ysTwo sets to compute the symmetric difference of.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_set(hana::int_c<1>, hana::int_c<2>, hana::type_c<int>, hana::int_c<3>);
constexpr auto ys = hana::make_set(hana::int_c<3>, hana::type_c<void>, hana::type_c<int>);
hana::symmetric_difference(xs, ys) == hana::make_set(hana::int_c<1>, hana::int_c<2>, hana::type_c<void>)
);
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto union_
+
+related
+
+Initial value:
= [](auto&& xs, auto&& ys) {
return tag-dispatched;
}
+

Returns the union of two sets.

+

Given two sets xs and ys, union_(xs, ys) is a new set containing all the elements of xs and all the elements of ys, without duplicates. For any object x, the following holds:

x ^in^ union_(xs, ys) if and only if x ^in^ xs || x ^in^ ys
Parameters
+ + +
xs,ysTwo sets to compute the union of.
+
+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto xs = hana::make_set(hana::int_c<1>, hana::type_c<void>, hana::int_c<2>);
constexpr auto ys = hana::make_set(hana::int_c<2>, hana::type_c<int>, hana::int_c<3>);
BOOST_HANA_CONSTANT_CHECK(hana::union_(xs, ys) == hana::make_set(
hana::int_c<1>, hana::int_c<2>, hana::int_c<3>, hana::type_c<void>, hana::type_c<int>
));
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set__tag.html new file mode 100644 index 0000000..09f00cc --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1set__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::set_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::set_tag Struct Reference
+
+
+

Description

+

Tag representing the hana::set container.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string-members.html new file mode 100644 index 0000000..53bf0d3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string-members.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ + + + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string.html new file mode 100644 index 0000000..0f133d4 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string.html @@ -0,0 +1,397 @@ + + + + + + + + + +Boost.Hana: boost::hana::string< implementation_defined > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::string< implementation_defined > Struct Template Reference
+
+
+

Description

+

template<typename implementation_defined>
+struct boost::hana::string< implementation_defined >

+ +

Compile-time string.

+

Conceptually, a hana::string is like a tuple holding integral_constants of underlying type char. However, the interface of hana::string is not as rich as that of a tuple, because a string can only hold compile-time characters as opposed to any kind of object.

+

Compile-time strings are used for simple purposes like being keys in a hana::map or tagging the members of a Struct. However, you might find that hana::string does not provide enough functionality to be used as a full-blown compile-time string implementation (e.g. regexp matching or substring finding). Indeed, providing a comprehensive string interface is a lot of job, and it is out of the scope of the library for the time being.

+
Note
The representation of hana::string is implementation-defined. In particular, one should not take for granted that the template parameters are chars. The proper way to access the contents of a hana::string as character constants is to use hana::unpack, .c_str() or hana::to<char const*>, as documented below.
+

Modeled concepts

+

For most purposes, a hana::string is functionally equivalent to a tuple holding Constants of underlying type char.

+
    +
  1. Comparable
    +Two strings are equal if and only if they have the same number of characters and characters at corresponding indices are equal.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    BOOST_HANA_STRING("abcdef") == BOOST_HANA_STRING("abcdef")
    );
    BOOST_HANA_STRING("abcdef") != BOOST_HANA_STRING("abef")
    );
    }
  2. +
  3. Orderable
    +The total order implemented for Orderable is the usual lexicographical comparison of strings.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    );
    );
    }
  4. +
  5. Monoid
    +Strings form a monoid under concatenation, with the neutral element being the empty string.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    auto hello_world = BOOST_HANA_STRING("Hello ") + BOOST_HANA_STRING("world!");
    BOOST_HANA_CONSTANT_CHECK(hello_world == BOOST_HANA_STRING("Hello world!"));
    int main() { }
  6. +
  7. Foldable
    +Folding a string is equivalent to folding the sequence of its characters.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    auto sum_string = [](auto str) {
    return hana::fold_left(str, hana::int_c<0>, [](auto sum, auto c) {
    constexpr int i = hana::value(c) - 48; // convert character to decimal
    return sum + hana::int_c<i>;
    });
    };
    sum_string(BOOST_HANA_STRING("1234")) == hana::int_c<1 + 2 + 3 + 4>
    );
    }
  8. +
  9. Iterable
    +Iterating over a string is equivalent to iterating over the sequence of its characters. Also note that operator[] can be used instead of the at function.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    BOOST_HANA_CONSTANT_CHECK(BOOST_HANA_STRING("abcd")[hana::size_c<2>] == hana::char_c<'c'>);
    auto is_vowel = [](auto c) {
    return c ^hana::in^ BOOST_HANA_STRING("aeiouy");
    };
    hana::drop_while(BOOST_HANA_STRING("aioubcd"), is_vowel) == BOOST_HANA_STRING("bcd")
    );
    }
  10. +
  11. Searchable
    +Searching through a string is equivalent to searching through the sequence of its characters.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    int main() {
    BOOST_HANA_CONSTANT_CHECK(hana::char_c<'c'> ^hana::in^ BOOST_HANA_STRING("abcde"));
    BOOST_HANA_CONSTANT_CHECK(!(hana::char_c<'z'> ^hana::in^ BOOST_HANA_STRING("abcde")));
    hana::find(BOOST_HANA_STRING("abcxefg"), hana::char_c<'x'>) == hana::just(hana::char_c<'x'>)
    );
    }
  12. +
  13. Hashable
    +The hash of a compile-time string is a type uniquely representing that string.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    // `hana::hash` returns a type uniquely representing the string. The hash is
    // perfect, meaning no two different strings have the same hash value.
    ));
    int main() { }
  14. +
+

Conversion to char const*

+

A hana::string can be converted to a constexpr null-delimited string of type char const* by using the c_str() method or hana::to<char const*>. This makes it easy to turn a compile-time string into a runtime string. However, note that this conversion is not an embedding, because char const* does not model the same concepts as hana::string does.

// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto str = hana::string_c<'h', 'i'>;
// using c_str()
constexpr char const* s1 = str.c_str();
static_assert(s1[0] == 'h' && s1[1] == 'i' && s1[2] == '\0', "");
// using hana::to
constexpr char const* s2 = hana::to<char const*>(str);
static_assert(s2[0] == 'h' && s2[1] == 'i' && s2[2] == '\0', "");
int main() { }
+

Rationale for hana::string not being a Constant

+

The underlying type held by a hana::string could be either char const* or some other constexpr-enabled string-like container. In the first case, hana::string can not be a Constant because the models of several concepts would not be respected by the underlying type, causing value not to be structure-preserving. Providing an underlying value of constexpr-enabled string-like container type like std::string_view would be great, but that's a bit complicated for the time being.

+
+
+ + + + + + + + + + + + + + + + + + + +

+Synopsis of associated functions

template<>
constexpr auto make< string_tag >
 Create a compile-time hana::string from a parameter pack of char integral_constants. More...
 
constexpr auto make_string = make<string_tag>
 Alias to make<string_tag>; provided for convenience. More...
 
template<char... s>
constexpr string< implementation_defined > string_c {}
 Create a compile-time string from a parameter pack of characters. More...
 
#define BOOST_HANA_STRING(s)   see documentation
 Create a compile-time string from a string literal. More...
 
template<typename CharT , CharT... s>
constexpr auto operator""_s ()
 Creates a compile-time string from a string literal. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Friends

+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+template<typename X , typename Y >
constexpr auto operator< (X &&x, Y &&y)
 Equivalent to hana::less
 
+template<typename X , typename Y >
constexpr auto operator> (X &&x, Y &&y)
 Equivalent to hana::greater
 
+template<typename X , typename Y >
constexpr auto operator<= (X &&x, Y &&y)
 Equivalent to hana::less_equal
 
+template<typename X , typename Y >
constexpr auto operator>= (X &&x, Y &&y)
 Equivalent to hana::greater_equal
 
+template<typename X , typename Y >
constexpr auto operator+ (X &&x, Y &&y)
 Performs concatenation; equivalent to hana::plus
 
+ + + + + +

+Public Member Functions

+template<typename N >
decltype(auto) constexpr operator[] (N &&n)
 Equivalent to hana::at
 
+ + + + +

+Static Public Member Functions

+static constexpr char const * c_str ()
 Returns a null-delimited C-style string.
 
+

Associated functions

+ +
+
+
+template<typename implementation_defined >
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< string_tag >
+
+related
+
+Initial value:
= [](auto&& ...chars) {
return string<implementation_defined>{};
}
+

Create a compile-time hana::string from a parameter pack of char integral_constants.

+

Given zero or more integral_constants of underlying type char, make<string_tag> creates a hana::string containing those characters. This is provided mostly for consistency with the rest of the library, as hana::string_c is more convenient to use in most cases.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto vowels = hana::tuple_c<char, 'a', 'e', 'i', 'o', 'u', 'y'>;
constexpr auto str = hana::unpack(vowels, hana::make<hana::string_tag>);
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + +
constexpr auto make_string = make<string_tag>
+
+related
+
+ +

Alias to make<string_tag>; provided for convenience.

+ +
+
+ +
+
+
+template<typename implementation_defined >
+
+template<char... s>
+ + + + + +
+ + + + +
constexpr string<implementation_defined> string_c {}
+
+related
+
+ +

Create a compile-time string from a parameter pack of characters.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto str = hana::string_c<'a', 'b', 'c', 'd', 'e', 'f'>;
BOOST_HANA_CONSTANT_CHECK(hana::is_a<hana::string_tag>(str));
int main() { }
+
+
+ +
+
+
+template<typename implementation_defined >
+ + + + + +
+ + + + + + + + +
#define BOOST_HANA_STRING( s)   see documentation
+
+related
+
+ +

Create a compile-time string from a string literal.

+

This macro is a more convenient alternative to string_c for creating compile-time strings. However, since this macro uses a lambda internally, it can't be used in an unevaluated context.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
BOOST_HANA_CONSTEXPR_LAMBDA auto str = BOOST_HANA_STRING("abcdef");
BOOST_HANA_CONSTANT_CHECK(str == hana::string_c<'a', 'b', 'c', 'd', 'e', 'f'>);
BOOST_HANA_CONSTANT_CHECK(hana::is_a<hana::string_tag>(str));
}
+
+
+ +
+
+
+template<typename CharT , CharT... s>
+ + + + + +
+ + + + + + + +
constexpr auto operator""_s ()
+
+related
+
+ +

Creates a compile-time string from a string literal.

+

The string literal is parsed at compile-time and the result is returned as a hana::string. This feature is an extension that is disabled by default; see below for details.

+
Note
Only narrow string literals are supported right now; support for fancier types of string literals like wide or UTF-XX might be added in the future if there is a demand for it. See this issue if you need this.
+
Warning
This user-defined literal is an extension which requires a special string literal operator that is not part of the standard yet. That operator is supported by both Clang and GCC, and several proposals were made for it to enter C++17. However, since it is not standard, it is disabled by default and defining the BOOST_HANA_CONFIG_ENABLE_STRING_UDL config macro is required to get this operator. Hence, if you want to stay safe, just use the BOOST_HANA_STRING macro instead. If you want to be fast and furious (I do), define BOOST_HANA_CONFIG_ENABLE_STRING_UDL.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
using namespace hana::literals;
// By default, this is disabled
#ifdef BOOST_HANA_CONFIG_ENABLE_STRING_UDL
constexpr auto str = "Hello world!"_s;
BOOST_HANA_CONSTANT_CHECK(str == hana::string_c<'H', 'e', 'l', 'l', 'o', ' ',
'w', 'o', 'r', 'l', 'd', '!'>);
BOOST_HANA_CONSTANT_CHECK(hana::is_a<hana::string_tag>(str));
BOOST_HANA_CONSTANT_CHECK(hana::length(str) == hana::size_c<12>);
#endif
int main() { }
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string__tag.html new file mode 100644 index 0000000..f9ad18a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1string__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::string_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::string_tag Struct Reference
+
+
+

Description

+

Tag representing a compile-time string.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tag__of.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tag__of.html new file mode 100644 index 0000000..592670f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tag__of.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: boost::hana::tag_of< T, enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::tag_of< T, enabler > Struct Template Reference
+
+
+

Description

+

template<typename T, optional when-based enabler>
+struct boost::hana::tag_of< T, enabler >

+ +

Metafunction returning the tag associated to T.

+

There are several ways to specify the tag of a C++ type. If it's a user-defined type, one can define a nested hana_tag alias:

struct MyUserDefinedType {
using hana_tag = MyTag;
};

Sometimes, however, the C++ type can't be modified (if it's in a foreign library) or simply can't have nested types (if it's not a struct or class). In those cases, using a nested alias is impossible and so ad-hoc customization is also supported by specializing tag_of in the boost::hana namespace:

struct i_cant_modify_this;
namespace boost { namespace hana {
template <>
struct tag_of<i_cant_modify_this> {
using type = MyTag;
};
}}

tag_of can also be specialized for all C++ types satisfying some boolean condition using when. when accepts a single compile-time boolean and enables the specialization of tag_of if and only if that boolean is true. This is similar to the well known C++ idiom of using a dummy template parameter with std::enable_if and relying on SFINAE. For example, we could specify the tag of all fusion::vectors by doing:

struct BoostFusionVector;
namespace boost { namespace hana {
template <typename T>
struct tag_of<T, when<
std::is_same<
typename fusion::traits::tag_of<T>::type,
fusion::traits::tag_of<fusion::vector<>>::type
>{}
>> {
using type = BoostFusionVector;
};
}}

Also, when it is not specialized and when the given C++ type does not have a nested hana_tag alias, tag_of<T> returns T itself. This makes tags a simple extension of normal C++ types. This is super useful, mainly for two reasons. First, this allows Hana to adopt a reasonable default behavior for some operations involving types that have no notion of tags. For example, Hana allows comparing with equal any two objects for which a valid operator== is defined, and that without any work on the user side. Second, it also means that you can ignore tags completely if you don't need their functionality; just use the normal C++ type of your objects and everything will "just work".

+

Finally, also note that tag_of<T> is always equivalent to tag_of<U>, where U is the type T after being stripped of all references and cv-qualifiers. This makes it unnecessary to specialize tag_of for all reference and cv combinations, which would be a real pain. Also, tag_of is required to be idempotent. In other words, it must always be the case that tag_of<tag_of<T>::type>::type is equivalent to tag_of<T>::type.

+
+

Tip 1
+If compile-time performance is a serious concern, consider specializing the tag_of metafunction in Hana's namespace. When unspecialized, the metafunction has to use SFINAE, which tends to incur a larger compile-time overhead. For heavily used templated types, this can potentially make a difference.

+
+
+

Tip 2
+Consider using tag_of_t alias instead of tag_of, which reduces the amount of typing in dependent contexts.

+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
static_assert(std::is_same<hana::tag_of<int>::type, int>{}, "");
static_assert(std::is_same<hana::tag_of<int&>::type, int>{}, "");
static_assert(std::is_same<hana::tag_of<int const&>::type, int>{}, "");
struct PersonTag;
struct Person { using hana_tag = PersonTag; };
static_assert(std::is_same<hana::tag_of<Person>::type, PersonTag>{}, "");
static_assert(std::is_same<hana::tag_of<Person volatile&&>::type, PersonTag>{}, "");
int main() { }
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple-members.html new file mode 100644 index 0000000..b4c04e6 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple-members.html @@ -0,0 +1,166 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::tuple< Xn > Member List
+
+ +
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple.html new file mode 100644 index 0000000..d953cb1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple.html @@ -0,0 +1,448 @@ + + + + + + + + + +Boost.Hana: boost::hana::tuple< Xn > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::tuple< Xn > Struct Template Reference
+
+
+

Description

+

template<typename... Xn>
+struct boost::hana::tuple< Xn >

+ +

General purpose index-based heterogeneous sequence with a fixed length.

+

The tuple is the bread and butter for static metaprogramming. Conceptually, it is like a std::tuple; it is a container able of holding objects of different types and whose size is fixed at compile-time. However, Hana's tuple provides much more functionality than its std counterpart, and it is also much more efficient than all standard library implementations tested so far.

+

Tuples are index-based sequences. If you need an associative sequence with a key-based access, then you should consider hana::map or hana::set instead.

+

Modeled concepts

+

Sequence, and all the concepts it refines

+

Provided operators

+

For convenience, the following operators are provided:

xs == ys -> equal(xs, ys)
xs != ys -> not_equal(xs, ys)
xs < ys -> less(xs, ys)
xs <= ys -> less_equal(xs, ys)
xs > ys -> greater(xs, ys)
xs >= ys -> greater_equal(xs, ys)
xs | f -> chain(xs, f)
xs[n] -> at(xs, n)

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
using namespace hana::literals;
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
int main() {
hana::tuple<Fish, Cat, Dog> animals{{"Nemo"}, {"Garfield"}, {"Snoopy"}};
animals[0_c].name = "Moby Dick"; // can modify elements in place, like std::tuple
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
BOOST_HANA_RUNTIME_CHECK(names == hana::make_tuple("Moby Dick", "Garfield", "Snoopy"));
}
+ + Inheritance diagram for boost::hana::tuple< Xn >:
+
+
+ + + + + + + + + + + + + + + + + + + + + +

+Synopsis of associated functions

template<>
constexpr auto make< tuple_tag >
 Function object for creating a tuple. More...
 
constexpr auto make_tuple = make<tuple_tag>
 Alias to make<tuple_tag>; provided for convenience. More...
 
constexpr auto to_tuple = to<tuple_tag>
 Equivalent to to<tuple_tag>; provided for convenience. More...
 
template<typename... T>
constexpr implementation_defined tuple_t {}
 Create a tuple specialized for holding hana::types. More...
 
template<typename T , T... v>
constexpr implementation_defined tuple_c {}
 Create a tuple specialized for holding hana::integral_constants. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Friends

+template<typename... T, typename F >
constexpr auto operator| (tuple< T... >, F)
 Equivalent to hana::chain.
 
+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+template<typename X , typename Y >
constexpr auto operator< (X &&x, Y &&y)
 Equivalent to hana::less
 
+template<typename X , typename Y >
constexpr auto operator> (X &&x, Y &&y)
 Equivalent to hana::greater
 
+template<typename X , typename Y >
constexpr auto operator<= (X &&x, Y &&y)
 Equivalent to hana::less_equal
 
+template<typename X , typename Y >
constexpr auto operator>= (X &&x, Y &&y)
 Equivalent to hana::greater_equal
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr tuple ()
 Default constructs the tuple. Only exists when all the elements of the tuple are default constructible.
 
constexpr tuple (Xn const &...xn)
 Initialize each element of the tuple with the corresponding element from xn.... Only exists when all the elements of the tuple are copy-constructible. More...
 
template<typename... Yn>
constexpr tuple (Yn &&...yn)
 Initialize each element of the tuple by perfect-forwarding the corresponding element in yn.... Only exists when all the elements of the created tuple are constructible from the corresponding perfect-forwarded value. More...
 
+template<typename... Yn>
constexpr tuple (tuple< Yn... > const &other)
 Copy-initialize a tuple from another tuple. Only exists when all the elements of the constructed tuple are copy-constructible from the corresponding element in the source tuple.
 
+template<typename... Yn>
constexpr tuple (tuple< Yn... > &&other)
 Move-initialize a tuple from another tuple. Only exists when all the elements of the constructed tuple are move-constructible from the corresponding element in the source tuple.
 
+template<typename... Yn>
constexpr tupleoperator= (tuple< Yn... > const &other)
 Assign a tuple to another tuple. Only exists when all the elements of the destination tuple are assignable from the corresponding element in the source tuple.
 
+template<typename... Yn>
constexpr tupleoperator= (tuple< Yn... > &&other)
 Move-assign a tuple to another tuple. Only exists when all the elements of the destination tuple are move-assignable from the corresponding element in the source tuple.
 
+template<typename N >
decltype(auto) constexpr operator[] (N &&n)
 Equivalent to hana::at
 
+

Associated functions

+ +
+
+
+template<typename... Xn>
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< tuple_tag >
+
+related
+
+Initial value:
= [](auto&& ...xs) {
return tuple<std::decay_t<decltype(xs)>...>{forwarded(xs)...};
}
+

Function object for creating a tuple.

+

Given zero or more objects xs..., make<tuple_tag> returns a new tuple containing those objects. The elements are held by value inside the resulting tuple, and they are hence copied or moved in. This is analogous to std::make_tuple for creating Hana tuples.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
int main() {
auto xs = hana::make<hana::tuple_tag>(1, 2, '3', std::string{"456"});
constexpr auto ys = hana::make<hana::tuple_tag>(1, '2', 3.456);
static_assert(ys == hana::make_tuple(1, '2', 3.456), "");
}
+
+
+ +
+
+
+template<typename... Xn>
+ + + + + +
+ + + + +
constexpr auto make_tuple = make<tuple_tag>
+
+related
+
+ +

Alias to make<tuple_tag>; provided for convenience.

+ +
+
+ +
+
+
+template<typename... Xn>
+ + + + + +
+ + + + +
constexpr auto to_tuple = to<tuple_tag>
+
+related
+
+ +

Equivalent to to<tuple_tag>; provided for convenience.

+ +
+
+ +
+
+
+template<typename... Xn>
+
+template<typename... T>
+ + + + + +
+ + + + +
constexpr implementation_defined tuple_t {}
+
+related
+
+ +

Create a tuple specialized for holding hana::types.

+

This is functionally equivalent to make<tuple_tag>(type_c<T>...), except that using tuple_t allows the library to perform some compile-time optimizations. Also note that the type of the objects returned by tuple_t and an equivalent call to make<tuple_tag> may differ.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
hana::to_tuple(hana::tuple_t<int, char, void, int(float)>)
==
hana::make_tuple(hana::type_c<int>, hana::type_c<char>, hana::type_c<void>, hana::type_c<int(float)>)
);
}
+
+
+ +
+
+
+template<typename... Xn>
+
+template<typename T , T... v>
+ + + + + +
+ + + + +
constexpr implementation_defined tuple_c {}
+
+related
+
+ +

Create a tuple specialized for holding hana::integral_constants.

+

This is functionally equivalent to make<tuple_tag>(integral_c<T, v>...), except that using tuple_c allows the library to perform some compile-time optimizations. Also note that the type of the objects returned by tuple_c and an equivalent call to make<tuple_tag> may differ.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
int main() {
hana::to_tuple(hana::tuple_c<int, 0, 1, 2>)
==
hana::make_tuple(hana::int_c<0>, hana::int_c<1>, hana::int_c<2>)
);
BOOST_HANA_CONSTANT_CHECK(hana::front(hana::tuple_c<int, 0, 1, 2>) == hana::int_c<0>);
}
+
+
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename... Xn>
+ + + + + + + + +
constexpr boost::hana::tuple< Xn >::tuple (Xn const &... xn)
+
+ +

Initialize each element of the tuple with the corresponding element from xn.... Only exists when all the elements of the tuple are copy-constructible.

+
Note
Unlike the corresponding constructor for std::tuple, this constructor is not explicit. This allows returning a tuple from a function with the brace-initialization syntax.
+ +
+
+ +
+
+
+template<typename... Xn>
+
+template<typename... Yn>
+ + + + + + + + +
constexpr boost::hana::tuple< Xn >::tuple (Yn &&... yn)
+
+ +

Initialize each element of the tuple by perfect-forwarding the corresponding element in yn.... Only exists when all the elements of the created tuple are constructible from the corresponding perfect-forwarded value.

+
Note
Unlike the corresponding constructor for std::tuple, this constructor is not explicit. This allows returning a tuple from a function with the brace-initialization syntax.
+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple.png b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1tuple.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa49dc09d817482141b830e8eb4c92decd03114 GIT binary patch literal 930 zcmeAS@N?(olHy`uVBq!ia0y~yVANt@U#bOHkd0~jATa6ns}Wfubj14l`aUogXe2)KGG#E5}`+0fI)F{Fa=?cCRWs||SA z)Z>@b{&%;FRe0i+v}Eb>sXC=)-W!}}Se=Vc>bclycudsAvq&YgZ}lV<;dNeGErW zW1M4_eW}mvK-Q;>tXt>X)y@fHDZM;*Rag9``PSh93sb|Rd=yvyFtPtzz}y$IRr8^bJ^mo4dJuytW%7$lHa{HYD4II8ap5Z6g*P)+u2QqjR>)p>Du7>kX6(ze=_{pAEV!1Y9T6V-{ng}2 zrlD82gx?J?eHrTelz02Bf|3nQr{lKDb8U{>8npFYXt;WUUEZnSr#88tLi>E%?-WiE z{dx54HRZq1TnDA1qV-j;El4BS?RQ_SGV9<^cZD^e@U(T9vAe1qpVrEe| zLw1a4gP=HT!l6*c83myXYB8b>oZ(dEJ~9q%6=)K6;?U+`;5#6LYIrAmh_9MW{#yB4 zu06ruE^hyG=l;4Z>ALgBDqKQuJmWdL|8utZ<&-7s+gl&MbK}bhU24fN?;&UC?blDm zTQAhVnql_%QQo=*PNzSzxrbDXKj^Q>fJLfEh@kRK_rl)Wp%33PM!pZ4Y96>Zcbjf# zyl+S@V{cnXsPFk-)sgwZp;xZ0`7|x`YSxLpucTLJ-CF%_~_a5a_RoD6*Sd}o}mPtN<^~3a + + + + + + + + +Boost.Hana: boost::hana::tuple_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::tuple_tag Struct Reference
+
+
+

Description

+

Tag representing hana::tuples.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type-members.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type-members.html new file mode 100644 index 0000000..16dfc9b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type-members.html @@ -0,0 +1,157 @@ + + + + + + + + + +Boost.Hana: Member List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::type< T > Member List
+
+ +
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type.html new file mode 100644 index 0000000..8fc0434 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type.html @@ -0,0 +1,428 @@ + + + + + + + + + +Boost.Hana: boost::hana::type< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boost::hana::type< T > Struct Template Reference
+
+
+

Description

+

template<typename T>
+struct boost::hana::type< T >

+ +

C++ type in value-level representation.

+

A type is a special kind of object representing a C++ type like int, void, std::vector<float> or anything else you can imagine.

+

This page explains how types work at a low level. To gain intuition about type-level metaprogramming in Hana, you should read the tutorial section on type-level computations.

+
Note
For subtle reasons having to do with ADL, the actual representation of hana::type is implementation-defined. In particular, hana::type may be a dependent type, so one should not attempt to do pattern matching on it. However, one can assume that hana::type inherits from hana::basic_type, which can be useful when declaring overloaded functions:
template <typename T>
void f(hana::basic_type<T>) {
// do something with T
}
+

Lvalues and rvalues

+

When storing types in heterogeneous containers, some algorithms will return references to those objects. Since we are primarily interested in accessing their nested ::type, receiving a reference is undesirable; we would end up trying to fetch the nested ::type inside a reference type, which is a compilation error:

auto ts = make_tuple(type_c<int>, type_c<char>);
using T = decltype(ts[0_c])::type; // error: 'ts[0_c]' is a reference!

For this reason, types provide an overload of the unary + operator that can be used to turn a lvalue into a rvalue. So when using a result which might be a reference to a type object, one can use + to make sure a rvalue is obtained before fetching its nested ::type:

auto ts = make_tuple(type_c<int>, type_c<char>);
using T = decltype(+ts[0_c])::type; // ok: '+ts[0_c]' is an rvalue

Modeled concepts

+
    +
  1. Comparable
    +Two types are equal if and only if they represent the same C++ type. Hence, equality is equivalent to the std::is_same type trait.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    struct T;
    struct U;
    BOOST_HANA_CONSTANT_CHECK(hana::type_c<T> == hana::type_c<T>);
    BOOST_HANA_CONSTANT_CHECK(hana::type_c<T> != hana::type_c<U>);
    int main() { }
  2. +
  3. Hashable
    +The hash of a type is just that type itself. In other words, hash is the identity function on hana::types.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    // `hana::hash` is the identity on `hana::type`s.
    hana::hash(hana::type_c<int>),
    hana::type_c<int>
    ));
    hana::hash(hana::type_c<void>),
    hana::type_c<void>
    ));
    int main() { }
  4. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Synopsis of associated functions

template<typename T >
constexpr type< T > type_c {}
 Creates an object representing the C++ type T. More...
 
constexpr auto decltype_ = see documentation
 decltype keyword, lifted to Hana. More...
 
constexpr auto typeid_ = see documentation
 Returns a hana::type representing the type of a given object. More...
 
template<>
constexpr auto make< type_tag > = hana::decltype_
 Equivalent to decltype_, provided for convenience. More...
 
constexpr auto make_type = hana::make<type_tag>
 Equivalent to make<type_tag>, provided for convenience. More...
 
constexpr auto sizeof_
 sizeof keyword, lifted to Hana. More...
 
constexpr auto alignof_
 alignof keyword, lifted to Hana. More...
 
constexpr auto is_valid
 Checks whether a SFINAE-friendly expression is valid. More...
 
+ + + + + + + + + +

+Friends

+template<typename X , typename Y >
constexpr auto operator== (X &&x, Y &&y)
 Equivalent to hana::equal
 
+template<typename X , typename Y >
constexpr auto operator!= (X &&x, Y &&y)
 Equivalent to hana::not_equal
 
+ + + + +

+Public Member Functions

+constexpr auto operator+ () const
 Returns rvalue of self. See description.
 
+

Associated functions

+ +
+
+
+template<typename T >
+
+template<typename T >
+ + + + + +
+ + + + +
constexpr type<T> type_c {}
+
+related
+
+ +

Creates an object representing the C++ type T.

+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + +
constexpr auto decltype_ = see documentation
+
+related
+
+ +

decltype keyword, lifted to Hana.

+
Deprecated:
The semantics of decltype_ can be confusing, and hana::typeid_ should be preferred instead. decltype_ may be removed in the next major version of the library.
+

decltype_ is somewhat equivalent to decltype in that it returns the type of an object, except it returns it as a hana::type which is a first-class citizen of Hana instead of a raw C++ type. Specifically, given an object x, decltype_ satisfies

decltype_(x) == type_c<decltype(x) with references stripped>

As you can see, decltype_ will strip any reference from the object's actual type. The reason for doing so is explained below. However, any cv-qualifiers will be retained. Also, when given a hana::type, decltype_ is just the identity function. Hence, for any C++ type T,

decltype_(type_c<T>) == type_c<T>

In conjunction with the way metafunction & al. are specified, this behavior makes it easier to interact with both types and values at the same time. However, it does make it impossible to create a type containing another type with decltype_. In other words, it is not possible to create a type_c<decltype(type_c<T>)> with this utility, because decltype_(type_c<T>) would be just type_c<T> instead of type_c<decltype(type_c<T>)>. This use case is assumed to be rare and a hand-coded function can be used if this is needed.

+

Rationale for stripping the references

+

The rules for template argument deduction are such that a perfect solution that always matches decltype is impossible. Hence, we have to settle on a solution that's good and and consistent enough for our needs. One case where matching decltype's behavior is impossible is when the argument is a plain, unparenthesized variable or function parameter. In that case, decltype_'s argument will be deduced as a reference to that variable, but decltype would have given us the actual type of that variable, without references. Also, given the current definition of metafunction & al., it would be mostly useless if decltype_ could return a reference, because it is unlikely that F expects a reference in its simplest use case:

int i = 0;
auto result = metafunction<F>(i);

Hence, always discarding references seems to be the least painful solution.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
struct X { };
BOOST_HANA_CONSTANT_CHECK(hana::decltype_(X{}) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::decltype_(hana::type_c<X>) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::decltype_(1) == hana::type_c<int>);
static int const& i = 1;
BOOST_HANA_CONSTANT_CHECK(hana::decltype_(i) == hana::type_c<int const>);
int main() { }
+
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + +
constexpr auto typeid_ = see documentation
+
+related
+
+ +

Returns a hana::type representing the type of a given object.

+

hana::typeid_ is somewhat similar to typeid in that it returns something that represents the type of an object. However, what typeid returns represent the runtime type of the object, while hana::typeid_ returns the static type of the object. Specifically, given an object x, typeid_ satisfies

typeid_(x) == type_c<decltype(x) with ref and cv-qualifiers stripped>

As you can see, typeid_ strips any reference and cv-qualifier from the object's actual type. The reason for doing so is that it faithfully models how the language's typeid behaves with respect to reference and cv-qualifiers, and it also turns out to be the desirable behavior most of the time. Also, when given a hana::type, typeid_ is just the identity function. Hence, for any C++ type T,

typeid_(type_c<T>) == type_c<T>

In conjunction with the way metafunction & al. are specified, this behavior makes it easier to interact with both types and values at the same time. However, it does make it impossible to create a type containing another type using typeid_. This use case is assumed to be rare and a hand-coded function can be used if this is needed.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
namespace hana = boost::hana;
struct Cat { std::string name; };
struct Dog { std::string name; };
struct Fish { std::string name; };
bool operator==(Cat const& a, Cat const& b) { return a.name == b.name; }
bool operator!=(Cat const& a, Cat const& b) { return a.name != b.name; }
bool operator==(Dog const& a, Dog const& b) { return a.name == b.name; }
bool operator!=(Dog const& a, Dog const& b) { return a.name != b.name; }
bool operator==(Fish const& a, Fish const& b) { return a.name == b.name; }
bool operator!=(Fish const& a, Fish const& b) { return a.name != b.name; }
int main() {
hana::tuple<Cat, Fish, Dog, Fish> animals{
Cat{"Garfield"}, Fish{"Jaws"}, Dog{"Beethoven"}, Fish{"Nemo"}
};
auto mammals = hana::remove_if(animals, [](auto const& a) {
return hana::typeid_(a) == hana::type<Fish>{};
});
BOOST_HANA_RUNTIME_CHECK(mammals == hana::make_tuple(Cat{"Garfield"}, Dog{"Beethoven"}));
}
+
+
+ +
+
+
+template<typename T >
+
+template<>
+ + + + + +
+ + + + +
constexpr auto make< type_tag > = hana::decltype_
+
+related
+
+ +

Equivalent to decltype_, provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
struct X { };
BOOST_HANA_CONSTANT_CHECK(hana::make<hana::type_tag>(X{}) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::make<hana::type_tag>(hana::type_c<X>) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::make_type(X{}) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::make_type(hana::type_c<X>) == hana::type_c<X>);
int main() { }
+
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + +
constexpr auto make_type = hana::make<type_tag>
+
+related
+
+ +

Equivalent to make<type_tag>, provided for convenience.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
struct X { };
BOOST_HANA_CONSTANT_CHECK(hana::make<hana::type_tag>(X{}) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::make<hana::type_tag>(hana::type_c<X>) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::make_type(X{}) == hana::type_c<X>);
BOOST_HANA_CONSTANT_CHECK(hana::make_type(hana::type_c<X>) == hana::type_c<X>);
int main() { }
+
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + +
constexpr auto sizeof_
+
+related
+
+Initial value:
= [](auto&& x) {
using T = typename decltype(hana::decltype_(x))::type;
return hana::size_c<sizeof(T)>;
}
+

sizeof keyword, lifted to Hana.

+

sizeof_ is somewhat equivalent to sizeof in that it returns the size of an expression or type, but it takes an arbitrary expression or a hana::type and returns its size as an integral_constant. Specifically, given an expression expr, sizeof_ satisfies

sizeof_(expr) == size_t<sizeof(decltype(expr) with references stripped)>

However, given a type, sizeof_ will simply fetch the size of the C++ type represented by that object. In other words,

sizeof_(type_c<T>) == size_t<sizeof(T)>

The behavior of sizeof_ is consistent with that of decltype_. In particular, see decltype_'s documentation to understand why references are always stripped by sizeof_.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
struct X { };
static_assert(hana::sizeof_(hana::type_c<X>) == sizeof(X), "");
static_assert(hana::sizeof_(1) == sizeof(1), "");
static_assert(hana::sizeof_(hana::type_c<int>) == sizeof(int), "");
int main() {}
+
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + +
constexpr auto alignof_
+
+related
+
+Initial value:
= [](auto&& x) {
using T = typename decltype(hana::decltype_(x))::type;
return hana::size_c<alignof(T)>;
}
+

alignof keyword, lifted to Hana.

+

alignof_ is somewhat equivalent to alignof in that it returns the alignment required by any instance of a type, but it takes a type and returns its alignment as an integral_constant. Like sizeof which works for expressions and type-ids, alignof_ can also be called on an arbitrary expression. Specifically, given an expression expr and a C++ type T, alignof_ satisfies

alignof_(expr) == size_t<alignof(decltype(expr) with references stripped)>
alignof_(type_c<T>) == size_t<alignof(T)>

The behavior of alignof_ is consistent with that of decltype_. In particular, see decltype_'s documentation to understand why references are always stripped by alignof_.

+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
struct X { };
static_assert(hana::alignof_(hana::type_c<X>) == alignof(X), "");
static_assert(hana::alignof_(1) == alignof(decltype(1)), "");
static_assert(hana::alignof_(hana::type_c<int>) == alignof(int), "");
int main() { }
+
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + +
constexpr auto is_valid
+
+related
+
+Initial value:
= [](auto&& f) {
return [](auto&& ...args) {
return whether f(args...) is a valid expression;
};
}
+

Checks whether a SFINAE-friendly expression is valid.

+

Given a SFINAE-friendly function, is_valid returns whether the function call is valid with the given arguments. Specifically, given a function f and arguments args...,

is_valid(f, args...) == whether f(args...) is valid

The result is returned as a compile-time Logical. Furthermore, is_valid can be used in curried form as follows:

is_valid(f)(args...)

This syntax makes it easy to create functions that check the validity of a generic expression on any given argument(s).

+
Warning
To check whether calling a nullary function f is valid, one should use the is_valid(f)() syntax. Indeed, is_valid(f /* no args */) will be interpreted as the currying of is_valid to f rather than the application of is_valid to f and no arguments.
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
#include <vector>
namespace hana = boost::hana;
int main() {
// Checking for a member
struct Person { std::string name; };
auto has_name = hana::is_valid([](auto&& p) -> decltype((void)p.name) { });
Person joe{"Joe"};
static_assert(has_name(joe), "");
static_assert(!has_name(1), "");
// Checking for a nested type
auto has_value_type = hana::is_valid([](auto t) -> hana::type<
typename decltype(t)::type::value_type
> { });
static_assert(has_value_type(hana::type_c<std::vector<int>>), "");
static_assert(!has_value_type(hana::type_c<Person>), "");
}
+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type__tag.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type__tag.html new file mode 100644 index 0000000..4f895f7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1type__tag.html @@ -0,0 +1,146 @@ + + + + + + + + + +Boost.Hana: boost::hana::type_tag Struct Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::type_tag Struct Reference
+
+
+

Description

+

Tag representing hana::type.

+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1when.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1when.html new file mode 100644 index 0000000..98efd70 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1when.html @@ -0,0 +1,155 @@ + + + + + + + + + +Boost.Hana: boost::hana::when< condition > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::hana::when< condition > Struct Template Reference
+
+
+

Description

+

template<bool condition>
+struct boost::hana::when< condition >

+ +

Enable a partial specialization only if a boolean condition is true.

+

You might also want to take a look at when_valid, which provides similar functionality but enables a specialziation only when some expression is well-formed.

+
+

Rationale for using when instead of std::enable_if

+

when is used to control the priority of partial specializations in a finer grained manner than what can be achieved with the usual typename Enable = void and std::enable_if pattern. For example, a partially specialized tag-dispatched method will have a higher priority than an equivalent specialization that uses when. For more details, see the tutorial section on tag-dispatching.

+
+

Example

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
template <typename T, typename = hana::when<true>>
struct base_template;
template <typename T>
struct base_template<T, hana::when<std::is_integral<T>::value>> {
// something useful...
};
int main() { }
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1integral__c.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1integral__c.html new file mode 100644 index 0000000..cef8d34 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1integral__c.html @@ -0,0 +1,154 @@ + + + + + + + + + +Boost.Hana: boost::mpl::integral_c< T, v > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::mpl::integral_c< T, v > Struct Template Reference
+
+
+

Description

+

template<typename T, T v>
+struct boost::mpl::integral_c< T, v >

+ +

Adapter for IntegralConstants from the Boost.MPL.

+

Provided models

+
    +
  1. Constant and IntegralConstant
    +A Boost.MPL IntegralConstant is a model of the IntegralConstant and Constant concepts just like hana::integral_constants are. As a consequence, they are also implicitly a model of the concepts provided for all models of Constant.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <boost/mpl/int.hpp>
    #include <boost/mpl/long.hpp>
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    static_assert(hana::value(mpl::integral_c<int, 3>{}) == 3, "");
    static_assert(mpl::integral_c<int, 3>::value == 3, "");
    BOOST_HANA_CONSTANT_CHECK(hana::equal(mpl::integral_c<int, 3>{}, mpl::int_<3>{}));
    BOOST_HANA_CONSTANT_CHECK(hana::equal(mpl::integral_c<int, 3>{}, mpl::long_<3>{}));
    BOOST_HANA_CONSTANT_CHECK(hana::not_equal(mpl::integral_c<int, 3>{}, mpl::int_<0>{}));
    int main() { }
  2. +
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1list.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1list.html new file mode 100644 index 0000000..168080f --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1list.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: boost::mpl::list< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::mpl::list< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::mpl::list< T >

+ +

Adapter for Boost.MPL lists.

+

Modeled concepts

+

It is possible for MPL lists to model a couple of concepts. However, because they are only able to hold types, they lack the generality required to model concepts like Functor, Sequence and other related concepts.

+
    +
  1. Comparable
    +Two MPL lists are equal if and only if they contain the same number of types, and if all those types are equal.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    hana::equal(mpl::list2<int, char>{}, mpl::list<int, char>{})
    );
    hana::not_equal(mpl::list2<int, char>{}, mpl::list<int, char, float>{})
    );
    int main() { }
  2. +
  3. Foldable
    +Folding a MPL list is equivalent to folding it as a Sequence.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    auto types = mpl::list<long, float, short, float, long, long double>{};
    auto number_of_floats = hana::fold_left(types, hana::int_c<0>, [](auto count, auto t) {
    return hana::if_(hana::trait<std::is_floating_point>(t),
    count + hana::int_c<1>,
    );
    });
    BOOST_HANA_CONSTANT_CHECK(number_of_floats == hana::int_c<3>);
    int main() { }
  4. +
  5. Iterable
    +Iterating over a MPL list is just iterating over each of the types it contains, as if it were a Sequence.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    BOOST_HANA_CONSTANT_CHECK(hana::front(mpl::list<int, char, void>{}) == hana::type_c<int>);
    hana::drop_front(mpl::list<int, char, void>{}),
    mpl::list<char, void>{}
    ));
    hana::drop_while(mpl::list<float, double const, int, float&>{},
    hana::trait<std::is_floating_point>),
    mpl::list<int, float&>{}
    ));
    int main() { }
  6. +
  7. Searchable
    +A MPL list can be searched as if it were a tuple containing hana::types.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    hana::find_if(mpl::list<int, float, char const*>{}, hana::equal.to(hana::type_c<float>))
    ==
    hana::just(hana::type_c<float>)
    );
    hana::find(mpl::list<int, float, char const*>{}, hana::type_c<void>)
    ==
    hana::nothing
    );
    int main() { }
  8. +
+

Conversion from any Foldable

+

A MPL list can be created from any Foldable. More precisely, for a Foldable xs whose linearization is [x1, ..., xn],

to<ext::boost::mpl::list_tag>(xs) == mpl::list<t1, ..., tn>{}

where tk is the type of xk, or the type contained in xk if xk is a hana::type.

Warning
The limitations on the size of mpl::lists are inherited by this conversion utility, and hence trying to convert a Foldable containing more than BOOST_MPL_LIMIT_LIST_SIZE elements is an error.
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
namespace mpl = boost::mpl;
auto xs = hana::make_tuple(hana::type_c<int>, hana::type_c<char>, hana::type_c<double>);
static_assert(std::is_same<
decltype(hana::to<hana::ext::boost::mpl::list_tag>(xs)),
mpl::list<int, char, double>
>{}, "");
int main() { }
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1vector.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1vector.html new file mode 100644 index 0000000..bbbf868 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1mpl_1_1vector.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: boost::mpl::vector< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::mpl::vector< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::mpl::vector< T >

+ +

Adapter for Boost.MPL vectors.

+

Modeled concepts

+

It is possible for MPL vectors to model a couple of concepts. However, because they are only able to hold types, they lack the generality required to model concepts like Functor, Sequence and other related concepts.

+
    +
  1. Comparable
    +Two MPL vectors are equal if and only if they contain the same number of types, and if all those types are equal.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    hana::equal(mpl::vector2<int, char>{}, mpl::vector<int, char>{})
    );
    hana::not_equal(mpl::vector2<int, char>{}, mpl::vector<int, char, float>{})
    );
    int main() { }
  2. +
  3. Foldable
    +Folding a MPL vector is equivalent to folding it as a Sequence.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    auto types = mpl::vector<long, float, short, float, long, long double>{};
    auto number_of_floats = hana::fold_left(types, hana::int_c<0>, [](auto count, auto t) {
    return hana::if_(hana::trait<std::is_floating_point>(t),
    count + hana::int_c<1>,
    );
    });
    BOOST_HANA_CONSTANT_CHECK(number_of_floats == hana::int_c<3>);
    int main() { }
  4. +
  5. Iterable
    +Iterating over a MPL vector is just iterating over each of the types it contains, as if it were a Sequence.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    BOOST_HANA_CONSTANT_CHECK(hana::front(mpl::vector<int, char, void>{}) == hana::type_c<int>);
    hana::drop_front(mpl::vector<int, char, void>{}),
    mpl::vector<char, void>{}
    ));
    hana::drop_while(mpl::vector<float, double const, int, float&>{},
    hana::trait<std::is_floating_point>),
    mpl::vector<int, float&>{}
    ));
    int main() { }
  6. +
  7. Searchable
    +A MPL vector can be searched as if it were a tuple containing hana::types.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    namespace hana = boost::hana;
    namespace mpl = boost::mpl;
    hana::find_if(mpl::vector<int, float, char const*>{}, hana::equal.to(hana::type_c<float>))
    ==
    hana::just(hana::type_c<float>)
    );
    hana::find(mpl::vector<int, float, char const*>{}, hana::type_c<void>)
    ==
    hana::nothing
    );
    int main() { }
  8. +
+

Conversion from any Foldable

+

A MPL vector can be created from any Foldable. More precisely, for a Foldable xs whose linearization is [x1, ..., xn],

to<ext::boost::mpl::vector_tag>(xs) == mpl::vector<t1, ..., tn>

where tk is the type of xk, or the type contained in xk if xk is a hana::type.

Warning
The limitations on the size of mpl::vectors are inherited by this conversion utility, and hence trying to convert a Foldable containing more than BOOST_MPL_LIMIT_VECTOR_SIZE elements is an error.
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <type_traits>
namespace hana = boost::hana;
namespace mpl = boost::mpl;
auto xs = hana::make_tuple(hana::type_c<int>, hana::type_c<char>, hana::type_c<double>);
static_assert(std::is_same<
decltype(hana::to<hana::ext::boost::mpl::vector_tag>(xs)),
mpl::vector<int, char, double>
>{}, "");
int main() { }
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structboost_1_1tuple.html b/boost_1_63_0/libs/hana/doc/html/structboost_1_1tuple.html new file mode 100644 index 0000000..e23ba42 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structboost_1_1tuple.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: boost::tuple< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boost::tuple< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct boost::tuple< T >

+ +

Adapter for boost::tuples.

+

Modeled concepts

+

A boost::tuple is a model of the Sequence concept, and all the concepts it refines. That makes it essentially the same as a Hana tuple, although the complexity of some operations might differ from that of Hana's tuple.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/tuple/tuple.hpp>
#include <string>
namespace hana = boost::hana;
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
int main() {
boost::tuple<Fish, Cat, Dog> animals{{"Nemo"}, {"Garfield"}, {"Snoopy"}};
hana::front(animals).name = "Moby Dick";
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
names,
boost::make_tuple("Moby Dick", "Garfield", "Snoopy")
));
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structstd_1_1array.html b/boost_1_63_0/libs/hana/doc/html/structstd_1_1array.html new file mode 100644 index 0000000..83666ce --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structstd_1_1array.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: std::array< T, N > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::array< T, N > Struct Template Reference
+
+
+

Description

+

template<typename T, std::size_t N>
+struct std::array< T, N >

+ +

Adaptation of std::array for Hana.

+

Modeled concepts

+
    +
  1. Comparable
    +std::arrays are compared as per std::equal, except that two arrays with different sizes compare unequal instead of triggering an error and the result of the comparison is constexpr if both arrays are constexpr.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <array>
    namespace hana = boost::hana;
    constexpr std::array<int, 4> xs = {{1, 2, 3, 4}};
    constexpr std::array<int, 5> ys = {{1, 2, 3, 4, 5}};
    // arrays have different constexpr contents; result is a constexpr bool
    static_assert(hana::equal(xs, xs), "");
    // arrays have different lengths; result is an integral_constant
    int main() { }
  2. +
  3. Orderable
    +std::arrays are ordered with the usual lexicographical ordering, except that two arrays with different size can be ordered instead of triggering an error and the result of the comparison is constexpr if both arrays are constexpr.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <array>
    namespace hana = boost::hana;
    constexpr std::array<int, 4> evens = {{2, 4, 6, 8}};
    constexpr std::array<int, 4> odds = {{1, 3, 5, 7}};
    constexpr std::array<int, 5> up_to_5 = {{1, 2, 3, 4, 5}};
    // arrays with same length
    static_assert(hana::less(odds, evens), "");
    // arrays with different lenghts
    static_assert(hana::less(up_to_5, odds), "");
    int main() { }
  4. +
  5. Foldable
    +Folding an array from the left is equivalent to calling std::accumulate on it, except it can be constexpr.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <array>
    namespace hana = boost::hana;
    int main() {
    std::array<int, 5> a = {{0, 1, 2, 3, 4}};
    auto b = hana::unpack(a, [](auto ...i) {
    return std::array<int, sizeof...(i)>{{(i + 10)...}};
    });
    BOOST_HANA_RUNTIME_CHECK(b == std::array<int, 5>{{10, 11, 12, 13, 14}});
    }
  6. +
  7. Iterable
    +Iterating over a std::array is equivalent to iterating over it with a normal for loop.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <array>
    namespace hana = boost::hana;
    constexpr std::array<int, 5> a = {{0, 1, 2, 3, 4}};
    static_assert(hana::at_c<2>(a) == 2, "");
    static_assert(hana::equal(hana::drop_front(a), std::array<int, 4>{{1, 2, 3, 4}}), "");
    int main() { }
  8. +
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structstd_1_1integer__sequence.html b/boost_1_63_0/libs/hana/doc/html/structstd_1_1integer__sequence.html new file mode 100644 index 0000000..90e3880 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structstd_1_1integer__sequence.html @@ -0,0 +1,160 @@ + + + + + + + + + +Boost.Hana: std::integer_sequence< T, v > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::integer_sequence< T, v > Struct Template Reference
+
+
+

Description

+

template<typename T, T... v>
+struct std::integer_sequence< T, v >

+ +

Adaptation of std::integer_sequence for Hana.

+

Modeled concepts

+
    +
  1. Comparable
    +Two std::integer_sequences are equal if and only if they have the same number of elements, and if corresponding elements compare equal. The types of the elements held in both integer_sequences may be different, as long as they can be compared.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <utility>
    namespace hana = boost::hana;
    int main() { }
  2. +
  3. Foldable
    +Folding an integer_sequence is equivalent to folding a sequence of std::integral_constants with the corresponding types.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <tuple>
    #include <utility>
    namespace hana = boost::hana;
    auto add = [](auto a, auto b, auto c) { return a + b + c; };
    int main() {
    std::tuple<int, long, double> tuple{1, 2l, 3.3};
    // the `i`s are `std::integral_constant<int, ...>`s
    return add(std::get<decltype(i)::value>(tuple)...);
    });
    }
  4. +
  5. Iterable
    +Iterating over an integer_sequence is equivalent to iterating over a sequence of the corresponding std::integral_constants.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    #include <utility>
    namespace hana = boost::hana;
    hana::at_c<2>(indices),
    ));
    int main() { }
  6. +
  7. Searchable
    +Searching through an integer_sequence is equivalent to searching through the corresponding sequence of std::integral_constants.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    #include <utility>
    namespace hana = boost::hana;
    hana::find(xs, hana::int_c<3>),
    ));
    int main() { }
  8. +
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structstd_1_1integral__constant.html b/boost_1_63_0/libs/hana/doc/html/structstd_1_1integral__constant.html new file mode 100644 index 0000000..dd8450b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structstd_1_1integral__constant.html @@ -0,0 +1,154 @@ + + + + + + + + + +Boost.Hana: std::integral_constant< T, v > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::integral_constant< T, v > Struct Template Reference
+
+
+

Description

+

template<typename T, T v>
+struct std::integral_constant< T, v >

+ +

Adapter for std::integral_constants.

+

Provided models

+
    +
  1. Constant and IntegralConstant
    +A std::integral_constant is a model of the IntegralConstant and Constant concepts, just like hana::integral_constants are. As a consequence, they are also implicitly a model of the concepts provided for all models of Constant.
    // Copyright Louis Dionne 2013-2016
    // Distributed under the Boost Software License, Version 1.0.
    // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    #include <type_traits>
    namespace hana = boost::hana;
    static_assert(hana::value(std::integral_constant<int, 3>{}) == 3, "");
    static_assert(std::integral_constant<int, 3>::value == 3, "");
    int main() { }
  2. +
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structstd_1_1pair.html b/boost_1_63_0/libs/hana/doc/html/structstd_1_1pair.html new file mode 100644 index 0000000..10c39c7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structstd_1_1pair.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: std::pair< First, Second > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::pair< First, Second > Struct Template Reference
+
+
+

Description

+

template<typename First, typename Second>
+struct std::pair< First, Second >

+ +

Adaptation of std::pair for Hana.

+

Modeled concepts

+

A std::pair models exactly the same concepts as a hana::pair. Please refer to the documentation of hana::pair for details.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
namespace hana = boost::hana;
constexpr auto pair = std::make_pair(1, 'x');
static_assert(hana::first(pair) == 1, "");
static_assert(hana::second(pair) == 'x', "");
static_assert(hana::not_equal(pair, std::make_pair(3, 'z')), "");
static_assert(hana::less(pair, std::make_pair(3, 'x')), "");
int main() { }
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/structstd_1_1tuple.html b/boost_1_63_0/libs/hana/doc/html/structstd_1_1tuple.html new file mode 100644 index 0000000..632080b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/structstd_1_1tuple.html @@ -0,0 +1,151 @@ + + + + + + + + + +Boost.Hana: std::tuple< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
std::tuple< T > Struct Template Reference
+
+
+

Description

+

template<typename... T>
+struct std::tuple< T >

+ +

Adapter for std::tuples.

+

Modeled concepts

+

A std::tuple is a model of the Sequence concept, and all the concepts it refines. That makes it essentially the same as a Hana tuple, although the complexity of some operations might differ from that of Hana's tuple.

+
// Copyright Louis Dionne 2013-2016
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <string>
#include <tuple>
namespace hana = boost::hana;
struct Fish { std::string name; };
struct Cat { std::string name; };
struct Dog { std::string name; };
int main() {
std::tuple<Fish, Cat, Dog> animals{{"Nemo"}, {"Garfield"}, {"Snoopy"}};
hana::front(animals).name = "Moby Dick";
auto names = hana::transform(animals, [](auto a) {
return a.name;
});
names,
std::make_tuple("Moby Dick", "Garfield", "Snoopy")
));
}
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/suffix_8hpp.html b/boost_1_63_0/libs/hana/doc/html/suffix_8hpp.html new file mode 100644 index 0000000..12304fd --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/suffix_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/suffix.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
suffix.hpp File Reference
+
+
+ +

Defines boost::hana::suffix. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::suffix.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/sum_8hpp.html b/boost_1_63_0/libs/hana/doc/html/sum_8hpp.html new file mode 100644 index 0000000..dcaa8c3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/sum_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/sum.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
sum.hpp File Reference
+
+
+ +

Defines boost::hana::sum. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::sum.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/symmetric__difference_8hpp.html b/boost_1_63_0/libs/hana/doc/html/symmetric__difference_8hpp.html new file mode 100644 index 0000000..5540c94 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/symmetric__difference_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/symmetric_difference.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
symmetric_difference.hpp File Reference
+
+
+ +

Defines boost::hana::symmetric_difference. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::symmetric_difference.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/sync_off.png b/boost_1_63_0/libs/hana/doc/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..dc034e71b5f26c39641f9bcc6e3cb09e3b9f5950 GIT binary patch literal 848 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL8#XVgdLn;{G&h_;P2^TqD z|Cona>F{^=g-r$>k40P#aE1oVR>Y;klF7%`#JU zGb_8U=If%oBf}#=UCk__cgD7EHp2t~u0uzPk5wAKx4kD|kduE-f9LzV-{1Y8SAE{H z{PnAsZ<##YR&EH+5R+;tXW9N?zJORBw|PrDgI@)MjE2BDuD2WQ5)5m@g{A8?V?_11 z{296}Io}BF6aT}|oiMe)=Z5+mpW{ZYDuFa>xE9 zoChZU@v)CyW&Lr-WrjCz!u3NEwogcw^ZcB)srGSth)8~LtJZyK-M@HOjlStW{>BzxAKT=tDw*lpyZSPM{oRhqJ^s2zMSC%e$Bo7Hza?aL zMafjpDe*LYJMo<23`3isiFNJ{#DDSr0>}sV084n_g$aD1O*R;va8>wOQWr{uq?9W%tJH;NWO|-rq_LZ~o}Xh?*>K zXi?pL@Ex~2ca$7I*X}JkNA-k6=LpQ>tlj9j_&0CDb5n`Gi{2hPwxgbbfq}u()z4*} HQ$iB}f-`(- literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/sync_on.png b/boost_1_63_0/libs/hana/doc/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..4a06fff48264415974df3c6880728bb66502212c GIT binary patch literal 838 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL8c|BbmLn;{G-u3kf2^Tr= z@qespBvhGuu{5CY*Vp)0Y3Tx*!vm|XzUzLr=eoUP)Ylop>=BrbByNslI zCmwm>CoF8gXorE0OOliJB#-3X1_8>vUI!DGJ@HXTS`u}b*V#|*d z9}x57H0zFUl}`{8>w53H+CoK7t!^fp%CWq{TE1rWIEscuX6YGB`|Xu{Ztlt_dAqWORS>xpmLCck}EodvoKi6?5!7cO~Hst;gq{Tt4Z^ z`}(#Q^1B!#Hfq>woZdOL{qOV2-|K(+G3H2_G{$92o}Cx4Ey^tBAI%x3&PBkIV;bEEhJb&(E0d;<;x&^Pl+i zBmOJ>wp?E1+{1KcqS$rA!UNZ?mA~1zRq5}SWBtCm*|sK=|2v Bh=BkA literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/tab_a.png b/boost_1_63_0/libs/hana/doc/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..1d52c0d97fb2aa144f843d2e6218142557849a13 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0y~yU|?imU{K*;Vqjo6E_OVcfq@~?)5S5Qg7IyvAzy<7 zPgdq0ix)>Nc4XAFH+Ogcub&if{zrG4(}JhGWiisrb{^lvCz0(K&QRX2b|^88GvM^} zW%AGWPOjumyW{k4=hO8+_J-cSulVoRVAcb1#a$arQjBm0eF-^L&%;ecw9sr~Iv0H4|eg8S?}6kJD%UdA8`% jr<1=d#DdqJf2?o(MPh%~yO>7|3=9mOu6{1-oD!MldkLOzKeTTI4WoX{&DRxyV;{cX_?PdvuQa&$xfn|8qV1{ky`cBqX;d_k8oF z&bBnE&XvydN?&xYbKc+oVtTQ{X6sE^=MU!vK3%q5&GcN?mWU#4v6!zl6J9i^@OONc toSt)Qw!q55{{nNS^oJ-vxm$kT{^ftQCN`^+;S3B644$rjF6*2UngCFLP$K{U literal 0 HcmV?d00001 diff --git a/boost_1_63_0/libs/hana/doc/html/tabs.css b/boost_1_63_0/libs/hana/doc/html/tabs.css new file mode 100644 index 0000000..a8028b3 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #505D28; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/boost_1_63_0/libs/hana/doc/html/take_8hpp.html b/boost_1_63_0/libs/hana/doc/html/take_8hpp.html new file mode 100644 index 0000000..545cf3a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/take_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/take.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
take.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::take. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::take.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/take__back_8hpp.html b/boost_1_63_0/libs/hana/doc/html/take__back_8hpp.html new file mode 100644 index 0000000..a2498a8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/take__back_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/take_back.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
take_back.hpp File Reference
+
+
+ +

Defines boost::hana::take_back. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::take_back.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/take__front_8hpp.html b/boost_1_63_0/libs/hana/doc/html/take__front_8hpp.html new file mode 100644 index 0000000..9779538 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/take__front_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/take_front.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
take_front.hpp File Reference
+
+
+ +

Defines boost::hana::take_front and boost::hana::take_front_c. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::take_front and boost::hana::take_front_c.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/take__while_8hpp.html b/boost_1_63_0/libs/hana/doc/html/take__while_8hpp.html new file mode 100644 index 0000000..fd0c566 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/take__while_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/take_while.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
take_while.hpp File Reference
+
+
+ +

Defines boost::hana::take_while. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::take_while.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/tap_8hpp.html b/boost_1_63_0/libs/hana/doc/html/tap_8hpp.html new file mode 100644 index 0000000..ac5eb7a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/tap_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/tap.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tap.hpp File Reference
+
+
+ +

Defines boost::hana::tap. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::tap.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/then_8hpp.html b/boost_1_63_0/libs/hana/doc/html/then_8hpp.html new file mode 100644 index 0000000..ea0ada5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/then_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/then.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
then.hpp File Reference
+
+
+ +

Defines boost::hana::then. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::then.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/todo.html b/boost_1_63_0/libs/hana/doc/html/todo.html new file mode 100644 index 0000000..24f2339 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/todo.html @@ -0,0 +1,163 @@ + + + + + + + + + +Boost.Hana: Todo List + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Todo List
+
+
+
+
Namespace boost
+
Until we strip down headers, this includes too much
+
Member boost::hana::ap
+
Consider giving access to all the arguments to the tag-dispatched implementation for performance purposes.
+
Class boost::hana::at_key_detail::advance_until< Xs, Pred, i, N, Done >
+
This causes an awful duplication of code with find_if.
+
Class boost::hana::constant_detail::which< A, B, C >
+
This is an awful hack to avoid having
+
Class boost::hana::detail::has_duplicates< T >
+
This implementation is O(n^2). We could do it in O(n), but that would require a more elaborate setup including storage with O(1) lookup (which could be based on a compile-time hash). If we implement such storage for associative sequences, we could use it to optimize this.
+
Member boost::hana::max
+
Can't specify the signature here either. See min for details.
+
Member boost::hana::min
+
We can't specify the signature right now, because the tag of the returned object depends on whether x < y or not. If we wanted to be mathematically correct, we should probably ask that if_(cond, x, y) returns a common data type of x and y, and then the behavior of min would follow naturally. However, I'm unsure whether this is desirable because that's a big requirement.
+
page User Manual
+

Improve this explanation and talk about non-integral constant expressions wrapped into types.

+

Explain how side-effects may not appear inside constant expressions, even if the expression they yield are not accessed.

+
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/traits_8hpp.html b/boost_1_63_0/libs/hana/doc/html/traits_8hpp.html new file mode 100644 index 0000000..943886a --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/traits_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/traits.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
traits.hpp File Reference
+
+
+ +

Defines function-like equivalents to the standard <type_traits>, and also to some utilities like std::declval. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines function-like equivalents to the standard <type_traits>, and also to some utilities like std::declval.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/transform_8hpp.html b/boost_1_63_0/libs/hana/doc/html/transform_8hpp.html new file mode 100644 index 0000000..e863d08 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/transform_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/transform.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
transform.hpp File Reference
+
+
+ +

Defines boost::hana::transform. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::transform.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/tuple_8hpp.html b/boost_1_63_0/libs/hana/doc/html/tuple_8hpp.html new file mode 100644 index 0000000..06038ee --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/tuple_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/tuple.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
tuple.hpp File Reference
+
+
+ +

Defines boost::hana::tuple. +More...

+ + + + + +

+Classes

struct  boost::hana::tuple< Xn >
 General purpose index-based heterogeneous sequence with a fixed length. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::tuple.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/type_8hpp.html b/boost_1_63_0/libs/hana/doc/html/type_8hpp.html new file mode 100644 index 0000000..b206a84 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/type_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/type.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
type.hpp File Reference
+
+
+ +

Defines boost::hana::type and related utilities. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::type and related utilities.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/type__at_8hpp.html b/boost_1_63_0/libs/hana/doc/html/type__at_8hpp.html new file mode 100644 index 0000000..cd18c46 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/type__at_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/type_at.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
type_at.hpp File Reference
+
+
+ +

Defines boost::hana::detail::type_at. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::type_at< n, T >
 Classic MPL-style metafunction returning the nth element of a type parameter pack. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::type_at.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/type__foldl1_8hpp.html b/boost_1_63_0/libs/hana/doc/html/type__foldl1_8hpp.html new file mode 100644 index 0000000..7caa6d9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/type__foldl1_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/type_foldl1.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
type_foldl1.hpp File Reference
+
+
+ +

Defines boost::hana::detail::type_foldl1. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::type_foldl1.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/type__foldr1_8hpp.html b/boost_1_63_0/libs/hana/doc/html/type__foldr1_8hpp.html new file mode 100644 index 0000000..96c9793 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/type__foldr1_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/type_foldr1.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
type_foldr1.hpp File Reference
+
+
+ +

Defines boost::hana::detail::type_foldr1. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::type_foldr1.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/types_8hpp.html b/boost_1_63_0/libs/hana/doc/html/types_8hpp.html new file mode 100644 index 0000000..df4e2d2 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/types_8hpp.html @@ -0,0 +1,171 @@ + + + + + + + + + +Boost.Hana: boost/hana/experimental/types.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
types.hpp File Reference
+
+
+ +

Defines boost::hana::experimental::types. +More...

+ + + + + + + + +

+Classes

struct  boost::hana::experimental::types< T >
 Container optimized for holding types. More...
 
struct  boost::hana::experimental::types< T >
 Container optimized for holding types. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::experimental::types.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/unfold__left_8hpp.html b/boost_1_63_0/libs/hana/doc/html/unfold__left_8hpp.html new file mode 100644 index 0000000..eb5a0da --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/unfold__left_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/unfold_left.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unfold_left.hpp File Reference
+
+
+ +

Defines boost::hana::unfold_left. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::unfold_left.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/unfold__right_8hpp.html b/boost_1_63_0/libs/hana/doc/html/unfold__right_8hpp.html new file mode 100644 index 0000000..e6e9562 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/unfold__right_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/unfold_right.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unfold_right.hpp File Reference
+
+
+ +

Defines boost::hana::unfold_right. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::unfold_right.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/union_8hpp.html b/boost_1_63_0/libs/hana/doc/html/union_8hpp.html new file mode 100644 index 0000000..546c82d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/union_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/union.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
union.hpp File Reference
+
+
+ +

Defines boost::hana::union. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::union.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/unique_8hpp.html b/boost_1_63_0/libs/hana/doc/html/unique_8hpp.html new file mode 100644 index 0000000..53d74f8 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/unique_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/unique.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unique.hpp File Reference
+
+
+ +

Defines boost::hana::unique. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::unique.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/unpack_8hpp.html b/boost_1_63_0/libs/hana/doc/html/unpack_8hpp.html new file mode 100644 index 0000000..19828f7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/unpack_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/unpack.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unpack.hpp File Reference
+
+
+ +

Defines boost::hana::unpack. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::unpack.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/unpack__flatten_8hpp.html b/boost_1_63_0/libs/hana/doc/html/unpack__flatten_8hpp.html new file mode 100644 index 0000000..d5fdef9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/unpack__flatten_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/unpack_flatten.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unpack_flatten.hpp File Reference
+
+
+ +

Defines boost::hana::detail::unpack_flatten. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::unpack_flatten.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/unrolled_8hpp.html b/boost_1_63_0/libs/hana/doc/html/unrolled_8hpp.html new file mode 100644 index 0000000..9d44d14 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/unrolled_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/variadic/reverse_apply/unrolled.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
unrolled.hpp File Reference
+
+
+ +

Defines boost::hana::detail::variadic::reverse_apply_unrolled. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::variadic::reverse_apply_unrolled.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/value_8hpp.html b/boost_1_63_0/libs/hana/doc/html/value_8hpp.html new file mode 100644 index 0000000..a2151ce --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/value_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/value.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
value.hpp File Reference
+
+
+ +

Defines boost::hana::value. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::value.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/version_8hpp.html b/boost_1_63_0/libs/hana/doc/html/version_8hpp.html new file mode 100644 index 0000000..b91978b --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/version_8hpp.html @@ -0,0 +1,208 @@ + + + + + + + + + +Boost.Hana: boost/hana/version.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
version.hpp File Reference
+
+
+ +

Defines macros for tracking the version of the library. +More...

+ + + + + + + + + + + + + + + + +

+Macros

#define BOOST_HANA_CONFIG_VERSION(version, revision, patch)   (((version) << 24) + ((revision) << 16) + (patch))
 
+#define BOOST_HANA_MAJOR_VERSION   1
 Macro expanding to the major version of the library, i.e. the x in x.y.z.
 
+#define BOOST_HANA_MINOR_VERSION   0
 Macro expanding to the minor version of the library, i.e. the y in x.y.z.
 
+#define BOOST_HANA_PATCH_VERSION   2
 Macro expanding to the patch level of the library, i.e. the z in x.y.z.
 
#define BOOST_HANA_VERSION
 Macro expanding to the full version of the library, in hexadecimal representation. More...
 
+

Detailed Description

+

Defines macros for tracking the version of the library.

+ +

Macro Definition Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define BOOST_HANA_CONFIG_VERSION( version,
 revision,
 patch 
)   (((version) << 24) + ((revision) << 16) + (patch))
+
+

Transforms a (version, revision, patchlevel) triple into a number of the form 0xVVRRPPPP to allow comparing versions in a normalized way.

+

See http://sourceforge.net/p/predef/wiki/VersionNormalization.

+ +
+
+
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/version_8hpp.js b/boost_1_63_0/libs/hana/doc/html/version_8hpp.js new file mode 100644 index 0000000..23b8c67 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/version_8hpp.js @@ -0,0 +1,8 @@ +var version_8hpp = +[ + [ "BOOST_HANA_CONFIG_VERSION", "version_8hpp.html#a36988ad8e4f82e0bfb7ff8e4808143a7", null ], + [ "BOOST_HANA_MAJOR_VERSION", "group__group-config.html#gac1f8e58978bf4fe02f68ca4646124aee", null ], + [ "BOOST_HANA_MINOR_VERSION", "group__group-config.html#gafd6a702442b280083efe2690da5621bd", null ], + [ "BOOST_HANA_PATCH_VERSION", "group__group-config.html#ga50940f9267eacd0da0d4d8ccbfac8817", null ], + [ "BOOST_HANA_VERSION", "group__group-config.html#ga2fb384037c12a706e1a1cac053065648", null ] +]; \ No newline at end of file diff --git a/boost_1_63_0/libs/hana/doc/html/void__t_8hpp.html b/boost_1_63_0/libs/hana/doc/html/void__t_8hpp.html new file mode 100644 index 0000000..0115cb1 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/void__t_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/void_t.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
void_t.hpp File Reference
+
+
+ +

Defines an equivalent to the proposed std::void_t. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines an equivalent to the proposed std::void_t.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/while_8hpp.html b/boost_1_63_0/libs/hana/doc/html/while_8hpp.html new file mode 100644 index 0000000..2b29f12 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/while_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/while.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
while.hpp File Reference
+
+
+ +

Defines boost::hana::while_. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::while_.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/wrong_8hpp.html b/boost_1_63_0/libs/hana/doc/html/wrong_8hpp.html new file mode 100644 index 0000000..cabdc60 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/wrong_8hpp.html @@ -0,0 +1,168 @@ + + + + + + + + + +Boost.Hana: boost/hana/detail/wrong.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrong.hpp File Reference
+
+
+ +

Defines boost::hana::detail::wrong. +More...

+ + + + + +

+Classes

struct  boost::hana::detail::wrong<... >
 Equivalent to a type-dependent std::false_type. More...
 
+ + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::detail::wrong.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/zero_8hpp.html b/boost_1_63_0/libs/hana/doc/html/zero_8hpp.html new file mode 100644 index 0000000..60abec5 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/zero_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/zero.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zero.hpp File Reference
+
+
+ +

Defines boost::hana::zero. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::zero.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/zip_8hpp.html b/boost_1_63_0/libs/hana/doc/html/zip_8hpp.html new file mode 100644 index 0000000..8e0a5b7 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/zip_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/zip.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip.hpp File Reference
+
+
+ +

Defines boost::hana::zip. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::zip.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/zip__shortest_8hpp.html b/boost_1_63_0/libs/hana/doc/html/zip__shortest_8hpp.html new file mode 100644 index 0000000..9d4839d --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/zip__shortest_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/zip_shortest.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip_shortest.hpp File Reference
+
+
+ +

Defines boost::hana::zip_shortest. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::zip_shortest.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/zip__shortest__with_8hpp.html b/boost_1_63_0/libs/hana/doc/html/zip__shortest__with_8hpp.html new file mode 100644 index 0000000..bff5ab9 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/zip__shortest__with_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/zip_shortest_with.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip_shortest_with.hpp File Reference
+
+
+ +

Defines boost::hana::zip_shortest_with. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::zip_shortest_with.

+ +
+
+ + + + + + + diff --git a/boost_1_63_0/libs/hana/doc/html/zip__with_8hpp.html b/boost_1_63_0/libs/hana/doc/html/zip__with_8hpp.html new file mode 100644 index 0000000..b3bea69 --- /dev/null +++ b/boost_1_63_0/libs/hana/doc/html/zip__with_8hpp.html @@ -0,0 +1,161 @@ + + + + + + + + + +Boost.Hana: boost/hana/zip_with.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Boost.Hana +  1.0.2 +
+
Your standard library for metaprogramming
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
zip_with.hpp File Reference
+
+
+ +

Defines boost::hana::zip_with. +More...

+ + + + + + + +

+Namespaces

 boost
 
 boost::hana
 Namespace containing everything in the library.
 
+

Detailed Description

+

Defines boost::hana::zip_with.

+ +
+
+ + + + + + +