יום שישי, ינואר 23, 2026

מה שאני מחכה לו ב C++26 החוזים הולכים לעשות חיים טובים עם C++ למי שצריך לעבוד עם SAL

כל הכבוד לוועידת ה C++ ו C++26 , בשעה טובה ככל הנראה יש לנו תחליף מדהים לחלק מדרישות ה  SAL שאני צריך, זה לא יחליף לחלוטין , לפחות בהתחלה (זה נועד לזמן ריצה ולא רק לבודק הסטטי) , אבל כמו שאני מכיר את המפתחים המדהימים של הקומפיילרים , וכמו שאני מכיר VS, זה יהיה יגיע די מהר.  הייתרון של זה , שזה חלק מהשפה ויאפשר עבודה טובה יותר בין סביבות שונות יותר, זה לא רק ב SAL זה חלק מהשפה. זה יהיה יותר נגיש עבור אנשים אחרים וחדשים בשפה.
  
נקודה חשובה שמצטרפת לנו ב C++26 הוא שימוש ב preconditions ו postconsition לפונקציות , זה נעשה דרך חוזים (Contract)
 
דוגמא ? כמובן ! 
int doSomething(const int fp_amount_of_coins) pre (fp_amount_of_coints > 0  && "amount of coins must be a non zero value") 
וכמובן שיש גם post והחלק החשוב שבשונה מ SAL ניתן להשתמש בפונקציות בצורה ברורה:
;void clear() post (empty()) 
וכמובן שאם אנחנו צריכים להתייחס לערך החזרה אפשר גם להגדיר אותו :
 int doSomething(const int fp_amount_of_coins) post (r: r != 0)
  
אני רוצה לציין שהדבר הזה הולך לחסוך לי הרבה מאוד עבודה, ויאפשר לי עבודה נוחה יותר. 
 
הדוגמאות אינן שלי, אלא של מארק גרגורי. 

ממליץ בחום לעבור על https://en.cppreference.com/w/cpp/language/contracts.html , אני אישית עובר על זה בשביל להית בטוח שאני מבין את כל הנקודות החשובות.

אין תגובות: