LINUX.ORG.RU

История изменений

Исправление AKonia, (текущая версия) :

Ну вообще-то можно, просто у S перегрузите operator[] как просто возвращайте string или std::vector и всё. С другой стороны прямое преобразование невозможно просто потому что в Си++ нет такого примитивного типа как «массив из char определённой длины» и лучшее что вы можете сделать, так это сделать(не считая первых двух вариантов) так char * operator[], но тут я думаю и объяснять не нужно то, на кого будет свалена ответственность за управление памятью - либо на вас, либо на умный указатель, либо на костыльную систему которая сама выбросит в деструкторе всю свою щедроту.

Исходная версия AKonia, :

Ну вообще-то можно, просто создайте класс ArrS который допускает конвертацию в std::vector, а у S перегрузите operator[] и всё, с другой стороны прямое преобразование невозможно просто потому что в С++ нет такого примитивного типа как массив из char постоянной длины и лучшее что вы можете сделать, так это сделать так char * operator[], но тут я думаю и объяснять не нужно то, на кого будет свалена ответственность за управление памятью - либо на вас, либо на умный указатель, либо на костыльную систему которая сама выбросит в деструкторе всю свою щедроту.