Title
Philox engines should be freestanding
Status
wp
Section
[rand.eng.philox]
Submitter
Jiang An

Created on 2025-03-15.00:00:00 last changed 5 days ago

Messages

Date: 2025-06-23.16:37:24

Proposed resolution:

This wording is relative to N5001.

  1. Modify [rand.synopsis], header <random> synopsis, as indicated:

    […]
    // [rand.eng.philox], class template philox_engine
    template<class UIntType, size_t w, size_t n, size_t r, UIntType... consts>
      class philox_engine;               // partially freestanding
    
    […]
    using philox4x32 = see below; // freestanding
    using philox4x64 = see below; // freestanding
    […]
    
  2. Modify [rand.eng.philox], class template `philox_engine` synopsis, as indicated:

    namespace std {
      template<class UIntType, size_t w, size_t n, size_t r, UIntType... consts>
      class philox_engine {
        […]  
        // inserters and extractors
        template<class charT, class traits>
          friend basic_ostream<charT, traits>&
            operator<<(basic_ostream<charT, traits>& os, const philox_engine& x); // hosted
        template<class charT, class traits>
          friend basic_istream<charT, traits>&
            operator>>(basic_istream<charT, traits>& is, philox_engine& x);       // hosted
      };
    }
    
Date: 2025-06-23.16:37:24

[ Sofia 2025-06-21; Status changed: Voting → WP. ]

Date: 2025-06-15.00:00:00

[ 2025-06-13; Reflector poll ]

Set status to Tentatively Ready after ten votes in favour during reflector poll.

Date: 2025-03-15.00:00:00

Philox engines don't seem to require floating-point operations or support from the operating system, so they are probably suitable for freestanding. However, as P2976R1 was finished before the adoption of P2075R6, these engines are not made freestanding yet.

History
Date User Action Args
2025-06-23 16:37:24adminsetmessages: + msg14854
2025-06-23 16:37:24adminsetstatus: voting -> wp
2025-06-13 11:44:36adminsetstatus: ready -> voting
2025-06-13 11:26:30adminsetmessages: + msg14823
2025-06-13 11:26:30adminsetstatus: new -> ready
2025-03-15 16:07:52adminsetmessages: + msg14682
2025-03-15 00:00:00admincreate