
"Larry Evans" <cppljevans@cox-internet.com> wrote
I've been looking at tables/doc/rtl.htm#_Toc68859940 and noted:
Note that one can easily define two columns of the same type. In this case, ssn and salary are two distinct classes that both denote a column of type int. Having two columns with same name is prohibited.
This requirement of unique column "names" (by which you mean column class, as indicated by a previous paragraph in rtl.htm) avoids the problem of duplicate types cited here:
https://sourceforge.net/tracker/index.php?func=detail&aid=544055&group_id=29 557&atid=396644
Is that right? IOW, you could use inherit_linearly for even non-class types by simple wrapping them in a uniquely named class. So, for example, you could use:
template<typename Fields> struct row : inherit_linearly<Fields,inherit>{};
Is there some reason you don't?
We started implementing RTL about 3 years ago, and came up with the initial version half a year after that. At that point, MPL wasn't yet as popular as it is now. The idea of RTL was a direct result of me reading the Andrei Alexandrescu's book, so many ideas were directly "borowed" from there. At that time we had our own typelist (a simplified VC6 adaptation of the Loki typelist). The tuple was generated by inhereting from columns (wrappers) in the same manner GenScatterredHierarchy works. Over time, we switched to MPL. However, the library still contains traces of that initial design. Also some design decisions were caused by the fact that we were using VC6. Carefully re-evaluating such design/implementation decisions would be a necessary pre-requisit of submitting RTL for the Boost review. Since at this point we don't see a lot of interest, we are reluctant to undertake this step. We already had worked for more than two years with practically no feedback. This may be OK for prove of concept (which was done), but IMO totally inacceptable if one wants to create a library that would deserve to be included in Boost. Regards, Arkadiy