I have a constructor template (in non-template class) with a non-type template parameter, which is deduced from std::integral_constant. Is there a need to declare an object of std::integral_constant type that will be passed into the constructor constexpr? It seems superfluous.
Also I see that C++ standard libraries make objects for tag dispatching constexpr. Is there a real need for that? Since not a tag object is used at compile-time but its type.