rename to hpp
rename to hpp
rename to hpp
rename to hpp
rename to hpp and use c++ linkage
rename to hpp
rename to hpp
macro and ordering fix