在最近 D 2.041 的更新中,修改了以往的 operator overloading 語法。當使用者對 class 或 struct 使用 operator 時,compiler 會自動把它們改寫成針對 function template 的呼叫。比如說以下的例子:

struct Foo {
    // ...

void main()
    Foo a, b;
    a + b;

Compiler 會把 a + b 改寫成 a.opBinary!("+")(b) 的形式,並呼叫 Foo 裡面稱為 opBinary 的 member function template。
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License