void operator"" test(const char* str, size_t sz )
{
std::cout<<str<<" world";
}
int main()
{
"hello"test;
return 0;
}
W GCC 4.7, to generuje „Ostrzeżenie: dosłowny przyrostków operator nie poprzedzone«_»są zarezerwowane dla przyszłej normalizacji [włączoną domyślnie]”Czy można wyłączyć ostrzeżenie GCC o brakującym podkreśleniu w słowie zdefiniowanym przez użytkownika?
rozumiem dlaczego to ostrzeżenie jest generowany, ale mówi GCC " domyślnie włączone ".
Czy można wyłączyć to ostrzeżenie, nie wyłączając wszystkich ostrzeżeń za pomocą opcji -w?
Wow, nie wiem, że C++ 11 obsługuje przeciążanie [operator ""] (http://ideone.com/ZDyCML). Nawiasem mówiąc, g ++ obecny w ideeku przynajmniej nie ostrzega, ale mój lokalny kompilator tak robi. Tylko dla informacji innych (którzy nie znają kontekstu), zmieniając 'test' na' _test' ostrzeżenie zniknie. – iammilind
Dlaczego chcesz? Istnieje szansa, że późniejsze wersje C++ będą zawierały potencjalnie sprzeczne symbole. To źle*. Problem GCC polega na tym, że nie daje on * błędu * tak jak powinien. –
@Nicol, doceń swój komentarz i to ostrzeżenie rzeczywiście spowoduje błąd dla mnie, ponieważ używam -Werror. Mamy wiele cennych ostrzeżeń w GCC, ale nadal pozwalamy programistom na ich wyłączenie. – cmeub