是否可以将函数编写为:
void func(uint64_t val) {template <typename T>
void call_with(std::function<void(T)> f, T val) { f(val); }
int main() { auto print = [](int x) { std::cout << x; }; call_with(打印, 42); }}
uint64_t
如果使用任何其他整数类型而不是在不修改我的警告的情况下调用它,则会在哪里生成编译时错误#pragma
?
IE:
uint32_t x = 0;
func(x) {…} // Error!
func(uint64_t(x)) {…} // Succes!