V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
northisland
V2EX  ›  问与答

C++问题。make_pair 为什么曾经存在过? pair 可以直接代替啊?

  •  
  •   northisland · Jun 28, 2017 · 2625 views
    This topic created in 3225 days ago, the information mentioned may be changed or developed.

    我这个 C++小菜鸟,觉得

    make_pair<int, int>(0, 1)
    

    pair<int, int>(0, 1)
    

    执行效果是一样的啊,

    • 为什么历史上会存在 make_pair 这种函数?

    • 今后 make_pair 是不是要被逐渐淘汰?

    • 有人能讲讲 make_shared 发生了什么就更好了,,,我的猜想是把一个栈内存的对象,搞到堆里去。

    5 replies    2017-06-28 18:46:41 +08:00
    wangjxxx
        2
    wangjxxx  
       Jun 28, 2017   ❤️ 1
    Effective modern c++
    gnaggnoyil
        3
    gnaggnoyil  
       Jun 28, 2017 via Android   ❤️ 1
    template function 可以省略模板参数由编译器帮助推断,而 template class 则不行,除了 c++17 新加的那个 deduction guide
    gnaggnoyil
        4
    gnaggnoyil  
       Jun 28, 2017 via Android
    所以,make_pair 将来确实会消亡,但
    gnaggnoyil
        5
    gnaggnoyil  
       Jun 28, 2017 via Android
    那也主要是 deduction guide 的原因,而不是楼主说的那样
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1829 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 577ms · UTC 16:22 · PVG 00:22 · LAX 09:22 · JFK 12:22
    ♥ Do have faith in what you're doing.