/* This file is part of the mp project. * Copyright (c) 2020 MerryMage * SPDX-License-Identifier: 0BSD */ #pragma once #include #include #include #include using namespace mp; // function_info struct Bar { int frob(double a) { return a; } }; static_assert(parameter_count_v == 0); static_assert(parameter_count_v == 3); static_assert(std::is_same_v, double>); static_assert(std::is_same_v, void(bool, int, double)>); static_assert(std::is_same_v, void>); static_assert(std::is_same_v, int(double)>); static_assert(std::is_same_v, Bar>); // is_instance_of_template template class Foo {}; template class Pair {}; static_assert(is_instance_of_template_v>); static_assert(!is_instance_of_template_v); static_assert(is_instance_of_template_v>); static_assert(is_instance_of_template_v>); static_assert(!is_instance_of_template_v>);