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')

ссылка на строку не может быть преобразована в ссылку на какой-либо другой тип.

Ответы на вопрос(2)

Ваш ответ на вопрос