some compilers seem to be confused if we directly call a method
on the result of dynamic_cast. I suspect it's a bug of the compiler in
template handling, but the workaround doesn't look so messy and I think
it's acceptable.
committing at my discretion.
// Mock-only; control whether to allow subsequent transaction.
void allowMoreTransaction(bool is_allowed) {
if (is_mock_) {
- dynamic_cast<MockAccessor&>(*current_accessor_).
- allowMoreTransaction(is_allowed);
+ // Use a separate variable for MockAccessor&; some compilers
+ // would be confused otherwise.
+ MockAccessor& mock_accessor =
+ dynamic_cast<MockAccessor&>(*current_accessor_);
+ mock_accessor.allowMoreTransaction(is_allowed);
}
}