#include <iostream>
using namespace std;
template<typename T>
T clampValue(T val, T minVal, T maxVal) {
    if (val < minVal) return minVal;
    if (val > maxVal) return maxVal;
    return val;
}
int main() {
    int minVal, maxVal, val;
    cin >> minVal >> maxVal;
    cin >> val;
    cout << "Clamped Value: " << clampValue(val, minVal, maxVal) << "\n";
    return 0;
}
Solution Explanation
clampValue<T> works for integers, floats, or other comparable types.minVal maxVal, then the value to be clamped.min and max.
Layman’s Terms
Think of it like setting safety rails: if a reading goes below the minimum, lift it up; if it goes above the maximum, push it down.
Significance for Embedded Developers
Clamping is essential when:
Input
0 10 5
Expected Output
Clamped Value: 5