On Sun, Jul 10, 2016 at 11:20 AM, Andrew Sutton <andrew.n.sut...@gmail.com> wrote: > I did find another bug building cmcstl2, hence the attached > disable-opt patch. For some reason, the memoization of concept > satisfaction is giving momoized results for concept + args that have > not yet been evaluated. This is exactly the same problem that made me > disable the lookup/memoize_constraint_sat optimizations. Somehow I'm > getting the same hash code for different arguments, and they also > happen to compare equal.
This bug turned out to be e.g. substituting int into "requires C<typename T::foo>", which fails because int has no foo member, and therefore deciding that C<int> is false. After I fixed that, I tried turning on the constraint memos, which didn't seem to break anything. I've pushed to the jason/concepts-rewrite branch again. See any reason I shouldn't merge to trunk now? Jason