2016-09-20 2 views
0

D 프로그램 내에 dup 함수를 만들면 더 이상 배열의 dup 속성을 사용할 수 없습니다. 이 코드는 모듈 내부에서 dup 함수 만들기 - 배열의 dup 속성과 충돌합니다.

import std.stdio; 

void main() { 
    double[] v = [0.1, 0.2, 0.3]; 
    writeln(v.dup); 
} 

작동하지만이 코드는 반환 "clash.d (9) : 오류 : 함수 clash.dup (더블 X)를 인수 유형을 사용하여 호출되지 않습니다 (더블 [])"

import std.stdio; 

double dup(double x) { 
    return x; 
} 

void main() { 
    double[] v = [0.1, 0.2, 0.3]; 
    writeln(v.dup); 
} 

내 프로그램에서 dup 함수를 정의하고 배열의 dup 속성을 잃지 않으려면 어떻게해야합니까? 로컬 과부하 세트에

답변

5

alias를 : 바로 자신의 dup 함수 정의 아래

alias dup = object.dup; 

.

+0

작동합니다. 감사. "객체"가 어디에서 왔는지 또는 참조를 제공하는지 말해 줄 수 있습니까? – user2225804

+1

druntime에서 암시 적으로 가져온 모듈입니다. http://dlang.org/phobos/object.html dup 함수는 클래스, 객체, 예외, 별칭 문자열 및 기타 기본 전역 이름과 같은 클래스입니다. 자동으로 가져 오는 것 외에 별다른 특별한 것은 없으므로 별칭 행이 작동하는 일반적인 이름 조회 및 납치 규칙 을 따릅니다. –

관련 문제