Quais são as regras para ponteiros de função e ponteiros de função de membro para funções padrão?

Quais são as regras existentes para levar ponteiros de função ou ponteiros de função de membro para funções padrão? Por exemplo, algo como

auto p = &std::string::size;

Isso é legal? Seria mais ou menos legal se eu pedisse explicitamente o tipo correto, para que funcionasse mesmo se houvesse uma sobrecarga de implementação adicional destd::string::size?

questionAnswers(1)

yourAnswerToTheQuestion