Boost.python автоматически конвертирует параметр
Я использую boost.python, чтобы обернуть класс C ++ «A», который принимает строку в качестве конструктора. Затем у меня есть функция 'fun (A & arg)', которая принимает ссылку на 'A' в качестве параметра. Я хотел бы иметь оболочку Python для 'fun', которая такова, что если я передам переменную, которая является ссылкой на строку Python, эта ссылка сначала автоматически преобразуется в ссылку на 'A'.
Пример может помочь. Что касается Python, я хотел бы иметь возможность сделать это:
a = 'some string'
fun(a)
а затем иметь «а» на самом деле (ссылка на) «А», а не (ссылка на) исходную строку. Я хочу сделать это, потому что я хотел бы иметь возможность не писать это как
a = A('some string')
fun(a)
(у вас могут быть веские основания сомневаться в том, что это актуальная заставка, но давайте просто предположим, что это важно для меня).
Возможно ли что-нибудь подобное? Если не использовать boost.python, возможно, напрямую использовать API Python-C?
Заметка: Я знаю о том, что если бы я написал
fun('some string')
ссылка на строку не может быть преобразована в ссылку на какой-либо другой тип.