Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

gcc compiler flag to suppress template expansion for template errors during compilation?

I'm wondering if there is a flag or modification for the gcc compiler that will return a line number and sentence explaining the type of error when it encounters an error involving templates, but will not print the page of template expansion code spaghetti that invariably follow such errors.

For example, instead of an error like this:

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’

I would like something like this:

temp.cc:9: error: class has no member named hat.
like image 778
Marty B Avatar asked Aug 06 '11 00:08

Marty B


1 Answers

There isnt one. The compiler is trying to help you identify the class that is causing the problem. It only knows of that class as the expansion of its template types.

like image 168
Sinsanator Avatar answered Oct 26 '22 23:10

Sinsanator