经过大量的std::shared_ptr<myNs::MyClass>
写, 祝指针可以这样写:我希望std :: shared_ptr可以像MyClass @ ptr = @(new MyClass())一样写入;
MyClass* rawPtr = new MyClass(); // raw pointer
[email protected] refPtr = @(new MyClass()); // std::shared_ptr
MyClass# gcPtr = #(new MyClass()); // GC pointer, for future
因此函数:
void CRAIIMFCApplication1View::ConsumeThreadResult(
std::vector<std::shared_ptr<ThreadParam> > threadParamsVecPtr,
std::shared_ptr<CalculationResult> calculationResultPtr)
{
...
}
可以在短期内这样写:
void CRAIIMFCApplication1View::ConsumeThreadResult(
std::vector<[email protected]> threadParamsVecPtr,
[email protected] calculationResultPtr)
{
...
}
有这样的诀窍吗?
====================== UPDATE1 ====================== ===
非常感谢@tahsmith。 现在我用的是以下typedef
template<typename T> using $ = std::shared_ptr<T>;
template<typename T> using vector$ = std::vector<std::shared_ptr<T> >;
的代码可以这样写:
void CRAIIMFCApplication1View::ConsumeThreadResult(
vector$<ThreadParam> threadParamPtrVec,
$<CalculationResult> calculationResultPtr)
{
...
}
你在哪里得到这个语法? – AngryDuck
'typedef'如何? 'typedef std :: vector> ThreadParamPtrs';使用SharePtrVector = STD –
Jagannath
或'模板 ::矢量<性病:: shared_ptr的>' –
tahsmith