Add C++ port
Merge pull request #347 from asuhan/master

Add C++ port