Wpis z mikrobloga

@MamCieNaHita: To "undefined reference" w sumie to oznacza, tutaj masz szczegóły: http://stackoverflow.com/a/8452990/7107230

Co do wyliczenia w trakcie kompilacji: teraz masz zrobione tak, że powinno się liczyć w trakcie kompilacji. Możesz się upewnić za pomocą static_assert, który jest czymś jak zwykł assert, tylko wykonywany w trakcie kompilacji.

Ale, jeżeli możesz korzystać z C++14, możesz to zrobić bez dziwnych hacków na template'ach, bo C++14 pozwala na liczenie rzeczy w czasie kompilacji za pomocą
@MamCieNaHita: Tyle że w twoim wypadku napisanie static do factorials::tab wymaga aby ta zmienna wisiała w pamięci, a reguła ODR wymaga od niej jednego miejsca definicji czyli to co podał @Lerhond. Generalnie już lepiej robić osobne zmienne poza klasą, np w jakimś namespacesie, albo deklarować to jako statyczną funkcję constexpr. dek Zmienna i w pętli nie jest constexpr więc jej użycie nie da wartości constexpr, Jednak da podpowiedź kompilatorowi że