Size: a a a

2020 July 10

AN

Antony Nee in pro.cxx
Всем привет! Может был у кого опыт интеграции  cryptopp с androidstudio ndk и может кто посоветовать годный ман/тутор/статью?  Стоит задача прикрутить к приложению на андроид криптофункционал (в курсе, что это можно сделать на java) с использованием crypto++ .
источник

CD

Constantine Drozdov in pro.cxx
раз никто не перенес, перенесу я :)
template <class T>
void foo(T&& t)
{
   static_assert (![]{});
}

int main() {
   return 0;
}

по какому такому пункту это не даёт ошибку компиляции, то есть почему ![]{} это не false
источник

D

Danya in pro.cxx
Constantine Drozdov
раз никто не перенес, перенесу я :)
template <class T>
void foo(T&& t)
{
   static_assert (![]{});
}

int main() {
   return 0;
}

по какому такому пункту это не даёт ошибку компиляции, то есть почему ![]{} это не false
А должно, если шаблон не инстациирован?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
Danya
А должно, если шаблон не инстациирован?
static_assert (0);
же фейлится
источник

D

Danya in pro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
static_assert (0);
же фейлится
Я не следил за дискуссией в супе
источник

Е

Егор in pro.cxx
Constantine Drozdov
раз никто не перенес, перенесу я :)
template <class T>
void foo(T&& t)
{
   static_assert (![]{});
}

int main() {
   return 0;
}

по какому такому пункту это не даёт ошибку компиляции, то есть почему ![]{} это не false
А почему добавление к условию && false тоже ситуацию не меняет?
А не, оно так со всеми депендент именами работает
источник

АК

Александр Караев... in pro.cxx
Constantine Drozdov
раз никто не перенес, перенесу я :)
template <class T>
void foo(T&& t)
{
   static_assert (![]{});
}

int main() {
   return 0;
}

по какому такому пункту это не даёт ошибку компиляции, то есть почему ![]{} это не false
много лишнего, вопрос я так понимаю в том, когда инстанцируется лямбда в шаблонном контексте
источник

VS

Vlad Serebrennikov in pro.cxx
ни в temp.res, ни в expr.const, ни в expr.prim.lambda так и не нашел ответа, почему инстанциация лямбды откладывается
источник

VS

Vlad Serebrennikov in pro.cxx
надеюсь, что это я плохо искал
источник

VS

Vlad Serebrennikov in pro.cxx
и что ответ где-то есть
источник

АК

Александр Караев... in pro.cxx
всё просто. никого ведь не смущает, что тут Local - зависимый от T тип и инстанцирование отложено?

template <class T>
void f() {
   struct Local {
       static void call() {}
       constexpr operator auto() { return &call; }
   };

   static_assert(!Local{});
}
источник

AK

Anton Kviatkovskii in pro.cxx
Александр Караев
всё просто. никого ведь не смущает, что тут Local - зависимый от T тип и инстанцирование отложено?

template <class T>
void f() {
   struct Local {
       static void call() {}
       constexpr operator auto() { return &call; }
   };

   static_assert(!Local{});
}
Но лямбда без захвата не обязательно разворачивается в локальный функтор
источник

АК

Александр Караев... in pro.cxx
Anton Kviatkovskii
Но лямбда без захвата не обязательно разворачивается в локальный функтор
где написано?
источник

AK

Anton Kviatkovskii in pro.cxx
Александр Караев
где написано?
Нигде)
ну т.е. нигде и не написано, что она становится функтором
источник

АК

Александр Караев... in pro.cxx
лямбда без захвата отличается от обычной только тем, что у неё есть эквивалент operator(), не требующий this (статический, формально), а также каст к указателю на функцию
источник

CD

Constantine Drozdov in pro.cxx
Александр Караев
всё просто. никого ведь не смущает, что тут Local - зависимый от T тип и инстанцирование отложено?

template <class T>
void f() {
   struct Local {
       static void call() {}
       constexpr operator auto() { return &call; }
   };

   static_assert(!Local{});
}
а почему он зависимый, это где-то написано?
источник

АК

Александр Караев... in pro.cxx
Constantine Drozdov
а почему он зависимый, это где-то написано?
https://en.cppreference.com/w/cpp/language/dependent_name
здесь где-то уж точно
источник

CD

Constantine Drozdov in pro.cxx
я там искал по слову linkage и не нашел
источник

АК

Александр Караев... in pro.cxx
Constantine Drozdov
я там искал по слову linkage и не нашел
я по nested ищу
источник

VS

Vlad Serebrennikov in pro.cxx
Anton Kviatkovskii
Но лямбда без захвата не обязательно разворачивается в локальный функтор
но ведь лямбда это объект class type, объявленный в самой маленькой области видимости
источник