私はQtプロジェクトで作業しており、QLabel
メンバ関数とそのパラメータへのポインタをとり、いくつかのラベルに適用する関数を実装することにしました。関数メンバポインタを関数のパラメータとして渡します
template <class R, class ...Args>
void ClockSim::applyToLabels (R (QLabel::*f)(Args...), Args&& ...args)
{
ui->labelSingleTime->*f (std::forward<Args>(args)...);
//Repeat it for many other labels
}
私はそれを呼び出そうとしました:
applyToLabels (&QLabel::setStyleSheet, "color:red;");
それは言う:
エラー:無視 'applyToLabels'
候補テンプレートの呼び出しのための一致メンバ関数を:「QLabel」と「QWidget」を一致させることができませんでした
どのような解決策ですか?ありがとう
「QWidget」がエラーになっているのはなぜですか?完全な例は表示されていませんか? – Arunmu
ClockSimはQWidgetの派生クラスです。 –
また、 'char const(&)[10]'型の引数を渡しています。あなたのメンバー関数が 'const char *'を期待している場合、これはうまくいかないでしょう(多分あいまいさがあります) – Arunmu