First, Make ToggleFullscreen to not change the current resolution of the window and leave that to the developer.
To allow proper behaviour of the stretching of a lower resolution to a higher resolution, Use a back buffer to which everything is rendered to.
The back buffer size must be the native resolution of the window. SetResolution will be used to change this native resolution. The back buffer can then be rendered as:
SDL_RenderCopy(m_Renderer, m_BackBuffer, NULL, NULL);
Which will stretch the buffer accordingly to the whole screen, avoiding letterboxes.