我试图使用一个使用smartpointer向量的类,并使用它必须自己实现的引用计数。 一切正常,但当我尝试从我的向量中删除迭代器时,我得到以下错误: (内部算法) 语义问题 没有可行的超载' =' 发生在:
$('input.select2-input').val();
我认为是...的一部分。
这是我的代码:
template <class _InputIterator, class _OutputIterator>
inline _LIBCPP_INLINE_VISIBILITY
_OutputIterator
__move(_InputIterator __first, _InputIterator __last, _OutputIterator __result)
{
for (; __first != __last; ++__first, ++__result)
*__result = _VSTD::move(*__first);
return __result;
}
cppFile:
#include "Project.h"
#include "Date.h"
#include "mSharedPtr.h"
class ProjectCycle
{
private:
mSmartPtr<Project> project;
Date startDate;
int numberOfEmployees;
std::vector<mSmartPtr<Employee>> employeeList;
public:
ProjectCycle(const mSmartPtr<Project>& pro, const Date& strdate, const int& numemp, const std::vector<mSmartPtr<Employee>>& list) :
project(pro), startDate(strdate), numberOfEmployees(numemp), employeeList(list) {};
void finishCycle();
~ProjectCycle();
void timeForwardHours(int);
void startProject();
void terminateProject();
void removeEmp(emp_vec::iterator);
};
提前感谢,
答案 0 :(得分:0)
我认为问题是由operator=()
中缺少有效mSmartPtr<Employee>
重载造成的。
添加以下成员函数
mSmartPtr& operator=( mSmartPtr&& rhs );
mSmartPtr
中的。