2015-12-24 0:10 GMT+01:00 Emil Dotchevski
On Wed, Dec 23, 2015 at 2:44 PM, Adam Wulkiewicz < adam.wulkiewicz@gmail.com> wrote:
Basically I think we should clarify this. AFAIU the problem might occur if there were e.g. two libraries (abc and def) providing their own matrix representations (e.g. abc::mat4x4 and def::mat4x4). Then we'd have two other libraries (X and Y) both using those two matrix types together with QVM. So both X and Y libraries would have to specialize QVM traits for abc::mat4x4 and def::mat4x4.
They don't *have* to, the deduce_m2 template does have a default definition.
Then, if both X and Y libraries were included in a program there would be problems since the specializations of QVM traits would be duplicated.
Yes, however that is true for any specialization of any template any library defines. It makes no sense to say that there is a problem with a library because the *user* might violate ODR.
Yes, this is my understanding. I'd simply like to hear from Vicente if this is the case he had in mind or something else that I possibly cannot see. Adam