void operator"" test(const char* str, size_t sz )
{
std::cout<<str<<" world";
}
int main()
{
"hello"test;
return 0;
}
In GCC 4.7, questo genera "Attenzione: letterale suffissi operatore non preceduti da '_' sono riservati per il futuro la standardizzazione [abilitato per impostazione predefinita]"È possibile disabilitare l'avvertimento GCC in merito al carattere di sottolineatura mancante nel letterale definito dall'utente?
capisco perché viene generato questo avviso, ma GCC dice " abilitato di default ".
È possibile disattivare questo avviso senza disattivare tutti gli avvisi tramite il flag -w?
Wow, non so che C++ 11 supporta l'overloading [operator ""] (http://ideone.com/ZDyCML). Dal modo in cui il g ++ presente almeno in ideone non avverte, ma il mio compilatore locale lo fa. Solo per le informazioni di altri (che non conoscono il contesto), cambiando 'test' a' _test' l'avviso scompare. – iammilind
Perché vuoi? Ci sono tutte le possibilità che versioni successive del C++ includano simboli potenzialmente in conflitto. Questo è male*. Il problema di GCC è che non ti sta dando * un * errore nel modo in cui dovrebbe. –
@Nicol, apprezza il tuo commento e questo avviso genera effettivamente un errore per me perché utilizzo -Werror. Abbiamo molti avvertimenti preziosi in GCC, ma lasciamo comunque che il programmatore li disabiliti esplicitamente. – cmeub