Прокси-констант в неконфессиональный неявный переход в C ++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Прокси-констант в неконфессиональный неявный переход в C ++?

Сообщение Anonymous »

Я пытаюсь создать прокси -класс прокси -сервера в C ++ для управления транзакциями через дерево узлов () Формирование модели данных моей приложения.
Вот очень простой пример:

, который я хотел бы, чтобы это было так: p> p>
, который я хотел бы доступить как as as a triviell as a triviell. />

Код: Выделить всё

rootNode->getA()->getX();
rootNode->getA()->setX(42.0f);
// NOT: rootNode->getA().edit()->setX(42.0f);
Когда называется сеттер (например, setx ), необходимо создать кэш для управления механизмом транзакции, то есть: geta () в первых вызовах с помощью getx () возвращает прокси, указывающий на Nodea без создания кеша. Но geta () перед Setx требует генерирования этого кэша.

Код: Выделить всё

// Transaction wrapper template
// We attempt to have different behaviour, base on if the wrapper->getter()-const or wrapper->setter()
//     being getter and setter members of T
template 
class TransactionProxy
{
public:
using NonConstT = std::remove_cv_t;
// For const access
const T* operator->() const
{
std::cout () const
{
auto w = TransactionProxy(const_cast(m_obj));
return w;
}

TransactionProxy(T* obj) : m_obj(obj) {}

private:
T* m_obj;
};

...
// Within RootNode
TransactionProxy getA() const
{
return TransactionProxy(m_a.get());
}

Это не работает, потому что оператор актеров не работает неявно. />
Пример 1: Операция только для чтения

const operator-> nalls для 8noderoot

const operator-> Вызов 5nodea

Получение x Значение: 1 < /p>
Пример 2: Запись

const operator-> constrod stor stort stor stort stort stor stort stor stormit stormit stormit a exator

constrom /> Незащитный оператор-> Вызовов для 5nodea

настройка x от 1 до 42

Примечание. Как вы видите, только последний оператор-> () до setx () неконтет и создает Cache Transaction для Node Nodece . /> Можно ли реализовать что -то подобное без рефлексии TS? Как? < /Strong> < /p>


called for " ()
{
std::cout

Подробнее здесь: https://stackoverflow.com/questions/795 ... ition-in-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Прокси-констант в неконфессиональный неявный переход в C ++?
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Неявный переход Visual Studio IDE Razor не работает
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Неявный переход Visual Studio IDE Razor не работает
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Visual Studio Ide Razor неявный переход не работает
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Ошибка прокси-сервера Прокси-сервер получил неверный ответ от вышестоящего сервера. Прокси-сервер не смог обработать зап
    Anonymous » » в форуме Apache
    0 Ответы
    194 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»