Comments (6)
Do you mean 1.01 (double literal) is not an object,so the reference can't be bound to 1.01?
yes.
But const int &i=1.01 is valid
const reference is different from plain reference.
const int &i = 1.01; // i refers to temporary with value 2.0
Thus, in your example, the const reference is not bound to double literal, rather than the temporary(object).
please check:
http://en.cppreference.com/w/cpp/language/reference_initialization
http://stackoverflow.com/a/2088337/1155235
FYI
from cppprimer.
Hi, @pezy,
I got a question about a reference you have mentioned above. At the end of his answer, he asserted that:
... Any name which contains adjacent underscores is reserved to the C++ implementation.
While I try to compile codes like:
int main()
{
int __A = 9;
int const& ref = __A;
int __B = ref + 6;
int const& another_ref = __B;
int test__variable_name = 88;
std::cout << ref << " " << another_ref << " " << test__variable_name << std::endl;
return 0;
}
gcc-c++ compiler (version:4.9.2) don't throw a(n) warning or error to me as I expect and its outputs are correct. And of course I know that assign this kind of variable name is inappropriate, I just wanna know whether modern C++ explicitly forbid such behaviors or not.
from cppprimer.
I just wanna know whether modern C++ explicitly forbid such behaviors or not.
No.
It's just a coding style... (established by usage)
You can free to use underscores to start your variable names, but we do not recommend doing this, cause the style is a "privilege" of compiler implementation.
from cppprimer.
@pezy Got it and thank you. I found that almost, well actually every variable name I can find in C++ headers start with underscores, like _Ptr
or _Rb_tree_node
. Is that what you guys call "compiler implementation" or maybe I just make a mistake?
from cppprimer.
Is that what you guys call "compiler implementation"
Exactly. 😄
from cppprimer.
@pezy A big thanks!
from cppprimer.
Related Issues (20)
- ex16_29 include error file,It compile failed HOT 2
- about 16.2.7 HOT 2
- Exercise 7.36
- Exercise 6.53
- Exercise 5.3 correct answer HOT 1
- Ex 6_8 HOT 1
- Ex 6_9 (added #include "fact.cpp")
- Ex 6_10 (added "return 0;")
- Exercise 13.37
- Answer to Exercises 3.37 is not entirely true.
- Ex16.49
- The new soulution of Exercise 5.12
- Ex.7.53 will not compile under the C++14 standard
- #include<exception>
- ex7_22.h 'class' instead of 'struct'
- Bug report exercise 16.12
- An error in exercise 16.28, in file <unique_pointer.h>
- Small modification for answer of Exercise 3.9 - mention `s` is a empty string
- Exercise 9.28(The loop may not stop)
- terminate called after throwing an instance of 'std::bad_alloc
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cppprimer.