2.3 - חישוב בזמן בנייה ומודולריות - תרגול
תרגול - טבלה לפני ההרצה¶
כתבו פונקציית constexpr שמייצרת array של חזקות של שתיים, לגודל שבין אחד לשלושים ושתיים. השתמשו ב־uint32_t והגדירו את הגבול כך שלא מתבצעת הזזה ברוחב הטיפוס או מעבר לו.
בדקו בזמן קומפילציה את האיבר הראשון ואת האחרון עבור גודל שמונה. הוסיפו בדיקת קומפילציה שלילית עבור גודל שלושים ושלוש.
אתחול קבוע ונתון משתנה¶
הגדירו מונה constinit שערכו ההתחלתי אפס והגדילו אותו בזמן ריצה. הסבירו למה constinit אינו תחליף ל־const או ל־atomic.
שתי יחידות תרגום¶
צרו header עם inline variable ושתי פונקציות בשני קובצי cpp שמחזירות את כתובתו. בדקו אם הכתובות זהות. החליפו את inline ב־static, בנו מחדש והשוו את המודל שנוצר.
מודול¶
בנו את מודול arithmetic מההרצאה. שנו רק את המימוש של add_small ואתרו אילו תוצרים צריך לבנות מחדש. תעדו גרסת כלים ופקודות, ואל תסיקו משינוי בודד מסקנה כללית על מהירות כל הפרויקט.