เนื่องจากP0593 การสร้างวัตถุโดยปริยายสำหรับการจัดการวัตถุระดับต่ำได้รับการยอมรับวัตถุจึงอาจถูกสร้างโดยนัยใน C ++ 20
โดยเฉพาะถ้อยคำที่นำโดยข้อเสนอที่จะช่วยให้การดำเนินการบางอย่าง (เช่นstd::malloc
) เพื่อสร้างโดยอัตโนมัติและเริ่มต้นชีวิตของวัตถุบางชนิดที่เรียกว่าประเภทนัยชีวิต , ถ้าการแนะนำของวัตถุดังกล่าวจะทำให้โปรแกรมที่มีพฤติกรรมที่ไม่ได้กำหนดไว้เป็นอย่างอื่นที่จะมี พฤติกรรมที่กำหนดไว้ ดู[intro.object] / 10
ตอนนี้ร่างเพิ่มเติมกล่าวว่าหากมีหลายชุดของวัตถุดังกล่าวที่สามารถสร้างขึ้นโดยปริยายเพื่อให้พฤติกรรมที่กำหนดโปรแกรมมันจะไม่ได้ระบุชุดของชุดเหล่านี้จะถูกสร้างขึ้น (ดูเหมือนว่าประโยคที่เกี่ยวข้องจะไม่ปรากฏในการแก้ไขข้อเสนอล่าสุดที่ฉันสามารถเข้าถึงได้ R5 แต่อยู่ในร่างข้อตกลง)
จริง ๆ แล้วมีโปรแกรมที่ตัวเลือกของชุดวัตถุที่สร้างขึ้นโดยปริยายนี้สามารถสังเกตได้หรือไม่? ในคำอื่น ๆ มีโปรแกรมที่มีการกำหนด แต่ไม่ได้ระบุพฤติกรรมผ่านกฎใหม่นี้เช่นว่ามันเป็นไปได้ที่จะอนุมานจากการส่งออกซึ่งชุดประเภทของวัตถุโดยปริยาย (มากกว่าหนึ่งที่เป็นไปได้มากกว่าหนึ่ง) ถูกสร้างขึ้น?
หรือประโยคนี้มีความหมายเพียงเพื่อชี้แจงการดำเนินการของโปรแกรมบนเครื่องนามธรรม (โดยไม่มีผลกระทบที่สังเกตได้)?
std::malloc
) มิฉะนั้นคุณจะพบปัญหากับคำจำกัดความ ขึ้นอยู่กับอนาคต