Это определенно ошибка компилятора.
Функции могут использоваться в качестве аргумента шаблона для шаблона, что означает, что они являются константными выражениями. (См. ideone ).
Кроме того, приведенный выше код прекрасно компилируется с gcc 4.6.1
, хотя ideone не компилирует его, но ideone использует gcc-4.5.1
, что имеет ошибку в отношении вашего кода.