模版类中嵌套自定义模版类型

来源:互联网 发布:超市播音软件免费版 编辑:程序博客网 时间:2024/04/30 02:14
/*  * File:   main.cpp * Author: Vicky.H * */#include <iostream>#include <cstddef>class alloc {};inline size_t __deque_buf_size(size_t n, size_t sz) {    return n != 0 ? n : (sz < 512 ? size_t(512 / sz) : size_t(1));}// 模版类中嵌入模版自定义类型template <class T, class Ref, class Ptr, size_t BufSize>struct __deque_iterator {    typedef __deque_iterator<T, Ref, Ptr, BufSize> iterator;    typedef __deque_iterator<T, const Ref, const Ptr, BufSize> const_iterator;    static size_t buf_size() {        return __deque_buf_size(BufSize, sizeof (T));    }};template <class T, class Alloc = alloc, size_t BufSize = 0 >class deque {public:    typedef __deque_iterator<T, T&, T*, BufSize> iterator;    typedef __deque_iterator<T, const T&, const T*, BufSize> const_iterator;};/* *  */int main(void) {    std::cout << (deque<int>::iterator::buf_size()) << std::endl; // 128 = 512 / 4    std::cout << (deque<int, alloc, 64 > ::const_iterator::buf_size()) << std::endl; // 64    return 0;}

原创粉丝点击