https://www.learncpp.com/cpp-tutorial/overloading-operators-and-function-templates/
lesson 8.14에서 Function template instantiation에서 어떻게 컴파일러가 function을 instantiate할 때 template을 사용하는지 논의한 적이 있다
또한 우리는 function template을 사용한 코드가 지원하지 않는 operation을 하려고 하면 compile이 안되는 것에 대해서 배웟다
이 단원에서는 실제 클래스 유형이 해당 연산자를 지원하지 않기 때문에 인스턴스화된 함수가 컴파일되지 않는 몇 가지 예를 살펴보고 인스턴스화된 함수가 컴파일되도록 해당 연산자를 정의하는 방법을 보여줍니다
많은 예시가 있는데 function에서 사용하는 operator에 대한
operator overloading이 되어 있지 않는 클래스라면 오류를 일으킨다는 예시를 보여주고 있다