dynamic classes and duck typing
Max Samukha
spambox at d-coding.com
Tue Dec 1 06:47:21 PST 2009
On Tue, 01 Dec 2009 03:15:12 -0800, Walter Bright
<newshound1 at digitalmars.com> wrote:
>Max Samukha wrote:
>> On Mon, 30 Nov 2009 22:33:40 -0800, Walter Bright
>> <newshound1 at digitalmars.com> wrote:
>>
>>> I agree. While the compiler currently doesn't check for mixing up
>>> properties and methods, I intend to make it do so. I can't see any
>>> justification for allowing it.
>>
>> Bill rightfully mentioned that it would be impossible to dynamically
>> dispatch to both properties and methods even if those properties and
>> methods don't have conflicting names. And that may really be an
>> unfortunate limitation. For example, it would be problematic to
>> implement a generic wrapper for IDispatch:
>
>Is there any reason not to just make the IDispatch properties have a
>function interface?
I don't know. It looks like IDispatch::Invoke requires the invokation
flag to be explicitly specified. The wrapper can try to determine the
flag using IDispatch::GetTypeInfo. However, objects implementing
IDispatch are not required to provide any type information.
Denis has suggested a convention-based approach (constraint for names
starting with "prop_"). It is not great but may work.
More information about the Digitalmars-d
mailing list