Просто используйте два пакета параметров:
template<typename Bar, typename... Bars, typename Input, typename... Inputs>
std::string foo(const Input &input, const Inputs &... inputs)
{
std::string result(Bar::get_name());
result.append(input);
if constexpr (sizeof...(inputs) > 0)
result.append(foo<Bars...>(inputs...));
return result;
}
вы можете использовать побитовую операцию, которая &
, например, 12. Побитовый эквивалент 12 равен 1100
. если вы хотите узнать, установлен ли флажок 3, необходимо сравнить его с 8 (эквивалент 1000
)
1100
1000
-----
1000 => 8
. Таким образом, ваш окончательный запрос будет
SELECT * from Table1 WHERE answer & 8 = 8
Вы можете использовать побитовое значение AND
:
SELECT *
FROM tab
WHERE answer & 10 = 10
Аналогичный подход, используемый в @@ OPTIONS :
[ 118] Функция @@ OPTIONS возвращает битовый массив опций, преобразованный в целое число 10 (десятичное).
Чтобы декодировать значение @@ OPTIONS , преобразуйте целое число, возвращаемое @@ OPTIONS , в двоичный файл, а затем найдите значения в таблице в разделе Настройка параметров пользователя Настройка сервера Вариант. Например, если SELECT @@ OPTIONS; возвращает значение 5496, используйте калькулятор программиста Windows (calc.exe) для преобразования десятичного числа 5496 в двоичное. Результат - 1010101111000. Самые правые символы (двоичные 1, 2 и 4) равны 0, что указывает на то, что первые три элемента в таблице выключены.
blockquote>Проверка ANSI_NULLS
Чтобы просмотреть текущие настройки для этого параметра, выполните следующий запрос:
blockquote> [111 ]