diff --git a/quic/datagram/DatagramFlowManager.h b/quic/datagram/DatagramFlowManager.h index 7f147e2ef..8e5528d6f 100644 --- a/quic/datagram/DatagramFlowManager.h +++ b/quic/datagram/DatagramFlowManager.h @@ -33,6 +33,10 @@ class DatagramFlowManager { // reach back to age it, and a flow that never sets one never reads the // clock. struct QueuedDatagram { + // User-provided, not `= default`: writeBuffer_ instantiates F14FastMap over + // these nested types before gcc has evaluated their member initializers. + QueuedDatagram() {} + BufQueue buf; TimePoint enqueueTime{TimePoint::max()}; // Orders this datagram against others in the same flow; lower is sent @@ -51,7 +55,8 @@ class DatagramFlowManager { // popped. Set by closeFlow(), and at creation for ephemeral flows. bool draining{false}; - DatagramFlowQueue() = default; + DatagramFlowQueue() {} // Not `= default`; see QueuedDatagram above. + ~DatagramFlowQueue() = default; // Move-only