Я пытаюсь экспортировать boost :: asio :: ip :: address в python с помощью boost python. Большая часть экспорта классов довольно тривиальна для моих нужд, поскольку это простые функции-члены.
Однако, когда я прихожу к экспорту операторов сравнения, я вижу, что они определены следующим образом:
friend bool operator==(const address& a1, const address& a2)
Этот синтаксис AFAIK объявляет оператор как функцию, не являющуюся членом, а как функцию пространства имен. (что делает его недоступным для Python)
Есть ли способ настроить boost-python, чтобы экспортировать это в оператор cmp, чтобы позволить python сравнивать эти объекты для меня? Или у меня есть единственный вариант написать некую оболочку для этого класса на C ++ и реализовать там правильные функции сравнения членов?