Я использую несколько «мета-методов» для обнаружения сигнатур вызовов во время компиляции. Хотя это решение помогает мне, это только из-за моего довольно специфичного выбора подписи. Это решение не является достаточно универсальным, как показано в приведенном ниже коде, неявное преобразование может легко привести к ложному срабатыванию из-за вседозволенности std::is_invocable....
Я использую несколько «мета-методов» для обнаружения сигнатур вызовов во время компиляции. Хотя это решение помогает мне, это только из-за моего довольно специфичного выбора подписи. Это решение не является достаточно универсальным, как показано в приведенном ниже коде, неявное преобразование может легко привести к ложному срабатыванию из-за вседозволенности std::is_invocable.... [code]#include #include
template static constexpr auto canCallWith() { return std::is_invocable_v; }
template static constexpr auto canRetWith() { return std::is_same::value; }
template static constexpr auto sigmatch() { if constexpr (canCallWith()) { if constexpr (canRetWith()) { return true; } } return false; }
Я использую несколько «мета-методов» для обнаружения сигнатур вызовов во время компиляции. Хотя это решение помогает мне, это только из-за моего довольно специфичного выбора подписи. Это решение не является достаточно универсальным, как показано в...
Я использую несколько «мета-методов» для обнаружения сигнатур вызовов во время компиляции. Хотя это решение помогает мне, это только из-за моего довольно специфичного выбора подписи. Это решение не является достаточно универсальным, как показано в...
У меня есть класс, который может содержать функцию, которая будет вызываться где-то еще. В зависимости от того, что его вызывает, оно может иметь переменное количество аргументов. Один владелец может вызывать его с аргументами (event, int, str), а...