Здравствуйте, Croessmah, Вы писали:
C>Решение, на киберфоруме, ссылку на которое Вам дали, сделалось примерно за час-полтора. )))
C>Что у Вас не получается? Задача, в принципе, не особо сложная.
Croessmah, рад Вас здесь видеть!
То решение мне сложновато давалось для понимания, т.к. опыта у меня немного.
Оказалось, что проще было написать что-то своё и уточнить)
C>Вам нужно пройти по элементам каждого из массивов и сложить их, соответственно, нужен некий get, возвращающий значение элемента массива по индексу (либо из массива, либо значение по-умолчанию).
C>Переделал своё решение с киберфорума под Ваше.
C>Как видите, такой код проходит все тесты в main.
Спасибо за взгляд на решение проблемы с такой стороны.
Так понимаю, что реализация
SequenceType написана в стиле шаблонного программирования:
Представлена шаблонная структура со специализацией. Причем два раза.
Первый раз увидел
std::declval<>() в реальном коде. Интересно.
Не совсем понял
смысл trailing return type
-> SparseArray<decltype(std::declval<T>() + std::declval<TOther>()), Mask | MaskOther>
Вроде бы
auto и так должно вывести тип.
Интересная возможность вернуть ссылку с помощью применения
std::conditional_t.
Изучаю код. Спасибо за ответ
Странно, что если раскомментирую секцию
private в примере с
operatorPlusStage1,
operatorPlusStage2, то компилятор начинает ругаться, что в методе
operator+ идет обращение к закрытой части класса.
operator+ ведь обычный метод класса, который должен иметь доступ ко всем полям и методам класса.