Сервис WCF с аутентификацией Active Directory

std::get явно не для SFINAE, как указано в [tuple.elem]:

template 
  constexpr T& get(tuple& t) noexcept;
// and the other like overloads

Требуется: Тип T встречается ровно один раз в Types.... В противном случае, программа является плохо сформированной.

std::get также явно не SFINAE.


Что касается других вопросов:

Есть ли причина для std::get не быть SFINAE-дружественными?

Не знаю. Как правило, это не тот вопрос, который нужно обсуждать. Так что я думаю, это не считалось чем-то, что нужно было сделать. Сложные ошибки намного легче понять, чем пролистывать кучу нежизнеспособных вариантов кандидатов. Если вы считаете, что есть веская причина для того, чтобы std::get был дружественным по отношению к SFINAE, вы можете отправить об этом вопрос LWG.

Есть ли лучший обходной путь, чем описанный выше?

Конечно. Вы можете написать свою собственную дружественную SFINAE версию get (обратите внимание, она использует C ++ 17 сложенное выражение ):

template ::value + ...) == 1, int> = 0>
constexpr T& my_get(tuple& t) noexcept {
    return std::get(t);
}

И затем делать это по своему желанию ,

1
задан Joe Doyle 9 February 2010 в 21:15
поделиться

1 ответ

Почему бы вам просто не указать в привязке в качестве режима безопасности "встроенная безопасность Windows"? Это значение по умолчанию для привязок net.Tcp и wsHttp - учетные данные Windows текущего пользователя, вошедшего в систему, будут отправлены по сети на сервер.

На самом деле нет необходимости явно устанавливать эти учетные данные.

2
ответ дан 3 September 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: