Я думаю, ответ здесь заключается в том, что компилятор не гарантирует порядок инициализации глобальных переменных. Если ваш bind_view вызывается из конструктора другой глобальной переменной - у вас будет плавающая ошибка.
Попробуйте использовать следующий подход:
namespace Identity_VIEW
{
Published_view_identity & getRequestView()
{
static Published_view_identity s_request_view ("Sample");
return s_request_view;
}
}
...
bind_view(Identity_VIEW::getRequestView());
Это может помочь определить порядок инициализации глобальных переменных. Тем не менее, это решение не является поточно-ориентированным (если вам не все равно) ...