История изменений
Исправление aist1, (текущая версия) :
А в данной конкретной ситуации с с++ шаблонами - они должны быть чистыми.
Я понял твою мысль. Да, согласен. Спасибо за разъяснение :)
Список ограничений там такой мрачный что это будет совсем отдельный класс «специальных константных» функций.
Совсем не такой уж и мрачный.
C++14 will relax these restrictions. Constexpr-declared functions may now contain the following:
Any declarations except:
static or thread_local variables.
Variable declarations without initializers.
The conditional branching statements if and switch. goto is not allowed.
All looping statements, including range-based for.
Expressions may change the value of an object if the lifetime of that object began within the constant
expression function. This includes calls to any non-const constexpr-declared non-static member functions.
Из заметных ограничений только необходимость всегда указывать constexpr, если ф-я может вызываться компилятором. Ну..., стандартная библиотека будет поправлена соответствующим образом.
В D такого нету.
Это да. constexpr выглядит излишним. Но ехать можно, хоть и без шашечек.
Исходная версия aist1, :
А в данной конкретной ситуации с с++ шаблонами - они должны быть чистыми.
Я понял твою мысль. Да, согласен. Спасибо за разъяснение :)
Список ограничений там такой мрачный что это будет совсем отдельный класс «специальных константных» функций.
Совсем не такой уж и мрачный.
C++14 will relax these restrictions. Constexpr-declared functions may now contain the following:
Any declarations except:
static or thread_local variables.
Variable declarations without initializers.
The conditional branching statements if and switch. goto is not allowed.
All looping statements, including range-based for.
Expressions may change the value of an object if the lifetime of that object began within the constant
expression function. This includes calls to any non-const constexpr-declared non-static member functions.
Из заметных ограничений только необходимость всегда указывать constexpr, если ф-я может вызываться компилятором. Ну..., стандартная библиотека будет поправлена соответствующим образом.
В D такого нету.
Это да. constexpr выглядит излишним. Но ехать можно, хоть и без шашечек.