Created on 2026-08-12.00:00:00 last changed 6 days ago
Suggested resolution:
Change in 13.8.1 [temp.res.general] bullet 6.1 as follows:
The program is ill-formed, no diagnostic required, if
- no valid specialization, ignoring static_assert-declarations that fail (9.1 [dcl.pre]), can be generated for a templated entity or a substatement of a constexpr if statement (8.5.2 [stmt.if]) within a templated entity and
the innermost enclosing templatethat templated entity or substatement is not instantiated, or- ...
(From submission #973.)
Consider:
template <typename T>
struct Foo
{
Foo() {}
Foo(T) {
this->bar(); // IFNDR here?
}
};
Foo<int> f;
This ought to be IFNDR, but the enclosing template is, in fact, instantiated. However, the definition of Foo(T) is not instantiated.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2026-08-30 07:45:22 | admin | set | messages: + msg8668 |
| 2026-08-12 00:00:00 | admin | create | |