fork download
  1. #include <iostream>
  2.  
  3. struct B;
  4.  
  5. struct A
  6. {
  7. operator B();
  8. };
  9.  
  10. struct B
  11. {
  12. B(A &) { std::cout << "conversion constructor" << std::endl; }
  13. };
  14.  
  15. A::operator B() { std::cout << "conversion operator" << std::endl; }
  16.  
  17. int main()
  18. {
  19. A a;
  20. B b = a;
  21. return 0;
  22. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:20: error: conversion from ‘A’ to ‘B’ is ambiguous
prog.cpp:15: note: candidates are: A::operator B()
prog.cpp:12: note:                 B::B(A&)
stdout
Standard output is empty