2011-08-06 12 views
5

Zastanawiam się, czy istnieje flaga lub modyfikacja dla kompilatora gcc, która zwróci numer wiersza i zdanie wyjaśniające typ błędu, gdy napotka błąd związany z szablonami, ale będzie , a nie wydrukować stronę kodu rozszerzenia szablonu spaghetti, które niezmiennie śledzi takie błędy.Flaga kompilatora gcc, aby ukryć rozszerzenie szablonu dla błędów szablonu podczas kompilacji?

Na przykład, zamiast błędu tak:

temp.cc:9: error: ‘class std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char,  std::char_traits<char>, std::allocator<char> > > > >’ has no member named ‘hat’ 

chciałbym coś takiego:

temp.cc:9: error: class has no member named hat. 
+0

Wyniki pracy z rurami za pomocą skryptu sed lub perl? – msandiford

+1

Wypróbuj Clang - jest to jedna z cech stylistyki frontendu klang. – osgx

Odpowiedz

1

nie nie jest jeden. Kompilator próbuje pomóc w zidentyfikowaniu klasy, która jest przyczyną problemu. Zna tę klasę jedynie jako rozszerzenie jej typów szablonów.

+0

Próbuje pomóc, ale użytkownik STL nie musi widzieć całej wiązki char_traits ...., które są potrzebne programistom STL. – osgx

0

Gcc nie ma flagi, ale sed może łatwo rozwiązać zadanie.

Powiązane problemy