私は並行性についてこのビデオシリーズに従っており、その人はクリティカルセクションについて話し始めました。私も(再び私はのみ)コードの面倒なセクションを含めています。このクラスで同じエラーが生じています削除されたコンストラクタ
class auto_lock
{
T& m_lock;
public:
auto_lock(auto_lock& const) = delete;
auto_lock(auto_lock&&) = delete;
auto_lock& operator=(auto_lock& const) = delete;
auto_lock& operator=(auto_lock&&) = delete;
auto_lock(T& lock) throw() :
m_lock{ lock }
{
m_lock.enter();
}
};
::私たちは(私は面倒な部分が含まれます「auto_lock」と呼ばれるテンプレートクラスを作りました
int main()
{
auto lock = critical_section {}; //error here
{
auto guard = auto_lock<critical_section>{ lock };//and here
}
};
特定のエラーがある「」CRITICAL_SECTION :: CRITICAL_SECTION(CRITICAL_SECTION &:私の主な機能には
class critical_section
{
CRITICAL_SECTION m_lock;
public:
critical_section(critical_section& const) = delete;
critical_section& operator=(critical_section& const) = delete;
critical_section& operator=(critical_section&&) = delete;
critical_section(critical_section&&) = delete;
critical_section() throw()
{
InitializeCriticalSection(&m_lock);
}
};
2105)」(42行目で宣言)は参照できません。削除された関数です。「auto_lock :: auto_lock(auto_lock & &)[T = critical_section]」「 どうしますか?
Do 'auto_lock guard {lock}' –
0x499602D2
'='の右側に 'critical_section'を置くことは意味がありません。 –
'auto_lock&const'と' critical_section&const'はそれぞれ1) 'const auto_lock&'と 'const critical_section&'、または2) 'auto_lock const&'と 'critical_section const&'のいずれかです。元のコードはconst以外のオブジェクトへのconst参照を受け取りますが、代わりにconstオブジェクトへの参照(constまたはnon-const)が必要です。 –