aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/map.h
diff options
context:
space:
mode:
authorGravatar Tom Hughes <tom@airtime.com>2015-07-29 13:00:06 -0700
committerGravatar Tom Hughes <tom@airtime.com>2015-07-29 13:00:06 -0700
commit56327ecc02943c1cf0e218caad3dc82231717a0b (patch)
tree1195b44abae8a1ce0892a506b2d152b846bdaf94 /src/google/protobuf/map.h
parent6d72d12575c3fa764f27b91985c5a5c79bc4ccd6 (diff)
Fix compilation error when using C++11.
The issue occurs when the template type deduction results in NodeType being const. Shortened version of compile error: no matching function for call to 'operator new' new (p) NodeType(std::forward<Args>(args)...); candidate function not viable: no known conversion from 'const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > *' to 'void *' for 2nd argument; take the address of the argument with & inline __attribute__ ((__visibility__("hidden"), __always_inline__)) void* operator new (std::size_t, void* __p) noexcept {return __p;}
Diffstat (limited to 'src/google/protobuf/map.h')
-rw-r--r--src/google/protobuf/map.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/google/protobuf/map.h b/src/google/protobuf/map.h
index 163ce9dc..d928b7a7 100644
--- a/src/google/protobuf/map.h
+++ b/src/google/protobuf/map.h
@@ -172,7 +172,7 @@ class Map {
!defined(GOOGLE_PROTOBUF_OS_NACL) && !defined(GOOGLE_PROTOBUF_OS_ANDROID)
template<class NodeType, class... Args>
void construct(NodeType* p, Args&&... args) {
- new (p) NodeType(std::forward<Args>(args)...);
+ new ((void*)p) NodeType(std::forward<Args>(args)...);
}
template<class NodeType>