Здравствуйте, Кодт, Вы писали:
К>по поводу __LINE__: оно там в паре мест не по делу. Но это не влияет.
К>template<class T, int I = __LINE__ /* = 7 */> concept fable1 = requires(const T & t) { f(t); I; };
template<class T, int I = __LINE__ /* = 10 */> void g() {
Тут был эксперимент: захотелось в местах
__LINE__ синтаксически управляемой лексической фазы разбора исходника во время инстанциирования синтаксического шаблона, чтобы обойтись без макроса
FABLE и сохранить исходную лексику примера. (Может такую хотелку и реализуют в стандарте каком-нибудь когда-нибудь.)
В качестве воркэраунда,
тут нашлась синтаксическая анонимная лямбда.