[cpp] add set intersection