> I'm using g++, a quite new version.
Why does this code not compile?
#include "HierarchyGener ators.h"
using namespace Loki;
int main()
{
Tuple<TYPELIST_ 2(int,int)> tuple;
Field<0>(tuple) = 4;
};
I think that GenScatterHiera rchy has a bug when two or more equal types
exist in the Typelist.
The hierarchy generated is ambiguous (g++ emit a warning).
The implementation of Field<0>(tuple) uses this funcion:
template <class H, typename R, int i>
inline R& FieldHelper(H& obj, Type2Type<R> tt, Int2Type<i>)
{
typename H::RightBase& subobj = obj;
return FieldHelper(sub obj, tt, Int2Type<i- 1>());
}
The upcast from obj to subobj is ambiguous, because
H::RightBase is convertible to H::LeftBase.
In such a way the compiler doesn't know where to go.
Left or Right?
--
fabioppp