|
0 / 0 / 0
Регистрация: 08.05.2019
Сообщений: 17
|
|||||||||||
Constexpr для результата функции03.02.2023, 18:43. Показов 2228. Ответов 29
Метки нет (Все метки)
Имеется строка
0
|
|||||||||||
| 03.02.2023, 18:43 | |
|
Ответы с готовыми решениями:
29
Constexpr функции Рекурсивный вызов constexpr функции Присваивание constexpr к non-constexpr |
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 03.02.2023, 20:28 | |
|
0
|
|
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||||
| 03.02.2023, 20:40 | ||||
|
Вместо того, что бы представить автору constexpr функцию strlen, вы ему втюхали size, и при этом притензий вы не принимаете. А то что size не способна корректно вычислять длину строки, это у вас такая норма жизни. Вы ж не обещали, что size сможет заменить strlen.
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 03.02.2023, 20:58 | |
|
eva2326,
Никто никому ничего не втюхивал. Просили способ узнать длину конкретной compile time строки, я предложил один из возможных рабочих вариантов. Так же я нигде не говорил, что size считает длину строки, а замечания идут такие, что якобы я утверждал что-то подобное. Нет конечно, естественно size считает длину массива, а так как строка в данном случае это массив char и без запасных элементов, то все ведь ок. По-моему все это должно быть очевидно
0
|
|
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||||||||||
| 03.02.2023, 21:41 | ||||||||||
|
Автор не просил узнать длину конкретной compile time строки Он спросил как организовать constexpr strlen Вы вообще хотя бы немножко, хотя бы после всех замечаний удостоужились прочитать, о чем на самом деле спросил автор? Речь идет об strlen, которая способна вычислять значение времени компиляции. Вас попросили вычислить длину строки.
0
|
||||||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||
| 03.02.2023, 22:13 | ||||
|
eva2326,
Короче ребята, вы победили, только отстаньте. Больше здесь отвечать не собираюсь.
0
|
||||
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
|||
| 03.02.2023, 22:34 | |||
|
ТС привел строку для примера, что бы было понятно, чего он хочет. Очевидно жеж, что предполагается работать с разными строками, а не только с конкретным литералом из 5 букв. А вы подсказали, как не надо делать. Вас просили показать strlen, а вы показали size, с таким своеобразным отношением к делу: и так сойдет.
0
|
|||
|
"C with Classes"
|
|||
| 04.02.2023, 00:13 | |||
|
0
|
|||
|
Комп_Оратор)
|
||||||
| 04.02.2023, 01:26 | ||||||
|
bfin,если обернуть функцией, то компилятор не возражает против инициализации статического указателя на функцию (под капотом). А сонст экспр данное в области класса он не ест. Тут как с ребёнком. Если хотите накормить - оберните во что-то приемлемое. Может и съест)
1
|
||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
|
|||||||
| 04.02.2023, 05:16 | |||||||
strlen в constexpr контексте будет приниматься GCC и без оборачивания, как видно в строке 11. Так что не ясно, зачем тут было что-то вообще городить для компилятора, который и так напрямую компилирует код из исходного вопроса.Достаточно добавить -fno-builtin и GCC начнет вести себя корректно.В С++ strlen не является constexpr и в С++ не разрешается вызывать не-constexpr функции из constexpr функций, то никакое оборачивание здесь ситуации не спасет
0
|
|||||||
|
Комп_Оратор)
|
|
| 06.02.2023, 00:21 | |
|
У TC присутствует слово static. Я предположил, что это часть из объявлений в классе. Однако в контексте класса компилятор отказался компилировать данное объявление. Когда же я обернул его как показано всё прошло гладко. Там в комменте я это указал.
0
|
|
| 06.02.2023, 00:21 | |
|
Свой класс для работы с constexpr
Сервис для изучения c++ кода (+ еще одна тема о constexpr в качестве примера)? Алгоритм для обработки результата функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|