datatree cpp