В основном это вопрос синтаксиса. Вот связанный поток, показывающий различные альтернативы для достижения того же результата: Цепочка методов в C #
Теперь в C ++ можно связывать команды с объектом, заставляя методы возвращать указатель на объект, членом которого является метод.
Синтаксис, который я ищу:
foo.Transform(bar).TransformDifferently(yay);
В C #, если я верну это, значение будет скопировано (изменить: наполовину неверно, прочитать ответы). Я не думаю, что могу вернуть ссылку или указатель, не так ли? Есть ли другой способ добиться того же синтаксиса?
На данный момент мое решение - просто присвоить результат моему объекту, например:
foo = foo.Transform(bar).TransformDifferently(yay);
Однако это не оптимальное решение, потому что оно и медленнее (в моем случае не имеет значения), и более подробное. Буду очень рад любым указателям в правильном направлении!