cost 286 ms
朋友聲明了一個非模板 function,即使它駐留在模板化的 class 中(僅 gcc)

[英]Friend declares a non-template function even though it resides in templated class (only gcc)

下面的示例編譯但 gcc 警告我朋友聲明實際上不是模板化的 function。我不明白我到底應該改變什么。 Clang 和 MSVC 毫無問題地接受此代碼。 在這個問題中,暗示你應該將template <typename T>放在類內朋友聲明的前面,但隨后 gcc 抱怨隱藏 T。 ...

兩個文件相互包含導致無法通過前向聲明修復的錯誤

[英]Two files including each other causes errors that cannot be fixed by forward declaring

所以,讀清楚... 所以,那是Scene class,然后我們得到了Entity class 我嘗試向前聲明這些類,但由於它們訪問彼此的函數和 class 變量等,這有點不可能。 我試圖創建一個包含實體的場景。 由於 c++ 在兩個文件相互包含時出現這個奇怪的問題,我真的不知道該怎么做,因為我的類必 ...

C++中,虛擬function返回類型的header文件是否必須包含在class聲明中?

[英]In C++, do the header files of virtual function return types have to be included in the class declaration?

考慮以下代碼: 是否必須包含 Type_A 和 Type_B 的 header 文件,或者轉發聲明這些類型是否安全? 請注意,copied_ta() 和 copied_tb() 函數返回的是對象,而不是指向對象的指針。 謝謝。 ...

為什么我可以引用僅前向聲明的枚舉成員

[英]Why can I reference a member of an enum that is only forward declared

例如,給定以下內容: 在我看來,這不應該編譯,因為在 function.h 中,只向前聲明了TestEnum ,編譯器無法知道TestEnum::THREE (用作TestFunction的默認參數)是枚舉的有效成員。 然而它確實如此。 如果我轉發聲明 class,我將無法訪問其成員,但使用枚舉似乎 ...

C++ 又一個 unique_ptr 類型不完整的問題

[英]C++ another unique_ptr incomplete type question

在這里查看了各種類似的問題,但仍然無法弄清楚為什么以下代碼無法編譯: 據此: 如果使用默認刪除器,T 必須在代碼中調用刪除器的位置完成,這發生在 std::unique_ptr 的析構函數、移動賦值運算符和重置成員函數中。 據我了解,這些(析構函數、移動賦值運算符或重置成員函數)都沒有發生在main ...

C++:匿名結構的結構前向聲明導致“聲明沖突”

[英]C++: struct forward declaration of anonymous struct causes "conflicting declaration"

我有這個 hpp 文件: 以及對應的cpp文件: 現在,像這樣編譯:g++ A.cpp 我得到這個錯誤: 顯然使命名它的結構有效,不幸的是我無法控制庫中 struct rte_spinlock_t 的 typedef。 我該如何解決這個問題? 我希望能夠轉發一個未命名的結構而不會陷入聲明沖突。 ...

轉發聲明一個模板化的 typedef

[英]Forward declare a templated typedef

在我的公共 header 中,我試圖添加一個指向僅私下定義的 object 的指針。 通常這很簡單。 我只是轉發聲明。 但是,object 有點復雜,我不確定如何轉發聲明它。 公共.h: 公共.cpp 狀態機.h: 其中boost::msm::back::state_machine定義為: 以下是 ...

在聲明和類名定義中使用不同的類鍵是否合法?

[英]Is it legal to use a different class-key in a declaration and the definition of a class-name?

標准(自 C++20 起)是否明確或隱含地允許在(向前)聲明類名時使用與定義類名時不同的類鍵? 出於此問題的目的, class-key應限於class或struct ,不包括union 。 換句話說,這是合法的: 答案應明確引用 C++20 標准(或合適的草案)。 我在整個[class]部分找不到 ...

為什么我們可以使用前向聲明的 function 但不能實例化前向聲明的 class?

[英]Why can we use a forward declared function but not instantiate a forward declared class?

