Proper way to handle "alias this" deprecation for classes
    Ali Çehreli 
    acehreli at yahoo.com
       
    Sun May  7 18:19:04 UTC 2023
    
    
  
On 5/7/23 10:55, Chris Piker wrote:
 > According to dmd 2.103, alias this is
 > deprecated for classes, so I'd like to correct the problem.
alias this is for implicit type conversions, which can be achieved 
explicitly as well. Given the following old code:
class C {
     int* result;
     alias result this;
}
void foo(int*) {
}
auto main() {
     auto c = new C();
     // Implicit type conversion from C to int*:
     foo(c);
}
One can use a member function instead:
class C {
     int* result;
     auto asIntPtr() {
         return result;
     }
}
void foo(int*) {
}
auto main() {
     auto c = new C();
     // The same type conversion is now explicit:
     foo(c.asIntPtr);
}
Ali
    
    
More information about the Digitalmars-d-learn
mailing list