I strongly disagree.  The whole purpose of this class is to ensure that state_ is not modified unless (A) it is uniqe and (B) it is done with state_lock_ held.  Making state_ protected will allow violation of this too easily.  If you want to modify the state from the parent class use modifyState().