170 похожих чатов

Всем привет, такой вопрос, можно ли как нибудь узнать длину

массива внутри функции ?

11 ответов

5 просмотров

внутри шаблонной можно, внутри обычной - нельзя

Alexey Petrunyaka
внутри шаблонной можно, внутри обычной - нельзя

Ну нифига себе. А как это внутри шаблонной можно?

Eyed Shovel
Ну нифига себе. А как это внутри шаблонной можно?

Если это не VLA, которого по стандарту нет, то массив имеет постоянную длину, а шаблонная функция видит полный тип на входе, а не урезанный до указателя.

Eyed Shovel
Ну нифига себе. А как это внутри шаблонной можно?

#include <iostream> template <typename T, int N> void PrintArrLength(const T (&arr)[N]) { std::cout << N << std::endl; } int main( ) { int myArr[100]; PrintArrLength(myArr); }

Андрей Таусинов
#include <iostream> template <typename T, int N> ...

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Eyed Shovel
Это если массив статический

Если динамический, то у вас его "нет", а есть только указатель на его нулевой элемент.

используйте std::span и не делайте себе и другим мозг

Нельзя, надо передавать размеры в функцию явно

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта