声明一个像as一样的指针
CAMArrayRefHash<AMPSDK::H264Video::SEQ_PARAMETER_SET_RBSP>* h264_sps;
Run Code Online (Sandbox Code Playgroud)
最后为它创建一个实例:
h264_sps = new CAMArrayRefHash<AMPSDK::H264Video::SEQ_PARAMETER_SET_RBSP>();
Run Code Online (Sandbox Code Playgroud)
在C++ 11/14/17中有一个简单的方法吗?例如,auto new
h264_sps = auto new;
Run Code Online (Sandbox Code Playgroud)
#include <utility>
#include <iterator>
int main()
{
int* p;
p = new std::decay_t<decltype(*p)>;
p = new std::iterator_traits<decltype(p)>::value_type();
}
Run Code Online (Sandbox Code Playgroud)
或者我们可以通过模板参数推导获得创意:
#include <utility>
#include <iterator>
template<class Ptr, class...Args>
Ptr make_new(Ptr& p, Args&&...args)
{
p = new std::decay_t<decltype(*p)>(std::forward<Args>(args)...);
return p;
}
int main()
{
int* p;
// warning: initialises p
make_new(p);
// initalise p and return a copy to ease use in algorithms
auto pcopy = make_new(p);
}
Run Code Online (Sandbox Code Playgroud)