ref-count reference count port from boost smart ptr feature: Clang atomic GCC x86_64 shared_ref and weak ref, not support custom allocte now