лямбда как статический член

Я пытаюсь использовать лямбду в качестве статического члена, например:

struct A
{
    static constexpr auto F = [](){};
};


int main()
{
    A::F();
    return 0;
}

Это даже правильный код C ++ 11? На Clang я получаю эту ошибку:

error: constexpr variable 'F' must be initialized by a constant
      expression
    static constexpr auto F = [](){};
                              ^~~~~~

Кажется, что в лягбах лямбды не считают постоянным выражением. Это правильно? Возможно, они еще не полностью реализовали лямбды в clang, потому что gcc 4.7, кажется, позволяетconstexpr, но это дает еще одну ошибку:

error: ‘constexpr const<lambda()> A::F’, declared using local type ‘const<lambda()>’, is used but never defined

Я не уверен, я понимаю, что это значит. Кажется, он правильно выводит тип лямбды, но он только объявляет ее, а не определяет ее. Как бы я определил это?

Ответы на вопрос(2)

Ваш ответ на вопрос