Now, we have c++11, you can provide a move assignment for FileOp and return FileOp directly.