比方说,我们创建了 C 的重新实现,唯一的区别是
类型是推断出来的。存储类和修饰符仍然需要
给定(const、static、restrict 等),让我们将注意力限制在单个
暂时归档 C 程序。能做到吗?主要有哪些
障碍?
关于可能导致类型推断问题的一些想法
这些问题需要一些用户注释,但不应该太多
繁重的,是否有一些致命的问题使这个想法从水中消失?
编辑:为了澄清,我不是在谈论添加泛型或多态性,只是对现有 C 类型进行类型推断。
2014 年编辑:任何对这个概念感兴趣的人都可能想研究一下Rust http://rust-lang.org
GCC 5.1 支持:
-
__auto_type
扩展,类似 C++11auto
-
typeof
扩展,类似于 C++11decltype
/* Same as: double j = 0.5; */
typeof(1 + 0.5) j = 0.5;
assert(j == 0.5);
Linux 内核示例:Linux 内核中的类型检查宏如何工作? https://stackoverflow.com/questions/10393844/how-does-the-typecheck-macro-from-the-linux-kernel-work
-
_Generic
C11关键字:C11 中 _Generic 的语法和示例用法 https://stackoverflow.com/questions/9804371/syntax-and-sample-usage-of-generic-in-c11
__auto_type i = 1;
assert(_Generic((i), int: 1, default: 0));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)