在C++中,static_assert
允許你在編譯時進行斷言檢查
#include <iostream>
#include <type_traits>
template <typename T>
void my_function(T t) {
// 在這里使用你的函數實現
}
int main() {
// 使用static_assert進行類型檢查
static_assert(std::is_integral<int>::value, "int類型是必需的");
static_assert(std::is_floating_point<double>::value, "double類型是必需的");
my_function(42); // 正確:int類型
// my_function(3.14); // 錯誤:double類型是必需的
return 0;
}
在這個例子中,我們使用了std::is_integral
和std::is_floating_point
來檢查模板參數T
是否為整數或浮點數。如果類型不匹配,編譯器將顯示自定義的錯誤消息。
你可以根據需要創建自己的類型特性(type traits)或者使用標準庫提供的類型特性來定制static_assert
的錯誤消息。