https://llvm.org/bugs/show_bug.cgi?id=24860

David Blaikie <dblai...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |dblai...@gmail.com
         Resolution|---                         |INVALID

--- Comment #1 from David Blaikie <dblai...@gmail.com> ---
This seems to be working as intended & doesn't seem to be related to std::map.

Your emplace call is roughly equivalent to this construction of a std::pair:

std::pair<int, Thing> p(0, std::string("hello"));

which exhibits the same compilation error as your std::map::emplace call.

The reason is that std::is_convertible<std::string, Thing>::value is false.
This is because Thing is not copy or move constructible, which is curious, but
technically the way that std::is_convertible is defined:

"the predicate condition for a template specialization is_convertible<From, To>
shall be satisfied if and only if the return expression in the following code
would be well-formed, including any implicit conversions to the return type of
the function:

  To test() {
    return create<From>();
  }"

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to