Re: std::string reference initialized with string literal
On Mar 3, 5:07 am, "Ivan Novick" <ivan.d.nov...@gmail.com> wrote:
#include <string>
#include <iostream>
const std::string& mystring = "Hello World";
int main(int argc, char** argv)
{
std::cout << mystring << std::endl;
return 0;
}
++++++++++++++++++++++++++++++++++++++++++++++
This code works on my box, but it seems wrong. Can we initialize a
reference with a string literal?
You can't initialize a reference to an std::string with a string
literal. Something like:
char const& mystring[ 12 ] = "Hello world" ;
would work, though. (At least, I think it would.
I am assuming a temporary is created
in the process, but I am not seeing how this can work.
A temporary is created. There are a few special cases where the
lifetime of a temporary is extended: when a reference is
initialized with a temporary, the lifetime of that reference is
extended to the lifetime of the reference.
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orient?e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S?mard, 78210 St.-Cyr-l'?cole, France, +33 (0)1 30 23 00 34
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]