northisland
V2EX  ›  问与答

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

  •  
  •   northisland · Jun 28, 2017 · 2717 views
    This topic created in 3250 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   ·   934 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:03 · PVG 04:03 · LAX 13:03 · JFK 16:03
    ♥ Do have faith in what you're doing.