Допустим, у меня есть следующая структура
template<typenameT>
class Foo
{
T value;
public:
// some public logic
}
все, что я хочу в этой точке, это возможность сказать
Foo<int> A;
и затем получить значение из A
, как будто он использует "просто значение типа T" и использует его следующим образом
int val1 = A; // must correspond to int val1 = A.value
// and
int& val2 = A; // must return reference of A.value and so on
Я действительно не хочу, чтобы пользователь устанавливал / получал, потому что я собираюсь писать такие вызовы очень часто и хочу для этого упростить код как можно больше.
Сначала я подумал, что перегрузка = может помочь, но я не понял это правильно. Это работает наоборот с оператором присваивания, таким как Foo<int> A; int val = 1; A = val;
РЕДАКТИРОВАТЬ: В Интернете уже есть ответ, но я не смог найти его под ключевым словом "присваивание".