經過大量的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