Во-первых, это не имеет ничего общего с Мерфи, я думаю: выбор шаблона bind()
, вероятно, лучше всего подходит.Объявление std::bind()
находится в пространстве имен std
, однако, по крайней мере, в версии заголовочного файла, на которую я смотрю.Возможно ли, что ваш исходный файл содержит директиву using?(в этом случае вы заслуживаете всю боль, которую вы просили)
Если директива using отсутствует, версия без шаблона должна лучше подходить, если аргументы совпадают с точно .Если это по-прежнему не помогает, вы можете создать функцию пересылки для функции bind()
из <sys/socket.h>
, скажем, avoid_conflict_bind()
, которая является единственной функцией, определенной в единице перевода, то есть она будет включать только <sys/socket.h>
ине <functional>
.Таким образом, нет возможности выбора функции bind()
, которую перенаправляет эта функция, и затем вы можете использовать avoid_conflict_bind()
.