Labels: Type-Defect Priority-Medium
New issue 398 by mjkl...@gmail.com: Compiler Errors in VS2012 - With some
What steps will reproduce the problem?
1. Open the project files in VS2012 (allow the automatic conversion)
2. Compile Solution
3. Compilation Errors (with most projects - in particular test projects)
What is the expected output? What do you see instead?
Well, no compilation errors...
What version of the product are you using? On what operating system?
I tried with :
- protobuf 2.4.1 zip
- protobuf from trunk - using gtest 1.5 as by default
- protobuf from trunk - using gtest 1.6 (after having changed the
sn:external property to try if that change something)
Please provide any additional information below.
I tried this in VS2012 RC and it appear that there are mainly 2 problems:
1. Google Test will use std::tr1::tuple with about 10 arguments, but in
VS2012 they had to reduce the default template argument number of
std::tuple because they don't implement tuple correctly yet and it is only
pregenerated. I think the arguments are about 5.
To fix this here is what I have in my CMakeFiles.txt of a project that use
if( MSVC ) # VS2012 doesn't support correctly the tuples yet
add_definitions( /D _VARIADIC_MAX=10 )
add_subdirectory( googletest )
That way I can compile gtest fine.
2. In src\google\protobuf\compiler\command_line_interface.cc line 913 we
Ther is a very strange compiler error saying that this instance of
make_pair is not compatible with the arguments, while virtual_path and
disk_path are both std::string...
The easy and in some way "more" correct way to fix this is to remove the
arguments (that will be automatically found and also that still apparently
match the push_back requirements):
I can compile protoc once this modification is applied.
You received this message because you are subscribed to the Google Groups "Protocol
To post to this group, send email to email@example.com.
To unsubscribe from this group, send email to
For more options, visit this group at