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;}
This commit is contained in:
parent
6d72d12575
commit
56327ecc02
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user