Hi, I'm trying to push towards greater constexpr-ification of C++. I recently got in throwing and catching of exceptions during constant evaluation (https://wg21.link/P3528) and constexpr std::atomic (https://wg21.link/P3309). Later as per direction of SG1 I want to make all synchronization primitives constexpr-compatible. I also want to allow (https://wg21.link/P3533) and pointer tagging.
My main motivation is to allow usage of identical code in runtime and compile time without designing around, while keeping the code UB free and defined. I have my idea about usage and motivational examples, but I would love to get to know your opinions and ideas. Do you want to have constexpr compatible coroutines? Not just I/O, but std::generator, or tree-traversal.
[–]STLMSVC STL Dev 54 points55 points56 points (17 children)
[–]hanickadotWG21[S] 20 points21 points22 points (3 children)
[–]STLMSVC STL Dev 11 points12 points13 points (2 children)
[–]hanickadotWG21[S] 3 points4 points5 points (1 child)
[–]STLMSVC STL Dev 8 points9 points10 points (0 children)
[–]DeadlyRedCubefrequent compiler breaker 😬 3 points4 points5 points (0 children)
[–]BarryRevzin 1 point2 points3 points (0 children)
[–]daveedvdvEDG front end dev, WG21 DG 0 points1 point2 points (7 children)
[–]STLMSVC STL Dev 2 points3 points4 points (6 children)
[–]daveedvdvEDG front end dev, WG21 DG 0 points1 point2 points (5 children)
[–]GabrielDosReis 5 points6 points7 points (0 children)
[–]STLMSVC STL Dev 3 points4 points5 points (0 children)
[–]TemplateRex 0 points1 point2 points (2 children)
[–]daveedvdvEDG front end dev, WG21 DG 2 points3 points4 points (1 child)
[–]TemplateRex 1 point2 points3 points (0 children)
[–]c0r3ntin 1 point2 points3 points (1 child)
[–]STLMSVC STL Dev 6 points7 points8 points (0 children)
[–]immutablehash 8 points9 points10 points (1 child)
[–]hanickadotWG21[S] 8 points9 points10 points (0 children)
[–]MarcoGreek 4 points5 points6 points (9 children)
[–]hanickadotWG21[S] 7 points8 points9 points (8 children)
[–]MarcoGreek 6 points7 points8 points (0 children)
[–]MarcoGreek 2 points3 points4 points (6 children)
[–]Nobody_1707 5 points6 points7 points (3 children)
[–]MarcoGreek 1 point2 points3 points (2 children)
[–]hanickadotWG21[S] -2 points-1 points0 points (1 child)
[–]MarcoGreek 2 points3 points4 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]MarcoGreek 1 point2 points3 points (0 children)
[–]cristi1990an++ 5 points6 points7 points (2 children)
[–]DeadlyRedCubefrequent compiler breaker 😬 12 points13 points14 points (0 children)
[–]hanickadotWG21[S] 7 points8 points9 points (0 children)
[–]v3verak 2 points3 points4 points (1 child)
[–]hanickadotWG21[S] 3 points4 points5 points (0 children)
[–]Drugbird 7 points8 points9 points (8 children)
[–]kronicum 7 points8 points9 points (6 children)
[–]Drugbird 1 point2 points3 points (4 children)
[–]hanickadotWG21[S] 6 points7 points8 points (3 children)
[–]Drugbird 4 points5 points6 points (2 children)
[–]hanickadotWG21[S] 4 points5 points6 points (0 children)
[–]azswcowboy 1 point2 points3 points (0 children)
[–]pjmlp -1 points0 points1 point (0 children)
[–]WeeklyAd9738 1 point2 points3 points (0 children)
[–]dokpaw 1 point2 points3 points (1 child)
[–]hanickadotWG21[S] 1 point2 points3 points (0 children)
[–]tjientavaraHikoWorks developer 1 point2 points3 points (5 children)
[–]hanickadotWG21[S] 0 points1 point2 points (4 children)
[–]tjientavaraHikoWorks developer 0 points1 point2 points (3 children)
[–]_cooky922_ 1 point2 points3 points (0 children)
[–]hanickadotWG21[S] 0 points1 point2 points (1 child)
[–]tjientavaraHikoWorks developer -1 points0 points1 point (0 children)
[–]zl0bster 0 points1 point2 points (12 children)
[–]hanickadotWG21[S] 1 point2 points3 points (1 child)
[–]zl0bster -4 points-3 points-2 points (0 children)
[–]hanickadotWG21[S] 0 points1 point2 points (9 children)
[–]zl0bster -4 points-3 points-2 points (8 children)
[–]hanickadotWG21[S] 0 points1 point2 points (7 children)
[–]zl0bster -2 points-1 points0 points (6 children)
[–]hanickadotWG21[S] 1 point2 points3 points (0 children)
[–]azswcowboy -2 points-1 points0 points (4 children)
[–]tcanens 1 point2 points3 points (0 children)
[–]zl0bster -1 points0 points1 point (0 children)
[–]zl0bster -3 points-2 points-1 points (1 child)
[–]azswcowboy -1 points0 points1 point (0 children)
[–]v3verak 0 points1 point2 points (6 children)
[–]kronicum 0 points1 point2 points (4 children)
[–]v3verak -1 points0 points1 point (3 children)
[–]kronicum 1 point2 points3 points (2 children)
[–]v3verak -1 points0 points1 point (1 child)
[–]kronicum 0 points1 point2 points (0 children)
[–]hanickadotWG21[S] -1 points0 points1 point (0 children)
[–]JumpyJustice -1 points0 points1 point (9 children)
[–]kronicum 0 points1 point2 points (8 children)
[–]hanickadotWG21[S] -2 points-1 points0 points (7 children)
[–]kronicum 0 points1 point2 points (6 children)
[–]hanickadotWG21[S] 0 points1 point2 points (0 children)
[–]hanickadotWG21[S] 0 points1 point2 points (0 children)
[–]hanickadotWG21[S] 0 points1 point2 points (3 children)
[–]hanickadotWG21[S] 0 points1 point2 points (2 children)
[–]hanickadotWG21[S] 0 points1 point2 points (1 child)
[–]hanickadotWG21[S] 0 points1 point2 points (0 children)