Неопределенные символы для функции constexpr
Когда я пытаюсь скомпилировать следующий код, я получаю ошибку компоновщика:Undefined symbols for architecture x86_64: "Foo()", referenced from: _main in main.o
используя LLVM 4.2.
Это происходит только тогда, когда функция помеченаconstexpr
, Программа правильно компилируется и связывается, когда функция отмеченаconst
, Почему объявление функцииconstexpr
вызвать ошибку компоновщика?
(Я понимаю, что написание функции таким способом неt дает преимущество вычислений во время компиляции; на данный момент мне любопытно, почему функция не может связать.)
main.cpp
#include
#include "test.hpp"
int main()
{
int bar = Foo();
std::cout < bar < std::endl;
return 0;
}