It is possible to cast an object method to a uint like this:
void test()
{
string s;
uint i = uint( s.length );
string s2 = i;
Print( s2 );
}
The result here is 0.
Print is a function that takes a const string& in, it prints to std::cout.
In our game, this caused a crash. A method taking ?& in directly took a variable of the form uint( s.length ).