| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > инициализация char[] из constexpr char[] |
| Автор: boostcoder 29.4.2011, 16:33 | ||||
| всем привет. есть такой код:
http://liveworkspace.org/code/9971940363d8fc125afe34144cdf24ed бажная строка отмечена. получаю такую ошибку:
почему? если закомментить бажную строку, то код компилится. sizeof(file) и sizeof(function) выводят правильные размеры массивов, значит file и function не указатели. иначе бы sizeof`ы возвращали размер указателей. в общем объясните что не так. спасибо. |
| Автор: boostcoder 29.4.2011, 17:08 | ||
упрощенный пример:
http://liveworkspace.org/code/ced3e4b8e1391beb6ca2db7bd3963988 как инициализировать buf ? |
| Автор: mes 29.4.2011, 17:08 |
| Вы собрались инициализировать массив в структуре другим массивом ? а чего бы не разгрузить этот стык конструктором ? Добавлено через 40 секунд memcpy |
| Автор: boostcoder 29.4.2011, 17:17 | ||||
да. а что изменится? и какой должен быть в этом случае конструктор? от этого и хочу избавиться. Добавлено через 8 минут и 6 секунд не понимаю каким должен быть конструктор для этого.. пробовал так:
http://liveworkspace.org/code/b80134fea3283c5a80cd08aaec1befa8 получаю это:
|
| Автор: mes 29.4.2011, 17:25 |
без копирования в том или ином виде не обойтись.. C++ не позволяет инициализацию массива другим массивом.. Добавлено через 2 минуты и 6 секунд копирование можно реализовать через рекурсивную шаблонную функцию.. |
| Автор: boostcoder 29.4.2011, 17:28 |
жаль.. |
| Автор: mes 29.4.2011, 17:33 |
копирование можно развернуть в компильтайме, используя рекурсивно шаблоную (по размеру) функцию.. |
| Автор: boostcoder 29.4.2011, 17:34 | ||
сейчас попробую.. |