我有一个以下有缺陷的程序。逻辑是无稽之谈,这只是一个玩具例子。
#include <ranges>
#include <iostream>
#include <fmt/format.h>
#include <fmt/ranges.h>
template<typename T>
constexpr bool size_is_4(){
return sizeof(T)==4;
}
int main() {
std::cout << fmt::format("float size is 4 bytes : {}\n", size_is_4<float>);
std::cout << fmt::format("double size is 4 bytes : {}\n", size_is_4<double>);
}
Run Code Online (Sandbox Code Playgroud)
输出是
float 大小为 4 个字节:true
double 大小为 4 个字节:true
问题是我传递了一个函数指针fmt::format并将其作为布尔值打印出来。修复很简单,只需调用该函数即可,但我想知道是否有一种方法可以捕获这样的错误。
由于函数返回,bool它作为输出实际上看起来很合理。
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |