簡體   English   中英

將成員函數作為參數發送給模板化類的成員

[英]send a member function as an argument to a member of templated class

我有一個模板基本類:我想將一個成員函數作為參數發送給另一個函數,我該怎么做?

template <class T>
class GenericButton
{
public:
    GenericButton(const T& t) :m_t(T) {};
    auto& getT() {
        return m_t;
    }
private:
    T& m_t;
};

class Check
{
private:
    bool m_generic;
    void changeType()
    {
        m_generic = !m_generic;
    };
    GenericButton<decltype(changeType)> m_button = GenericButton<decltype(//changetype());  
// maybe lambda
};

int main(){
    auto check = Check();
    auto function = check.m_button.getT();
    function();
}

我怎樣才能發送一個函數作為模板成員? 請指教,提前致謝

沿着這些路線的東西,也許:

using Callback_t = std::function<void()>;
GenericButton<Callback_t> m_button{ [this](){ changeType(); } };

演示 我冒昧地更改GenericButton以按值保存回調; 以引用方式持有它是自找麻煩。

暫無
暫無

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

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