deal.II is a C++ library supporting the generation of complex adaptive finite element codes. It features locally-refined grids, various scalar and vector-valued finite elements, linear solvers of low and higher order, arbitrary mappings, and support for 1, 2, and 3D computations. It comes with extensive documentation and example programs showing the use of the library for modern finite element programs.