/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/python/cpp20_concepts_runme.py
50 строк
2 KB
William S Fulton
cpp20_concepts: cover the remaining requires-expression body forms
10 май 2026, 19:37
10 май 2026, 19:37
21adc1d
Код
Авторство
О чём код?
from cpp20_concepts import * def check_equal(a, b): if a != b: raise RuntimeError("{} is not equal to {}".format(a, b)) # Trailing requires-clause. check_equal(cube_int(3), 27) check_equal(cube_int(-4), -64) check_equal(cube_double(2.0), 8.0) check_equal(cube_double(0.5), 0.125) # Prefix requires-clause - bare concept. check_equal(quad_int(2), 16) check_equal(quad_int(-3), 81) check_equal(quad_double(1.5), 5.0625) # Prefix requires-clause - compound constraint joined by '&&'. check_equal(half_int(8), 4) check_equal(half_int(-9), -4) # Prefix requires-clause - parenthesised constraint subexpression. check_equal(identity_int(42), 42) check_equal(identity_int(-1), -1) # Trailing requires-clause whose constraint contains a requires-expression # as a primary. check_equal(add_int(2, 3), 5) check_equal(add_int(-7, 4), -3) # Function template constrained by a named concept whose body is a requires-expression. check_equal(sum_pair_int(2, 3), 5) check_equal(sum_pair_int(-7, 4), -3) # Function template constrained by a concept whose requires-expression contains # a compound requirement '{ a + b } -> std::same_as<T>;'. check_equal(add_same_int(2, 3), 5) check_equal(add_same_int(-7, 4), -3) # Inline 'requires requires' with a compound requirement. check_equal(add_inline_same_int(2, 3), 5) check_equal(add_inline_same_int(-7, 4), -3) # Multiple simple-requirements. e = Engine() check_equal(cycle_engine(e), True) check_equal(e.running, False) # Type-, noexcept compound- and nested-requirements. check_equal(check_container_c(Container()), True)