4.2.6. Manual overload resolution

You can use C++ casts to do overload resolution for non-virtual function calls. For example:

void g(int);
void g(long);
struct T {
    int mf(int);
    int mf(int,int);
};
__asm void  f(T*, int, int) {
    BL __cpp(static_cast<int (T::*)(int, int)>(&T::mf)) // calls T::mf(int, int)
    BL __cpp(static_cast<void (*)(int)>(g)) // calls g(int)
    MOV pc, lr
}
Copyright © 2003, 2004 ARM Limited. All rights reserved.ARM DUI 0232B
Non-Confidential