replace SetFillContext with set_fill_visitor, avoid including typeof.hpp unnecessarily for better compile times