[C++-sig] wrapping typedef equivalent types
Neal Becker
ndbecker2 at gmail.com
Wed Oct 19 17:59:22 CEST 2005
David Abrahams wrote:
> Neal Becker <ndbecker2 at gmail.com> writes:
>
>> What happens if, using boost::python, I try to wrap 2 type equivalent
>> classes?
>>
>> For example (this is a trivial example):
>>
>> class_<int>...
>> class_<int32_t>...
>> where int == int32_t
>>
>> My real objective is to wrap classes
>>
>> template<int_t> class X {};
>>
>> where int_t is
>> int (natural int size)
>> int32_t (force 32-bit)
>> int64_t (force 64-bit)
>>
>> Can wrapped X<int>, X<int32_t>, X<int64_t> co-exist in the same python
>> module?
>
> No, all wrapped classes have to have different types. You could add a
> dummy parameter to X in order to distinguish them.
>
I don't understand the dummy parameter suggestion. Could you elaborate?
I found a different solution. I just expose the int32_t and int64_t
versions, then use python code to set the equivalence. In python, I write
something like:
if (intsize() == 4): X = X32
I guess there's nothing wrong with that approach :)
More information about the Cplusplus-sig
mailing list