[英]GCC but not Clang changes ref-qualifier of function type for a pointer to qualified member function
以下代碼片段在 Clang 中編譯,但在 GCC 12 中不編譯。 在 GCC 中產生錯誤: S的聲明應該等同於以下聲明 使用此聲明不會改變任一編譯器的行為。 這是編譯器翻譯模塊中與未充分使用的語言功能相關的錯誤嗎? 哪個編譯器在標准方面是正確的? ...
[英]GCC but not Clang changes ref-qualifier of function type for a pointer to qualified member function
以下代碼片段在 Clang 中編譯,但在 GCC 12 中不編譯。 在 GCC 中產生錯誤: S的聲明應該等同於以下聲明 使用此聲明不會改變任一編譯器的行為。 這是編譯器翻譯模塊中與未充分使用的語言功能相關的錯誤嗎? 哪個編譯器在標准方面是正確的? ...
[英]how to pass non-static member function to template argument?
對於帶有函數模板參數的類模板,我希望以我類的一個函數作為其模板參數,使其成為我類的成員,或者使用 lambda 調用成員函數。 這是我想做的粗略示例,但我無法使其正常工作。 #include <iostream> template<std::string (*fun)()> ...
[英]Error in vector of struct with implemented Functions
我得到錯誤: 無論我如何更改它,它都會持續存在,只要我將其保留為一個類。 如果我將它全部保存在一個沒有類和標題的簡單.cpp中,那么一切都很容易解決。 我的.h: 這是我的.cpp ,請幫助我,我找不到錯誤: ...
[英]How to constrain an auto lambda parameter to a pointer to member function?
我有一個通用的 lambda function 需要接受指向成員函數的指針作為參數。 我當然可以簡單地使用auto ,編譯器會推斷出正確的類型。 但是,在可能的情況下,我更喜歡在適當的地方用* 、 &和const裝飾我的自動參數,從而更好地傳達推導類型的性質和意圖。 如果我只是將auto參 ...
[英]Passing a member function pointer to a non-member function within another member function
我有一個類似於下面最小示例的代碼,其中 function g由庫提供,並期望double (*)(double)作為參數。 我無法改變這一點。 示例代碼無法編譯,因為該成員具有簽名double (*C::)(double) ,如本文中所述,有多種可能的解決方案。 我想知道實現這一點的最佳方法是什么 ...
[英]Can the same generic function receive a pointer to both a member-function and a regular-function as a single argument?
我目前有 2 個幾乎相同(功能方面)的功能: 有沒有辦法將兩個通用函數組合成一個通用 function? 通過以某種方式進一步概括函數的參數,或者通過將兩者作為單獨的參數(具有一些默認值)添加到 function? 為了澄清,上述函數作為我試圖實現的一個簡單示例 - 我的代碼有 2 個功能幾乎相同 ...
[英]Using member function without taking address?
class C{ public: int i(){return 3;} }; void memfn(int (C::* const & func)()){} void fn(int (* const & func)()){} int main() { fn(&fo ...
[英]Filling member function pointers in unordered_map to lookup functions based on strings
我有一個 class ,它具有不同類型的某些成員函數。 現在我正在嘗試基於 std::string 鍵創建這些成員函數的 unordered_map。 到目前為止,如果我創建一個沒有捕獲的 lambda,那么它將返回指向成員 function 的 function 指針。 但我無法弄清楚如何將該地址 ...
[英]what is the correct syntax function pointer list with class member?
我有一個 function 指針列表,非類成員編譯時沒有錯誤,但 class 成員編譯時出錯: 錯誤:無法在初始化中將 'void (CVdmConfig:: )()' 轉換為 'fp {aka void ( )()}' CVdmConfig::writeConfig 是一個 void func ...
[英]Fortran: procedure pointer to method
我處於以下情況:我有一個 object 必須用一些輸入參數x初始化(不着急)。 然后它有一個必須運行(快速)的方法do_work 。 現在,根據x , do_work可以是 function f1或f2 。 當然,當do_work時,我可以在其中進行選擇,但是,由於我事先知道選擇,我正在考慮使用過程 ...
[英]How to use a pointer to use the members of a structure inside a nested structure?
考慮以下代碼:typedef struct { int out; struct { int in1; struct { int in_int2; char in_char2; ...
[英]How can I create an array of member function pointers coupled with different objects?
Say I have class A with function foo(int i) and class B with function bar(int i) , as well as objectA (of class A ) and objectB (of class B ). 我可以這樣 ...
[英]Can a member function pointer refer to a method of one of several different classes?
這就是我所擁有的:class Foo; class Bar; class FooBar { public: FooBar( Foo &f, void ( Foo::* signal )( FooBar* ) ) : m_Foo(& ...
[英]How to store the returned callable from std::bind for a pointer to a member function?
我想知道如何在與指向成員函數的指針一起使用時聲明std::function返回類型的對象: 如果我取消注釋auto fn2 =我得到一個錯誤: ||=== Build: Debug in myproj (compiler: GNU GCC Compiler) ===| /home/Ita ...
[英]Explicit instantiation of template class with templated member functions
一個類定義如下: 我想顯式實例化該類的一個實例,並且我希望該類具有一個顯式的 Eval 實例化。 這里的目的是獲得一個避免歧義的成員函數指針: ...
[英]When is the delta used in a member function pointer on GCC?
我正在閱讀 Don Clugston 的文章Member Function Pointers and the Fastest possible C++ Delegates並且自己正在試驗這些東西,但無法正確重現案例。 當然,Don Clugston 的代碼是未定義的行為。 這特別是關於 GCC ...
[英]Calling a callback passed from another class
我想在另一個(X)中注冊一個類(Y)的回調處理程序(方法)。 由於可能的堆分配,我無法使用 std::function 並且我必須有權訪問注冊處理程序的類的成員。 我也想避免靜態函數。 我想出了一些workaournd,但在調用回調時卡住了: 代碼鏈接: https : //godbolt.or ...
[英]Pointer to member function of instance instead of class
當我根據某些條件獲得指向成員函數的指針然后調用該函數時,我有以下類。 class Test { public: bool isChar(char ch) { return (ch >= 'a' && ch <= 'z'); } bool isNumeric ...
[英]insertion function to insert elements in a linked list at tail
我想實現在鏈表尾部插入元素,我想使用成員函數來實現,目前我可以通過在 struct 之外創建一個函數來實現,請幫助我應該修改什么來實現它作為成員功能。 我的傳統方法: ...
[英]How to use 'auto' for declaring a pointer to an overloaded member function?
如果我有一個重載的非靜態成員函數,我如何使用auto為該函數的一個版本聲明一個指針? ...