/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Library/boost/libs/histogram/examples/guide_histogram_in_api.cpp
57 строк
2 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
// Copyright 2020 Hans Dembinski // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) //[ guide_histogram_in_api #include <boost/histogram.hpp> #include <cassert> // function accepts any histogram and returns a copy template <class Axes, class Storage> boost::histogram::histogram<Axes, Storage> any_histogram( boost::histogram::histogram<Axes, Storage>& h) { return h; } // function only accepts histograms with fixed axis types and returns a copy template <class Storage, class... Axes> boost::histogram::histogram<std::tuple<Axes...>, Storage> only_static_histogram( boost::histogram::histogram<std::tuple<Axes...>, Storage>& h) { return h; } // function only accepts histograms with dynamic axis types and returns a copy template <class Storage, class... Axes> boost::histogram::histogram<std::vector<boost::histogram::axis::variant<Axes...>>, Storage> only_dynamic_histogram( boost::histogram::histogram<std::vector<boost::histogram::axis::variant<Axes...>>, Storage>& h) { return h; } int main() { using namespace boost::histogram; auto histogram_with_static_axes = make_histogram(axis::regular<>(10, 0, 1)); using axis_variant = axis::variant<axis::regular<>, axis::integer<>>; std::vector<axis_variant> axes; axes.emplace_back(axis::regular<>(5, 0, 1)); axes.emplace_back(axis::integer<>(0, 1)); auto histogram_with_dynamic_axes = make_histogram(axes); assert(any_histogram(histogram_with_static_axes) == histogram_with_static_axes); assert(any_histogram(histogram_with_dynamic_axes) == histogram_with_dynamic_axes); assert(only_static_histogram(histogram_with_static_axes) == histogram_with_static_axes); assert(only_dynamic_histogram(histogram_with_dynamic_axes) == histogram_with_dynamic_axes); // does not compile: only_static_histogram(histogram_with_dynamic_axes) // does not compile: only_dynamic_histogram(histogram_with_static_axes) } //]