use std smart pointer
enable c++11 in .travis.yml