我感到困惑使用的優勢:: MPL :: bool_,而不是一個常量布爾
bool_<true>
和
bool_<false>
類型反對簡單地使用const的布爾變量的優勢模板元編程的上下文。
boost :: mpl庫顯然更喜歡第一種方法,並且定義了像and_,or_這樣的幫助函數來幫助管理這種bool_。像if_這樣的條件元函數「取」一個bool_作爲第一個(模板)參數,但在後臺「調用」一個if_c元函數,這個函數需要一個(const)布爾作爲第一個(模板)參數。
這個決定背後的理由是什麼?
非常感謝您的幫助!
謝謝,這是一個很好的例子! – stepelu 2010-10-21 13:31:35
哦,是的,我忘了重載! – sbi 2010-10-21 13:59:46
這是一個很好的答案,但它比必要的更冗長得多。你可以寫'do_something(boost :: is_pointer())',它將以幾乎相同的方式完成同樣的事情。 –
2011-11-28 16:46:36