$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] [Bind] Unexpected behavior when binding const char* to function
From: Piotr Jachowicz (pjachowi_at_[hidden])
Date: 2010-04-26 16:34:36
Hello,
This code proceces "xyz", contrary to user intention to bind "abc":
void echo(const char* s) {
cout << s << '\n';
}
int main()
{
string s("abc");
function<void ()> f = boost::bind(echo, s.c_str());
s = "xyz";
f();
}
This is misleading. Changing "echo(const char*)" into "echo(string)"
produces "abc", as expected. Is there any way (other than echo
wrapper) to get "abc" as expected?
-- Piotr Jachowicz