Typecasting initialize for cpp project
Merge branch 'pr/58' into kazuho/issues/58
add const qualifier (nitpick)
add C++ include guard to all the header files (so that they could be used separately)
adjustments for using from C++ (close #58, merge branch 'kazuho/issues/58')