Closed jjwilke closed 7 years ago
Not a problem with clang3.9. Path got messed up to use Apple clang. Still really bizarre, though.
Looks like this is the same problem Francesco was having when his paths were messed up. I think it's related to an issue in some very old implementations (pre-C++11) of libc++ that ship with MacOS X, where std::tuple
of one or two elements falls through to std::pair
(and thus works for one or two elements, since std::pair
predates C++11), but has broken behavior for three or more elements. Totally just a guess, but it's something to watch out for in the future.
Compiler spew for functor: '''' struct Broken { void operator()( AccessHandle myInt,
AccessHandle<std::vector> parts,
AccessHandle<std::vector> myList
){}
};
''''
when instantiated in
''''
void darma_main_task(std::vector args) {
auto a = initial_access();
auto b = initial_access<std::vector>();
auto c = initial_access<std::vector>();
create_work(a,b,c);
create_work(a,b);
create_work(b,c);
}
''''
Other cases do work: '''' struct Works { void operator()( AccessHandle myInt,
AccessHandle<std::vector> parts
){}
};
''''
and
''''
struct AlsoWorks {
void operator()(
AccessHandle<std::vector> parts,
AccessHandle<std::vector> myList
){}
};
''''