вызвать функцию с заданными типами аргументов?
если ассерт написан внутри функции - никак, это hard error
можно же заинстанцировать шаблон без вызова
моё утверждение: если в теле функции f написано static_assert(<cond>), то нельзя написать конструкцию, которая отвечает в compile-time на вопрос "приведёт ли вызов f(...) к срабатыванию ассерта"
Да, всё верно, обработать эту ситуацию в условии не получится никак
можно же с помощью enable_if её выключить если срабатывает ассерт, просто написав в enable_if ровно то же условие, что в ассерте, и это уже можно будет определить
ну так значит это утверждение не верно?)
уточняю утверждение: без модификации f. про то, что условие нужно перенести из ассерта в enable_if, уже несколько раз сказали выше
Для этого надо перенести условие из тела в заголовок, тогда конечно сработает, но это почему-то не подходит автору вопроса
Обсуждают сегодня