I find it quite weird that you choose to create a function "UseVerticalSync(bool)" and at the same time provide no functions for getting the boolean variable. I guess that there are other than me who would like BOTH get- and set functions for a window.
When creating a game, you'd most likely want to implement some kind of console which can set and get the variables. That is quite easy to do with delegates and boost::bind, but having to implement you own set and get methods for each variable, just for use when recreating the window is a bit silly.
You can get the window width, but you cant set it. There's no way of actually modifying the variable itself, so i cant write my own Set-functions, and therefor I cannot bind such functions in a console system. Same goes for height, bits per pixel, window caption etc. And the opposite is the case for UseVerticalSync.
And now that we are at it. Why even call the methods "Get<thing>". In C++ you can use overloading to do like this instead:
void Width(const unsigned int)
{
< " assign "> ;
}
unsigned int Width() const
{
< " return " >;
}