Здравствуйте, niXman, Вы писали:
X>первый исключить легко: constexpr const char *str = "(std::vector<int>)"+1 X>но вот как избавиться от последнего символа?
Да никак.
Но можно отказаться от голого указателя. Используй string_ref, string_view или любой другой аналог невладеющей ссылки на строку. То есть по сути можно перейти к двум указателям или к указателю и длине. Если от строк часто требуется отрезать кусочки или сами строки разрезать по разделителям, то использование такого класса оправдывается.
Re: инициализация c-string с изменением инициализатора
Здравствуйте, niXman, Вы писали:
X>дано: "(std::vector<int>)" X>нужно этим инициализировать constexpr указатель, но так, чтоб исключить первый и последний символы, т.е. скобки.
Здравствуйте, niXman, Вы писали:
X>привет!
X>дано: "(std::vector<int>)" X>нужно этим инициализировать constexpr указатель, но так, чтоб исключить первый и последний символы, т.е. скобки.
X>первый исключить легко: constexpr const char *str = "(std::vector<int>)"+1 X>но вот как избавиться от последнего символа?
тебе надо создать строковый литерал в compile-time
можно попробовать static const char y[]{x[i+1]...}, но IIRC static не сочетается с constexpr.
значит никак.
In Zen We Trust
Re: инициализация c-string с изменением инициализатора
Здравствуйте, niXman, Вы писали:
X>привет!
X>дано: "(std::vector<int>)" X>нужно этим инициализировать constexpr указатель, но так, чтоб исключить первый и последний символы, т.е. скобки.
X>первый исключить легко: constexpr const char *str = "(std::vector<int>)"+1 X>но вот как избавиться от последнего символа?
X>спасибо.
Начинал как-то писать библиотеку для такого рода вещей. С ее использованием выглядело бы это как-то так:
Здравствуйте, niXman, Вы писали:
X>ну, или ща посмотрю, чтоб из нее можно выдрать...
У него кстати используется BOOST_PP_* и нужно определять макрос ограничивающий длину строки (по сути, костыль). У меня этого нет, но существует другое ограничение. Нельзя сразу передать такую строку в параметр шаблона так:
some_template<CT_STRING("1234")>
Решения, лишённого обоих этих недостатков, я не встречал.
Re[5]: инициализация c-string с изменением инициализатора
Здравствуйте, wander, Вы писали:
W>Нельзя сразу передать такую строку в параметр шаблона так:
да мне вообще тайпдефить ничего не нужно(если возможно, конечно), по сути.
для моего случая, идеальным было бы такое: