Una respuesta "simple" para una pregunta "simple":
El C++, a partir del estándar del 2011 (C++11), tiene la función round() en <cmath>, que redondea usando el método que comúnmente se conoce como "
half away from cero" (las mitades alejadas del cero) o, lo que es lo mismo, "half towards infinity" (las mitades hacia el infinito - mas infinito para los positivos, menos infinito para los negativos). Y lo hará así, independientemente del modo de redondeo del sistema.
Pero bueno, como dijo Pascal en su momento,,, para entender una proposición se debe entender cada uno de sus términos. Y para recordar que hasta las cosas más simples no son tan simples como uno quisiera, faltaría aclarar qué es eso de "independientemente del modo de redondeo del sistema". Que bueno, sucede que el sistema donde se está ejecutando tu programa ya tiene establecido un modo de redondeo, que puede ser este "half away from cero" o no, que hay varios (Wikipedia menciona 6:
https://en.wikipedia.org/wiki/Rounding), y que tu programa puede modificar si lo desas (
https://docs.microsoft.com/en-us/cpp/build/reference/fp-specify-floating-point-behavior?view=msvc-160)
Todos esos métodos son convencionales, aclaro esto porque no faltan los fanáticos sabelotodo que conocen uno o dos y acusan a todo los demás de estar equivocados. Y en este tema como en todos los demás, los fanáticos siempre están equivocados, por supuesto.
Pero yendo al ejemplo "simple", nada más que:
-- Ah, ¿que quién es Pascal? Bueno, era un filósofo que de importante que fue, hasta el lenguaje de programación "Pascal" se nombró así en su honor... figúrate. ¿Que si tiene mucho que ver? No, nada.