LINUX.ORG.RU

История изменений

Исправление 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 выглядит излишним. Но ехать можно, хоть и без шашечек.