Guess the Number In C++
I like that your code (read functions) follows Single Responsibility Principle.
And also that you've put the number comparison code in a separate function unlike

User guesses the number generated by computer
Computer tries to guess your inputted number

And also that you use static_cast. All are good coding practices!

I'd prefer if you do the text printing in the placement function itself and call it something like compare_with_guess. That way, you don't have to return values and use another if-else block in the caller. Also, the output messages can also be controlled all at one place.
Another way is to use struct like:
struct InputNum{
private:
    const int input;
public:
    InputNum(const int num):input(num){};

    int get() const{
        return input;
    }
    bool greater_than(const int target) const {
        return input &gt; target;
    }
    bool less_than(const int target) const {
        return input &lt; target;
    }
    bool equals(const int target) const {
        return input == target;
    }
}


Use const whenever possible.
const int winning_num{ generateRandomNumber() };// +1 for {} initialiser syntax. 

void compare_with_guess(const int input, const int guess){ // After making the changes I suggested above.

bool validateInput(const int input){



Avoid  using namespace std; completely, let alone using it multiple times in the code.
https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice