簡體   English   中英

帶有遞歸類型別名的G ++-4.7.0內部編譯器錯誤分段錯誤

[英]G++-4.7.0 Internal Compiler Error Segmentation Fault with recursive type alias

#include <memory>

template<typename T>
using CallbackPtr = const std::shared_ptr<const T>;

template<typename C, typename T>
using CallbackFunPtr = void (C::*)(CallbackPtr<T>);

int main () {
    return 0;
}

結果是:

7 : internal compiler error: Segmentation fault
Please submit a full bug report, with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
Compilation failed

我在這里做的事情超出了C ++標准,而G ++還沒有錯誤消息? 還是這是一個真正的編譯器錯誤?

您的代碼很好,這是一個編譯器錯誤。 您可能想找到最小的測試用例並報告它。 在我的gcc-4.7.1副本上,

template<typename T> struct A{};
template<typename T> using B = const A<T>;
B<int> x;

足以給我一張ICE。 罪魁禍首是這里的const 將CallbackPtr定義為時,示例將編譯

using CallbackPtr =  std::shared_ptr<const T>;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM