Fix warning C4628 in MSVS2010
Opened this issue · 2 comments
GoogleCodeExporter commented
What steps will reproduce the problem?
1. Compile chromium with /Wall with MSVC2010 SP1.
What is the expected output? What do you see instead?
...\src\testing\gmock\include\gmock/gmock-actions.h(116): warning C4628:
digraphs not supported with -Ze. Character sequence '<:' not interpreted as
alternate token for '['
is generated.
Ref: http://msdn.microsoft.com/en-us/library/5xk7ehw0.aspx
Which version of Google Mock are you using? On what operating system?
r403
Original issue reported on code.google.com by maruel@google.com
on 29 Nov 2011 at 9:22
GoogleCodeExporter commented
The offending line is:
GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(::string, "");
where the macro is defined as
#define GMOCK_DEFINE_DEFAULT_ACTION_FOR_RETURN_TYPE_(type, value) \
template <> \
class BuiltInDefaultValue<type> { \
public: \
static bool Exists() { return true; } \
static type Get() { return value; } \
}
The code conforms to the C++ standard and it is a bug in MSVC2010 SP1 that
causes the warning. It's wrong for the preprocessor to do the tokenization of
'<type>' after substituting '::string' for 'type'. However, we can easily work
around the bug by changing
<type>
to
< type >
Original comment by w...@google.com
on 29 Nov 2011 at 10:36
- Changed state: Accepted
- Added labels: OpSys-Windows, Type-Enhancement
- Removed labels: Type-Defect
GoogleCodeExporter commented
Can someone take a look at http://codereview.appspot.com/5451043/ ?
I'd like to move on with that.
Original comment by maruel@google.com
on 12 Dec 2011 at 7:28