Jak uniknąć anonimowych obiektów C ++
mamScopedLock
klasa, która może pomóc zwolnić blokadę automatycznie, gdy zabraknie zasięgu. Problemem jest jednak: Czasami członkowie zespołu piszą nieprawidłowy kod blokady, taki jak
{
ScopedLock(mutex); // anonymous
xxx;
}
Powyższy kod jest błędny, ponieważScopedLock
obiekt jest konstruowany i niszczonynatychmiast, więc nie udaje się zablokować oczekiwanego obszaru (xxx
). Chcę, aby kompilator dał błąd podczas próby skompilowania takiego kodu. Czy można to zrobić?
Wyszukałemg++
opcje ostrzegawcze, ale nie można znaleźć właściwego.