Size: a a a

2020 August 17

CD

Constantine Drozdov in pro.cxx
Alex
Но я не пойму, у меня где-то есть такой ассёрт с отрицанием? Т. е. проверка на пустоту optional? Вроде ж, нет.
template <typename T>
 static constexpr size_t index_of = pack::detail::index_for_type_strict<T, Pack...>();
смешно, вот так работает
источник

CD

Constantine Drozdov in pro.cxx
замена size_t на auto ошибка в clang
источник

A

Alex in pro.cxx
ах вот оно что!
источник

CD

Constantine Drozdov in pro.cxx
без идей почему это так
источник

CD

Constantine Drozdov in pro.cxx
шланг поддержка есть? минимальный пример сделал
источник

CD

Constantine Drozdov in pro.cxx
источник

A

Alex in pro.cxx
Мдаа, в двух местах поменял auto на size_t - и всё отлично. Большое спасибо!
Теперь можно разбираться, почему мой гениальный код даёт неправильный результат)
источник

CD

Constantine Drozdov in pro.cxx
@antoshkka вы вроде бы репортили в clang :)
источник

CD

Constantine Drozdov in pro.cxx
Alex
Мдаа, в двух местах поменял auto на size_t - и всё отлично. Большое спасибо!
Теперь можно разбираться, почему мой гениальный код даёт неправильный результат)
ну выглядит весьма забавно
note: non-literal type 'const auto' cannot be used in a constant expression
источник

CD

Constantine Drozdov in pro.cxx
достаточно логично, в списке literal type нет "auto" :)
источник

A

Alex in pro.cxx
такое впечталение, что исчерпалась глубина стека, через который протаскивается вычисленный тип)
источник

CD

Constantine Drozdov in pro.cxx
Alex
такое впечталение, что исчерпалась глубина стека, через который протаскивается вычисленный тип)
такое впечатление, что "auto" проверяли по табличке без раскрытия
источник

A

Alex in pro.cxx
Да, но оно ведь не везде не работает, а в определенных контекстах, кмк
источник

CD

Constantine Drozdov in pro.cxx
Alex
Да, но оно ведь не везде не работает, а в определенных контекстах, кмк
ломается конкретно Sample<int>::template bar<int>
источник

CD

Constantine Drozdov in pro.cxx
Sample::template bar<int> и Sample<int>::bar сработает
источник

d

d7d1cd in pro.cxx
Привет всем. Недавно здесь упоминался компилятор Borland. Вспомнил случай, когда писал в C++Builder какую-то программу. Когда указанный компилятор в режиме Release компилирует ниже приведенный тестовый код, то он выдает предупреждение, что функция должна возвращать значение. Причем если убрать ключевое слово inline, то предупреждение пропадает. И если переключить компилятор на clang, то предупреждение тоже пропадает. Кто-то может объяснить почему так?
/*----- unit1.h -----*/
inline bool Foo();


/*----- unit1.cpp -----*/
bool TForm1::Foo()
{
 bool b;
 int i;

 if (b) i = 1;
 else if (!b) i = 2;
 else return true;

 return false;
}
источник

IZ

Ilia Zviagin in pro.cxx
d7d1cd
Привет всем. Недавно здесь упоминался компилятор Borland. Вспомнил случай, когда писал в C++Builder какую-то программу. Когда указанный компилятор в режиме Release компилирует ниже приведенный тестовый код, то он выдает предупреждение, что функция должна возвращать значение. Причем если убрать ключевое слово inline, то предупреждение пропадает. И если переключить компилятор на clang, то предупреждение тоже пропадает. Кто-то может объяснить почему так?
/*----- unit1.h -----*/
inline bool Foo();


/*----- unit1.cpp -----*/
bool TForm1::Foo()
{
 bool b;
 int i;

 if (b) i = 1;
 else if (!b) i = 2;
 else return true;

 return false;
}
В огороде бузина, а в Киеве р дядька.

Расскажи,  какой практический смысл несёт твой вопрос?
Ты поймёшь, почему он выдает варн, и что будешь делать с этим?
источник

d

d7d1cd in pro.cxx
Я хочу понять, это мой код написан криво или это компилятор тупит.
источник

SK

Stas Koynov in pro.cxx
d7d1cd
Я хочу понять, это мой код написан криво или это компилятор тупит.
а при чему тут метод фуу, и функция фуу?
источник

IZ

Ilia Zviagin in pro.cxx
d7d1cd
Я хочу понять, это мой код написан криво или это компилятор тупит.
Код написан криво.
Компилятор в любом коде , плохом или хорошем, имеет право выдать любые предупреждения, предупреждение - это не ошибка, это просто какая-то диагностика.
источник