簡體   English   中英

靜態模板成員崩潰

[英]Static Template Member Crashes

我具有以下設置,該設置在加載時使我的動態庫崩潰。

// in a.hpp

template <unsigned int Size>
class ATemplate : public A
{
public:
    ATemplate() : A(Size) 
    {
        init()
    };

    void init() 
    {
        // does stuff, it crashes here or "before" init() because "this" points to some random memory,...
    }
}

// in b.hpp

class B 
{
public:
    static const int Size = 128;
    static ATemplate<Size> Template;

}

// in b.cpp

ATemplate<B::Size> B::Template = ATemplate<B::Size>();
// also crashes like this:
ATemplate<B::Size> B::Template;

Afaik,A和B之間的繼承在這里不重要,對吧? 我已經閱讀了有關靜態對象初始化順序的內容,但是由於我實際上並沒有多個靜態對象,所以只有一個靜態對象,因此我認為在這里不重要。

您有什么想法,這可能是什么問題?

編輯:這是一個堆棧溢出。 現在,我必須找出為什么編譯器決定將靜態成員對象放到堆棧上的原因,...

暫無
暫無

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

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