לדלג לתוכן

2.2 - אילוצים וממשקים גנריים - תרגול

תרגול - דרישה שאפשר להצדיק

כתבו concept בשם Resettable שבודק שאפשר לקרוא ל־reset על אובייקט לא קבוע ושהתוצאה היא void. הגדירו טיפוס שעובר את הדרישה וטיפוס שבו reset מחזירה int, ולכן אמור להידחות.

כתבו פונקציה גנרית שמבצעת reset, והסבירו אילו טענות על מצב האובייקט אחרי הקריאה עדיין אינן נובעות מהconcept.

הוספת חוזה אי־זריקה

כתבו concept נוסף שמחייב גם noexcept. הדגימו טיפוס שעובר את הראשון ונכשל בשני. הסבירו באיזה סוג מימוש הייתם צריכים את הדרישה החזקה יותר.

חבילה וסדר

כתבו פונקציה שמדפיסה מספרים לפי סדר קבלתם באמצעות fold עם אופרטור פסיק. בדקו חבילה ריקה וחבילה של שלושה איברים, והסבירו מהו הסדר שהאופרטור הנבחר נותן לכם.

דרישה סמנטית

הציעו טיפוס שעובר concept של השוואה אבל מפר את המשמעות שאלגוריתם מיון צריך. אין להריץ אלגוריתם עם comparator שחוזהו שבור; מספיק להציג שלישיית ערכים שמפרה את הכלל ולהסביר את התוצאה.