| Doc. no. |
D???? |
| Date: |
2026-01-16 |
| Project: |
Programming Language C++ |
| Reply to: |
Jonathan Wakely <[email protected]> |
C++ Standard Library Defect Reports and Accepted Issues (Revision D126)
Revised 2026-01-16 at 15:25:40 UTC
Reference ISO/IEC IS 14882:2024(E)
Also see:
This document contains only library issues which have been closed
by the Library Working Group (LWG) after being found to be defects
in the standard. That is, issues which have a status of DR,
TC1, C++11,
C++14, C++17,
or Resolved. See
the Library Closed Issues List for issues closed as non-defects. See
the Library Active Issues List for active issues and more information.
The introductory material in that document also applies to this document.
Revision History
- D126: 2025-10-30 Since October 2025
- Summary:
- 637 open issues, down by 91.
- 3335 closed issues, up by 163.
- 52 reassigned issues, down by 5.
- 4024 issues total, up by 67.
- Details:
- Added the following 2 Ready issues: 4472, 4486.
- Added the following 7 Tentatively Ready issues: 4457, 4460, 4467, 4468, 4477, 4480, 4481.
- Added the following 33 New issues: 4436, 4453, 4454, 4458, 4466, 4469, 4470, 4471, 4473, 4474, 4475, 4476, 4478, 4479, 4482, 4483, 4485, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502.
- Added the following 23 WP issues: 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4455, 4456, 4459, 4461, 4462, 4463, 4464, 4465.
- Added the following Resolved issue: 4437.
- Added the following NAD issue: 4484.
- Changed the following issue to Ready (from New): 2746.
- Changed the following 3 issues to Tentatively Ready (from New): 3831, 4259, 4324.
- Changed the following issue to Open (from New): 4339.
- Changed the following 2 issues to Open (from SG1): 2236, 3417.
- Changed the following 4 issues to WP (from Ready): 4137, 4243, 4315, 4423.
- Changed the following 57 issues to WP (from Tentatively Ready): 2991, 3090, 3627, 4020, 4136, 4166, 4253, 4255, 4256, 4257, 4265, 4266, 4269, 4274, 4275, 4276, 4280, 4286, 4291, 4292, 4293, 4294, 4297, 4299, 4300, 4301, 4305, 4312, 4317, 4318, 4328, 4340, 4341, 4342, 4343, 4345, 4346, 4349, 4351, 4366, 4370, 4372, 4375, 4377, 4382, 4384, 4398, 4399, 4403, 4407, 4412, 4413, 4415, 4416, 4422, 4425, 4426.
- Changed the following 24 issues to WP (from New): 4230, 4251, 4260, 4272, 4304, 4308, 4316, 4358, 4360, 4369, 4376, 4383, 4388, 4420, 4424, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435.
- Changed the following 3 issues to WP (from Open): 3343, 3454, 4015.
- Changed the following 2 issues to WP (from LEWG): 4302, 4396.
- Changed the following 15 issues to Resolved (from New): 2478, 2479, 2480, 2481, 2507, 3095, 3109, 3210, 3537, 3624, 3638, 4000, 4131, 4187, 4393.
- Changed the following 2 issues to Resolved (from Open): 3625, 4387.
- Changed the following 30 issues to NAD (from Tentatively NAD): 3908, 3909, 3958, 3980, 3981, 3982, 3992, 4003, 4006, 4009, 4050, 4095, 4163, 4171, 4184, 4194, 4219, 4228, 4229, 4244, 4246, 4271, 4309, 4321, 4337, 4362, 4363, 4371, 4391, 4404.
- Changed the following issue to NAD (from SG1): 4075.
- R125:
2025-10-30 Pre-Kona 2025
- Summary:
- 728 open issues, up by 298.
- 3172 closed issues, up by 172.
- 57 reassigned issues, up by 21.
- 3957 issues total, up by 491.
- Details:
- Added the following 4 Ready issues: 4137, 4243, 4315, 4423.
- Added the following 54 Tentatively Ready issues: 4020, 4136, 4166, 4253, 4255, 4256, 4257, 4265, 4266, 4269, 4274, 4275, 4276, 4280, 4286, 4291, 4292, 4293, 4294, 4297, 4299, 4300, 4301, 4305, 4312, 4317, 4318, 4328, 4340, 4341, 4342, 4343, 4345, 4346, 4349, 4351, 4366, 4370, 4372, 4375, 4377, 4382, 4384, 4398, 4399, 4403, 4407, 4412, 4413, 4415, 4416, 4422, 4425, 4426.
- Added the following 28 Tentatively NAD issues: 3958, 3980, 3981, 3982, 3992, 4003, 4006, 4009, 4050, 4095, 4163, 4171, 4184, 4194, 4219, 4228, 4229, 4244, 4246, 4271, 4309, 4321, 4337, 4362, 4363, 4371, 4391, 4404.
- Added the following 249 New issues: 3945, 3952, 3954, 3955, 3959, 3960, 3961, 3962, 3963, 3964, 3966, 3967, 3968, 3969, 3972, 3976, 3977, 3979, 3983, 3985, 3986, 3989, 3991, 3993, 3994, 3995, 3997, 3998, 3999, 4000, 4002, 4005, 4007, 4008, 4010, 4017, 4018, 4021, 4022, 4026, 4028, 4029, 4032, 4033, 4034, 4039, 4040, 4041, 4046, 4047, 4048, 4049, 4051, 4052, 4055, 4057, 4059, 4062, 4063, 4065, 4066, 4067, 4068, 4073, 4077, 4078, 4080, 4081, 4089, 4091, 4092, 4093, 4094, 4099, 4100, 4101, 4102, 4103, 4104, 4107, 4109, 4110, 4111, 4114, 4115, 4116, 4117, 4118, 4120, 4121, 4122, 4123, 4125, 4127, 4128, 4129, 4131, 4132, 4133, 4138, 4139, 4143, 4145, 4146, 4151, 4152, 4155, 4158, 4159, 4160, 4161, 4162, 4165, 4167, 4168, 4173, 4176, 4180, 4181, 4182, 4183, 4185, 4187, 4190, 4192, 4193, 4195, 4197, 4199, 4206, 4207, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4218, 4220, 4221, 4223, 4225, 4226, 4230, 4237, 4238, 4240, 4248, 4249, 4251, 4252, 4254, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4267, 4268, 4270, 4272, 4273, 4277, 4278, 4279, 4281, 4282, 4283, 4285, 4287, 4288, 4290, 4295, 4296, 4298, 4303, 4304, 4306, 4307, 4308, 4311, 4313, 4314, 4316, 4319, 4320, 4322, 4323, 4324, 4325, 4326, 4327, 4339, 4344, 4347, 4352, 4353, 4355, 4356, 4357, 4358, 4359, 4360, 4364, 4367, 4368, 4369, 4373, 4374, 4376, 4378, 4379, 4380, 4381, 4383, 4385, 4386, 4388, 4392, 4393, 4394, 4395, 4397, 4400, 4402, 4405, 4406, 4409, 4410, 4411, 4414, 4417, 4418, 4419, 4420, 4421, 4424, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435.
- Added the following 6 Open issues: 3988, 4015, 4070, 4090, 4130, 4387.
- Added the following 24 LEWG issues: 4058, 4097, 4241, 4250, 4284, 4289, 4302, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4338, 4348, 4350, 4361, 4365, 4390, 4396, 4401, 4408.
- Added the following Core issue: 4310.
- Added the following 5 SG1 issues: 4004, 4075, 4174, 4177, 4354.
- Added the following 3 SG9 issues: 4019, 4108, 4389.
- Added the following 2 SG16 issues: 4087, 4156.
- Added the following 105 WP issues: 3946, 3947, 3948, 3949, 3950, 3951, 3953, 3956, 3957, 3965, 3970, 3973, 3974, 3975, 3984, 3987, 3990, 4001, 4011, 4012, 4013, 4014, 4016, 4023, 4024, 4025, 4027, 4030, 4031, 4035, 4036, 4037, 4038, 4043, 4044, 4045, 4053, 4054, 4060, 4061, 4064, 4071, 4072, 4074, 4076, 4079, 4082, 4083, 4084, 4085, 4088, 4096, 4098, 4105, 4106, 4112, 4113, 4119, 4124, 4126, 4134, 4135, 4140, 4141, 4142, 4144, 4147, 4148, 4153, 4154, 4157, 4164, 4169, 4170, 4172, 4175, 4179, 4186, 4188, 4189, 4191, 4196, 4198, 4200, 4201, 4202, 4203, 4204, 4205, 4208, 4209, 4217, 4222, 4224, 4227, 4231, 4232, 4233, 4234, 4235, 4236, 4239, 4242, 4245, 4247.
- Added the following 5 Resolved issues: 3978, 4042, 4069, 4149, 4150.
- Added the following NAD Editorial issue: 4178.
- Added the following 4 NAD issues: 3971, 3996, 4056, 4086.
- Changed the following 2 issues to Tentatively Ready (from New): 3090, 3627.
- Changed the following issue to Tentatively Ready (from LEWG): 2991.
- Changed the following 4 issues to Open (from New): 2939, 3099, 3343, 3625.
- Changed the following issue to Open (from LEWG): 3454.
- Changed the following 2 issues to Open (from SG1): 2533, 3941.
- Changed the following 17 issues to WP (from Tentatively Ready): 2994, 3884, 3885, 3887, 3893, 3894, 3903, 3904, 3905, 3912, 3914, 3915, 3925, 3927, 3935, 3938, 3940.
- Changed the following 14 issues to WP (from New): 2392, 3203, 3216, 3431, 3436, 3578, 3749, 3809, 3886, 3892, 3897, 3899, 3900, 3919.
- Changed the following 2 issues to WP (from Open): 3305, 3767.
- Changed the following issue to WP (from LEWG): 3918.
- Changed the following issue to WP (from SG16): 3944.
- Changed the following 313 issues to C++23 (from WP): 2191, 2195, 2295, 2381, 2697, 2731, 2743, 2762, 2774, 2779, 2818, 2820, 2839, 2960, 2997, 3002, 3010, 3020, 3028, 3032, 3036, 3071, 3085, 3088, 3117, 3118, 3120, 3121, 3123, 3136, 3143, 3146, 3152, 3170, 3171, 3177, 3195, 3204, 3211, 3236, 3249, 3265, 3293, 3306, 3361, 3391, 3392, 3403, 3404, 3405, 3406, 3407, 3410, 3411, 3413, 3414, 3419, 3420, 3421, 3422, 3425, 3426, 3427, 3428, 3430, 3432, 3433, 3434, 3435, 3437, 3441, 3443, 3446, 3447, 3448, 3449, 3450, 3453, 3455, 3460, 3461, 3462, 3464, 3465, 3466, 3467, 3470, 3471, 3472, 3473, 3474, 3476, 3477, 3480, 3481, 3482, 3483, 3490, 3492, 3494, 3495, 3498, 3500, 3502, 3505, 3506, 3515, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3525, 3526, 3527, 3528, 3529, 3530, 3532, 3533, 3535, 3536, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3548, 3549, 3551, 3552, 3553, 3554, 3555, 3557, 3559, 3560, 3561, 3563, 3564, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3580, 3581, 3585, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3597, 3598, 3600, 3601, 3607, 3610, 3612, 3616, 3617, 3618, 3619, 3621, 3622, 3629, 3631, 3632, 3636, 3643, 3645, 3646, 3648, 3650, 3654, 3655, 3656, 3657, 3659, 3660, 3661, 3664, 3670, 3671, 3672, 3677, 3683, 3687, 3692, 3701, 3702, 3703, 3704, 3705, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3715, 3717, 3719, 3720, 3721, 3723, 3724, 3732, 3733, 3734, 3736, 3737, 3738, 3742, 3743, 3745, 3746, 3747, 3750, 3751, 3753, 3754, 3755, 3756, 3757, 3759, 3760, 3761, 3762, 3764, 3765, 3766, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3778, 3781, 3782, 3784, 3785, 3786, 3788, 3790, 3792, 3795, 3796, 3798, 3801, 3803, 3807, 3810, 3811, 3814, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3833, 3834, 3836, 3839, 3841, 3842, 3843, 3847, 3848, 3849, 3850, 3851, 3853, 3857, 3860, 3862, 3865, 3866, 3867, 3869, 3870, 3871, 3872, 3875, 3876, 3877, 3878, 3879, 3880, 3881.
- Changed the following 4 issues to Resolved (from New): 2933, 3064, 3508, 3861.
- Changed the following 3 issues to Resolved (from Open): 2088, 2524, 3003.
- Changed the following 3 issues to Resolved (from LEWG): 2095, 2922, 2985.
- Changed the following 6 issues to NAD (from Tentatively NAD): 2457, 3635, 3714, 3901, 3930, 3936.
- Changed the following issue to NAD (from New): 2413.
- Changed the following 3 issues to NAD (from LEWG): 532, 2885, 3776.
- Changed the following issue to NAD (from SG1): 3485.
- Changed the following issue to NAD (from SG9): 3913.
- R124:
2023-06-09 Pre-Varna
- Summary:
- 430 open issues, up by 25.
- 3000 closed issues, up by 92.
- 36 reassigned issues, down by 4.
- 3466 issues total, up by 113.
- Details:
- Added the following 16 Tentatively Ready issues: 3884, 3885, 3887, 3893, 3894, 3903, 3904, 3905, 3912, 3914, 3915, 3925, 3927, 3935, 3938, 3940.
- Added the following 5 Tentatively NAD issues: 3901, 3908, 3909, 3930, 3936.
- Added the following 52 New issues: 3832, 3835, 3837, 3838, 3845, 3846, 3852, 3854, 3855, 3856, 3861, 3863, 3864, 3873, 3882, 3883, 3886, 3888, 3889, 3890, 3891, 3892, 3895, 3896, 3897, 3898, 3899, 3900, 3902, 3906, 3907, 3910, 3911, 3916, 3917, 3919, 3920, 3921, 3922, 3923, 3924, 3926, 3928, 3929, 3931, 3932, 3933, 3934, 3937, 3939, 3942, 3943.
- Added the following 2 Open issues: 3840, 3844.
- Added the following 2 LEWG issues: 3868, 3918.
- Added the following SG1 issue: 3941.
- Added the following SG9 issue: 3913.
- Added the following SG16 issue: 3944.
- Added the following 30 WP issues: 3833, 3834, 3836, 3839, 3841, 3842, 3843, 3847, 3848, 3849, 3850, 3851, 3853, 3857, 3860, 3862, 3865, 3866, 3867, 3869, 3870, 3871, 3872, 3875, 3876, 3877, 3878, 3879, 3880, 3881.
- Added the following Resolved issue: 3859.
- Added the following 2 NAD issues: 3858, 3874.
- Changed the following issue to Tentatively Ready (from Open): 2994.
- Changed the following 2 issues to Tentatively NAD (from New): 2457, 3635.
- Changed the following issue to Tentatively NAD (from LEWG): 3714.
- Changed the following 2 issues to Open (from Tentatively NAD): 2116, 3357.
- Changed the following issue to Open (from New): 3507.
- Changed the following issue to Open (from SG16): 3767.
- Changed the following 12 issues to WP (from Ready): 2195, 2295, 3032, 3085, 3664, 3720, 3756, 3769, 3807, 3811, 3820, 3825.
- Changed the following issue to WP (from Tentatively Ready): 3819.
- Changed the following 10 issues to WP (from New): 3204, 3622, 3631, 3645, 3655, 3723, 3734, 3772, 3790, 3803.
- Changed the following 5 issues to WP (from Open): 3441, 3733, 3742, 3786, 3821.
- Changed the following 3 issues to WP (from LEWG): 3810, 3827, 3828.
- Changed the following 9 issues to Resolved (from New): 3223, 3234, 3412, 3673, 3676, 3700, 3718, 3787, 3791.
- Changed the following 2 issues to Resolved (from Open): 3442, 3698.
- Changed the following 4 issues to Resolved (from SG16): 3565, 3576, 3639, 3780.
- Changed the following 12 issues to NAD (from Tentatively NAD): 2432, 3726, 3727, 3735, 3739, 3740, 3741, 3752, 3768, 3779, 3789, 3800.
- Changed the following issue to NAD (from New): 3806.
- R123:
2022-11-24 Post-Kona
- Summary:
- 405 open issues, up by 50.
- 2908 closed issues, up by 100.
- 40 reassigned issues, up by 1.
- 3353 issues total, up by 151.
- Details:
- Added the following 7 Ready issues: 3720, 3756, 3769, 3807, 3811, 3820, 3825.
- Added the following Tentatively Ready issue: 3819.
- Added the following 11 Tentatively NAD issues: 3726, 3727, 3735, 3739, 3740, 3741, 3752, 3768, 3779, 3789, 3800.
- Added the following 51 New issues: 3681, 3682, 3684, 3685, 3686, 3688, 3689, 3690, 3691, 3693, 3694, 3696, 3697, 3699, 3700, 3706, 3716, 3718, 3722, 3723, 3725, 3728, 3729, 3730, 3731, 3734, 3744, 3748, 3749, 3758, 3763, 3772, 3783, 3787, 3790, 3791, 3793, 3794, 3797, 3799, 3802, 3803, 3804, 3805, 3806, 3809, 3812, 3813, 3829, 3830, 3831.
- Added the following 6 Open issues: 3698, 3733, 3742, 3777, 3786, 3821.
- Added the following 5 LEWG issues: 3714, 3776, 3810, 3827, 3828.
- Added the following 2 SG16 issues: 3767, 3780.
- Added the following 65 WP issues: 3683, 3687, 3692, 3701, 3702, 3703, 3704, 3705, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3715, 3717, 3719, 3721, 3724, 3732, 3736, 3737, 3738, 3743, 3745, 3746, 3747, 3750, 3751, 3753, 3754, 3755, 3757, 3759, 3760, 3761, 3762, 3764, 3765, 3766, 3770, 3771, 3773, 3774, 3775, 3778, 3781, 3782, 3784, 3785, 3788, 3792, 3795, 3796, 3798, 3801, 3814, 3816, 3817, 3818, 3822, 3823, 3824, 3826.
- Added the following Resolved issue: 3815.
- Added the following 2 NAD issues: 3695, 3808.
- Changed the following 3 issues to Ready (from New): 2295, 3032, 3664.
- Changed the following 2 issues to Ready (from Open): 2195, 3085.
- Changed the following 2 issues to Tentatively NAD (from Open): 2116, 3357.
- Changed the following issue to Tentatively NAD (from EWG): 2432.
- Changed the following issue to Open (from New): 3167.
- Changed the following issue to Open (from NAD): 617.
- Changed the following issue to LEWG (from New): 3679.
- Changed the following 3 issues to WP (from Tentatively Ready): 3670, 3671, 3672.
- Changed the following 13 issues to WP (from New): 3028, 3118, 3136, 3177, 3411, 3569, 3594, 3597, 3600, 3617, 3629, 3636, 3677.
- Changed the following 2 issues to WP (from Open): 3545, 3656.
- Changed the following 2 issues to WP (from LEWG): 3515, 3646.
- Changed the following issue to WP (from SG1): 3659.
- Changed the following issue to WP (from SG9): 3564.
- Changed the following 2 issues to Resolved (from New): 2561, 2564.
- Changed the following 2 issues to Resolved (from Open): 2114, 2349.
- Changed the following issue to Resolved (from EWG): 2813.
- Changed the following issue to TS (from Tentatively Ready): 3649.
- Changed the following 2 issues to NAD (from Tentatively NAD): 3579, 3667.
- Changed the following issue to NAD (from New): 2352.
- Changed the following issue to NAD (from Open): 3068.
- Changed the following issue to NAD (from SG1): 3611.
- R122:
2022-03-04 March 2022
- Summary:
- 355 open issues, up by 41.
- 2808 closed issues, up by 222.
- 39 reassigned issues, up by 4.
- 3202 issues total, up by 267.
- Details:
- Added the following 4 Tentatively Ready issues: 3649, 3670, 3671, 3672.
- Added the following 2 Tentatively NAD issues: 3579, 3667.
- Added the following 103 New issues: 3416, 3418, 3423, 3424, 3429, 3431, 3436, 3438, 3439, 3444, 3451, 3456, 3457, 3459, 3463, 3475, 3484, 3487, 3489, 3491, 3493, 3496, 3497, 3499, 3501, 3503, 3504, 3507, 3508, 3511, 3512, 3513, 3516, 3531, 3537, 3538, 3550, 3556, 3569, 3577, 3578, 3582, 3583, 3584, 3586, 3587, 3594, 3597, 3599, 3600, 3602, 3603, 3604, 3605, 3606, 3608, 3609, 3613, 3614, 3615, 3617, 3620, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3633, 3634, 3635, 3636, 3637, 3638, 3640, 3641, 3642, 3644, 3645, 3647, 3651, 3653, 3655, 3658, 3662, 3663, 3664, 3665, 3666, 3668, 3669, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680.
- Added the following 5 Open issues: 3441, 3442, 3488, 3545, 3656.
- Added the following 6 LEWG issues: 3445, 3454, 3486, 3515, 3534, 3646.
- Added the following 4 SG1 issues: 3417, 3485, 3611, 3659.
- Added the following SG9 issue: 3564.
- Added the following 3 SG16 issues: 3565, 3576, 3639.
- Added the following 120 WP issues: 3414, 3419, 3420, 3421, 3422, 3425, 3426, 3427, 3428, 3430, 3432, 3433, 3434, 3435, 3437, 3443, 3446, 3447, 3448, 3449, 3450, 3453, 3455, 3460, 3461, 3462, 3464, 3465, 3466, 3467, 3470, 3471, 3472, 3473, 3474, 3476, 3477, 3480, 3481, 3482, 3483, 3490, 3492, 3494, 3495, 3498, 3500, 3502, 3505, 3506, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3525, 3526, 3527, 3528, 3529, 3530, 3532, 3533, 3535, 3536, 3539, 3540, 3541, 3542, 3543, 3544, 3546, 3548, 3549, 3551, 3552, 3553, 3554, 3555, 3557, 3559, 3560, 3561, 3563, 3566, 3567, 3568, 3570, 3571, 3572, 3573, 3574, 3580, 3581, 3585, 3589, 3590, 3591, 3592, 3593, 3595, 3598, 3601, 3607, 3610, 3612, 3616, 3618, 3619, 3621, 3632, 3643, 3648, 3650, 3654, 3657, 3660, 3661.
- Added the following 11 Resolved issues: 3452, 3458, 3469, 3478, 3479, 3509, 3510, 3514, 3524, 3547, 3575.
- Added the following NAD Editorial issue: 3558.
- Added the following 7 NAD issues: 3415, 3440, 3468, 3562, 3588, 3596, 3652.
- Changed the following 2 issues to Open (from LEWG): 3068, 3357.
- Changed the following issue to Open (from NAD): 1102.
- Changed the following issue to NAD Future (from LEWG): 1025.
- Changed the following 4 issues to WP (from Ready): 3117, 3211, 3236, 3249.
- Changed the following issue to WP (from Tentatively Ready): 2820.
- Changed the following 22 issues to WP (from New): 2191, 2743, 2774, 2997, 3088, 3123, 3143, 3146, 3152, 3195, 3265, 3293, 3306, 3361, 3391, 3403, 3404, 3405, 3406, 3407, 3410, 3413.
- Changed the following 10 issues to WP (from Open): 2381, 2731, 2762, 2818, 2839, 3036, 3120, 3121, 3170, 3171.
- Changed the following issue to WP (from LEWG): 3392.
- Changed the following 2 issues to C++20 (from New): 3290, 3386.
- Changed the following 280 issues to C++20 (from WP): 1203, 2139, 2164, 2183, 2184, 2243, 2412, 2444, 2593, 2597, 2682, 2783, 2816, 2843, 2849, 2851, 2859, 2870, 2899, 2932, 2935, 2936, 2937, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2948, 2950, 2952, 2953, 2954, 2958, 2961, 2964, 2965, 2966, 2969, 2970, 2972, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2988, 2989, 2993, 2995, 2996, 2998, 3000, 3001, 3004, 3005, 3007, 3008, 3009, 3012, 3013, 3014, 3015, 3017, 3018, 3024, 3025, 3026, 3030, 3031, 3034, 3035, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3045, 3048, 3050, 3051, 3054, 3055, 3058, 3062, 3065, 3067, 3070, 3074, 3075, 3076, 3077, 3079, 3080, 3083, 3087, 3094, 3096, 3100, 3101, 3102, 3103, 3104, 3112, 3116, 3119, 3122, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3137, 3140, 3141, 3144, 3145, 3147, 3148, 3149, 3150, 3153, 3154, 3158, 3160, 3169, 3173, 3175, 3179, 3180, 3182, 3183, 3184, 3185, 3186, 3187, 3190, 3191, 3194, 3196, 3198, 3199, 3200, 3201, 3202, 3206, 3208, 3209, 3218, 3221, 3222, 3224, 3225, 3226, 3230, 3231, 3232, 3233, 3235, 3237, 3238, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3259, 3260, 3262, 3264, 3266, 3269, 3270, 3272, 3273, 3274, 3276, 3277, 3280, 3281, 3282, 3284, 3285, 3286, 3291, 3292, 3294, 3296, 3299, 3300, 3301, 3302, 3303, 3304, 3307, 3310, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3334, 3335, 3338, 3340, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3354, 3355, 3356, 3358, 3359, 3360, 3362, 3363, 3364, 3367, 3369, 3371, 3372, 3373, 3374, 3375, 3377, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3387, 3388, 3389, 3390, 3393, 3395, 3396, 3397, 3398.
- Changed the following issue to Resolved (from Tentatively Ready): 3368.
- Changed the following 16 issues to Resolved (from New): 2154, 2375, 3006, 3110, 3135, 3156, 3212, 3213, 3258, 3278, 3283, 3289, 3345, 3366, 3376, 3408.
- Changed the following 4 issues to Resolved (from Open): 2363, 2741, 3155, 3168.
- Changed the following 5 issues to Resolved (from LEWG): 2690, 2814, 2825, 3052, 3228.
- Changed the following 10 issues to Resolved (from Tentatively Resolved): 2155, 2292, 2498, 2808, 2832, 2999, 3125, 3151, 3178, 3322.
- Changed the following 5 issues to NAD (from Tentatively NAD): 2335, 3207, 3365, 3394, 3399.
- Changed the following issue to NAD (from Open): 1396.
- Changed the following issue to NAD (from LEWG): 3165.
- R121:
2020-03-02 post-Prague mailing
- Summary:
- 314 open issues, down by 66.
- 2586 closed issues, up by 114.
- 35 reassigned issues, up by 0.
- 2935 issues total, up by 48.
- Details:
- Added the following Tentatively Ready issue: 3368.
- Added the following 2 Tentatively NAD issues: 3394, 3399.
- Added the following 20 New issues: 3366, 3370, 3376, 3378, 3386, 3391, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413.
- Added the following LEWG issue: 3392.
- Added the following 24 WP issues: 3367, 3369, 3371, 3372, 3373, 3374, 3375, 3377, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3387, 3388, 3389, 3390, 3393, 3395, 3396, 3397, 3398.
- Changed the following 4 issues to Ready (from New): 3117, 3211, 3236, 3249.
- Changed the following issue to Tentatively Ready (from Open): 2820.
- Changed the following 2 issues to Tentatively NAD (from New): 2335, 3365.
- Changed the following 2 issues to Open (from New): 2844, 3305.
- Changed the following 2 issues to Tentatively Resolved (from New): 2498, 3151.
- Changed the following issue to Tentatively Resolved (from Open): 3125.
- Changed the following 25 issues to WP (from Ready): 3264, 3280, 3281, 3292, 3302, 3303, 3304, 3307, 3310, 3313, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3323, 3324, 3325, 3326, 3327, 3329, 3330, 3331.
- Changed the following 19 issues to WP (from Tentatively Ready): 3194, 3233, 3254, 3284, 3285, 3286, 3291, 3294, 3296, 3299, 3300, 3332, 3338, 3346, 3349, 3350, 3351, 3356, 3360.
- Changed the following 36 issues to WP (from New): 3018, 3141, 3150, 3175, 3200, 3201, 3226, 3237, 3238, 3242, 3243, 3247, 3248, 3250, 3251, 3252, 3255, 3260, 3262, 3269, 3270, 3301, 3314, 3328, 3334, 3335, 3340, 3347, 3348, 3352, 3355, 3358, 3359, 3362, 3363, 3364.
- Changed the following 4 issues to WP (from Open): 1203, 2859, 3050, 3282.
- Changed the following issue to WP (from LEWG): 3354.
- Changed the following issue to Resolved (from New): 3336.
- Changed the following 3 issues to NAD (from New): 3271, 3298, 3333.
- Changed the following issue to NAD (from Open): 2860.
- R120:
2020-01-13 pre-Prague mailing
- Summary:
- 380 open issues, up by 4.
- 2472 closed issues, up by 7.
- 35 reassigned issues, up by 0.
- 2887 issues total, up by 11.
- Details:
- Added the following 2 Tentatively Ready issues: 3356, 3360.
- Added the following 8 New issues: 3355, 3358, 3359, 3361, 3362, 3363, 3364, 3365.
- Added the following LEWG issue: 3357.
- Changed the following 2 issues to Ready (from New): 3280, 3292.
- Changed the following issue to Ready (from LEWG): 3304.
- Changed the following 5 issues to Tentatively Ready (from New): 3194, 3254, 3349, 3350, 3351.
- Changed the following issue to LEWG (from New): 3354.
- Changed the following issue to Tentatively Resolved (from Ready): 3322.
- Changed the following 3 issues to Resolved (from New): 2957, 3023, 3176.
- Changed the following 3 issues to Resolved (from Open): 2894, 3061, 3295.
- Changed the following issue to Resolved (from EWG): 2089.
- R119:
2019-12-09 post-Belfast mailing
- Summary:
- 376 open issues, up by 25.
- 2465 closed issues, up by 32.
- 35 reassigned issues, down by 1.
- 2876 issues total, up by 56.
- Details:
- Added the following 21 Ready issues: 3302, 3303, 3307, 3310, 3313, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3329, 3330, 3331.
- Added the following 5 Tentatively Ready issues: 3299, 3300, 3332, 3338, 3346.
- Added the following 27 New issues: 3301, 3305, 3306, 3308, 3309, 3314, 3328, 3333, 3334, 3335, 3336, 3337, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354.
- Added the following LEWG issue: 3304.
- Added the following 2 Dup issues: 3311, 3312.
- Changed the following issue to Ready (from New): 3264.
- Changed the following issue to Ready (from LEWG): 3281.
- Changed the following 7 issues to Tentatively Ready (from New): 3233, 3284, 3285, 3286, 3291, 3294, 3296.
- Changed the following issue to Open (from New): 3295.
- Changed the following issue to Open (from LEWG): 3282.
- Changed the following issue to LEWG (from New): 3228.
- Changed the following 4 issues to WP (from Ready): 3070, 3103, 3149, 3190.
- Changed the following 23 issues to WP (from Tentatively Ready): 3218, 3221, 3222, 3224, 3225, 3230, 3231, 3232, 3235, 3241, 3244, 3245, 3246, 3253, 3256, 3257, 3259, 3266, 3272, 3273, 3274, 3276, 3277.
- Changed the following 2 issues to Resolved (from New): 3239, 3279.
- Changed the following issue to Resolved (from SG1): 2334.
- R118:
2019-10-06 pre-Belfast mailing
- Summary:
- 351 open issues, up by 48.
- 2433 closed issues, up by 0.
- 36 reassigned issues, up by 2.
- 2820 issues total, up by 50.
- Details:
- Added the following 10 Tentatively Ready issues: 3253, 3256, 3257, 3259, 3266, 3272, 3273, 3274, 3276, 3277.
- Added the following 38 New issues: 3249, 3250, 3251, 3252, 3254, 3255, 3258, 3260, 3261, 3262, 3263, 3264, 3265, 3267, 3268, 3269, 3270, 3271, 3275, 3278, 3279, 3280, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298.
- Added the following 2 LEWG issues: 3281, 3282.
- Changed the following 5 issues to Tentatively Ready (from New): 3235, 3241, 3244, 3245, 3246.
- R117:
2019-08-05 post-Cologne mailing
- Summary:
- 303 open issues, up by 8.
- 2433 closed issues, up by 20.
- 34 reassigned issues, down by 1.
- 2770 issues total, up by 27.
- Details:
- Added the following 6 Tentatively Ready issues: 3222, 3224, 3225, 3230, 3231, 3232.
- Added the following 21 New issues: 3223, 3226, 3227, 3228, 3229, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248.
- Changed the following 2 issues to Ready (from New): 3070, 3190.
- Changed the following 2 issues to Ready (from Open): 3103, 3149.
- Changed the following 2 issues to Tentatively Ready (from New): 3218, 3221.
- Changed the following 2 issues to Open (from New): 2818, 3170.
- Changed the following 6 issues to WP (from Ready): 2899, 3055, 3158, 3169, 3186, 3187.
- Changed the following 11 issues to WP (from Tentatively Ready): 3183, 3184, 3185, 3191, 3196, 3198, 3199, 3202, 3206, 3208, 3209.
- Changed the following issue to Resolved (from New): 3091.
- Changed the following issue to NAD (from New): 3139.
- Changed the following issue to NAD (from LEWG): 3138.
- R116:
2019-06-17 pre-Cologne mailing
- Summary:
- 295 open issues, up by 25.
- 2413 closed issues, up by 0.
- 35 reassigned issues, up by 0.
- 2743 issues total, up by 25.
- Details:
- Added the following 6 Tentatively Ready issues: 3198, 3199, 3202, 3206, 3208, 3209.
- Added the following Tentatively NAD issue: 3207.
- Added the following 18 New issues: 3197, 3200, 3201, 3203, 3204, 3205, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221.
- Changed the following 2 issues to Tentatively Ready (from New): 3191, 3196.
- R115:
2019-04-02 post-Kona mailing
- Summary:
- 270 open issues, down by 19.
- 2413 closed issues, up by 31.
- 35 reassigned issues, up by 0.
- 2718 issues total, up by 12.
- Details:
- Added the following 2 Ready issues: 3186, 3187.
- Added the following Tentatively Ready issue: 3185.
- Added the following 9 New issues: 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196.
- Changed the following 3 issues to Ready (from New): 3055, 3158, 3169.
- Changed the following issue to Ready (from Open): 2899.
- Changed the following 2 issues to Tentatively Ready (from New): 3183, 3184.
- Changed the following 4 issues to Open (from New): 3036, 3161, 3168, 3171.
- Changed the following 5 issues to Tentatively Resolved (from New): 2292, 2808, 2832, 2999, 3178.
- Changed the following issue to Tentatively Resolved (from Open): 2155.
- Changed the following 2 issues to WP (from Ready): 3012, 3119.
- Changed the following 11 issues to WP (from Tentatively Ready): 3040, 3077, 3087, 3101, 3112, 3133, 3144, 3173, 3179, 3180, 3182.
- Changed the following 2 issues to Resolved (from New): 2951, 3113.
- Changed the following 16 issues to NAD (from Tentatively NAD): 708, 935, 1121, 1154, 1188, 1217, 1235, 1282, 1289, 1317, 1406, 1499, 2226, 2417, 2600, 3106.
- R114:
2019-01-21 pre-Kona mailing
- Summary:
- 289 open issues, up by 14.
- 2382 closed issues, up by 1.
- 35 reassigned issues, up by 0.
- 2706 issues total, up by 15.
- Details:
- Added the following 4 Tentatively Ready issues: 3173, 3179, 3180, 3182.
- Added the following 10 New issues: 3170, 3171, 3172, 3174, 3175, 3176, 3177, 3178, 3183, 3184.
- Added the following NAD issue: 3181.
- Changed the following 4 issues to Tentatively Ready (from New): 3077, 3112, 3133, 3144.
- R113:
2018-11-26 post-San Diego mailing
- Summary:
- 275 open issues, down by 45.
- 2381 closed issues, up by 52.
- 35 reassigned issues, up by 0.
- 2691 issues total, up by 7.
- Details:
- Added the following 4 New issues: 3166, 3167, 3168, 3169.
- Added the following LEWG issue: 3165.
- Added the following 2 NAD issues: 3163, 3164.
- Changed the following issue to Ready (from New): 3119.
- Changed the following issue to Ready (from Open): 3012.
- Changed the following issue to Tentatively Ready (from New): 3087.
- Changed the following issue to Tentatively Ready (from Open): 3040.
- Changed the following issue to Tentatively Ready (from LEWG): 3101.
- Changed the following 7 issues to Open (from New): 2962, 2994, 3057, 3061, 3103, 3121, 3149.
- Changed the following 2 issues to Open (from Core): 2859, 2860.
- Changed the following issue to LEWG (from New): 3138.
- Changed the following issue to LEWG (from Open): 2307.
- Changed the following 10 issues to WP (from Ready): 2183, 2184, 2412, 2682, 2697, 2936, 2995, 2996, 3054, 3116.
- Changed the following 24 issues to WP (from Tentatively Ready): 2943, 2960, 3008, 3025, 3031, 3037, 3038, 3065, 3096, 3122, 3127, 3128, 3129, 3130, 3131, 3132, 3137, 3140, 3145, 3147, 3148, 3153, 3154, 3160.
- Changed the following issue to Resolved (from Tentatively Ready): 3134.
- Changed the following 6 issues to Resolved (from New): 2318, 2836, 2841, 2929, 3022, 3115.
- Changed the following 6 issues to Resolved (from Open): 1052, 2151, 2499, 2780, 2797, 3111.
- Changed the following 2 issues to NAD (from New): 2563, 3016.
- Changed the following issue to NAD (from Open): 1242.
- R112:
2018-10-08 pre-San Diego mailing
- Summary:
- 320 open issues, up by 36.
- 2329 closed issues, up by 3.
- 35 reassigned issues, up by 0.
- 2684 issues total, up by 39.
- Details:
- Added the following 15 Tentatively Ready issues: 3127, 3128, 3129, 3130, 3131, 3132, 3134, 3137, 3140, 3145, 3147, 3148, 3153, 3154, 3160.
- Added the following 22 New issues: 3124, 3126, 3133, 3135, 3136, 3138, 3139, 3141, 3142, 3143, 3144, 3146, 3149, 3150, 3151, 3152, 3156, 3157, 3158, 3159, 3161, 3162.
- Added the following 2 Open issues: 3125, 3155.
- Changed the following 6 issues to Tentatively Ready (from New): 2960, 3025, 3031, 3037, 3065, 3096.
- Changed the following 3 issues to Tentatively Ready (from Open): 2943, 3008, 3038.
- Changed the following issue to Tentatively NAD (from New): 3106.
- Changed the following 5 issues to Open (from New): 2220, 3081, 3085, 3092, 3120.
- Changed the following issue to EWG (from Open): 2813.
- Changed the following issue to Resolved (from Tentatively NAD): 1150.
- Changed the following issue to Resolved (from Open): 2840.
- Changed the following issue to Resolved (from LEWG): 1201.
- R111:
2018-06-25 post-Rapperswil mailing
- Summary:
- 284 open issues, up by 15.
- 2326 closed issues, up by 25.
- 35 reassigned issues, down by 26.
- 2645 issues total, up by 14.
- Details:
- Added the following Ready issue: 3116.
- Added the following Tentatively Ready issue: 3122.
- Added the following 10 New issues: 3110, 3112, 3113, 3115, 3117, 3118, 3119, 3120, 3121, 3123.
- Added the following Open issue: 3111.
- Added the following LEWG issue: 3114.
- Changed the following 4 issues to Ready (from Review): 2412, 2682, 2697, 2936.
- Changed the following 4 issues to Ready (from New): 2183, 2184, 2995, 3054.
- Changed the following issue to Ready (from LEWG): 2996.
- Changed the following 16 issues to Tentatively NAD (from LEWG): 708, 935, 1121, 1150, 1154, 1188, 1217, 1235, 1282, 1289, 1317, 1406, 1499, 2226, 2417, 2600.
- Changed the following issue to Open (from Review): 2708.
- Changed the following 7 issues to Open (from New): 2173, 2286, 2829, 3008, 3038, 3050, 3082.
- Changed the following 11 issues to Open (from LEWG): 423, 523, 1052, 1203, 1238, 1242, 1396, 1521, 2471, 2762, 2780.
- Changed the following 3 issues to LEWG (from New): 3052, 3068, 3101.
- Changed the following 3 issues to WP (from Ready): 2139, 3058, 3076.
- Changed the following 12 issues to WP (from Tentatively Ready): 2970, 3062, 3067, 3071, 3074, 3079, 3080, 3083, 3094, 3100, 3102, 3104.
- Changed the following 4 issues to Resolved (from New): 2511, 2693, 2776, 2938.
- Changed the following 2 issues to Resolved (from Open): 2800, 2897.
- Changed the following 2 issues to Resolved (from LEWG): 2040, 2419.
- Changed the following 2 issues to NAD (from New): 2121, 2892.
- R110:
2018-05-07 pre-Rapperswil mailing
- Summary:
- 269 open issues, up by 17.
- 2301 closed issues, up by 0.
- 61 reassigned issues, up by 0.
- 2631 issues total, up by 17.
- Details:
- Added the following 4 Tentatively Ready issues: 3094, 3100, 3102, 3104.
- Added the following 13 New issues: 3093, 3095, 3096, 3097, 3098, 3099, 3101, 3103, 3105, 3106, 3107, 3108, 3109.
- No issues changed.
- R109:
2018-04-02 post-Jacksonville mailing
- Summary:
- 252 open issues, down by 5.
- 2301 closed issues, up by 36.
- 61 reassigned issues, down by 1.
- 2614 issues total, up by 30.
- Details:
- Added the following Ready issue: 3076.
- Added the following 6 Tentatively Ready issues: 3067, 3071, 3074, 3079, 3080, 3083.
- Added the following 22 New issues: 3063, 3064, 3065, 3066, 3068, 3069, 3070, 3072, 3073, 3077, 3078, 3081, 3082, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092.
- Added the following WP issue: 3075.
- Changed the following issue to Ready (from New): 3058.
- Changed the following issue to Ready (from Open): 2139.
- Changed the following 2 issues to Tentatively Ready (from New): 2970, 3062.
- Changed the following 2 issues to Open (from New): 2823, 3049.
- Changed the following issue to SG1 (from New): 2506.
- Changed the following 5 issues to WP (from Ready): 2843, 2969, 2975, 3014, 3030.
- Changed the following 27 issues to WP (from Tentatively Ready): 2164, 2243, 2816, 2849, 2851, 2989, 3000, 3002, 3004, 3005, 3007, 3009, 3010, 3013, 3015, 3017, 3020, 3026, 3034, 3035, 3039, 3041, 3042, 3043, 3045, 3048, 3051.
- Changed the following issue to WP (from New): 2946.
- Changed the following 2 issues to Resolved (from LEWG): 2831, 2968.
- R108:
2018-02-12 pre-Jacksonville mailing
- Summary:
- 257 open issues, up by 16.
- 2265 closed issues, up by 7.
- 62 reassigned issues, up by 0.
- 2584 issues total, up by 23.
- Details:
- Added the following 6 Tentatively Ready issues: 3041, 3042, 3043, 3045, 3048, 3051.
- Added the following 16 New issues: 3044, 3046, 3047, 3049, 3050, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062.
- Added the following Open issue: 3040.
- Changed the following 6 issues to Tentatively Ready (from New): 2243, 2816, 2849, 2851, 2989, 3015.
- Changed the following issue to Tentatively Ready (from Open): 2164.
- Changed the following 3 issues to Review (from Open): 2682, 2708, 2936.
- Changed the following 4 issues to Open (from New): 2839, 2840, 2990, 3003.
- Changed the following 2 issues to C++17 (from Open): 2569, 2587.
- Changed the following 3 issues to Resolved (from New): 2734, 2821, 2856.
- Changed the following issue to Resolved (from Open): 2055.
- Changed the following issue to NAD (from New): 2772.
- R107:
2017-11-28 2017 post-Albuquerque mailing
- Summary:
- 241 open issues, down by 16.
- 2258 closed issues, up by 29.
- 62 reassigned issues, up by 0.
- 2561 issues total, up by 13.
- Details:
- Added the following Ready issue: 3030.
- Added the following 3 Tentatively Ready issues: 3034, 3035, 3039.
- Added the following 7 New issues: 3027, 3028, 3031, 3032, 3036, 3037, 3038.
- Added the following Open issue: 3029.
- Added the following NAD Editorial issue: 3033.
- Changed the following 4 issues to Ready (from New): 2843, 2969, 2975, 3014.
- Changed the following 11 issues to Tentatively Ready (from New): 3000, 3002, 3004, 3005, 3007, 3009, 3010, 3013, 3017, 3020, 3026.
- Changed the following 6 issues to Open (from New): 2800, 2833, 2897, 2943, 3011, 3012.
- Changed the following 23 issues to WP (from Ready): 2779, 2870, 2935, 2941, 2944, 2945, 2948, 2950, 2952, 2953, 2964, 2965, 2972, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2988, 2993, 2998.
- Changed the following 2 issues to WP (from Tentatively Ready): 3001, 3024.
- Changed the following issue to WP (from New): 2958.
- Changed the following 2 issues to Resolved (from New): 2541, 2799.
- R106:
2017-10-16 2017 pre-Albuquerque mailing
- Summary:
- 257 open issues, up by 22.
- 2229 closed issues, up by 0.
- 62 reassigned issues, up by 0.
- 2548 issues total, up by 22.
- Details:
- Added the following Tentatively Ready issue: 3024.
- Added the following 21 New issues: 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3025, 3026.
- No issues changed.
- R105:
2017-07-30 2017 post-Toronto mailing
- Summary:
- 235 open issues, down by 22.
- 2229 closed issues, up by 36.
- 62 reassigned issues, up by 8.
- 2526 issues total, up by 22.
- Details:
- Added the following 3 Ready issues: 2988, 2993, 2998.
- Added the following Tentatively Ready issue: 3001.
- Added the following 14 New issues: 2983, 2984, 2986, 2987, 2989, 2990, 2994, 2995, 2997, 2999, 3000, 3002, 3003, 3004.
- Added the following 3 LEWG issues: 2985, 2991, 2996.
- Added the following NAD issue: 2992.
- Changed the following 19 issues to Ready (from New): 2870, 2935, 2941, 2944, 2945, 2948, 2950, 2952, 2953, 2964, 2965, 2972, 2976, 2977, 2978, 2979, 2980, 2981, 2982.
- Changed the following issue to Ready (from LEWG): 2779.
- Changed the following 6 issues to Open (from New): 2731, 2741, 2813, 2820, 2899, 2936.
- Changed the following 6 issues to LEWG (from New): 2883, 2884, 2885, 2922, 2968, 2973.
- Changed the following issue to WP (from Ready): 2932.
- Changed the following 11 issues to WP (from Tentatively Ready): 2444, 2593, 2597, 2783, 2937, 2940, 2942, 2954, 2961, 2966, 2974.
- Changed the following 2 issues to C++17 (from New): 2901, 2956.
- Changed the following 279 issues to C++17 (from WP): 1169, 2016, 2059, 2062, 2063, 2072, 2076, 2101, 2106, 2111, 2119, 2127, 2129, 2133, 2156, 2160, 2166, 2168, 2170, 2181, 2192, 2212, 2217, 2218, 2219, 2221, 2223, 2224, 2230, 2233, 2234, 2239, 2244, 2250, 2259, 2260, 2261, 2266, 2273, 2276, 2296, 2309, 2310, 2312, 2325, 2328, 2336, 2340, 2353, 2354, 2361, 2364, 2365, 2367, 2369, 2376, 2377, 2378, 2380, 2384, 2385, 2387, 2393, 2394, 2396, 2399, 2400, 2401, 2403, 2404, 2406, 2407, 2408, 2411, 2415, 2420, 2422, 2425, 2426, 2427, 2428, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2447, 2448, 2450, 2454, 2455, 2458, 2459, 2460, 2462, 2464, 2466, 2467, 2468, 2469, 2470, 2473, 2475, 2476, 2477, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2492, 2495, 2503, 2510, 2514, 2519, 2520, 2523, 2531, 2534, 2536, 2537, 2540, 2542, 2544, 2545, 2549, 2550, 2556, 2557, 2559, 2560, 2562, 2565, 2566, 2567, 2571, 2572, 2576, 2577, 2578, 2579, 2581, 2582, 2583, 2584, 2585, 2586, 2589, 2590, 2591, 2596, 2598, 2664, 2667, 2669, 2670, 2671, 2672, 2673, 2674, 2676, 2678, 2679, 2680, 2681, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2694, 2696, 2698, 2699, 2704, 2706, 2707, 2709, 2710, 2711, 2712, 2716, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2732, 2735, 2736, 2738, 2739, 2740, 2742, 2744, 2747, 2748, 2749, 2752, 2755, 2756, 2758, 2759, 2760, 2765, 2767, 2768, 2769, 2770, 2771, 2773, 2777, 2778, 2781, 2782, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2793, 2794, 2795, 2796, 2801, 2802, 2804, 2806, 2807, 2812, 2824, 2826, 2834, 2835, 2837, 2838, 2842, 2850, 2853, 2855, 2857, 2861, 2866, 2868, 2872, 2873, 2874, 2875, 2876, 2878, 2890, 2900, 2903, 2904, 2905, 2908, 2911, 2921, 2934.
- Changed the following 2 issues to Resolved (from New): 2880, 2955.
- Changed the following 3 issues to Resolved (from Open): 2070, 2368, 2665.
- Changed the following issue to Resolved (from Pending Resolved): 2798.
- Changed the following 4 issues to NAD (from Tentatively NAD): 760, 2337, 2692, 2717.
- Changed the following 11 issues to NAD (from New): 2852, 2871, 2886, 2891, 2893, 2902, 2907, 2909, 2916, 2967, 2971.
- Changed the following issue to Dup (from New): 2910.
- Changed the following 77 issues to TS (from WP): 2371, 2374, 2389, 2390, 2395, 2409, 2410, 2418, 2451, 2463, 2494, 2500, 2509, 2515, 2516, 2517, 2518, 2521, 2522, 2525, 2526, 2527, 2539, 2551, 2555, 2558, 2568, 2570, 2573, 2574, 2575, 2588, 2601, 2602, 2603, 2605, 2606, 2607, 2608, 2609, 2614, 2615, 2616, 2618, 2619, 2621, 2622, 2624, 2625, 2627, 2629, 2632, 2633, 2634, 2635, 2636, 2637, 2640, 2641, 2644, 2645, 2647, 2648, 2649, 2650, 2652, 2653, 2655, 2656, 2657, 2658, 2660, 2662, 2733, 2745, 2750, 2792.
- R104:
2017-06-18 2017 pre-Toronto mailing
- Summary:
- 257 open issues, up by 38.
- 2193 closed issues, up by 17.
- 54 reassigned issues, down by 19.
- 2504 issues total, up by 36.
- Details:
- Added the following 4 Tentatively Ready issues: 2954, 2961, 2966, 2974.
- Added the following 32 New issues: 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2955, 2956, 2957, 2958, 2959, 2960, 2962, 2963, 2964, 2965, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982.
- Changed the following 2 issues to Tentatively Ready (from New): 2940, 2942.
- Changed the following issue to Tentatively Ready (from LEWG): 2593.
- Changed the following issue to Open (from New): 2797.
- Changed the following 3 issues to Open (from LEWG): 484, 1422, 2055.
- Changed the following issue to Pending Resolved (from Open): 2798.
- Changed the following issue to Resolved (from LEWG): 2232.
- Changed the following issue to NAD (from New): 2898.
- Changed the following 14 issues to NAD (from LEWG): 255, 851, 877, 933, 1031, 1053, 1112, 1120, 1184, 1320, 2242, 2430, 2446, 2854.
- R103:
2017-03-20 2017 post-Kona mailing
- Summary:
- 219 open issues, down by 86.
- 2176 closed issues, up by 104.
- 73 reassigned issues, up by 0.
- 2468 issues total, up by 18.
- Details:
- Added the following Ready issue: 2932.
- Added the following Tentatively Ready issue: 2937.
- Added the following 13 New issues: 2929, 2933, 2935, 2936, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946.
- Added the following Open issue: 2931.
- Added the following WP issue: 2934.
- Added the following NAD issue: 2930.
- Changed the following issue to Tentatively Ready (from New): 2783.
- Changed the following 2 issues to Tentatively Ready (from Open): 2444, 2597.
- Changed the following issue to Review (from SG1): 2412.
- Changed the following issue to Open (from New): 2894.
- Changed the following 2 issues to Core (from New): 2859, 2860.
- Changed the following 6 issues to WP (from Ready): 2781, 2782, 2784, 2785, 2786, 2787.
- Changed the following 18 issues to WP (from Tentatively Ready): 2260, 2768, 2769, 2789, 2794, 2795, 2804, 2812, 2824, 2826, 2834, 2835, 2837, 2838, 2842, 2850, 2853, 2855.
- Changed the following 3 issues to WP (from Review): 2676, 2790, 2796.
- Changed the following 22 issues to WP (from New): 2788, 2801, 2802, 2806, 2807, 2861, 2866, 2868, 2872, 2873, 2874, 2875, 2876, 2878, 2890, 2900, 2903, 2904, 2905, 2908, 2911, 2921.
- Changed the following issue to WP (from LEWG): 2857.
- Changed the following issue to Resolved (from Review): 2245.
- Changed the following 27 issues to Resolved (from New): 2715, 2803, 2862, 2863, 2864, 2867, 2869, 2877, 2879, 2882, 2887, 2888, 2889, 2895, 2912, 2913, 2914, 2915, 2917, 2918, 2919, 2920, 2924, 2925, 2926, 2927, 2928.
- Changed the following 19 issues to Resolved (from Tentatively Resolved): 839, 1041, 2179, 2208, 2241, 2294, 2343, 2370, 2391, 2424, 2443, 2501, 2502, 2505, 2529, 2548, 2663, 2677, 2757.
- Changed the following 3 issues to NAD (from New): 2256, 2449, 2865.
- Changed the following 2 issues to Dup (from New): 2764, 2896.
- R102:
2017-02-06 2017 pre-Kona mailing
- Summary:
- 305 open issues, up by 89.
- 2072 closed issues, up by 9.
- 73 reassigned issues, up by 5.
- 2450 issues total, up by 103.
- Details:
- Added the following 9 Tentatively Ready issues: 2826, 2834, 2835, 2837, 2838, 2842, 2850, 2853, 2855.
- Added the following 89 New issues: 2827, 2829, 2832, 2833, 2836, 2839, 2840, 2841, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2851, 2852, 2856, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928.
- Added the following 3 LEWG issues: 2831, 2854, 2857.
- Added the following Resolved issue: 2830.
- Added the following NAD Editorial issue: 2828.
- Changed the following 5 issues to Tentatively Ready (from New): 2789, 2795, 2804, 2812, 2824.
- Changed the following 2 issues to Tentatively Ready (from Open): 2768, 2769.
- Changed the following 2 issues to Review (from New): 2790, 2796.
- Changed the following 2 issues to LEWG (from New): 2814, 2825.
- Changed the following 2 issues to WP (from New): 2792, 2793.
- Changed the following 3 issues to Resolved (from New): 2805, 2809, 2810.
- Changed the following issue to Resolved (from Open): 2754.
- Changed the following issue to NAD (from New): 2822.
- R101:
2016-11-28 2016 post-Issaquah mailing
- Summary:
- 216 open issues, down by 44.
- 2063 closed issues, up by 85.
- 68 reassigned issues, up by 0.
- 2347 issues total, up by 41.
- Details:
- Added the following 3 Ready issues: 2785, 2786, 2787.
- Added the following Tentatively Ready issue: 2794.
- Added the following 34 New issues: 2788, 2789, 2790, 2792, 2793, 2795, 2796, 2797, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825.
- Added the following Open issue: 2798.
- Added the following 2 Resolved issues: 2791, 2817.
- Changed the following 3 issues to Ready (from New): 2781, 2782, 2784.
- Changed the following issue to Tentatively Ready (from Open): 2260.
- Changed the following issue to Review (from New): 2697.
- Changed the following 3 issues to Open (from Tentatively Ready): 2569, 2754, 2768.
- Changed the following 2 issues to Open (from New): 2597, 2730.
- Changed the following issue to LEWG (from New): 2780.
- Changed the following issue to Pending NAD Editorial (from Open): 2178.
- Changed the following 66 issues to WP (from Tentatively Ready): 2062, 2166, 2221, 2223, 2261, 2394, 2460, 2468, 2475, 2503, 2510, 2514, 2519, 2531, 2534, 2536, 2540, 2544, 2556, 2562, 2567, 2570, 2578, 2584, 2589, 2591, 2598, 2664, 2672, 2678, 2679, 2680, 2681, 2686, 2694, 2696, 2699, 2712, 2722, 2729, 2732, 2733, 2735, 2736, 2738, 2739, 2740, 2742, 2744, 2745, 2747, 2748, 2749, 2750, 2752, 2755, 2756, 2758, 2759, 2760, 2765, 2767, 2771, 2773, 2777, 2778.
- Changed the following 4 issues to WP (from New): 2518, 2521, 2525, 2527.
- Changed the following 3 issues to WP (from Open): 2568, 2588, 2770.
- Changed the following 2 issues to Resolved (from Tentatively Ready): 2543, 2753.
- Changed the following issue to Resolved (from New): 2763.
- Changed the following issue to Resolved (from Open): 2465.
- Changed the following issue to Resolved (from SG1): 2445.
- Changed the following issue to NAD Editorial (from New): 2201.
- Changed the following issue to NAD (from New): 2668.
- Changed the following 2 issues to NAD (from Open): 1173, 2199.
- R100:
2016-10-17 2016 pre-Issaquah mailing
- Summary:
- 260 open issues, up by 31.
- 1978 closed issues, up by 5.
- 68 reassigned issues, up by 5.
- 2306 issues total, up by 41.
- Details:
- Added the following 21 Tentatively Ready issues: 2744, 2745, 2747, 2748, 2749, 2750, 2752, 2753, 2754, 2755, 2756, 2758, 2759, 2760, 2765, 2767, 2768, 2771, 2773, 2777, 2778.
- Added the following 13 New issues: 2746, 2751, 2763, 2764, 2766, 2772, 2774, 2776, 2780, 2781, 2782, 2783, 2784.
- Added the following 2 Open issues: 2769, 2770.
- Added the following 2 LEWG issues: 2762, 2779.
- Added the following Tentatively Resolved issue: 2757.
- Added the following NAD issue: 2761.
- Added the following Dup issue: 2775.
- Changed the following 45 issues to Tentatively Ready (from New): 2166, 2221, 2261, 2394, 2460, 2475, 2503, 2514, 2519, 2531, 2534, 2536, 2540, 2544, 2556, 2562, 2567, 2569, 2570, 2578, 2584, 2589, 2591, 2598, 2664, 2672, 2678, 2679, 2680, 2681, 2686, 2694, 2696, 2699, 2712, 2722, 2729, 2732, 2733, 2735, 2736, 2738, 2739, 2740, 2742.
- Changed the following 5 issues to Tentatively Ready (from Open): 2062, 2223, 2468, 2510, 2543.
- Changed the following issue to Review (from New): 2676.
- Changed the following issue to Review (from Open): 2245.
- Changed the following 13 issues to Open (from New): 2158, 2358, 2381, 2465, 2512, 2530, 2532, 2568, 2587, 2588, 2665, 2682, 2708.
- Changed the following 3 issues to LEWG (from New): 2242, 2471, 2593.
- Changed the following 3 issues to LEWG (from Open): 2095, 2152, 2153.
- Changed the following 6 issues to Tentatively Resolved (from New): 2343, 2501, 2502, 2548, 2663, 2677.
- Changed the following 4 issues to Tentatively Resolved (from Open): 2294, 2370, 2424, 2505.
- Changed the following 3 issues to Tentatively Resolved (from LEWG): 839, 1041, 2443.
- Changed the following issue to NAD Editorial (from New): 2701.
- Changed the following 2 issues to NAD (from New): 2161, 2535.
- R99:
2016-07-11 2016 post-Oulu mailing
- Summary:
- 292 open issues, down by 26.
- 1973 closed issues, up by 51.
- 2265 issues total, up by 25.
- Details:
- Added the following 16 New issues: 2722, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743.
- Added the following 9 WP issues: 2719, 2720, 2721, 2723, 2724, 2725, 2726, 2727, 2728.
- Changed the following issue to Tentatively NAD (from New): 2717.
- Changed the following issue to Tentatively Resolved (from Open): 2241.
- Changed the following 21 issues to WP (from Ready): 2181, 2309, 2310, 2328, 2393, 2426, 2436, 2441, 2451, 2516, 2542, 2549, 2550, 2551, 2555, 2573, 2667, 2669, 2670, 2671, 2673.
- Changed the following 12 issues to WP (from Tentatively Ready): 2509, 2596, 2674, 2683, 2684, 2685, 2688, 2689, 2698, 2706, 2707, 2710.
- Changed the following 6 issues to WP (from New): 2687, 2704, 2709, 2711, 2716, 2718.
- Changed the following 2 issues to WP (from Open): 2312, 2422.
- Changed the following issue to NAD (from New): 2700.
- R98:
2016-05-29 2016 pre-Oulu mailing
- Summary:
- 318 open issues, up by 50.
- 1922 closed issues, up by 0.
- 2240 issues total, up by 50.
- Details:
- Added the following 10 Tentatively Ready issues: 2596, 2683, 2684, 2685, 2688, 2689, 2698, 2706, 2707, 2710.
- Added the following Tentatively NAD issue: 2692.
- Added the following 37 New issues: 2595, 2597, 2598, 2599, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2686, 2687, 2691, 2693, 2694, 2695, 2696, 2697, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2708, 2709, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718.
- Added the following 2 LEWG issues: 2600, 2690.
- Changed the following issue to Tentatively Ready (from New): 2674.
- Changed the following issue to Tentatively Ready (from Open): 2509.
- Changed the following 2 issues to Tentatively Resolved (from New): 2208, 2529.
- Changed the following issue to Tentatively Resolved (from Open): 2179.
- Changed the following issue to Tentatively Resolved (from LEWG): 2391.
- R97:
2016-03-22 2016 post-Jacksonville mailing
- Summary:
- 268 open issues, down by 37.
- 1922 closed issues, up by 40.
- 2190 issues total, up by 3.
- Details:
- Added the following 3 New issues: 2592, 2593, 2594.
- Changed the following 7 issues to Ready (from Review): 2181, 2309, 2310, 2328, 2393, 2441, 2516.
- Changed the following 11 issues to Ready (from New): 2542, 2549, 2550, 2551, 2555, 2573, 2667, 2669, 2670, 2671, 2673.
- Changed the following issue to Ready (from Open): 2426.
- Changed the following 2 issues to Ready (from LEWG): 2436, 2451.
- Changed the following issue to Open (from Review): 2424.
- Changed the following issue to Open (from New): 2368.
- Changed the following 3 issues to WP (from Ready): 2276, 2523, 2537.
- Changed the following 25 issues to WP (from Tentatively Ready): 2192, 2450, 2520, 2522, 2539, 2545, 2557, 2558, 2559, 2560, 2565, 2566, 2571, 2572, 2574, 2575, 2576, 2577, 2579, 2581, 2582, 2583, 2585, 2586, 2590.
- Changed the following issue to WP (from Review): 2296.
- Changed the following issue to Resolved (from New): 2554.
- Changed the following issue to Resolved (from Open): 2456.
- Changed the following issue to NAD Editorial (from New): 2666.
- Changed the following issue to NAD (from Review): 2402.
- Changed the following issue to NAD (from New): 2553.
- Changed the following issue to NAD (from LEWG): 2372.
- Changed the following 2 issues to NAD Arrays (from Ready): 2253, 2255.
- Changed the following 3 issues to NAD Arrays (from Open): 2254, 2264, 2277.
- R96:
2016-02-12 2016 pre-Jacksonville mailing (includes the FS TS bugs for the first time)
- Summary:
- 305 open issues, up by 48.
- 1882 closed issues, up by 63.
- 2187 issues total, up by 111.
- Details:
- Added the following 19 Tentatively Ready issues: 2557, 2558, 2559, 2560, 2565, 2566, 2571, 2572, 2574, 2575, 2576, 2577, 2579, 2581, 2582, 2583, 2585, 2586, 2590.
- Added the following 30 New issues: 2554, 2555, 2556, 2561, 2562, 2563, 2564, 2567, 2568, 2569, 2570, 2573, 2578, 2584, 2587, 2588, 2589, 2591, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674.
- Added the following 3 NAD Future issues: 2611, 2612, 2654.
- Added the following 41 WP issues: 2601, 2602, 2603, 2605, 2606, 2607, 2608, 2609, 2614, 2615, 2616, 2618, 2619, 2621, 2622, 2624, 2625, 2627, 2629, 2632, 2633, 2634, 2635, 2636, 2637, 2640, 2641, 2644, 2645, 2647, 2648, 2649, 2650, 2652, 2653, 2655, 2656, 2657, 2658, 2660, 2662.
- Added the following 2 NAD Editorial issues: 2639, 2659.
- Added the following 14 NAD issues: 2580, 2604, 2610, 2613, 2617, 2623, 2626, 2628, 2630, 2631, 2638, 2642, 2646, 2661.
- Added the following 2 Dup issues: 2643, 2651.
- Changed the following issue to Tentatively Ready (from New): 2545.
- Changed the following 2 issues to Review (from Open): 2310, 2516.
- Changed the following issue to NAD (from New): 2552.
- R95:
2015-11-15 2015 post-Kona mailing
- Summary:
- 257 open issues, down by 37.
- 1819 closed issues, up by 47.
- 2076 issues total, up by 10.
- Details:
- Added the following 10 New issues: 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553.
- Changed the following 2 issues to Ready (from New): 2523, 2537.
- Changed the following issue to Ready (from Open): 2276.
- Changed the following 3 issues to Tentatively Ready (from New): 2520, 2522, 2539.
- Changed the following 2 issues to Tentatively Ready (from Open): 2192, 2450.
- Changed the following issue to Review (from Ready): 2181.
- Changed the following 4 issues to Review (from Open): 2309, 2393, 2402, 2441.
- Changed the following issue to Open (from Tentatively Ready): 2510.
- Changed the following 10 issues to Open (from New): 2117, 2164, 2290, 2468, 2499, 2505, 2509, 2516, 2524, 2543.
- Changed the following issue to SG1 (from New): 2533.
- Changed the following 35 issues to WP (from Ready): 1169, 2072, 2101, 2111, 2119, 2127, 2133, 2156, 2218, 2219, 2244, 2250, 2259, 2336, 2353, 2367, 2380, 2384, 2385, 2435, 2447, 2462, 2466, 2469, 2473, 2476, 2477, 2483, 2484, 2485, 2486, 2487, 2489, 2492, 2494.
- Changed the following 8 issues to WP (from Tentatively Ready): 2224, 2234, 2273, 2495, 2500, 2515, 2517, 2526.
- Changed the following issue to Resolved (from Core): 2165.
- Changed the following 2 issues to NAD (from New): 2474, 2538.
- Changed the following issue to NAD (from Open): 2379.
- Changed the following issue to NAD (from Resolved): 2319.
- R94:
2015-09-25 2015 pre-Kona mailing
- Summary:
- 294 open issues, up by 38.
- 1772 closed issues, up by 2.
- 2066 issues total, up by 40.
- Details:
- Added the following 4 Tentatively Ready issues: 2510, 2515, 2517, 2526.
- Added the following 36 New issues: 2504, 2505, 2506, 2507, 2508, 2509, 2511, 2512, 2513, 2514, 2516, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543.
- Changed the following 2 issues to Tentatively Ready (from New): 2495, 2500.
- Changed the following 2 issues to Tentatively Ready (from Open): 2234, 2273.
- Changed the following issue to Resolved (from Open): 2051.
- Changed the following issue to NAD (from New): 2326.
- R93:
2014-05-22 2015 post-Lenexa mailing
- Summary:
- 256 open issues, down by 36.
- 1770 closed issues, up by 48.
- 2026 issues total, up by 12.
- Details:
- Added the following 2 Ready issues: 2492, 2494.
- Added the following 10 New issues: 2493, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503.
- Changed the following 2 issues to Ready (from Review): 2111, 2380.
- Changed the following 20 issues to Ready (from New): 2244, 2250, 2259, 2336, 2353, 2367, 2384, 2385, 2435, 2462, 2466, 2473, 2476, 2477, 2483, 2484, 2485, 2486, 2487, 2489.
- Changed the following 12 issues to Ready (from Open): 1169, 2072, 2101, 2119, 2127, 2133, 2156, 2181, 2218, 2219, 2447, 2469.
- Changed the following issue to Tentatively Ready (from Open): 2224.
- Changed the following issue to Review (from New): 2296.
- Changed the following issue to Review (from Open): 2328.
- Changed the following 11 issues to Open (from New): 2262, 2289, 2338, 2348, 2349, 2370, 2398, 2402, 2422, 2450, 2456.
- Changed the following 8 issues to Open (from SG1): 2245, 2265, 2276, 2309, 2363, 2379, 2426, 2441.
- Changed the following issue to LEWG (from New): 2372.
- Changed the following issue to EWG (from New): 2432.
- Changed the following issue to Deferred (from Open): 2202.
- Changed the following 14 issues to WP (from Ready): 2160, 2168, 2364, 2403, 2406, 2411, 2425, 2427, 2428, 2433, 2434, 2438, 2439, 2440.
- Changed the following 18 issues to WP (from Tentatively Ready): 2059, 2076, 2239, 2369, 2378, 2410, 2415, 2418, 2437, 2448, 2454, 2455, 2458, 2459, 2463, 2467, 2470, 2482.
- Changed the following 3 issues to WP (from New): 2420, 2464, 2488.
- Changed the following issue to WP (from Open): 2063.
- Changed the following 2 issues to WP (from SG1): 2407, 2442.
- Changed the following issue to Resolved (from Review): 2228.
- Changed the following 3 issues to Resolved (from Open): 1526, 2274, 2397.
- Changed the following 5 issues to NAD (from New): 2079, 2251, 2351, 2373, 2386.
- Changed the following issue to NAD (from Open): 2388.
- R92:
2015-04-09 pre-Lenexa mailing
- Summary:
- 292 open issues, up by 33.
- 1722 closed issues, up by 0.
- 2014 issues total, up by 33.
- Details:
- Added the following 5 Tentatively Ready issues: 2459, 2463, 2467, 2470, 2482.
- Added the following 27 New issues: 2460, 2461, 2462, 2464, 2465, 2466, 2468, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491.
- Added the following Open issue: 2469.
- Changed the following issue to Tentatively Ready (from Review): 2378.
- Changed the following 11 issues to Tentatively Ready (from New): 2076, 2239, 2369, 2410, 2415, 2418, 2437, 2448, 2454, 2455, 2458.
- Changed the following issue to Tentatively Ready (from Open): 2059.
- Changed the following issue to Tentatively NAD (from New): 2337.
- Changed the following issue to Tentatively NAD (from Open): 760.
- Changed the following 5 issues to Open (from New): 2312, 2388, 2393, 2444, 2447.
- Changed the following 4 issues to LEWG (from New): 2391, 2417, 2436, 2451.
- Changed the following issue to EWG (from Open): 2089.
- Changed the following issue to Core (from New): 2452.
- Changed the following 13 issues to SG1 (from New): 2236, 2245, 2265, 2276, 2309, 2334, 2363, 2379, 2407, 2412, 2426, 2442, 2445.
- Changed the following issue to SG1 (from Open): 2441.
- R91:
2014-11-23 post-Urbana mailing
- Summary:
- 259 open issues, up by 32.
- 1722 closed issues, down by 20.
- 1981 issues total, up by 12.
- Details:
- Added the following 12 New issues: 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458.
- Changed the following 2 issues to Ready (from Review): 2160, 2364.
- Changed the following 11 issues to Ready (from New): 2403, 2406, 2411, 2425, 2427, 2428, 2433, 2434, 2438, 2439, 2440.
- Changed the following issue to Ready (from Open): 2168.
- Changed the following issue to Review (from New): 2424.
- Changed the following 5 issues to Open (from New): 2307, 2310, 2383, 2414, 2441.
- Changed the following 2 issues to Open (from NAD Future): 760, 1173.
- Changed the following 4 issues to LEWG (from New): 2419, 2430, 2443, 2446.
- Changed the following 48 issues to LEWG (from NAD Future): 255, 423, 484, 523, 532, 708, 839, 851, 877, 933, 935, 936, 961, 1025, 1031, 1041, 1052, 1053, 1112, 1120, 1121, 1150, 1154, 1184, 1188, 1201, 1203, 1217, 1235, 1238, 1242, 1282, 1289, 1317, 1320, 1396, 1406, 1422, 1459, 1484, 1488, 1493, 1499, 1521, 2040, 2055, 2226, 2232.
- Changed the following 2 issues to Pending NAD (from Tentatively NAD): 2302, 2382.
- Changed the following 11 issues to WP (from Ready): 2016, 2170, 2340, 2354, 2377, 2396, 2399, 2400, 2401, 2404, 2408.
- Changed the following 12 issues to WP (from Tentatively Ready): 2106, 2129, 2212, 2217, 2230, 2233, 2266, 2325, 2361, 2365, 2376, 2387.
- Changed the following issue to Resolved (from Ready): 2319.
- Changed the following issue to Resolved (from Review): 2118.
- Changed the following issue to Resolved (from New): 2416.
- Changed the following issue to Resolved (from Open): 2108.
- Changed the following issue to NAD (from New): 2429.
- R90:
2014-10-13 pre-Urbana mailing
- Summary:
- 227 open issues, up by 31.
- 1742 closed issues, up by 0.
- 1969 issues total, up by 31.
- Details:
- Added the following 31 New issues: 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446.
- No issues changed.
- R89:
2014-07-08 post-Rapperswil mailing
- Summary:
- 196 open issues, up by 14.
- 1742 closed issues, up by 12.
- 1938 issues total, up by 26.
- Details:
- Added the following 6 Ready issues: 2396, 2399, 2400, 2401, 2404, 2408.
- Added the following 15 New issues: 2391, 2392, 2393, 2394, 2398, 2402, 2403, 2406, 2407, 2410, 2411, 2412, 2413, 2414, 2415.
- Added the following Open issue: 2397.
- Added the following 3 WP issues: 2390, 2395, 2409.
- Added the following NAD issue: 2405.
- Changed the following issue to Ready (from New): 2377.
- Changed the following 2 issues to Ready (from Deferred): 2253, 2255.
- Changed the following 2 issues to Tentatively Ready (from New): 2325, 2387.
- Changed the following issue to Tentatively NAD (from New): 2382.
- Changed the following 3 issues to Review (from New): 2364, 2378, 2380.
- Changed the following 2 issues to Review (from Open): 2118, 2160.
- Changed the following 3 issues to Open (from New): 2168, 2238, 2273.
- Changed the following 3 issues to Open (from Deferred): 2254, 2264, 2277.
- Changed the following 3 issues to WP (from New): 2371, 2374, 2389.
- Changed the following 4 issues to Resolved (from Deferred): 2282, 2283, 2287, 2333.
- Changed the following issue to NAD (from Deferred): 2305.
- R88:
2014-05-24 pre-Rapperswil mailing
- Summary:
- 182 open issues, up by 29.
- 1730 closed issues, up by 0.
- 1912 issues total, up by 29.
- Details:
- Added the following 3 Tentatively Ready issues: 2361, 2365, 2376.
- Added the following 26 New issues: 2362, 2363, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389.
- Changed the following 5 issues to Tentatively Ready (from Open): 2106, 2129, 2212, 2230, 2233.
Accepted Issues
1(i). C library linkage editing oversight
Section: 16.4.3.3 [using.linkage] Status: TC1
Submitter: Beman Dawes Opened: 1997-11-16 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [using.linkage].
View all issues with TC1 status.
Discussion:
The change specified in the proposed resolution below did not make
it into the Standard. This change was accepted in principle at the
London meeting, and the exact wording below was accepted at the
Morristown meeting.
Proposed resolution:
Change 16.4.3.3 [using.linkage] paragraph 2
from:
It is unspecified whether a name from the Standard C library
declared with external linkage has either extern "C" or
extern "C++" linkage.
to:
Whether a name from the Standard C library declared with external
linkage has extern "C" or extern "C++" linkage
is implementation defined. It is recommended that an implementation
use extern "C++" linkage for this purpose.
3(i). Atexit registration during atexit() call is not described
Section: 17.5 [support.start.term] Status: TC1
Submitter: Steve Clamage Opened: 1997-12-12 Last modified: 2016-08-09
Priority: Not Prioritized
View other active issues in [support.start.term].
View all other issues in [support.start.term].
View all issues with TC1 status.
Discussion:
We appear not to have covered all the possibilities of
exit processing with respect to
atexit registration.
Example 1: (C and C++)
#include <stdlib.h>
void f1() { }
void f2() { atexit(f1); }
int main()
{
atexit(f2); // the only use of f2
return 0; // for C compatibility
}
At program exit, f2 gets called due to its registration in
main. Running f2 causes f1 to be newly registered during the exit
processing. Is this a valid program? If so, what are its
semantics?
Interestingly, neither the C standard, nor the C++ draft standard nor
the forthcoming C9X Committee Draft says directly whether you can
register a function with atexit during exit processing.
All 3 standards say that functions are run in reverse order of their
registration. Since f1 is registered last, it ought to be run first,
but by the time it is registered, it is too late to be first.
If the program is valid, the standards are self-contradictory about
its semantics.
Example 2: (C++ only)
void F() { static T t; } // type T has a destructor
int main()
{
atexit(F); // the only use of F
}
Function F registered with atexit has a local static variable t,
and F is called for the first time during exit processing. A local
static object is initialized the first time control flow passes
through its definition, and all static objects are destroyed during
exit processing. Is the code valid? If so, what are its semantics?
Section 18.3 "Start and termination" says that if a function
F is registered with atexit before a static object t is initialized, F
will not be called until after t's destructor completes.
In example 2, function F is registered with atexit before its local
static object O could possibly be initialized. On that basis, it must
not be called by exit processing until after O's destructor
completes. But the destructor cannot be run until after F is called,
since otherwise the object could not be constructed in the first
place.
If the program is valid, the standard is self-contradictory about
its semantics.
I plan to submit Example 1 as a public comment on the C9X CD, with
a recommendation that the results be undefined. (Alternative: make it
unspecified. I don't think it is worthwhile to specify the case where
f1 itself registers additional functions, each of which registers
still more functions.)
I think we should resolve the situation in the whatever way the C
committee decides.
For Example 2, I recommend we declare the results undefined.
[See reflector message lib-6500 for further discussion.]
Proposed resolution:
Change section 18.3/8 from:
First, objects with static storage duration are destroyed and
functions registered by calling atexit are called. Objects with
static storage duration are destroyed in the reverse order of the
completion of their constructor. (Automatic objects are not
destroyed as a result of calling exit().) Functions registered with
atexit are called in the reverse order of their registration. A
function registered with atexit before an object obj1 of static
storage duration is initialized will not be called until obj1's
destruction has completed. A function registered with atexit after
an object obj2 of static storage duration is initialized will be
called before obj2's destruction starts.
to:
First, objects with static storage duration are destroyed and
functions registered by calling atexit are called. Non-local objects
with static storage duration are destroyed in the reverse order of
the completion of their constructor. (Automatic objects are not
destroyed as a result of calling exit().) Functions registered with
atexit are called in the reverse order of their registration, except
that a function is called after any previously registered functions
that had already been called at the time it was registered. A
function registered with atexit before a non-local object obj1 of
static storage duration is initialized will not be called until
obj1's destruction has completed. A function registered with atexit
after a non-local object obj2 of static storage duration is
initialized will be called before obj2's destruction starts. A local
static object obj3 is destroyed at the same time it would be if a
function calling the obj3 destructor were registered with atexit at
the completion of the obj3 constructor.
Rationale:
See 99-0039/N1215, October 22, 1999, by Stephen D. Clamage for the analysis
supporting to the proposed resolution.
5(i). String::compare specification questionable
Section: 27.4.3.7.8 [string.swap] Status: TC1
Submitter: Jack Reeves Opened: 1997-12-11 Last modified: 2016-11-12
Priority: Not Prioritized
View all other issues in [string.swap].
View all issues with TC1 status.
Duplicate of: 87
Discussion:
At the very end of the basic_string class definition is the signature: int
compare(size_type pos1, size_type n1, const charT* s, size_type n2 = npos) const; In the
following text this is defined as: returns
basic_string<charT,traits,Allocator>(*this,pos1,n1).compare(
basic_string<charT,traits,Allocator>(s,n2);
Since the constructor basic_string(const charT* s, size_type n, const Allocator& a
= Allocator()) clearly requires that s != NULL and n < npos and further states that it
throws length_error if n == npos, it appears the compare() signature above should always
throw length error if invoked like so: str.compare(1, str.size()-1, s); where 's' is some
null terminated character array.
This appears to be a typo since the obvious intent is to allow either the call above or
something like: str.compare(1, str.size()-1, s, strlen(s)-1);
This would imply that what was really intended was two signatures int compare(size_type
pos1, size_type n1, const charT* s) const int compare(size_type pos1, size_type n1, const
charT* s, size_type n2) const; each defined in terms of the corresponding constructor.
Proposed resolution:
Replace the compare signature in 27.4.3 [basic.string]
(at the very end of the basic_string synopsis) which reads:
int compare(size_type pos1, size_type n1,
const charT* s,
size_type n2 = npos) const;
with:
int compare(size_type pos1, size_type n1,
const charT* s) const;
int compare(size_type pos1, size_type n1,
const charT* s,
size_type n2) const;
Replace the portion of 27.4.3.7.8 [string.swap]
paragraphs 5 and 6 which read:
int compare(size_type pos, size_type n1,
charT * s, size_type n2
= npos) const;
Returns:
basic_string<charT,traits,Allocator>(*this, pos, n1).compare(
basic_string<charT,traits,Allocator>( s, n2))
with:
int compare(size_type pos, size_type n1,
const charT * s) const;
Returns:
basic_string<charT,traits,Allocator>(*this, pos, n1).compare(
basic_string<charT,traits,Allocator>( s ))
int compare(size_type pos, size_type n1,
const charT * s,
size_type n2) const;
Returns:
basic_string<charT,traits,Allocator>(*this, pos, n1).compare(
basic_string<charT,traits,Allocator>( s, n2))
Editors please note that in addition to splitting the signature, the third argument
becomes const, matching the existing synopsis.
Rationale:
While the LWG dislikes adding signatures, this is a clear defect in
the Standard which must be fixed. The same problem was also
identified in issues 7 (item 5) and 87.
7(i). String clause minor problems
Section: 27 [strings] Status: TC1
Submitter: Matt Austern Opened: 1997-12-15 Last modified: 2016-11-12
Priority: Not Prioritized
View all other issues in [strings].
View all issues with TC1 status.
Discussion:
(1) In 27.4.3.7.4 [string.insert], the description of template
<class InputIterator> insert(iterator, InputIterator,
InputIterator) makes no sense. It refers to a member function that
doesn't exist. It also talks about the return value of a void
function.
(2) Several versions of basic_string::replace don't appear in the
class synopsis.
(3) basic_string::push_back appears in the synopsis, but is never
described elsewhere. In the synopsis its argument is const charT,
which doesn't makes much sense; it should probably be charT, or
possible const charT&.
(4) basic_string::pop_back is missing.
(5) int compare(size_type pos, size_type n1, charT* s, size_type n2
= npos) make no sense. First, it's const charT* in the synopsis and
charT* in the description. Second, given what it says in RETURNS,
leaving out the final argument will always result in an exception
getting thrown. This is paragraphs 5 and 6 of
27.4.3.7.8 [string.swap]
(6) In table 37, in section 27.2.2 [char.traits.require],
there's a note for X::move(s, p, n). It says "Copies correctly
even where p is in [s, s+n)". This is correct as far as it goes,
but it doesn't go far enough; it should also guarantee that the copy
is correct even where s in in [p, p+n). These are two orthogonal
guarantees, and neither one follows from the other. Both guarantees
are necessary if X::move is supposed to have the same sort of
semantics as memmove (which was clearly the intent), and both
guarantees are necessary if X::move is actually supposed to be
useful.
Proposed resolution:
ITEM 1: In 21.3.5.4 [lib.string::insert], change paragraph 16 to
EFFECTS: Equivalent to insert(p - begin(), basic_string(first, last)).
ITEM 2: Not a defect; the Standard is clear.. There are ten versions of replace() in
the synopsis, and ten versions in 21.3.5.6 [lib.string::replace].
ITEM 3: Change the declaration of push_back in the string synopsis (21.3,
[lib.basic.string]) from:
void push_back(const charT)
to
void push_back(charT)
Add the following text immediately after 21.3.5.2 [lib.string::append], paragraph 10.
void basic_string::push_back(charT c);
EFFECTS: Equivalent to append(static_cast<size_type>(1), c);
ITEM 4: Not a defect. The omission appears to have been deliberate.
ITEM 5: Duplicate; see issue 5 (and 87).
ITEM 6: In table 37, Replace:
"Copies correctly even where p is in [s, s+n)."
with:
"Copies correctly even where the ranges [p, p+n) and [s,
s+n) overlap."
8(i). Locale::global lacks guarantee
Section: 28.3.3.1.6 [locale.statics] Status: TC1
Submitter: Matt Austern Opened: 1997-12-24 Last modified: 2016-08-09
Priority: Not Prioritized
View all issues with TC1 status.
Discussion:
It appears there's an important guarantee missing from clause
22. We're told that invoking locale::global(L) sets the C locale if L
has a name. However, we're not told whether or not invoking
setlocale(s) sets the global C++ locale.
The intent, I think, is that it should not, but I can't find any
such words anywhere.
Proposed resolution:
Add a sentence at the end of 28.3.3.1.6 [locale.statics],
paragraph 2:
No library function other than locale::global() shall affect
the value returned by locale().
9(i). Operator new(0) calls should not yield the same pointer
Section: 17.6.3 [new.delete] Status: TC1
Submitter: Steve Clamage Opened: 1998-01-04 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [new.delete].
View all issues with TC1 status.
Discussion:
Scott Meyers, in a comp.std.c++ posting: I just noticed that
section 3.7.3.1 of CD2 seems to allow for the possibility that all
calls to operator new(0) yield the same pointer, an implementation
technique specifically prohibited by ARM 5.3.3.Was this prohibition
really lifted? Does the FDIS agree with CD2 in the regard? [Issues
list maintainer's note: the IS is the same.]
Proposed resolution:
Change the last paragraph of 3.7.3 from:
Any allocation and/or deallocation functions defined in a C++ program shall
conform to the semantics specified in 3.7.3.1 and 3.7.3.2.
to:
Any allocation and/or deallocation functions defined in a C++ program,
including the default versions in the library, shall conform to the semantics
specified in 3.7.3.1 and 3.7.3.2.
Change 3.7.3.1/2, next-to-last sentence, from :
If the size of the space requested is zero, the value returned shall not be
a null pointer value (4.10).
to:
Even if the size of the space requested is zero, the request can fail. If
the request succeeds, the value returned shall be a non-null pointer value
(4.10) p0 different from any previously returned value p1, unless that value
p1 was since passed to an operator delete.
5.3.4/7 currently reads:
When the value of the expression in a direct-new-declarator is zero, the
allocation function is called to allocate an array with no elements. The
pointer returned by the new-expression is non-null. [Note: If the library
allocation function is called, the pointer returned is distinct from the
pointer to any other object.]
Retain the first sentence, and delete the remainder.
18.5.1 currently has no text. Add the following:
Except where otherwise specified, the provisions of 3.7.3 apply to the
library versions of operator new and operator delete.
To 18.5.1.3, add the following text:
The provisions of 3.7.3 do not apply to these reserved placement forms of
operator new and operator delete.
Rationale:
See 99-0040/N1216, October 22, 1999, by Stephen D. Clamage for the analysis
supporting to the proposed resolution.
11(i). Bitset minor problems
Section: 22.9.2 [template.bitset] Status: TC1
Submitter: Matt Austern Opened: 1998-01-22 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [template.bitset].
View all issues with TC1 status.
Discussion:
(1) bitset<>::operator[] is mentioned in the class synopsis (23.3.5), but it is
not documented in 23.3.5.2.
(2) The class synopsis only gives a single signature for bitset<>::operator[],
reference operator[](size_t pos). This doesn't make much sense. It ought to be overloaded
on const. reference operator[](size_t pos); bool operator[](size_t pos) const.
(3) Bitset's stream input function (23.3.5.3) ought to skip all whitespace before
trying to extract 0s and 1s. The standard doesn't explicitly say that, though. This should
go in the Effects clause.
Proposed resolution:
ITEMS 1 AND 2:
In the bitset synopsis (22.9.2 [template.bitset]),
replace the member function
reference operator[](size_t pos);
with the two member functions
bool operator[](size_t pos) const;
reference operator[](size_t pos);
Add the following text at the end of 22.9.2.3 [bitset.members],
immediately after paragraph 45:
bool operator[](size_t pos) const;
Requires: pos is valid
Throws: nothing
Returns: test(pos)
bitset<N>::reference operator[](size_t pos);
Requires: pos is valid
Throws: nothing
Returns: An object of type bitset<N>::reference such that (*this)[pos]
== this->test(pos), and such that (*this)[pos] = val is equivalent to this->set(pos,
val);
Rationale:
The LWG believes Item 3 is not a defect. "Formatted
input" implies the desired semantics. See 31.7.5.3 [istream.formatted].
13(i). Eos refuses to die
Section: 31.7.5.3.3 [istream.extractors] Status: TC1
Submitter: William M. Miller Opened: 1998-03-03 Last modified: 2017-04-22
Priority: Not Prioritized
View all other issues in [istream.extractors].
View all issues with TC1 status.
Discussion:
In 27.6.1.2.3, there is a reference to "eos", which is
the only one in the whole draft (at least using Acrobat search), so
it's undefined.
Proposed resolution:
In [istream::extractors], replace "eos" with
"charT()"
14(i). Locale::combine should be const
Section: 28.3.3.1.4 [locale.members] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [locale.members].
View all issues with TC1 status.
Discussion:
locale::combine is the only member function of locale (other than constructors and
destructor) that is not const. There is no reason for it not to be const, and good reasons
why it should have been const. Furthermore, leaving it non-const conflicts with 22.1.1
paragraph 6: "An instance of a locale is immutable."
History: this member function originally was a constructor. it happened that the
interface it specified had no corresponding language syntax, so it was changed to a member
function. As constructors are never const, there was no "const" in the interface
which was transformed into member "combine". It should have been added at that
time, but the omission was not noticed.
Proposed resolution:
In 28.3.3.1 [locale] and also in 28.3.3.1.4 [locale.members], add
"const" to the declaration of member combine:
template <class Facet> locale combine(const locale& other) const;
15(i). Locale::name requirement inconsistent
Section: 28.3.3.1.4 [locale.members] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [locale.members].
View all issues with TC1 status.
Discussion:
locale::name() is described as returning a string that can be passed to a locale
constructor, but there is no matching constructor.
Proposed resolution:
In 28.3.3.1.4 [locale.members], paragraph 5, replace
"locale(name())" with
"locale(name().c_str())".
16(i). Bad ctype_byname<char> decl
Section: 28.3.4.2.5 [locale.codecvt] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [locale.codecvt].
View all issues with TC1 status.
Discussion:
The new virtual members ctype_byname<char>::do_widen and do_narrow did not get
edited in properly. Instead, the member do_widen appears four times, with wrong argument
lists.
Proposed resolution:
The correct declarations for the overloaded members
do_narrow and do_widen should be copied
from 28.3.4.2.4 [facet.ctype.special].
17(i). Bad bool parsing
Section: 28.3.4.3.2.3 [facet.num.get.virtuals] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-08-09
Priority: Not Prioritized
View other active issues in [facet.num.get.virtuals].
View all other issues in [facet.num.get.virtuals].
View all issues with TC1 status.
Discussion:
This section describes the process of parsing a text boolean value from the input
stream. It does not say it recognizes either of the sequences "true" or
"false" and returns the corresponding bool value; instead, it says it recognizes
only one of those sequences, and chooses which according to the received value of a
reference argument intended for returning the result, and reports an error if the other
sequence is found. (!) Furthermore, it claims to get the names from the ctype<>
facet rather than the numpunct<> facet, and it examines the "boolalpha"
flag wrongly; it doesn't define the value "loc"; and finally, it computes
wrongly whether to use numeric or "alpha" parsing.
I believe the correct algorithm is "as if":
// in, err, val, and str are arguments.
err = 0;
const numpunct<charT>& np = use_facet<numpunct<charT> >(str.getloc());
const string_type t = np.truename(), f = np.falsename();
bool tm = true, fm = true;
size_t pos = 0;
while (tm && pos < t.size() || fm && pos < f.size()) {
if (in == end) { err = str.eofbit; }
bool matched = false;
if (tm && pos < t.size()) {
if (!err && t[pos] == *in) matched = true;
else tm = false;
}
if (fm && pos < f.size()) {
if (!err && f[pos] == *in) matched = true;
else fm = false;
}
if (matched) { ++in; ++pos; }
if (pos > t.size()) tm = false;
if (pos > f.size()) fm = false;
}
if (tm == fm || pos == 0) { err |= str.failbit; }
else { val = tm; }
return in;
Notice this works reasonably when the candidate strings are both empty, or equal, or
when one is a substring of the other. The proposed text below captures the logic of the
code above.
Proposed resolution:
In 28.3.4.3.2.3 [facet.num.get.virtuals], in the first line of paragraph 14,
change "&&" to "&".
Then, replace paragraphs 15 and 16 as follows:
Otherwise target sequences are determined "as if" by
calling the members falsename() and
truename() of the facet obtained by
use_facet<numpunct<charT> >(str.getloc()).
Successive characters in the range [in,end) (see
[lib.sequence.reqmts]) are obtained and matched against
corresponding positions in the target sequences only as necessary to
identify a unique match. The input iterator in is
compared to end only when necessary to obtain a
character. If and only if a target sequence is uniquely matched,
val is set to the corresponding value.
The in iterator is always left pointing one position beyond the last character
successfully matched. If val is set, then err is set to str.goodbit; or to
str.eofbit if, when seeking another character to match, it is found that
(in==end). If val is not set, then err is set to str.failbit; or to
(str.failbit|str.eofbit)if
the reason for the failure was that (in==end). [Example: for targets
true:"a" and false:"abb", the input sequence "a" yields
val==true and err==str.eofbit; the input sequence "abc" yields
err=str.failbit, with in ending at the 'c' element. For targets
true:"1"
and false:"0", the input sequence "1" yields val==true
and err=str.goodbit. For empty targets (""), any input sequence yields
err==str.failbit. --end example]
18(i). Get(...bool&) omitted
Section: 28.3.4.3.2.2 [facet.num.get.members] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [facet.num.get.members].
View all issues with TC1 status.
Discussion:
In the list of num_get<> non-virtual members on page 22-23, the member
that parses bool values was omitted from the list of definitions of non-virtual
members, though it is listed in the class definition and the corresponding
virtual is listed everywhere appropriate.
Proposed resolution:
Add at the beginning of 28.3.4.3.2.2 [facet.num.get.members]
another get member for bool&, copied from the entry in
28.3.4.3.2 [locale.num.get].
19(i). "Noconv" definition too vague
Section: 28.3.4.2.5 [locale.codecvt] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-08-09
Priority: Not Prioritized
View all other issues in [locale.codecvt].
View all issues with TC1 status.
Duplicate of: 10
Discussion:
In the definitions of codecvt<>::do_out and do_in, they are
specified to return noconv if "no conversion is
needed". This definition is too vague, and does not say
normatively what is done with the buffers.
Proposed resolution:
Change the entry for noconv in the table under paragraph 4 in section
28.3.4.2.5.3 [locale.codecvt.virtuals] to read:
noconv: internT and externT are the same type,
and input sequence is identical to converted sequence.
Change the Note in paragraph 2 to normative text as follows:
If returns noconv, internT and externT are the
same type and the converted sequence is identical to the input sequence [from,from_next).
to_next is set equal to to, the value of state is
unchanged, and there are no changes to the values in [to, to_limit).
20(i). Thousands_sep returns wrong type
Section: 28.3.4.4.1.3 [facet.numpunct.virtuals] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-08-09
Priority: Not Prioritized
View all issues with TC1 status.
Discussion:
The synopsis for numpunct<>::do_thousands_sep, and the
definition of numpunct<>::thousands_sep which calls it, specify
that it returns a value of type char_type. Here it is erroneously
described as returning a "string_type".
Proposed resolution:
In 28.3.4.4.1.3 [facet.numpunct.virtuals], above paragraph 2, change
"string_type" to "char_type".
21(i). Codecvt_byname<> instantiations
Section: 28.3.3.1.2.1 [locale.category] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [locale.category].
View all issues with TC1 status.
Discussion:
In the second table in the section, captioned "Required
instantiations", the instantiations for codecvt_byname<>
have been omitted. These are necessary to allow users to construct a
locale by name from facets.
Proposed resolution:
Add in 28.3.3.1.2.1 [locale.category] to the table captioned
"Required instantiations", in the category "ctype"
the lines
codecvt_byname<char,char,mbstate_t>,
codecvt_byname<wchar_t,char,mbstate_t>
22(i). Member open vs. flags
Section: 31.10.4.4 [ifstream.members] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [ifstream.members].
View all issues with TC1 status.
Discussion:
The description of basic_istream<>::open leaves unanswered questions about how it
responds to or changes flags in the error status for the stream. A strict reading
indicates that it ignores the bits and does not change them, which confuses users who do
not expect eofbit and failbit to remain set after a successful open. There are three
reasonable resolutions: 1) status quo 2) fail if fail(), ignore eofbit 3) clear failbit
and eofbit on call to open().
Proposed resolution:
In 31.10.4.4 [ifstream.members] paragraph 3, and in 31.10.5.4 [ofstream.members] paragraph 3, under open() effects, add a footnote:
A successful open does not change the error state.
Rationale:
This may seem surprising to some users, but it's just an instance
of a general rule: error flags are never cleared by the
implementation. The only way error flags are are ever cleared is if
the user explicitly clears them by hand.
The LWG believed that preserving this general rule was
important enough so that an exception shouldn't be made just for this
one case. The resolution of this issue clarifies what the LWG
believes to have been the original intent.
23(i). Num_get overflow result
Section: 28.3.4.3.2.3 [facet.num.get.virtuals] Status: CD1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [facet.num.get.virtuals].
View all other issues in [facet.num.get.virtuals].
View all issues with CD1 status.
Discussion:
The current description of numeric input does not account for the
possibility of overflow. This is an implicit result of changing the
description to rely on the definition of scanf() (which fails to
report overflow), and conflicts with the documented behavior of
traditional and current implementations.
Users expect, when reading a character sequence that results in a
value unrepresentable in the specified type, to have an error
reported. The standard as written does not permit this.
Further comments from Dietmar:
I don't feel comfortable with the proposed resolution to issue 23: It
kind of simplifies the issue to much. Here is what is going on:
Currently, the behavior of numeric overflow is rather counter intuitive
and hard to trace, so I will describe it briefly:
-
According to 28.3.4.3.2.3 [facet.num.get.virtuals]
paragraph 11
failbit is set if scanf() would
return an input error; otherwise a value is converted to the rules
of scanf.
-
scanf() is defined in terms of fscanf().
-
fscanf() returns an input failure if during conversion no
character matching the conversion specification could be extracted
before reaching EOF. This is the only reason for fscanf()
to fail due to an input error and clearly does not apply to the case
of overflow.
-
Thus, the conversion is performed according to the rules of
fscanf() which basically says that strtod,
strtol(), etc. are to be used for the conversion.
-
The
strtod(), strtol(), etc. functions consume as
many matching characters as there are and on overflow continue to
consume matching characters but also return a value identical to
the maximum (or minimum for signed types if there was a leading minus)
value of the corresponding type and set errno to ERANGE.
-
Thus, according to the current wording in the standard, overflows
can be detected! All what is to be done is to check
errno
after reading an element and, of course, clearing errno
before trying a conversion. With the current wording, it can be
detected whether the overflow was due to a positive or negative
number for signed types.
Further discussion from Redmond:
The basic problem is that we've defined our behavior,
including our error-reporting behavior, in terms of C90. However,
C90's method of reporting overflow in scanf is not technically an
"input error". The strto_* functions are more precise.
There was general consensus that failbit should be set
upon overflow. We considered three options based on this:
- Set failbit upon conversion error (including overflow), and
don't store any value.
- Set failbit upon conversion error, and also set
errno to
indicated the precise nature of the error.
- Set failbit upon conversion error. If the error was due to
overflow, store +-numeric_limits<T>::max() as an
overflow indication.
Straw poll: (1) 5; (2) 0; (3) 8.
Discussed at Lillehammer. General outline of what we want the
solution to look like: we want to say that overflow is an error, and
provide a way to distinguish overflow from other kinds of errors.
Choose candidate field the same way scanf does, but don't describe
the rest of the process in terms of format. If a finite input field
is too large (positive or negative) to be represented as a finite
value, then set failbit and assign the nearest representable value.
Bill will provide wording.
Discussed at Toronto:
N2327
is in alignment with the direction we wanted to go with in Lillehammer. Bill
to work on.
Proposed resolution:
Change 28.3.4.3.2.3 [facet.num.get.virtuals], end of p3:
Stage 3: The result of stage 2 processing can be one of
The sequence of chars accumulated in stage 2 (the field) is
converted to a numeric value by the rules of one of the functions declared
in the header <cstdlib>:
-
A sequence of chars has been accumulated in stage 2 that is
converted (according to the rules of scanf) to a value of the
type of val. This value is stored in val and ios_base::goodbit is
stored in err.
For a signed integer value, the function strtoll.
-
The sequence of chars accumulated in stage 2 would have caused
scanf to report an input failure. ios_base::failbit is
assigned to err.
For an unsigned integer value, the function strtoull.
-
For a floating-point value, the function
strtold.
The numeric value to be stored can be one of:
- zero, if the conversion function fails to convert the entire field.
ios_base::failbit is assigned to err.
- the most positive representable value, if the field represents a value
too large positive to be represented in val.
ios_base::failbit is assigned
to err.
- the most negative representable value (zero for unsigned integer), if
the field represents a value too large negative to be represented in val.
ios_base::failbit is assigned to err.
- the converted value, otherwise.
The resultant numeric value is stored in val.
Change 28.3.4.3.2.3 [facet.num.get.virtuals], p6-p7:
iter_type do_get(iter_type in, iter_type end, ios_base& str,
ios_base::iostate& err, bool& val) const;
-6- Effects: If
(str.flags()&ios_base::boolalpha)==0 then input
proceeds as it would for a long except that if a value is being
stored into val, the value is determined according to the
following: If the value to be stored is 0 then false is stored.
If the value is 1 then true is stored. Otherwise
err|=ios_base::failbit is performed and no value true is
stored. and ios_base::failbit is assigned to err.
-7- Otherwise target sequences are determined "as if" by calling the
members falsename() and truename() of the facet
obtained by use_facet<numpunct<charT>
>(str.getloc()). Successive characters in the range
[in,end) (see 23.1.1) are obtained and matched
against corresponding positions in the target sequences only as
necessary to identify a unique match. The input iterator in is
compared to end only when necessary to obtain a character. If and
only if a target sequence is uniquely matched, val is set to the
corresponding value. Otherwise false is stored and ios_base::failbit
is assigned to err.
24(i). "do_convert" doesn't exist
Section: 28.3.4.2.5 [locale.codecvt] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [locale.codecvt].
View all issues with TC1 status.
Duplicate of: 72
Discussion:
The description of codecvt<>::do_out and do_in mentions a
symbol "do_convert" which is not defined in the
standard. This is a leftover from an edit, and should be "do_in
and do_out".
Proposed resolution:
In 28.3.4.2.5 [locale.codecvt], paragraph 3, change
"do_convert" to "do_in or do_out". Also, in 28.3.4.2.5.3 [locale.codecvt.virtuals], change "do_convert()" to "do_in
or do_out".
25(i). String operator<< uses width() value wrong
Section: 27.4.4.4 [string.io] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [string.io].
View all issues with TC1 status.
Duplicate of: 67
Discussion:
In the description of operator<< applied to strings, the standard says that uses
the smaller of os.width() and str.size(), to pad "as described in stage 3"
elsewhere; but this is inconsistent, as this allows no possibility of space for padding.
Proposed resolution:
Change 27.4.4.4 [string.io] paragraph 4 from:
"... where n is the smaller of os.width() and str.size();
..."
to:
"... where n is the larger of os.width() and str.size();
..."
26(i). Bad sentry example
Section: 31.7.5.2.4 [istream.sentry] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2021-06-06
Priority: Not Prioritized
View all other issues in [istream.sentry].
View all issues with TC1 status.
Discussion:
In paragraph 6, the code in the example:
template <class charT, class traits = char_traits<charT> >
basic_istream<charT,traits>::sentry(
basic_istream<charT,traits>& is, bool noskipws = false) {
...
int_type c;
typedef ctype<charT> ctype_type;
const ctype_type& ctype = use_facet<ctype_type>(is.getloc());
while ((c = is.rdbuf()->snextc()) != traits::eof()) {
if (ctype.is(ctype.space,c)==0) {
is.rdbuf()->sputbackc (c);
break;
}
}
...
}
fails to demonstrate correct use of the facilities described. In
particular, it fails to use traits operators, and specifies incorrect
semantics. (E.g. it specifies skipping over the first character in the
sequence without examining it.)
Proposed resolution:
Remove the example above from [istream::sentry]
paragraph 6.
Rationale:
The originally proposed replacement code for the example was not
correct. The LWG tried in Kona and again in Tokyo to correct it
without success. In Tokyo, an implementor reported that actual working
code ran over one page in length and was quite complicated. The LWG
decided that it would be counter-productive to include such a lengthy
example, which might well still contain errors.
27(i). String::erase(range) yields wrong iterator
Section: 27.4.3.7.5 [string.erase] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-11-12
Priority: Not Prioritized
View all other issues in [string.erase].
View all issues with TC1 status.
Discussion:
The string::erase(iterator first, iterator last) is specified to return an element one
place beyond the next element after the last one erased. E.g. for the string
"abcde", erasing the range ['b'..'d') would yield an iterator for element 'e',
while 'd' has not been erased.
Proposed resolution:
In 27.4.3.7.5 [string.erase], paragraph 10, change:
Returns: an iterator which points to the element immediately following _last_ prior to
the element being erased.
to read
Returns: an iterator which points to the element pointed to by _last_ prior to the
other elements being erased.
28(i). Ctype<char>is ambiguous
Section: 28.3.4.2.4.3 [facet.ctype.char.members] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [facet.ctype.char.members].
View all issues with TC1 status.
Duplicate of: 236
Discussion:
The description of the vector form of ctype<char>::is can be interpreted to mean
something very different from what was intended. Paragraph 4 says
Effects: The second form, for all *p in the range [low, high), assigns vec[p-low] to
table()[(unsigned char)*p].
This is intended to copy the value indexed from table()[] into the place identified in
vec[].
Proposed resolution:
Change 28.3.4.2.4.3 [facet.ctype.char.members], paragraph 4, to read
Effects: The second form, for all *p in the range [low, high), assigns into vec[p-low]
the value table()[(unsigned char)*p].
29(i). Ios_base::init doesn't exist
Section: 31.4.3 [narrow.stream.objects] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [narrow.stream.objects].
View all issues with TC1 status.
Discussion:
Sections 31.4.3 [narrow.stream.objects] and 31.4.4 [wide.stream.objects] mention
a function ios_base::init, which is not defined. Probably they mean
basic_ios<>::init, defined in 31.5.4.2 [basic.ios.cons],
paragraph 3.
Proposed resolution:
[R12: modified to include paragraph 5.]
In 31.4.3 [narrow.stream.objects] paragraph 2 and 5, change
ios_base::init
to
basic_ios<char>::init
Also, make a similar change in 31.4.4 [wide.stream.objects] except it
should read
basic_ios<wchar_t>::init
30(i). Wrong header for LC_*
Section: 28.3.3.1.2.1 [locale.category] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [locale.category].
View all issues with TC1 status.
Discussion:
Paragraph 2 implies that the C macros LC_CTYPE etc. are defined in <cctype>,
where they are in fact defined elsewhere to appear in <clocale>.
Proposed resolution:
In 28.3.3.1.2.1 [locale.category], paragraph 2, change
"<cctype>" to read "<clocale>".
31(i). Immutable locale values
Section: 28.3.3.1 [locale] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [locale].
View all issues with TC1 status.
Duplicate of: 378
Discussion:
Paragraph 6, says "An instance of locale is
immutable; once a facet reference is obtained from it,
...". This has caused some confusion, because locale variables
are manifestly assignable.
Proposed resolution:
In 28.3.3.1 [locale] replace paragraph 6
An instance of locale is immutable; once a facet
reference is obtained from it, that reference remains usable as long
as the locale value itself exists.
with
Once a facet reference is obtained from a locale object by
calling use_facet<>, that reference remains usable, and the
results from member functions of it may be cached and re-used, as
long as some locale object refers to that facet.
32(i). Pbackfail description inconsistent
Section: 31.6.3.5.4 [streambuf.virt.pback] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with TC1 status.
Discussion:
The description of the required state before calling virtual member
basic_streambuf<>::pbackfail requirements is inconsistent with the conditions
described in 27.5.2.2.4 [lib.streambuf.pub.pback] where member sputbackc calls it.
Specifically, the latter says it calls pbackfail if:
traits::eq(c,gptr()[-1]) is false
where pbackfail claims to require:
traits::eq(*gptr(),traits::to_char_type(c)) returns false
It appears that the pbackfail description is wrong.
Proposed resolution:
In 31.6.3.5.4 [streambuf.virt.pback], paragraph 1, change:
"traits::eq(*gptr(),traits::to_char_type( c))"
to
"traits::eq(traits::to_char_type(c),gptr()[-1])"
Rationale:
Note deliberate reordering of arguments for clarity in addition to the correction of
the argument value.
33(i). Codecvt<> mentions from_type
Section: 28.3.4.2.5 [locale.codecvt] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [locale.codecvt].
View all issues with TC1 status.
Duplicate of: 43
Discussion:
In the table defining the results from do_out and do_in, the specification for the
result error says
encountered a from_type character it could not convert
but from_type is not defined. This clearly is intended to be an externT for do_in, or
an internT for do_out.
Proposed resolution:
In 28.3.4.2.5.3 [locale.codecvt.virtuals] paragraph 4, replace the definition
in the table for the case of _error_ with
encountered a character in [from,from_end) that it could not convert.
34(i). True/falsename() not in ctype<>
Section: 28.3.4.3.3.3 [facet.num.put.virtuals] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [facet.num.put.virtuals].
View all other issues in [facet.num.put.virtuals].
View all issues with TC1 status.
Discussion:
In paragraph 19, Effects:, members truename() and falsename are used from facet
ctype<charT>, but it has no such members. Note that this is also a problem in
22.2.2.1.2, addressed in (4).
Proposed resolution:
In 28.3.4.3.3.3 [facet.num.put.virtuals], paragraph 19, in the Effects:
clause for member put(...., bool), replace the initialization of the
string_type value s as follows:
const numpunct& np = use_facet<numpunct<charT> >(loc);
string_type s = val ? np.truename() : np.falsename();
35(i). No manipulator unitbuf in synopsis
Section: 31.5 [iostreams.base] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [iostreams.base].
View all issues with TC1 status.
Discussion:
In 31.5.5.1 [fmtflags.manip], we have a definition for a manipulator
named "unitbuf". Unlike other manipulators, it's not listed
in synopsis. Similarly for "nounitbuf".
Proposed resolution:
Add to the synopsis for <ios> in 31.5 [iostreams.base], after
the entry for "nouppercase", the prototypes:
ios_base& unitbuf(ios_base& str);
ios_base& nounitbuf(ios_base& str);
36(i). Iword & pword storage lifetime omitted
Section: 31.5.2.6 [ios.base.storage] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [ios.base.storage].
View all issues with TC1 status.
Discussion:
In the definitions for ios_base::iword and pword, the lifetime of the storage is
specified badly, so that an implementation which only keeps the last value stored appears
to conform. In particular, it says:
The reference returned may become invalid after another call to the object's iword
member with a different index ...
This is not idle speculation; at least one implementation was done this way.
Proposed resolution:
Add in 31.5.2.6 [ios.base.storage], in both paragraph 2 and also in
paragraph 4, replace the sentence:
The reference returned may become invalid after another call to the object's iword
[pword] member with a different index, after a call to its copyfmt member, or when the
object is destroyed.
with:
The reference returned is invalid after any other operations on the object. However,
the value of the storage referred to is retained, so that until the next call to copyfmt,
calling iword [pword] with the same index yields another reference to the same value.
substituting "iword" or "pword" as appropriate.
37(i). Leftover "global" reference
Section: 28.3.3.1 [locale] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [locale].
View all issues with TC1 status.
Discussion:
In the overview of locale semantics, paragraph 4, is the sentence
If Facet is not present in a locale (or, failing that, in the global locale), it throws
the standard exception bad_cast.
This is not supported by the definition of use_facet<>, and represents semantics
from an old draft.
Proposed resolution:
In 28.3.3.1 [locale], paragraph 4, delete the parenthesized
expression
(or, failing that, in the global locale)
38(i). Facet definition incomplete
Section: 28.3.3.2 [locale.global.templates] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with TC1 status.
Discussion:
It has been noticed by Esa Pulkkinen that the definition of
"facet" is incomplete. In particular, a class derived from
another facet, but which does not define a member id, cannot
safely serve as the argument F to use_facet<F>(loc),
because there is no guarantee that a reference to the facet instance
stored in loc is safely convertible to F.
Proposed resolution:
In the definition of std::use_facet<>(), replace the text in paragraph 1 which
reads:
Get a reference to a facet of a locale.
with:
Requires: Facet is a facet class whose definition
contains the public static member id as defined in 28.3.3.1.2.2 [locale.facet].
[
Kona: strike as overspecification the text "(not inherits)"
from the original resolution, which read "... whose definition
contains (not inherits) the public static member
id..."
]
39(i). istreambuf_iterator<>::operator++(int) definition garbled
Section: 24.6.4.4 [istreambuf.iterator.ops] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2017-11-29
Priority: Not Prioritized
View all other issues in [istreambuf.iterator.ops].
View all issues with TC1 status.
Discussion:
Following the definition of istreambuf_iterator<>::operator++(int) in paragraph
3, the standard contains three lines of garbage text left over from a previous edit.
istreambuf_iterator<charT,traits> tmp = *this;
sbuf_->sbumpc();
return(tmp);
Proposed resolution:
In [istreambuf.iterator::op++], delete the three lines of code at the
end of paragraph 3.
40(i). Meaningless normative paragraph in examples
Section: 99 [facets.examples] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [facets.examples].
View all issues with TC1 status.
Discussion:
Paragraph 3 of the locale examples is a description of part of an
implementation technique that has lost its referent, and doesn't mean
anything.
Proposed resolution:
Delete 99 [facets.examples] paragraph 3 which begins "This
initialization/identification system depends...", or (at the
editor's option) replace it with a place-holder to keep the paragraph
numbering the same.
41(i). Ios_base needs clear(), exceptions()
Section: 31.5.2 [ios.base] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [ios.base].
View all issues with TC1 status.
Duplicate of: 157
Discussion:
The description of ios_base::iword() and pword() in 31.5.2.5 [ios.members.static], say that if they fail, they "set badbit,
which may throw an exception". However, ios_base offers no
interface to set or to test badbit; those interfaces are defined in
basic_ios<>.
Proposed resolution:
Change the description in 31.5.2.6 [ios.base.storage] in
paragraph 2, and also in paragraph 4, as follows. Replace
If the function fails it sets badbit, which may throw an exception.
with
If the function fails, and *this is a base sub-object of
a basic_ios<> object or sub-object, the effect is
equivalent to calling basic_ios<>::setstate(badbit)
on the derived object (which may throw failure).
[Kona: LWG reviewed wording; setstate(failbit) changed to
setstate(badbit).]
42(i). String ctors specify wrong default allocator
Section: 27.4.3 [basic.string] Status: TC1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [basic.string].
View all other issues in [basic.string].
View all issues with TC1 status.
Discussion:
The basic_string<> copy constructor:
basic_string(const basic_string& str, size_type pos = 0,
size_type n = npos, const Allocator& a = Allocator());
specifies an Allocator argument default value that is
counter-intuitive. The natural choice for a the allocator to copy from
is str.get_allocator(). Though this cannot be expressed in
default-argument notation, overloading suffices.
Alternatively, the other containers in Clause 23 (deque, list,
vector) do not have this form of constructor, so it is inconsistent,
and an evident source of confusion, for basic_string<> to have
it, so it might better be removed.
Proposed resolution:
In 27.4.3 [basic.string], replace the declaration of the copy
constructor as follows:
basic_string(const basic_string& str);
basic_string(const basic_string& str, size_type pos, size_type n = npos,
const Allocator& a = Allocator());
In 27.4.3.2 [string.require], replace the copy constructor declaration
as above. Add to paragraph 5, Effects:
In the first form, the Allocator value used is copied from
str.get_allocator().
Rationale:
The LWG believes the constructor is actually broken, rather than
just an unfortunate design choice.
The LWG considered two other possible resolutions:
A. In 27.4.3 [basic.string], replace the declaration of the copy
constructor as follows:
basic_string(const basic_string& str, size_type pos = 0,
size_type n = npos);
basic_string(const basic_string& str, size_type pos,
size_type n, const Allocator& a);
In 27.4.3.2 [string.require], replace the copy constructor declaration
as above. Add to paragraph 5, Effects:
When no Allocator argument is provided, the string is constructed using the
value str.get_allocator().
B. In 27.4.3 [basic.string], and also in 27.4.3.2 [string.require], replace
the declaration of the copy constructor as follows:
basic_string(const basic_string& str, size_type pos = 0,
size_type n = npos);
The proposed resolution reflects the original intent of the LWG. It
was also noted by Pete Becker that this fix "will cause
a small amount of existing code to now work correctly."
[
Kona: issue editing snafu fixed - the proposed resolution now correctly
reflects the LWG consensus.
]
44(i). Iostreams use operator== on int_type values
Section: 31 [input.output] Status: CD1
Submitter: Nathan Myers Opened: 1998-08-06 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [input.output].
View all issues with CD1 status.
Discussion:
Many of the specifications for iostreams specify that character
values or their int_type equivalents are compared using operators ==
or !=, though in other places traits::eq() or traits::eq_int_type is
specified to be used throughout. This is an inconsistency; we should
change uses of == and != to use the traits members instead.
Proposed resolution:
[Pre-Kona: Dietmar supplied wording]
List of changes to clause 27:
-
In lib.basic.ios.members paragraph 13 (postcondition clause for
'fill(cT)') change
fillch == fill()
to
traits::eq(fillch, fill())
-
In lib.istream.unformatted paragraph 7 (effects clause for
'get(cT,streamsize,cT)'), third bullet, change
c == delim for the next available input character c
to
traits::eq(c, delim) for the next available input character c
-
In lib.istream.unformatted paragraph 12 (effects clause for
'get(basic_streambuf<cT,Tr>&,cT)'), third bullet, change
c == delim for the next available input character c
to
traits::eq(c, delim) for the next available input character c
-
In lib.istream.unformatted paragraph 17 (effects clause for
'getline(cT,streamsize,cT)'), second bullet, change
c == delim for the next available input character c
to
traits::eq(c, delim) for the next available input character c
-
In lib.istream.unformatted paragraph 24 (effects clause for
'ignore(int,int_type)'), second bullet, change
c == delim for the next available input character c
to
traits::eq_int_type(c, delim) for the next available input
character c
-
In lib.istream.unformatted paragraph 25 (notes clause for
'ignore(int,int_type)'), second bullet, change
The last condition will never occur if delim == traits::eof()
to
The last condition will never occur if
traits::eq_int_type(delim, traits::eof()).
-
In lib.istream.sentry paragraph 6 (example implementation for the
sentry constructor) change
while ((c = is.rdbuf()->snextc()) != traits::eof()) {
to
while (!traits::eq_int_type(c = is.rdbuf()->snextc(), traits::eof())) {
List of changes to Chapter 21:
-
In lib.string::find paragraph 1 (effects clause for find()),
second bullet, change
at(xpos+I) == str.at(I) for all elements ...
to
traits::eq(at(xpos+I), str.at(I)) for all elements ...
-
In lib.string::rfind paragraph 1 (effects clause for rfind()),
second bullet, change
at(xpos+I) == str.at(I) for all elements ...
to
traits::eq(at(xpos+I), str.at(I)) for all elements ...
-
In lib.string::find.first.of paragraph 1 (effects clause for
find_first_of()), second bullet, change
at(xpos+I) == str.at(I) for all elements ...
to
traits::eq(at(xpos+I), str.at(I)) for all elements ...
-
In lib.string::find.last.of paragraph 1 (effects clause for
find_last_of()), second bullet, change
at(xpos+I) == str.at(I) for all elements ...
to
traits::eq(at(xpos+I), str.at(I)) for all elements ...
-
In lib.string::find.first.not.of paragraph 1 (effects clause for
find_first_not_of()), second bullet, change
at(xpos+I) == str.at(I) for all elements ...
to
traits::eq(at(xpos+I), str.at(I)) for all elements ...
-
In lib.string::find.last.not.of paragraph 1 (effects clause for
find_last_not_of()), second bullet, change
at(xpos+I) == str.at(I) for all elements ...
to
traits::eq(at(xpos+I), str.at(I)) for all elements ...
-
In lib.string.ios paragraph 5 (effects clause for getline()),
second bullet, change
c == delim for the next available input character c
to
traits::eq(c, delim) for the next available input character c
Notes:
-
Fixing this issue highlights another sloppyness in
lib.istream.unformatted paragraph 24: this clause mentions a "character"
which is then compared to an 'int_type' (see item 5. in the list
below). It is not clear whether this requires explicit words and
if so what these words are supposed to be. A similar issue exists,
BTW, for operator*() of istreambuf_iterator which returns the result
of sgetc() as a character type (see lib.istreambuf.iterator::op*
paragraph 1), and for operator++() of istreambuf_iterator which
passes the result of sbumpc() to a constructor taking a char_type
(see lib.istreambuf.iterator::operator++ paragraph 3). Similarily, the
assignment operator ostreambuf_iterator passes a char_type to a function
taking an int_type (see lib.ostreambuf.iter.ops paragraph 1).
-
It is inconsistent to use comparisons using the traits functions in
Chapter 27 while not using them in Chapter 21, especially as some
of the inconsistent uses actually involve streams (eg. getline() on
streams). To avoid leaving this issue open still longer due to this
inconsistency (it is open since 1998), a list of changes to Chapter
21 is below.
-
In Chapter 24 there are several places with statements like "the end
of stream is reached (streambuf_type::sgetc() returns traits::eof())"
(lib.istreambuf.iterator paragraph 1, lib.ostreambuf.iter.ops
paragraph 5). It is unclear whether these should be clarified to use
traits::eq_int_type() for detecting traits::eof().
46(i). Minor Annex D errors
Section: 99 [depr.str.strstreams] Status: TC1
Submitter: Brendan Kehoe Opened: 1998-06-01 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with TC1 status.
Discussion:
See lib-6522 and edit-814.
Proposed resolution:
Change 99 [depr.strstreambuf] (since streambuf is a typedef of
basic_streambuf<char>) from:
virtual streambuf<char>* setbuf(char* s, streamsize n);
to:
virtual streambuf* setbuf(char* s, streamsize n);
In [depr.strstream] insert the semicolon now missing after
int_type:
namespace std {
class strstream
: public basic_iostream<char> {
public:
// Types
typedef char char_type;
typedef typename char_traits<char>::int_type int_type
typedef typename char_traits<char>::pos_type pos_type;
47(i). Imbue() and getloc() Returns clauses swapped
Section: 31.5.2.4 [ios.base.locales] Status: TC1
Submitter: Matt Austern Opened: 1998-06-21 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [ios.base.locales].
View all issues with TC1 status.
Discussion:
Section 27.4.2.3 specifies how imbue() and getloc() work. That
section has two RETURNS clauses, and they make no sense as
stated. They make perfect sense, though, if you swap them. Am I
correct in thinking that paragraphs 2 and 4 just got mixed up by
accident?
Proposed resolution:
In 31.5.2.4 [ios.base.locales] swap paragraphs 2 and 4.
48(i). Use of non-existent exception constructor
Section: 31.5.2.2.1 [ios.failure] Status: TC1
Submitter: Matt Austern Opened: 1998-06-21 Last modified: 2021-06-06
Priority: Not Prioritized
View all other issues in [ios.failure].
View all issues with TC1 status.
Discussion:
27.4.2.1.1, paragraph 2, says that class failure initializes the
base class, exception, with exception(msg). Class exception (see
18.6.1) has no such constructor.
Proposed resolution:
Replace [ios::failure], paragraph 2, with
EFFECTS: Constructs an object of class failure.
49(i). Underspecification of ios_base::sync_with_stdio
Section: 31.5.2.5 [ios.members.static] Status: CD1
Submitter: Matt Austern Opened: 1998-06-21 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with CD1 status.
Discussion:
Two problems
(1) 27.4.2.4 doesn't say what ios_base::sync_with_stdio(f)
returns. Does it return f, or does it return the previous
synchronization state? My guess is the latter, but the standard
doesn't say so.
(2) 27.4.2.4 doesn't say what it means for streams to be
synchronized with stdio. Again, of course, I can make some
guesses. (And I'm unhappy about the performance implications of those
guesses, but that's another matter.)
Proposed resolution:
Change the following sentence in 31.5.2.5 [ios.members.static]
returns clause from:
true if the standard iostream objects (27.3) are
synchronized and otherwise returns false.
to:
true if the previous state of the standard iostream
objects (27.3) was synchronized and otherwise returns
false.
Add the following immediately after 31.5.2.5 [ios.members.static],
paragraph 2:
When a standard iostream object str is synchronized with a
standard stdio stream f, the effect of inserting a character c by
fputc(f, c);
is the same as the effect of
str.rdbuf()->sputc(c);
for any sequence of characters; the effect of extracting a
character c by
c = fgetc(f);
is the same as the effect of:
c = str.rdbuf()->sbumpc(c);
for any sequences of characters; and the effect of pushing
back a character c by
ungetc(c, f);
is the same as the effect of
str.rdbuf()->sputbackc(c);
for any sequence of characters. [Footnote: This implies
that operations on a standard iostream object can be mixed arbitrarily
with operations on the corresponding stdio stream. In practical
terms, synchronization usually means that a standard iostream object
and a standard stdio object share a buffer. --End Footnote]
[pre-Copenhagen: PJP and Matt contributed the definition
of "synchronization"]
[post-Copenhagen: proposed resolution was revised slightly:
text was added in the non-normative footnote to say that operations
on the two streams can be mixed arbitrarily.]
50(i). Copy constructor and assignment operator of ios_base
Section: 31.5.2 [ios.base] Status: TC1
Submitter: Matt Austern Opened: 1998-06-21 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [ios.base].
View all issues with TC1 status.
Discussion:
As written, ios_base has a copy constructor and an assignment
operator. (Nothing in the standard says it doesn't have one, and all
classes have copy constructors and assignment operators unless you
take specific steps to avoid them.) However, nothing in 27.4.2 says
what the copy constructor and assignment operator do.
My guess is that this was an oversight, that ios_base is, like
basic_ios, not supposed to have a copy constructor or an assignment
operator.
Jerry Schwarz comments: Yes, its an oversight, but in the opposite
sense to what you're suggesting. At one point there was a definite
intention that you could copy ios_base. It's an easy way to save the
entire state of a stream for future use. As you note, to carry out
that intention would have required a explicit description of the
semantics (e.g. what happens to the iarray and parray stuff).
Proposed resolution:
In 31.5.2 [ios.base], class ios_base, specify the copy
constructor and operator= members as being private.
Rationale:
The LWG believes the difficulty of specifying correct semantics
outweighs any benefit of allowing ios_base objects to be copyable.
51(i). Requirement to not invalidate iterators missing
Section: 23.2 [container.requirements] Status: TC1
Submitter: David Vandevoorde Opened: 1998-06-23 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [container.requirements].
View all issues with TC1 status.