I don't know previous discussion, but I guess this is a problematic case:
template<int> struct X;
constexpr std::vector<std::unique_ptr<int>> V = ...;
auto f() -> X<*V[0]>;
*V[0] = 42;
auto f() -> X<*V[0]>;
Here two declarations of `f()` need to have the same type, but it won't be possible if `*V[0]` doesn't have a constant value.
--
Std-Discussion mailing list
Std-Discussion@lists.isocpp.org
http://lists.isocpp.org/mailman/listinfo.cgi/std-discussion