小编Tob*_*kom的帖子

显式默认移动构造函数

根据c ++ 11标准,只有在以下情况下才会生成默认移动构造函数:

  • X没有用户声明的拷贝构造函数,和
  • X没有用户声明的复制赋值运算符,
  • X没有用户声明的移动赋值运算符,
  • X没有用户声明的析构函数,和
  • 移动构造函数不会被隐式定义为已删除.

我还能明确默认吗?似乎在clang中正常工作.像这样例如:

class MyClass {
private:
  std::vector<int> ints;
public:
  MyClass(MyClass const& other) : ints(other.ints) {}
  MyClass(MyClass&& other) = default;
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor clang default-constructor c++11

8
推荐指数
2
解决办法
1633
查看次数

EXC_BAD_ACCESS和char指针浮点指针强制转换

我正在为ipad程序编写一个文件加载器,我得到了奇怪的EXC_BAD_ACCESS异常.这是一段简短的代码,我认为是错误的原因:

float testFloat() {
    char mem[32];
    char *charPtr = &mem[0];
    float *floatPtr = (float*)(charPtr + 1);
    float f = *floatPtr; //EXC_BAD_ACCESS
    return f;
}
Run Code Online (Sandbox Code Playgroud)

只有当charPtr的偏移量不能被4整除时才会发生错误,所以我猜它可能与ARM CPU上的指针对齐有关.

c++ iphone

3
推荐指数
1
解决办法
1076
查看次数

标签 统计

c++ ×2

c++11 ×1

clang ×1

constructor ×1

default-constructor ×1

iphone ×1