/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/python/friends_runme.py
57 строк
1 KB
William S Fulton
Wrap friend functions that are defined or declared within a namespace
15 янв 2024, 22:18
15 янв 2024, 22:18
0a16044
Код
Авторство
О чём код?
import friends def check_equal(a, b): if a != b: raise RuntimeError("Not equal {} != {}".format(a, b)) a = friends.A(2) if friends.get_val1(a) != 2: raise RuntimeError if friends.get_val2(a) != 4: raise RuntimeError if friends.get_val3(a) != 6: raise RuntimeError # nice overload working fine if friends.get_val1(1, 2, 3) != 1: raise RuntimeError b = friends.B(3) # David's case if friends.mix(a, b) != 5: raise RuntimeError di = friends.D_i(2) dd = friends.D_d(3.3) # incredible template overloading working just fine if friends.get_val1(di) != 2: raise RuntimeError if friends.get_val1(dd) != 3.3: raise RuntimeError friends.set(di, 4) friends.set(dd, 1.3) if friends.get_val1(di) != 4: raise RuntimeError if friends.get_val1(dd) != 1.3: raise RuntimeError if friends.chum_blah() != 1234: raise RuntimeError("failed") if friends.mate_blah() != 4321: raise RuntimeError("failed") foe = friends.Foe(111) check_equal(friends.friend_definition(), 10) check_equal(friends.friend_declaration(), 11) check_equal(friends.friend_args_definition(foe), 111) check_equal(friends.friend_args_declaration(foe), 111) check_equal(friends.friend_definition_compiler(), 20) check_equal(friends.friend_declaration_compiler(), 21) check_equal(friends.friend_args_definition_compiler(foe), 111) check_equal(friends.friend_args_declaration_compiler(foe), 111)