I was halfway through working on this piece of code and thought *this is obviously not going to compile* before hitting the build button. I was surprised that it not only compiled, but linked and worked as well. 

If I were to guess I would say that SFINAE is responsible for it compiling... is it?

```
struct BaseClass
{
public:
  BaseClass() {}

  template<typename T>
  BaseClass(const T& a_other)
  {
    int i = 0; // for break point
  }

  template<typename T>
  BaseClass& operator= (const T& a_other)
  {
    int i = 0; // for break point
    return *this;
  }

private:

  BaseClass(const BaseClass& a_other); // Does not have a definition
  BaseClass& operator= (const BaseClass& a_other); // Does not have a definition

};

struct MyClass : public BaseClass
{
};

int main()
{
  MyClass i, j;
  i = j;

  return 0;
}

```

**EDIT**: I am using Visual-C++ 2008, maybe it is an odd quirk of VS