these are not used
use the scalar logical constants directly when possible
using is_base_of for less sfinae