On 31 March 2016 at 21:10, Daniel Gutson wrote: > Hi, > > many times we copy code snippets from sources that change the > Unicode quotation marks ( “ ” ) rather than " ". For example > > const std::string a_string(“Hello”); > > That line looks innocent but causes gcc to say > > xxxxx.cpp:4:1: error: stray ‘\342’ in program > const std::string a_string(“Hello”); > ^ > > misleading the poor programmer with such error message and wrong > column. A quick Google search says there are 171,000 matches for " > error: stray ‘\342’ in program" which may show that this is a very > common issue.
I have hit that problem several times and would welcome a smarter diagnostic. > I want to know if there is consensus to one of these solutions that I > can implement: > > * improve the error message for the case of the Unicode quotes such > as adding "(seems Unicode quotes where used)" IMHO this would be better. It doesn't actually help fix the code, it only helps identify the problem, but this is usually only a problem for small pieces of code copied from a webpage, so fixing it isn't a huge task. > * add a flag for a GNU extension so Unicode quotes are treated as > regular quotes That could change the meaning of valid code unless it was careful to ignore fancy quotes inside string literals, e.g. we wouldn't want to change the meaning of: const std::string a_string(" “Hello” ");