Símbolos indefinidos para a função constexpr

Quando eu tento compilar o código a seguir, recebo um erro de vinculador:Undefined symbols for architecture x86_64: "Foo()", referenced from: _main in main.o usando LLVM 4.2.

Esse comportamento ocorre apenas quando a função está marcadaconstexpr. O programa compila e liga corretamente quando a função é marcadaconst. Por que declarar a funçãoconstexpr causar um erro de linker?

(Eu percebo que escrever a função desta maneira não oferece o benefício da computação em tempo de compilação; neste momento, estou curioso para saber por que a função falha em vincular.)

main.cpp

#include <iostream>
#include "test.hpp"

int main()
{
    int bar = Foo();
    std::cout << bar << std::endl;

    return 0;
}

test.hpp

constexpr int Foo();

test.cpp

#include "test.hpp"

constexpr int Foo()
{
    return 42;
}

questionAnswers(3)

yourAnswerToTheQuestion