You should look GearVR license . I know that with Oculus CV 1 is not possible , because they ' re not for commercial use . With Vive you have to buy the business edition . <| sep |> Yeah , but saying why does everyone think alignment shift is still a mechanic is like going to the Final Fantasy sub and replying to someone talking about Mako with there is no such thing as Mako anymore because FFXV doesn ' t have it . You realize people play older editions still , and most of them come to this sub right ? <| sep |> They are , and it ' s a pretty nice list of parts too . <| sep |> As for extending it to unorderedmap this should work templatetemplate typename . class Map , typename . Args auto filterconst MapArgs . map stdvectortypename MapArgs . mappedtype stdvectortypename MapArgs . mappedtype r forauto i map ifsomething r . pushbacki . second return r This should actually work for any container if you replace mappedtype with valuetype and i . second with i , but then if you use a map you get a vector of stdpairkeytype , valuetypes , not just values . I think a more usual way of doing this would be to take a pair of begin and end iterators of the container instead of the container itself . edit Here is one that has both versions and uses SFINAE to dispatch on the presence of mappedtype . But take it with a grain of salt , because by this point this has really gone off the deep end and I don ' t really know what the hell I ' m doing . template typename T struct hasnomappedtype template typename static constexpr bool test . return true templatetypename A static constexpr bool testvoidtypename Amappedtype return false static constexpr bool value testT 0 templatetemplate typename . class Container , typename . Args auto filterconst ContainerArgs . container typename s t d e n a b l e i f h a s nomappedtypeContainerArgs . value , typename stdvectortypename ContainerArgs . valuetypetype stdvectortypename ContainerArgs . valuetype r forauto i container ifsomething r . pushbacki return r templatetemplate typename . class Container , typename . Args auto filterconst ContainerArgs . container stdvectortypename ContainerArgs . mappedtype stdvectortypename ContainerArgs . mappedtype r forauto i container ifsomething r . pushbacki . second return r