On 22 Aug 2014 at 17:00, Edward Diener wrote:
But here is a possible example, although purely theoretical as to its use. Suppose you designed a macro where you were creating a C++ class. In the macro you might have some input parameter which, if the user specified the identifier 'public' the code you were creating from further macro input would go in a base class, if the user specified the identifier "protected' the code you were creating from further macro input would go in a derived class, and if the user specified 'private' the code you were creating from further macro input would go in a pimpl class connected to the base class by a pimpl sort of identifier. VMD has the ability to test for specific identifiers, such as 'public', 'protected', 'private', and based on the test you could use the Boost PP macro 'BOOST_PP_IIF' to create the output you needed.
Are you saying here that one can use macros to do static reflection of the member access attributes of member functions, or that one can use macros to synthesise the member access attributes of member functions? If the former that is something we cannot do in C++ 14 without extra manually inserted metadata. If the latter then it is something we can easily do in C++ 98 via policy inheritance, let alone C++ 14. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/