[C++-sig] Duplicate class and method definition
Stefan Seefeld
seefeld at sympatico.ca
Mon Feb 22 15:59:08 CET 2010
On 02/22/2010 09:45 AM, André Prins wrote:
> Hi All,
>
> Recently, I had some problems with a duplicate method and class
> definition begin accepted by boost::python (version 1.41 on MSVC).
> Consider the following c++-code, which declares a class Foo twice, but
> with different bindings for the same function.
>
[...]
> It is obvious that this is not the intended use of Boost-python, but I
> am wondering: why does it assert at runtime without the noncopyable
> and why does it "more or less work" with the boost::noncopyable. And
> is there a method to detect such multiple definitions of the same
> class.
>
For the first two questions: I would suggest you consider the code
"ill-formed" and the behavior "undefined", so there isn't any need to
(second-)guess what the library is doing, and why things appear to be
working in one case but not the other.
As to the last question: I suggest you submit a request for enhancement
for this. I'm pretty sure the library can detect this, and raise an
appropriate exception. Alternatively, if it is decided that the above is
a valuable use-case to support, the library needs to be improved to
support it.
I'm saying that because recently we had a discussion about per-module
converter registries, to avoid conflicts when working with multiple
extension modules that may provide equivalent converters, where it is
important to be able to pick explicitly which one is going to be used.
Thanks,
Stefan
--
...ich hab' noch einen Koffer in Berlin...
More information about the Cplusplus-sig
mailing list