The use of std::addressof is more descriptive than the use of &. It better expresses the intention of the code, and is therefore preferred. Another reason is that the & is easier to overlook than the larger std::addressof, hence easier to miss by the quick code reader. As a result, using std::addresof is expected to lead to fewer bugs and better code, and hence preferred.