Почему следующий код не компилируется (gcc-5.4.0)?
volatile int i{100};
int j{200};
std::cout << std::min(i, j);
Я имею в виду, что я вижу ошибку компилятора:
error: нет соответствующей функции для вызова "min (volatile int &, int &)
Не является ли волатильным просто намек на компилятор, что переменная может меняться извне программы?
std::min(int(i), j);
Конечно, работает. Но не должна ли оригинальная работа тоже?