zoukankan      html  css  js  c++  java
  • c++中的函数名带箭头

    1.概览

    • 1.1 函数名中的箭头,用来表明函数的return type,其使用在函数的返回类型需要通过模板参数进行推导,使用在decltype()和declval()不方便的场景

    2.正文

    c++ 中提供了如下的方式,定义一个函数以及返回值

    return-type identifier ( argument-declarations... )
    如: int fn(....){...}
    

    以及

    auto identifier ( argument-declarations... ) -> return_type
    如: auto identifier(...) -> int {...}
    

    原因是: 当使用decltype进行返回类型推导的时候,是无法获取到模板参数的,需要使用declval进行辅助推导

    //这种方法无法做到
    template <typename T1, typename T2>
    decltype(a + b) compose(T1 a, T2 b);
    
    //需要使用declval
    template <typename T1, typename T2>
    decltype(std::declval<T1>() + std::declval<T2>()) compose(T1 a, T2 b);
    

    由于使用declval()这种方法太过于繁琐,所以搞出了这东西

    template <typename T1, typename T2>
    auto compose(T1 a, T2 b) -> decltype(a + b);
    

    3.ref

    3.1arrow-operator-in-function-heading

  • 相关阅读:
    查看java代码,命令,ctrl+r
    JVM调优
    springboot线程池
    jpa
    复制java对象,jpa,save
    springboot添加切面
    gunicorn 实现 gevent 多线程
    经典算法
    python-生僻字转拼音
    HTML介绍
  • 原文地址:https://www.cnblogs.com/ishen/p/13190179.html
Copyright © 2011-2022 走看看