swig/Examples/test-suite/python/cpp20_concepts_class_method...

31 lines
961 B
Python

from cpp20_concepts_class_methods import *
def check_equal(a, b):
if a != b:
raise RuntimeError("{} is not equal to {}".format(a, b))
c = Calculator()
# Trailing requires-clause on a member function template.
check_equal(c.cube_int(3), 27)
check_equal(c.cube_int(-4), -64)
check_equal(c.cube_double(2.0), 8.0)
# Prefix requires-clause on a member function template.
check_equal(c.quad_int(2), 16)
check_equal(c.quad_int(-3), 81)
# Static member function template constrained by an inline requires-expression.
check_equal(Calculator.sum_int(2, 3), 5)
check_equal(Calculator.sum_int(-7, 4), -3)
# Member function template constrained by a named concept whose body is itself a requires-expression.
check_equal(c.addn_int(7, 4), 11)
check_equal(c.addn_int(-2, 5), 3)
# Member function template with two template parameters and a compound constraint joined by '&&'.
check_equal(c.scale_int_int(5, 3), 15)
check_equal(c.scale_int_int(-4, 2), -8)