减少模板参数的后果

时间:2016-03-26 21:29:13

标签: c++ templates

我读过这些SO帖子[12]以及this一个,但很惊讶地得到以下结果:

  1. 首先订购:

    template<typename T> // template (a)
    void f(T);
    
    template<typename T> // template (b)
    f(T*);             
    
    template<>           // template (c)
    f<>(int*);
    
    // ...
    
    int *p;  f<int*>(p); // calls (a)
    
  2. 第二次订购:

    template<typename T> // template (a)
    void f(T);
    
    template<>           // template (c)
    f<>(int*);
    
    template<typename T> // template (b)
    f(T*); 
    
    // ...
    
    int *p;  f<int*>(p); // calls (c)
    
  3. 为什么在第一次排序(而不是模板(c))中选择了模板(a)?

0 个答案:

没有答案