Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
有没有办法在提供左值和右值重载的同时删除重复代码?
在学习 C 时 我决定编写一个简单的模板化二叉搜索树 bst 并遇到以下问题 我希望能够构造通过向其传递一个左值来实现 bst 例如const T val和一个像这样的右值T val 同样我希望能够insert左值和右值 所以我最终得到了很
c
overloading
codeduplication
rvalue
lvalue
如何有效地将左值或右值绑定到同一引用?
假设您有一个 C 函数 它使用 const 参数的更改版本 MyObject alter obj MyObject const obj Creates new altered object void func MyObject const
c
reference
ternaryoperator
rvalue
lvalue
关于如何识别右值或左值引用以及 if-it-has-a-name 规则
我正在读托马斯 贝克尔的书article http thbecker net articles rvalue references section 05 html关于右值引用及其使用 在那里他定义了他所说的如果它有一个名字 rule 声明为
c
C11
rvaluereference
lvalue
rvalue
了解使用右值/左值的模板参数推导
这是来自的后续函数模板无法识别左值 https stackoverflow com questions 22166767 template function does not recognize lvalue 22166879 221667
c
templates
C11
lvalue
rvalue
是否可以获得“this”指针的地址?
我读到了this是一个右值 我们无法通过应用来获取它的地址 this 在我的代码中 我尝试使用引用绑定this 我想知道哪种方式可以给出地址this 还是两者都错了 到底是什么this 左值 右值 关键字还是其他什么 void MyStri
c
reference
This
rvaluereference
rvalue
为什么占用临时地址是非法的?
我知道下面写的代码是非法的 void doSomething std string s int main doSomething std string Hello World return 0 原因是我们不允许获取临时对象的地址 但我的问题
c
temporary
memoryaddress
lvalue
rvalue
具有适用于左值和右值的引用参数的 C++ 函数
我想要一个 C 函数 它接受一个参数 即一个引用 并且适用于左值和右值相同的语法 举个例子 include
c
function
reference
rvalue
lvalue
文字值的范围是什么?编译器如何为其分配内存?
int x 12 12被认为是整数文字 因此不能在 LValue 中使用 编译器如何为文字分配内存 文字的范围是什么 为什么我们无法获取其范围内包含 12 的地址 好的 问题中的例子不好 但问题仍然有效 咱们试试吧 Foo getFoo r
c
object
scope
rvalue
C++0x const RValue 引用作为函数参数
我试图理解为什么有人会编写一个需要常量右值引用 在下面的代码示例中 const 右值引用函数 返回 3 的用途是什么 为什么重载解析优先考虑 const Rvalue 而不是 const LValue 引用函数 返回 2 include
c
C11
lvalue
rvalue
overloadresolution
C++ - 自动返回引用和非引用类型
当编写函数时auto我们可以使用的返回类型constexpr if返回不同类型 auto myfunc constexpr if someBool type1 first something return first else type2
c
reference
AUTO
rvalue
lvalue
为什么 as_const 禁止右值参数?
我想问为什么as const禁止右值参数 根据 http en cppreference com w cpp utility as constcppreference com 即为什么标准人员这样做 而不是为什么 cppreference
c
rvalue
C17
右值引用和左值引用作为参数之间的区别
读完帖子后 http www cprogramming com c 11 rvalue references and move semantics in c 11 html http www cprogramming com c 11 rv
c
reference
overloading
lvalue
rvalue
C++11 左值、右值和 std::move()
我有以下代码 include
c
C11
overloadresolution
rvalue
const_cast 的行为
我正在阅读有关 C 中的 const cast 运算符的内容 1 我无法理解的第一件奇怪的事情是 const cast 运算符语法 即 const cast 表达式 gt 我对这种语法的理解是 它有助于摆脱常量性expressionof t
c
casting
lvalue
rvalue
为什么可以分配给类类型的右值?
为什么这段代码可以编译 我认为构造函数返回的右值不位于内存中 因此不能用作左值 class Y public explicit Y size t num 0 int main Y 1 Y 0 WHAT return 0 根据参见 12 8
c
C11
languagelawyer
rvalue
lvaluetorvalue
获取 const 左值引用的地址是否合法?
include
c
lvalue
rvalue
const 引用是否会延长临时对象返回的临时对象的寿命?
我知道常量引用可以延长本地临时变量的寿命 现在我问自己是否可以将这种专有性扩展到临时对象链上 也就是说 我是否可以安全地定义 std string const foo aBar getTemporaryObject1 getTemporar
c
lifetime
rvalue
temporaryobjects
referencebinding
数组和右值(作为参数)
我想知道是否有任何方法可以区分以下代码中显示的函数调用 以数组作为参数 include
c
Arrays
C11
rvaluereference
rvalue
如何以编程方式确定 C++ 中的表达式是右值还是左值?
在 C 中确定表达式是右值还是左值的最佳方法是什么 也许 这在实践中没有用 但由于我正在学习右值和左值 我认为有一个函数会很好is lvalue如果传入输入的表达式是左值 则返回 true 否则返回 false Example std st
c
C11
lvalue
rvalue
可以采取哪些措施来防止对返回值进行误导性分配?
使用 C 多年后 我意识到使用自定义类时语法中的一个怪癖 尽管是正确的语言行为它允许创建非常具有误导性的界面 这里的例子 class complex arg double r double phi public std complex
c
assignmentoperator
userdefinedtypes
rvalue
1
2
»