考虑以下代码:
#include <queue>
#include <memory>
std::shared_ptr<char> oneSharedPtr(new char[100]);
std::queue<std::shared_ptr<char>> stringQueue;
stringQueue.queue(oneSharedPtr);
这导致
error C2274: 'function-style cast' : illegal as right side of '.' operator
为什么是这样?在队列中使用共享指针是否安全(共享指针的引用计数是否会在弹出时变为 0)?