fix msvc build

msvc doesn't allow std::queue of incomplete types.