|
std::array получение индекса элемента по его значению
|
|||
---|---|---|---|
#18+
Всем привет! Предположим, что существует известный во время компиляции массив уникальных значений, представленных в виде std::array. Я пытаюсь написать мета-функцию, при помощи которой я мог бы получить индекс элемента по его значению в этом массиве. Cделать это тоже нужно в compile-time. В С++20 c этим нет проблем, т.к. там имеются библиотечные constexpr find/find_if и все прекрасно работает (проверял). Но поскольку в VS2019 С++20 на постоянку еще не завезли я пытаюсь провернуть аналогичный трюк под С++17, но застрял. Пока получилось вот такое: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
В чем проблема: пограничные случаи (конец/начало массива) написал, но затупил на том как мне написать специализацию для случая перебора элементов, которая бы прокручивала массив и сравнивала значения. Как обычно и бывает: стоит только потратить время и вывалить вопрос на форум и тут же решение найду сам. На это и рассчет Но если кто-то предложит решение, тоже будет неплохо godbolt -------------------------------------------------------------- o(O_O)o ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 13:20 |
|
std::array получение индекса элемента по его значению
|
|||
---|---|---|---|
#18+
А почему бы не скопипастить реализацию с заголовков С++20?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 13:24 |
|
std::array получение индекса элемента по его значению
|
|||
---|---|---|---|
#18+
да, забыл, еще есть вопрос: почему не работает CTAD для аргумента total указываемого в конструкторе и компилятор заставляет меня прописывать sizeof(array) вручную все время? Вроде же он достаточно прост для определения компилятором? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 13:24 |
|
std::array получение индекса элемента по его значению
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А почему бы не скопипастить реализацию с заголовков С++20?. тоже думал об этом, но сналету не удалось расковырять что там и как, сейчас буду пробовать еще раз ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 13:25 |
|
std::array получение индекса элемента по его значению
|
|||
---|---|---|---|
#18+
перемудрил там все элементарно ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 14:40 |
|
|
start [/forum/topic.php?fid=57&fpage=5&tid=2017300]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 343ms |
0 / 0 |