두 개의 함수가 있습니다. 하나는 구분 된 문자열을 정수 배열 배열로, 다른 하나는 실제 배열로 나눕니다. 나는 과부하하려고 노력하고있다.Fortran OOP 함수 오버로드
Interface split
Module Procedure split_to_int_unidim
Module Procedure split_to_real_unidim
End Interface split
Function split_to_int_unidim (a, delim, pos) Result (b)
Character(len=*), Intent (in) :: a, delim
Character(len=*), Intent (in), Optional :: pos
Integer, Allocatable :: b(:)
End Function
Function split_to_real_unidim (a, delim, pos) Result (b)
Character(len=*), Intent (in) :: a, delim
Character(len=*), Intent (in), Optional :: pos
Real, Allocatable :: b(:)
End Function
나는 오류
gfortran -o build/lib/foul.o -c -ffree-form -g -J./build/lib lib/foul.f
lib/foul.f:22.41:
Module Procedure split_to_real_unidim
1
Error: Ambiguous interfaces 'split_to_real_unidim' and 'split_to_int_unidim'
in generic interface 'split' at (1)
나는 기능의 반환은 다른 유형의이기 때문에, 내가 확인 될 것이라고 기대했다을 얻고있다. 그러나 나는 오류를보고 착각 한 것 같습니다. 같은 이름을 사용하여 전화 할 수있는 방법이 있습니까? 그렇다면 어떤 수정을해야합니까?
반환형 함수 서명의 일부가 아닌 다음
따라서 용액 것이다. 컴파일러가 두 메소드를 구별 할 수있는 인자가 다른 타입의 인자 만 있습니다. – ja72
세부 사항을 가져 주셔서 감사합니다. – Zeus
가능한 오타 : 두 번째 방법은 'split_to_real_unidim'이 아닙니다. – ja72