ddip1000按引用返回问题
alias VErr = char*;
@safe:
ref char* front_p(return scope char** p) { return *p; }
__gshared char* g;
void main()
{
char* _errors;
g = front_p(&_errors);
//错误:赋值较长生命期的`"g"`变量,为`"_errors"`的变量的地址.
}
错误不正确.在赋值给'g'之前,返回值是间接的,所以'_errors'的地址未赋值给'g',而是把'_errors'指向的地址赋值给了'g'.
可注释掉"@safe:",编译它并查看汇编程序而知道.
浙公网安备 33010602011771号