연산자 오버로딩 코드 위치

aksen123의 이미지

이번에 Tensorflow 관련 코드를 읽게 되었습니다.

위 코드에서 lr() 을 보니,
grad * lr()
연산에서 * 연산자는 연산자 오버로딩을 했을 수 밖에 없다고 생각합니다.

그런데 * 연산자를 오버로딩한
operator* ()
메소드가 어디에 구현되어 있는지 잘 모르겠습니다.

인스턴스 grad 의 클래스인 ConstFlat 코드를 보면 나올꺼 같은데도, 연산자 오버로딩을 오버라이딩 했는지 못 찾고 있습니다.

당장은 거의 모든 operator* 메소드에 cout 을 추가하는 방법으로 (...) 찾고는 있는데 아직까지 못찾았습니다.
그렇다고 gdb 로 디버깅 해보려고 생각은 하는데, 과연 연산자에서 연산자 오버로딩으로 step 이 넘어갈지 모르겠습니다.

다시 정리해서,
1. grad * lr() 의 * 연산자는 연산자 오버로딩을 했을까?
2. 인스턴스 grad 에 관련되 클래스 ConstFlat 에 operator* 가 없다면, 부모 클래스로부터 오버라이딩 한 것일까?
3. gdb 디버거로 연산자 오버로딩한 위치를 찾을 수 있을까?
입니다.

다른 분들의 고견을 듣고 싶습니다.

File attachments: 
첨부파일 크기
Image icon 111.png32.17 KB