我想要一個static constexpr
數組類元素的模板類內類似於以下代碼的靜態constexpr模板陣列構件這個例子,但它已經顯示了這個問題。如果我編譯這個機智gcc
我得到一個遞歸依賴性的錯誤:自身遞歸需要
test.cc: In instantiation of ‘constexpr Element Template<true>::element [2]’:
test.cc:11:27: recursively required from ‘constexpr Element Template<true>::element [2]’
test.cc:11:27: required from ‘constexpr Element Template<true>::element [2]’
test.cc:20:2: required from here
test.cc:11:27: fatal error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= to increase the maximum)
static constexpr Element element[] = {
^
compilation terminated.
首先我很好奇如何繞過這個錯誤,但也將是林間空地,如果我能得到一個提示到的這個或事業爲什麼這樣的構造不應該是有效的......
你有什麼版本的GCC?我無法用任何編譯器重現。 – DeiDei
我測試過'g ++ - 5.4.0'。我只注意到,如果我只使用上面的摘錄,編譯器不會失敗。之後我必須使用'Template :: element' .. –
Jonas
看起來像編譯器的錯誤。作爲解決方法,[它工作](https://godbolt.org/g/yDMmWt)與'std :: array'。 –