Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ STL*-traits类是如何工作的?_C++_Templates_Design Patterns_Interface_Stl - Fatal编程技术网

C++ STL*-traits类是如何工作的?

C++ STL*-traits类是如何工作的?,c++,templates,design-patterns,interface,stl,C++,Templates,Design Patterns,Interface,Stl,模板类,如分配器、迭代器和类型,除了可以有默认的实现外,它们的行为类似于其他类要实现的编译时接口。这似乎是一个非常方便的特性,但是我找不到任何关于如何实现这种设计模式的教程或通用文档。它们是如何工作的?如何编写这样的类?和。我知道模板是什么。这两个来源都不够深入,无法涵盖如何重新实现分配器类。例如,分配器_traits包含一个名为const_pointer的类型,根据定义,该类型是Alloc::const_pointer(如果存在),否则std::pointer_traits::根据重新绑定。我

模板类,如分配器、迭代器和类型,除了可以有默认的实现外,它们的行为类似于其他类要实现的编译时接口。这似乎是一个非常方便的特性,但是我找不到任何关于如何实现这种设计模式的教程或通用文档。它们是如何工作的?如何编写这样的类?

和。我知道模板是什么。这两个来源都不够深入,无法涵盖如何重新实现分配器类。例如,分配器_traits包含一个名为const_pointer的类型,根据定义,该类型是Alloc::const_pointer(如果存在),否则std::pointer_traits::根据重新绑定。我怎么能有一个类型,它引用一个事物,如果它存在,但默认为另一个,就像那样?你应该更具体一些。对于这样的事情,我想他们必须使用。这是我的想法,但我会等待更有知识的人来回答。目前来看,这个问题太开放了。它们是如何工作的嗯,它是C++。请你尽量缩小这个问题的范围,你肯定会得到一个很好的答案开始。我不知道一本书或来源,可以教当前的燃烧边缘的C++。