New question ... If I run this In address.cpp std::string, why do I get two different encodings?
std::cout<<"bts 58\t"<<fc::to_base58(addr.data(), sizeof(addr))<<"\n";
memcpy( (char*)&bin_addr, (char*)&addr, sizeof(addr) );
std::cout<<"bin addr\t"<<fc::to_base58(bin_addr.data, sizeof(bin_addr))<<"\n";
EDIT: Both cout lines seem to work because I get hashes that match; a) 1st cout matches my javascript port of this code, b) 2nd cout matches bts_create_key.cpp (the BTS public key, the one the public uses)... I just don't know why the hashes are different. So I suspect the mem copy is doing something unexpected. The mem copy line is original.