このコードが GCC (4.9 および 5+) でコンパイルされるのに、clang (3.5-3.9) ではコンパイルされないのはなぜですか?
void test(const int&) { }
int main() {
const int x = 42;
auto f = []{ test(x); };
}
不一致が ODR (One Definition Rule) の使用に関係しているという漠然とした考えがありますが、ここで何が起こっているのかを理解するのに十分ではありません。