⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c&c++ young library +

📁 一个类STL的多平台可移植的算法容器库,主要用于嵌入式系统编程时的内存管理等方面
💻
📖 第 1 页 / 共 2 页
字号:
标准库的依赖很大,如果是在嵌入式系统上使用的话,这些标准库函数并不一定能得到完
全的支持,因此,在嵌入式系统中yc_string.*要慎用。目前的C编译器对宽字符的支持不
甚理想。比较好的是在PC以上的硬件平台上使用的编译器,而像编译DSP、ARM等嵌入式硬
件平台程序的C编译器根本就不支持宽字符。然而即使是在PC平台上,Microsoft Visual C++、
Borland C++ Builder等主流编译器对宽字符也并不是完全支持,而像GCC这种号称可移植
的编译器,相同版本的编译器在不同的硬件平台上会呈现出完全不同的支持,而国际上流
行的编码方式也多为比宽字符更长的多字节编码。基于这些考虑,我并不建议使用标准库
定义的宽字符,感觉用处不大!


    **2.2**
    youngcpp程序库的移植。


    *2.2.1*
    youngcpp程序库是一个C++模板库,实现这个库的目的是想验证能否以youngc为内核,
以C++ template为shell,实现一个接口与STL兼容的模板库,在完成并试验了vector之后,
发现是可行的,于是干脆把STL的容器全部实现了。由于youngcpp的容器类具有move语意,
所以使用youngcpp实现复合容器具有比STL更高的效率。
    youngcpp是以标准C++的模板来实现的,因此大多数嵌入式平台使用的C++编译器都无
法正确编译,事实上,除了GCC目前我所用过的嵌入式平台编译器均无法编译。在PC平台
上,Borland C++ Builder 6(SP4)勉强可以编译,Microsoft Visual C++ 7.1以下的微软
编译器是无法编译的,GCC 3.2以下的版本可能也无法通过编译,GCC 4.0以上的版本我没
有用过,不知道是否能顺利编译。


    *2.2.2*
    ylib-$(VERSION)/young/youngcpp.hpp 包含有 youngcpp 库中所有的头文件,直接包
含该文件会简单很多。下面列出 youngcpp 子库中各个文件的功能及其依赖关系:
-------------------------------------------------------------------------------
      文件名                            功能                      包含文件
-------------------------------------------------------------------------------
    ycpp_configuration.hpp           youngcpp程序库条件编译宏设置文件       无
    ycpp_function.hpp         传递给youngc函数指针的适配函数         无
    ycpp_functional.hpp       扩展的function object               youngc/yc_function.h
                                                                  ycpp_string.hpp
    ycpp_algorithm.hpp        对STL算法的扩展                     cstring
                                                                  iterator
                                                                  algorithm
                                                                  ycpp_traits.hpp
    ycpp_traits.hpp           特性萃取                            ycpp_configuration.hpp
                                                                  type_traits(TR1增补)
    ycpp_memory.hpp           存储管理                            new
                                                                  cstring
                                                                  ycpp_traits.hpp
    ycpp_vector.hpp           同STL的vector容器                   memory
                                                                  iterator
                                                                  stdexcept
                                                                  algorithm
                                                                  youngc/yc_dymemarr.h
                                                                  youngc/yc_dyrscarr.h
                                                                  ycpp_memory.hpp
    ycpp_deque.hpp            同STL的deque的容器                  memory
                                                                  iterator
                                                                  stdexcept
                                                                  algorithm
                                                                  youngc/yc_chkarray.h
                                                                  ycpp_memory.hpp
    ycpp_list.hpp             同STL的list的容器                   memory
                                                                  iterator
                                                                  stdexcept
                                                                  youngc/yc_dblnklst.h
                                                                  youngc/yc_memory.h
                                                                  ycpp_memory.hpp
                                                                  ycpp_function.hpp
                                                                  ycpp_algorithm.hpp
    ycpp_slist.hpp            单链表模板容器的实现                memory
                                                                  iterator
                                                                  stdexcept
                                                                  youngc/yc_sglnklst.h
                                                                  youngc/yc_memory.h
                                                                  ycpp_memory.hpp
                                                                  ycpp_function.hpp
                                                                  ycpp_algorithm.hpp
    ycpp_map.hpp              同STL的map、multimap的容器          memory
                                                                  utility
                                                                  iterator
                                                                  algorithm
                                                                  functional
                                                                  youngc/yc_bbstree.h
                                                                  youngc/yc_memory.h
                                                                  ycpp_memory.hpp
                                                                  ycpp_function.hpp
    ycpp_set.hpp              同STL的set、multiset的容器          memory
                                                                  utility
                                                                  iterator
                                                                  algorithm
                                                                  functional
                                                                  youngc/yc_bbstree.h
                                                                  youngc/yc_memory.h
                                                                  ycpp_memory.hpp
                                                                  ycpp_function.hpp
    ycpp_unordered_map.hpp    同TR1新增的unordered_map、          memory
                              unordered_multimap容器              utility
                                                                  iterator
                                                                  functional
                                                                  youngc/yc_hashtable.h
                                                                  youngc/yc_memory.h
                                                                  ycpp_memory.hpp
                                                                  ycpp_function.hpp
                                                                  ycpp_functional.hpp
    ycpp_unordered_set.hpp    同TR1新增的unordered_set、          memory
                              unordered_multiset容器              utility
                                                                  iterator
                                                                  functional
                                                                  youngc/yc_hashtable.h
                                                                  youngc/yc_memory.h
                                                                  ycpp_memory.hpp
                                                                  ycpp_function.hpp
                                                                  ycpp_functional.hpp
-------------------------------------------------------------------------------


    *2.2.3*
    youngcpp子库的移植主要由ycpp_configuration.hpp中定义的条件编译宏来完成控制,定义的
宏及其含义如下:

    1、__MACRO_CPLUSPLUS_YOUNG_LIBRARY_COMPILER_SUPPORT_LONG_LONG_TYPE__
    若C++编译器支持long long类型,则定义该宏。

    2、__MACRO_CPLUSPLUS_YOUNG_LIBRARY_COMPILER_SUPPORT_C95_WIDE_CHARACTER__
    若C++编译器及附带的标准库支持ISO C95标准定义的宽字符功能,则定义该宏。

    3、__MACRO_CPLUSPLUS_YOUNG_LIBRARY_COMPILER_SUPPORT_STANDARD_TYPE_TRAITS__
    若C++编译器及附带的标准库支持TR1定义的<type_traits>文件,则定义该宏。

    4、__MACRO_CPLUSPLUS_YOUNG_LIBRARY_COMPILER_SUPPORT_STANDARD_HASH_FUNCTION_OBJECT__
    若C++编译器及附带的标准库支持TR1定义的<functional>中新增的hash function object,
则定义该宏。


    *2.2.4*
    使用建议:
    由于youngcpp的底层实现是建立在youngc基础上的模板库,因此编译youngcpp的时候,
需要将其所依赖的各个youngc模块加入工程,依赖关系可以参看2.2.2列出的程序库文件表。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -