В Mongoid 5.0 это работает для меня
Username.or({username: @username}.or({email: @email})
Оператор индексирования из std::vector<>
не проверяет индекс. Поскольку это неопределенное поведение, вы можете получить «то, что было раньше», или оно может рухнуть (или «что угодно»).
У вас есть функция-член at
, которая будет выдавать, если индекс находится вне диапазона. То есть:
cout << vec.at(0) << " " << vec.size() << endl;
в конце вашего main()
будет бросать.