teemperor added a comment.
I think for range loops work differently:
#include <cassert>
#include <vector>
#include <iostream>
struct Foo {
int* begin() const { assert(false); }
int* end() const { assert(false); }
void bar() const { std::cout << "Different behavior" << std::endl; }
};
int main() {
std::vector<Foo*> F;
F.resize(1);
for (const Foo* F : F) {
F->bar();
}
}
teemperor@ftlserver ~/test> clang++ test.cpp -std=c++11 ; and ./a.out
Different behavior
https://reviews.llvm.org/D23418
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits