文字和右值引用
void test(int && val)
{
val=4;
}
void main()
{
test(1);
std::cin.ignore();
}
int
是在调用 test
时创建的,还是在 C++ 中默认文字是 int
类型?
void test(int && val)
{
val=4;
}
void main()
{
test(1);
std::cin.ignore();
}
Is a int
is created when test
is called or by default in c++ literals are int
type?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请注意,您的代码将仅使用 C++11 编译器进行编译。
当您传递整数文字时,默认情况下为
int
类型,除非您编写1L
,否则为int 类型的临时对象创建绑定到函数参数的
。它就像以下初始化中的第一个:Note that your code would compile only with C++11 compiler.
When you pass an integral literal, which is by default of
int
type, unless you write1L
, a temporary object of typeint
is created which is bound to the parameter of the function. It's like the first from the following initializations:调用 test 时会创建一个值为 1 的 int。文字按其形式键入。例如,1 是 int,1.0 是 double,“1”是字符串。
An int with the value 1 is created when test is called. Literals are typed by their form. For example, 1 is an int, 1.0 is a double, "1" is a string.