최근 Tango 라이브러리를 사용하여 D 버전 1을 배우기 시작했습니다. 나는 tango.io.Stdout
을 감싸는 작은 클래스 Dout
을 작성하기로 결정했다. 단, 더 좋은 C++의 <<
스타일 출력을 위해서는 opShl
을 오버라이드한다. 내 구현과 같이이다 : D 모듈에 의해 인쇄되는 모듈 이름 파괴자
// dout.d
module do.Dout;
import tango.io.Stdout;
class Dout
{
public static Dout opShl(T) (T arg)
{
stdout(arg);
return new Dout;
}
public static Dout newline()
{
stdout.newline;
return new Dout;
}
}
그리고 주에서
, 나는과 같이, Dout.opShl()에 대한 간단한 전화를합니다.Enter 키를 누른 후 main을 종료하면 "do.Dout.Dout"텍스트가 인쇄됩니다. 코드를 단계별 후,이 텍스트는 어셈블리 명령어에 인쇄되는 것을 발견 do.Dout의 소멸자가 호출되고
00406B5C call __moduleDtor (40626Ch)
하는.
내 질문은 왜 모듈을 주전산기에서 인쇄 할 수 있습니까?이 동작을 중지하려면 어떻게해야합니까?
오프 주제이지만 여전히 관련이 없습니다 - D1이 실행되지 않습니다. 더 발전시켜야한다. D 버전 2는 미래입니다. D를 배우고 싶다면 그 버전을 대신 선택하는 것이 좋습니다. Tango를 D2로 이식하는 프로젝트가 있으므로 Tango를 배우는 데 드는 시간은 낭비가되지 않을 것입니다. 시각. – DejanLekic
참; 나는 Phobos에 Tango를 사용하고 싶기 때문에 특별히 D1을 사용하기로 결정했습니다. C + + 백그라운드에서 오는, 나는 탱고가 더 가까운 성냥 일 것이라고 생각했다. D2가 안정되면 확실히 전환 할 것입니다. – Meta
이것이 재미있을 수도 있지만 표준 왼쪽 시프트 연산자에 과부하가 걸리지 않도록하십시오. 또한 D1은 2013 년까지 개발 될 것입니다. –