Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为数据提供有效类型是否会产生副作用?
假设我有一大块动态分配的数据 void allocate size t n void foo malloc n return foo 我希望使用指向的数据foo作为一种特殊类型 type t 但我想稍后再这样做 而不是在分配期间这样做 为了
c
languagelawyer
lvalue
strictaliasing
有没有办法在提供左值和右值重载的同时删除重复代码?
在学习 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
转发引用是否仍然是右值引用?
我仍然对支持移动和转发而发明的规则感到困惑 我仍然不确定的一件事是 是转发参考 just 右值引用 和 应用参考折叠规则 如果它是右值引用 那么该函数为什么会这样 template
c
C11
rvaluereference
lvalue
forwardingreference
为什么占用临时地址是非法的?
我知道下面写的代码是非法的 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
C++0x const RValue 引用作为函数参数
我试图理解为什么有人会编写一个需要常量右值引用 在下面的代码示例中 const 右值引用函数 返回 3 的用途是什么 为什么重载解析优先考虑 const Rvalue 而不是 const LValue 引用函数 返回 2 include
c
C11
lvalue
rvalue
overloadresolution
'?:'(三元/条件运算符)的结果类型是什么?
为什么第一个条件运算符会产生引用 int x 1 int y 2 x gt y x y 100 然而 第二个却没有 int x 1 long y 2 x gt y x y 100 实际上 第二个根本无法编译 error lvalue req
c
types
reference
conditionaloperator
lvalue
为什么 C 中的复合文字可以修改
人们通常会将 不可修改 与术语 字面量 联系起来 char str Hello World str B Bus Error 然而 当使用复合文字时 我很快发现它们是完全可修改的 查看生成的机器代码 您会看到它们被推入堆栈 char str
c
C99
literals
lvalue
compoundliterals
C++ - 自动返回引用和非引用类型
当编写函数时auto我们可以使用的返回类型constexpr if返回不同类型 auto myfunc constexpr if someBool type1 first something return first else type2
c
reference
AUTO
rvalue
lvalue
右值引用和左值引用作为参数之间的区别
读完帖子后 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
const_cast 的行为
我正在阅读有关 C 中的 const cast 运算符的内容 1 我无法理解的第一件奇怪的事情是 const cast 运算符语法 即 const cast 表达式 gt 我对这种语法的理解是 它有助于摆脱常量性expressionof t
c
casting
lvalue
rvalue
为什么 a++++b 不起作用?
int main int a 5 b 2 printf d a b return 0 此代码给出以下错误 错误 需要左值作为增量操作数 但如果我在整个过程中添加空格a and b 然后就可以正常工作了 int main int a 5 b
c
lvalue
获取 const 左值引用的地址是否合法?
include
c
lvalue
rvalue
转换指针不会产生左值。为什么?
在发布我最具争议的答案之一之后here https stackoverflow com questions 7444464 read bytes methods in c c 7444502 7444502 我敢于提出一些问题 最终填补了我
c
pointers
casting
lvalue
如何以编程方式确定 C++ 中的表达式是右值还是左值?
在 C 中确定表达式是右值还是左值的最佳方法是什么 也许 这在实践中没有用 但由于我正在学习右值和左值 我认为有一个函数会很好is lvalue如果传入输入的表达式是左值 则返回 true 否则返回 false Example std st
c
C11
lvalue
rvalue
无法理解左值的错误条件
我是编程初学者 正在尝试一些组合 include
c
compilererrors
lvalue
转换错误:需要左值作为赋值的左操作数
所以我正在尝试使用ether aton 它返回一个struct ether addr 我正在尝试将其放入我的struct ether header eptr 来自 net ethernet h ether shost成员 我试过这个 str
c
pointers
casting
lvalue
1
2
»