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
1. Nie żyje 17 latek 2. Znaleziony związany we Wrocławiu 3. Kogo jest dużo we Wrocławiu? ( ͡°( ͡°͜ʖ( ͡°͜ʖ͡°)ʖ͡°) ͡°) 4. Może być niedługo ciekawie ( ͡°͜ʖ͡°)
#cpp #naukaprogramowania
http://ideone.com/bTXClU
EDIT: no dobra, w sumie można było to napisać w innym pliku, to ma sens
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ą