Using VSync, you can avoid busy waiting. I don't really like simple games that use a CPU core to capacity for no reason, heating the room and consuming the laptop battery in no time
You can still separate graphics and logic updates. Keep in mind that with enabled VSync,
sf::RenderWindow::display() implicitly waits for the next screen refresh.
Jungletoe, I recommend to read the article linked by eXpl0it3r, it explains pretty well how to manage frame rates.