add is_integral, is_void
add if.hpp
Merge branch 'feature/mpl' into develop