fork(1) download
  1. #include <string>
  2.  
  3. struct C
  4. {
  5. template <class T> operator T() { return T{}; }
  6. };
  7.  
  8. int main() {
  9. std::string x;
  10. x = C{};
  11. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:10:5: error: use of overloaded operator '=' is ambiguous (with operand types 'std::string' (aka 'basic_string<char>') and 'C')
  x = C{};
  ~ ^ ~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h:633:7: note: candidate function
      operator=(basic_string&& __str)
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h:565:7: note: candidate function
      operator=(const basic_string& __str)
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h:604:7: note: candidate function
      operator=(const _CharT* __s)
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h:615:7: note: candidate function
      operator=(_CharT __c)
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h:687:7: note: candidate function
      operator=(initializer_list<_CharT> __l)
      ^
1 error generated.
stdout
Standard output is empty