Title
Function contract assertions are needed for pure virtual function calls
Status
tentatively ready
Section
9.4.1 [dcl.contract.func]
Submitter
Joshua Berne

Created on 2026-09-06.00:00:00 last changed 2 weeks ago

Messages

Date: 2026-10-07.20:41:18

Proposed resolution (approved by CWG 2026-10-06):

Change in 9.4.1 [dcl.contract.func] paragraph 9 as follows:

The function contract assertions of a function are considered to be needed (13.9.2 [temp.inst]) when
  • the function is odr-used (6.3 [basic.def.odr]) or ,
  • the function is declared as a virtual function (11.7.4 [class.abstract]), or
  • the function is defined.
Date: 2026-09-06.00:00:00

(From submission #1003.)

With P3097R3 (Contracts for C++: Virtual functions), adopted in June, 2026, function contract assertions are now required to be instantiated in cases where a pure virtual function is called, even when the function is not odr-used.

History
Date User Action Args
2026-10-07 20:41:18adminsetstatus: review -> tentatively ready
2026-10-06 18:15:38adminsetstatus: open -> review
2026-09-20 19:38:27adminsetmessages: + msg8687
2026-09-06 00:00:00admincreate