开发者

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 a开发者_运维技巧n 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.


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.


The gcc has no flag for this, but sed could easily solve the job.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