בתשובה לחובבן, 14/12/06 20:22
קשה ב C קל בקרב (וב lisp) 424609
מצד שני, כל מה שאפשר לעשות בעזרת לולאה אפשר לעשות גם בעזרת רקורסיה, וכאלה דווקא יש ב-templates.
קשה ב C קל בקרב (וב lisp) 424619
אפשר גם במכונת טיורינג
;)
קשה ב C קל בקרב (וב lisp) 424657
אם זה מעניין אותך, אז הנה שני מאמרי מבוא ל-template metaprogramming ב-C++ של טוד ולדהויזן:

(הפרויקט השנתי שעשיתי בסוף התואר, יחד עם אייל ותיק, היה לתכנן ולממש ספריית מטריצות מתוחכמת לחישובים "כבדים" תוך שימוש ב-template metaprogramming)
קשה ב C קל בקרב (וב lisp) 424787
תודה זה אכן מענין. קראתי לפני כמה שנים את Modern C++ Design, ואני עוקב מדי פעם אחרי boost.
בהמשך למה שנאמר, ניראה ש metaprogramming ב ++C, זה יותר feature שיצא משליטה מאשר תיכנון אלגנטי.
יש לנו למעשה שלוש שפות שונות, שמייצרות אחת את השניה:
C preprocessor,
metaprogramming
++C
אבל אין ממש קשר בין הסינטקס והיכולות של השפות האלה.
אני משווה את זה ל defmacro של lisp, ואני נידהם מהאלגנטיות. למה לא להשתמש באותו סינטקס ל preprocessor ולשפה עצמה?
פשוט גדול.
קשה ב C קל בקרב (וב lisp) 424792
קצת התנתקתי מ-C++ בשנים האחרונות. ממה שאני זוכר, הנטייה היא להיפטר מה-preprocessor ולהחליף macros ב-templates, כדי להקל על המתכנת במניעת שגיאות טיפוסים.

האם metaprogramming זה פיצ'ר שיצא משליטה? יכול להיות ואני יכול להבין את מי שיטען זאת. מצד שני, יש שיאמרו שזה מה שיפה בזה - ההפתעה של "מה אשפר לעשות עם זה למרות שמתכנני המנגנון לא חשבו על זה".

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים