1.编译的严谨性
(1) 头文件的正确性
C++ 采用"separate compilation"(分离式编译)意思就是说在编译一个 foo.cpp时,唯一的对其他依赖代码的要求就只是看到它们的头文件 (header files),所以,只要每次编译时可以确保 foo.cpp和它 include的所有header files都是一致的就可以了。但是,我们目前并没有做到这一点,因为,
- 一个员工不同时候的编译
- 不同员工的编译
- 不同机器上的编译
在以上的各种情况下,这些 header文件有可能不同或被其他人更改而无法察觉:
- linux headers
- glibc headers
- gcc headers
- 三方库 headers
alicpp 意在解决这个问题,因为在 alicpp环境下编译时,所有以上文件,甚至包括编译器本身,都是 alicpp gitrepo里的文件,并且这些文件是只读的(永远不会更改内容)。