在閱讀這篇文章時,我想知道為什么可以像在這個例子中那樣調用之前前向聲明的 function 但是實例化或調用之前前向聲明的 class 的成員變量是不可能的,就像在示例中一樣 我的想法是 function 就像一個地址,它是在前向聲明完成時定義的(例如 f() 被分配0xABC )。 然后在解析r ...

前向聲明如何節省編譯時間?

[英]How does forward declaration save compile time?

如果您在線閱讀,那么在 C++ 中有很多聲明,如果您使用前向聲明,那么它可以節省您的編譯時間。 通常的理論是,如果我使用前向聲明, #include意味着僅僅是文本替換,那么我的編譯器不需要解析 header 並可能編譯它,所以它節省了時間。 我發現這種說法很難相信,因為考慮到我通常會看到這樣的代 ...

c++ 前向聲明 class 的枚舉

[英]c++ forward declare enum of class

假設我在 class 中有以下枚舉 我知道從 c++11 開始我們可以轉發聲明枚舉,因為它的默認類型是 int。 但是,如果 class A 僅聲明且未定義,我如何轉發聲明 class A 的枚舉 E? 如果不可能,那為什么? ...

前向聲明會禁用任何運行時優化嗎?

[英]Do forward declarations disable any runtime optimizations?

我們可以轉發聲明一個 function: 如果func1調用func2 ,這可能是必要的: 雖然在第二個示例中內聯func1並不難,但我不知道在任意復雜的程序中是否存在此類編譯器優化的理論障礙。 在第二種情況下,前向聲明是必要的,並且可能會丟失與程序的遞歸性質相關的編譯器優化。 問題:當不需要但仍 ...

在 class 上下文中使用時,前向聲明與就地前向聲明的工作方式不同

[英]Forward declarations don't work the same as in-place forward declarations when used in class context

我正在探索 C++ 實例化/聲明順序的奧秘。 這是我遇到的一個有趣的點: 這編譯: 但是當您選擇就地聲明時,它突然停止工作( Demo ): 這是我得到的錯誤: 有人可以確切地解釋為什么會發生這種情況嗎? 有什么區別? 編輯:在某些情況下,您可以在模板參數列表中聲明一個類型: 我不知道這適用於何時何 ...

遞歸定義的前向聲明使用指令

[英]Forward declare using directive for recursive definitions

我有一個包含變體類型項目的數組,我想使用通用 std::array 迭代器對其進行迭代。 現在我想用我自己的 class array2來管理陣列。 但是,該變體也可能包含一個類型為array2的 object,它是使用變體本身實例化的,這意味着 val 已經作為模板參數需要。 從邏輯的角度來看,這個 ...

前向聲明一個函數/任務

[英]Forward declare a function/task

我瀏覽了互聯網,我只看到人們使用typedef關鍵字對類進行前向聲明。 但是,我想知道我是如何處理函數/任務的? 我想將主要功能放在其他功能/任務的定義之上,以方便讀者預覽它。 在 C++ 中,函數的前向聲明如下所示: 對於 SystemVerilog,會是這樣嗎? 我應該將typedef ...

為什么此任務配置不允許我在 Windows 上的 VS Code 中編譯多個 C++ 文件?

[英]Why does this task config not allow me to compile multiple C++ files in VS Code on Windows?

因此,我查看了其他一些 Stack Overflow 問題,並在 VS Code 中對我的任務文件進行了一些嘗試,以編譯多個 C++ 文件。 但是,它似乎不起作用,並且有點困惑為什么它仍然沒有鏈接。 我更喜歡使用 VS Code 而不是 IDE,所以我真的很想讓它工作。 主文件 測試.cpp ...

相互依賴的 constexpr 構造函數

[英]Mutually dependent constexpr constructors

我有兩個類,每個類都可以相互構造。 例子: 我需要轉發聲明class B ,所以 A 知道它。 當這些構造函數不是constexpr時,我可以將它們的定義移動到一個源文件中並順利編譯。 但是,要使其成為 constexpr,它們必須在 header 中定義B可以從A構造,因為它看到了A的完整定義。 ...


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