次のような小さなラッパークラスを作成しようとしています
template <typename T>
class EdgeTriggeredState
{
public:
void Tick()
{
oldData = newData;
}
EdgeTriggeredState& operator =(const T& v)
{
newData = v;
return *this;
}
// T& operator = (void)
// {
// return oldData;
// }
// T& operator T()
// {
// return oldData;
// }
private:
T oldData;
T newData;
};
基本的に、クラスによってラップされた値を T 型の変数に直接代入できるようにしたいと考えています。(T 型への) 代入演算子と T 型へのキャスト演算子の両方を実装しようとしました。C だけで作業しているため、C++ には少し慣れていません。名前付きゲッターメソッド?
最初の実装試行のコメントを外すと、エラーが発生します
"../EdgeTriggeredState.h:19:21: エラー: 'T& EdgeTriggeredState::operator=()' は 1 つの引数を取る必要があります"
2 番目の実装のコメントを外す (そして最初の実装をコメント アウトする) と、エラーが発生します。
"../EdgeTriggeredState.h:24:16: エラー: 'operator T' に指定された戻り値の型"