How to call a templated function if it exists, and something else otherwise?

后端 未结 7 467
忘掉有多难
忘掉有多难 2021-01-30 10:58

I want to do something like

template 
void foo(const T& t) {
   IF bar(t) would compile
      bar(t);
   ELSE
      baz(t);
}
7条回答
  •  执笔经年
    2021-01-30 11:32

    //default
    
    ////////////////////////////////////////// 
        template 
        void foo(const T& t){
            baz(t);
        }
    
    //specializations
    //////////////////////////////////////////  
    
        template <>
        void foo(const specialization_1& t){
            bar(t);
        }
        ....
        template <>
        void foo(const specialization_n& t){
            bar(t);
        }
    

提交回复
热议问题