xg436 2021-11-19 23:03 采纳率: 0%
浏览 27
已结题

C++如何实现类似std::make_shared的这种 函数名<类>(可变参数)的形式

这是我自己试着写的代码

#include <iostream>
struct A
{
    A(){};
    virtual void test()=0;
};
struct B: A
{
    B(int i){};
    void test(){};
};
struct C: A
{
    C(double d){};
    void test(){};
};
 template<class F, class... Args>
 inline F* make(Args&&... a)
{
    return new F(a);
}
int main()
{
    B* b = new B(2);
    auto c = std::make_shared<A>(b);//为什么报错
    A* a = make<B>(2);//想要实现这种效果
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-11-22 11:07
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 修改了问题 11月19日
  • 创建了问题 11月19日