June 14, 2008 [STLSoft] method properties, or, "With a Little Help from My Friends" | ||||
---|---|---|---|---|
| ||||
Hi Matthew, When I was trying out a (get) method property, it took me some time to find out that the errors I got are caused by the (lack of) capability of the compiler used (VC6 and GCC 3.4.2). To make a long story short, I think it would be helpful if compilers that cannot use and therefore do not define STLSOFT_METHOD_PROPERTY_SET_EXTERNAL_PROP STLSOFT_METHOD_PROPERTY_GETSET_EXTERNAL_PROP would report that fact via a #error, for example as in #else /* ? STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT */ => # error Compiler is not compatible with method set properties #endif /* STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT */ With an emphasis on *set*. By the looks of stlsoft/properties/method_properties.hpp, it seems there are compilers whithout STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT capability that can support STLSOFT_METHOD_PROPERTY_GET_EXTERNAL_PROP but VC6 and GCC 3.4.2 seem not to be one of these. Unfortunately VC6 or GCC 3.4.2 do not report an error that explains this incapability when compiling such a get method. So may be STLSoft can provide some help here too? Cheers, Martin. |
June 15, 2008 Re: [STLSoft] method properties, or, "With a Little Help from My Friends" | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin Moene | Martin Moene wrote: > Hi Matthew, > > When I was trying out a (get) method property, it took me some time to find out that the errors I got are caused by the (lack of) capability of the compiler used (VC6 and GCC 3.4.2). > > To make a long story short, I think it would be helpful if compilers that cannot use and therefore do not define > STLSOFT_METHOD_PROPERTY_SET_EXTERNAL_PROP > STLSOFT_METHOD_PROPERTY_GETSET_EXTERNAL_PROP > > would report that fact via a #error, for example as in > > #else /* ? STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT */ > => # error Compiler is not compatible with method set properties > #endif /* STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT */ > > With an emphasis on *set*. Well, using #error as shown above, also inhibits use of a property get method (STLSOFT_METHOD_PROPERTY_GET_EXTERNAL) where its use would be possible. Not a good idea... The error should occur when we /use/ the property set method when the compiler cannot provide us with that. However just expanding to #error is not possible: # define STLSOFT_METHOD_PROPERTY_GETSET_EXTERNAL(RG, RS, C, GM, SM, P) \ #error Error: Compiler is not compatible with method set properties. Maybe the following is a possible solution? # define STLSOFT_METHOD_PROPERTY_GETSET_EXTERNAL(RG, RS, C, GM, SM, P) \ Error_Compiler_is_not_compatible_with_method_set_properties which yields an undeclared identifier error. Cheers, Martin. > > By the looks of stlsoft/properties/method_properties.hpp, it seems there are compilers whithout STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT capability that can support STLSOFT_METHOD_PROPERTY_GET_EXTERNAL_PROP but VC6 and GCC 3.4.2 seem not to be one of these. Unfortunately VC6 or GCC 3.4.2 do not report an error that explains this incapability when compiling such a get method. So may be STLSoft can provide some help here too? > > Cheers, > > Martin. |
Copyright © 1999-2021 by the D Language Foundation