some const meth and improve smart ptr macro
Merge branch 'origin/develop'