I will gladly change the title of this thread to something more appropriate once I know what subject this falls under.
If I change the parameters of the error-causing constructor, there is no error.
This error only occurs if I include that exact constructor:
error: no matching function for call to 'Object::Object(Object)'
note: candidates are: Object::Object(Object&)
note:                 Object::Object()
Code:
#include <iostream>
using namespace std;
class Object {
  public:
    Object() {}     /* default constructor - no problems at all */
    Object( Object & toCopy ) {}  /* Cause of error, but no error when commented out */
    Object func() {  
      Object obj;
      return obj;
    }
};
int main() {
  Object o = o.func();  /* this is the line that the error is actually on */
  return 0;
}
 
     
     
     
     
     
    