Size: a a a

2020 June 26

АК

Александр Караев... in pro.cxx
Artöm Bakri Al-Sarmini
Хочешь сказать это надеждоц на популярность ренжей продиктовано?
я просто уверен, что cbegin/rbegin/crbegin были придуманы как костыль из-за отсутствия ренжей в давние времена. наплодили х4 лишних сущностей только из-за отсутствия нормальных врапперов
косвенное доказательство тому - range-based-for работает только с begin/end
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Artöm Bakri Al-Sarmini
При этом span прлучается нифига не Container, потому что не имеет cbegin
А, не знаю, почему меня это удивило
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Ну это относительно логично, вью не контейнер
источник

VS

Vlad Serebrennikov in pro.cxx
источник

VS

Vlad Serebrennikov in pro.cxx
нашел
источник

D

Dmitry in pro.cxx
ok
примерно понятно
всем спасибо!
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Он в личку присылает
источник

II

Igor Ivanov in pro.cxx
а как принято проверять версию gcc в коде?
#if defined(__GNUC__) && (__GNUC__>=5 || (__GNUC__==4 && __GNUC_MINOR__>=9))

, или есть более кошерный способ?
источник

АК

Александр Караев... in pro.cxx
Igor Ivanov
а как принято проверять версию gcc в коде?
#if defined(__GNUC__) && (__GNUC__>=5 || (__GNUC__==4 && __GNUC_MINOR__>=9))

, или есть более кошерный способ?
заводят макрос GNU_FULL_VERSION, а дальше или GNU_FULL_VERSION >= 40900 или GNU_FULL_VERSION >= MAKE_GNU_VERSION(4, 9, 0)
источник

II

Igor Ivanov in pro.cxx
Александр Караев
заводят макрос GNU_FULL_VERSION, а дальше или GNU_FULL_VERSION >= 40900 или GNU_FULL_VERSION >= MAKE_GNU_VERSION(4, 9, 0)
сами заводят заново в каждом проекте, изкоробки не предусмотрено?
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
В стдлибсхх что-то было, но оно похоже internal, в документации не нахожу
источник

АК

Александр Караев... in pro.cxx
Igor Ivanov
сами заводят заново в каждом проекте, изкоробки не предусмотрено?
источник

II

Igor Ivanov in pro.cxx
штош, учту, спасибо
источник

v

vient in pro.cxx
Добрый день
Такой вопрос: реально ли сделать шаблонный массив, чтобы на нём работал sizeof?
Конкретно ситуация такая:
я в классе объявляю
template<typename T> inline static T array[];
inline static int array[1] = {0};
и дальше в методе класса на строку
sizeof(array<int>)
вижак (последний, в режиме C++17) говорит, что размер неизвестен, и это невалидный аргумент для sizeof
источник

v

vient in pro.cxx
мотивация здесь такая, что я хочу сделать шаблонный метод, который будет работать с array<T>, который будет определён для нескольких типов, но пока не понимаю, как это сделать
источник

АК

Александр Караев... in pro.cxx
vient
Добрый день
Такой вопрос: реально ли сделать шаблонный массив, чтобы на нём работал sizeof?
Конкретно ситуация такая:
я в классе объявляю
template<typename T> inline static T array[];
inline static int array[1] = {0};
и дальше в методе класса на строку
sizeof(array<int>)
вижак (последний, в режиме C++17) говорит, что размер неизвестен, и это невалидный аргумент для sizeof
какой-то странный набор символов
статическая шаблонная переменная, рядом инлайн переменная с тем же именем..
источник

AT

Alexey Tkachenko in pro.cxx
vient
Добрый день
Такой вопрос: реально ли сделать шаблонный массив, чтобы на нём работал sizeof?
Конкретно ситуация такая:
я в классе объявляю
template<typename T> inline static T array[];
inline static int array[1] = {0};
и дальше в методе класса на строку
sizeof(array<int>)
вижак (последний, в режиме C++17) говорит, что размер неизвестен, и это невалидный аргумент для sizeof
и static к чему относится?
источник

v

vient in pro.cxx
Да, может быть это вообще невалидный код... Я пытался лавировать между ошибками компилятора, и не очень понимаю всё это.

static должны быть массивы в классе, inline пришлось вставить, чтобы перенести инициализацию в тело класса
источник

v

vient in pro.cxx
насколько я понимаю, без inline инициализацию придётся выносить в отдельный cpp файл, и тогда sizeof точно не будет работать в шаблонных методах, которые нужно в хедерах записывать
источник

v

vient in pro.cxx
Александр Караев
какой-то странный набор символов
статическая шаблонная переменная, рядом инлайн переменная с тем же именем..
да, я там пропустил inline в объявлении шаблона, в коде у меня оно есть
источник