VS
> * Creation of an array of char, unsigned char, or std::byte implicitly creates objects within that array.
Таки должно работать с обычными массивами. Если что это из [P0593R6].
Size: a a a
VS
С
ПК
ПК
O
foo1 и foo2 являются пользовательскими функциями, а всё остальное — библиотечное. Сейчас код не компилируется из-за того, что пользователь написал sfinae-unfriendly foo1
Способы заставить код компилироваться:VS
foo1 и foo2 являются пользовательскими функциями, а всё остальное — библиотечное. Сейчас код не компилируется из-за того, что пользователь написал sfinae-unfriendly foo1
Способы заставить код компилироваться:foo1 вызывается не потому, что bar_impl(double) выбран, а как часть процесса разрешения перегрузки/инстанциации шаблона?O
foo1 вызывается не потому, что bar_impl(double) выбран, а как часть процесса разрешения перегрузки/инстанциации шаблона?VS
foo1 и foo2 являются пользовательскими функциями, а всё остальное — библиотечное. Сейчас код не компилируется из-за того, что пользователь написал sfinae-unfriendly foo1
Способы заставить код компилироваться:noexcept это плохой вариант, потому что не могу придумать случай, когда такой контракт будет разуменVS
O
noexcept это плохой вариант, потому что не могу придумать случай, когда такой контракт будет разуменnoexcept, а в том, что он написал функцию, которая вне sfinae-контекста делает что-то с заранее неизвестным типом, и это стреляет в ногу таким странным образом.foo1 ill-formed в sfinae-контексте (например, взять второй мой вариант решения или повесить концепт на Fn). Т.е. правильным контрактом было бы требовать от пользователя предоставлять sfinae-friendly реализации функцииfoo, имеющая две перегрузки с разными тегами и весь набор шаблонной магии, включая очень глубокие рекурсииO
foo2
* foo1 нигде не должна вызыватьсяfoo1 будет лежать мёртвым, невалидным грузом в кодовой базеVS
foo2
* foo1 нигде не должна вызыватьсяfoo1 будет лежать мёртвым, невалидным грузом в кодовой базеVS
foo2
* foo1 нигде не должна вызыватьсяfoo1 будет лежать мёртвым, невалидным грузом в кодовой базеO
m
foo1 и foo2 являются пользовательскими функциями, а всё остальное — библиотечное. Сейчас код не компилируется из-за того, что пользователь написал sfinae-unfriendly foo1
Способы заставить код компилироваться:bar_impl? Если использовать просто вывод типа через auto оно собирается.