
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Christoph Ludwig
However, this problem is by no means specific to the serialization library.
No, it isn't. Note also that the solution is incomplete. Types have to not only be capable of being argument types (e.g. not 'void'), but they also must remain unchanged by simply being an argument type (e.g. array declarations decay to pointers, function types are transformed to pointer to function types). In other words, the solution only works for the common case.
Whenever you have a macro that takes a classname you may face this issue. One could consider it a (inherent) preprocessor shortcoming solved by means of template programming.
As an aside, if you have a conforming preprocessor, the problem is solveable with the preprocessor (especially so with variadics). Regards, Paul Mensonides