小编isc*_*nko的帖子

是否可以强制 Clojure 使用原始类型而不是盒装版本?

我有以下代码示例:

(type (apply / [5.0 0]))
Run Code Online (Sandbox Code Playgroud)

它引发意外错误 - “除以零”(预期行为:返回 Inf)

可能是由于自动装箱而发生的 - 可以预防吗?

java boxing clojure division divide-by-zero

5
推荐指数
1
解决办法
252
查看次数

C++ 自动返回类型

我写了一个看起来像这样的函数:

auto fn(auto x) {
    return x;
}
Run Code Online (Sandbox Code Playgroud)

我用不同的参数调用了它两次:

std::cout << fn(3124) << std::endl;
std::cout << fn("hello world") << std::endl;
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我不明白为什么 - 我认为编译器推导出函数的常量返回类型 - int(由于第一次调用 - fn(3124))。似乎编译时生成的函数看起来像

template<typename T>;
T fn(T x) {
   return x;
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么。请解释。

c++ templates auto c++20

1
推荐指数
1
解决办法
164
查看次数

标签 统计

auto ×1

boxing ×1

c++ ×1

c++20 ×1

clojure ×1

divide-by-zero ×1

division ×1

java ×1

templates ×1