use std::conditional in distribution_traits<T>