Такой код может быть скомпилирован с -fpermissive
. (GCC 4.9.2, не clang 3.6.0)
Я протестировал полную программу на основе интерпретации Ларсманса:
#include <cstdio>
class Customer {
public: Customer *Customer::getCustomer() { return this; }
};
int main()
{
std:printf("%p\n", Customer().getCustomer());
}
Не компилируется с g++ test.cpp
, но компилируется (с предупреждением) с g++ test.cpp -fpermissive
.Даже g++ test.cpp -fpermissive -ansi
и g++ test.cpp -fpermissive -std=c++11
работают.
С -w
вы не получите предупреждение, но, возможно, это не всегда лучшая идея: вы можете получить информацию, когда что-то странное.
clang++ test.cpp -fpermissive
выдает ошибку, хотя clang, похоже, распознает параметр -fpermissive
.Может быть, кто-нибудь знает способ заставить его принять такой код.