[TOC]
c++不允许内部类在类外前置声明:
class B; // 错误
class A {
public:
int64_t Age;
class B {};
};-
方法一
只能放到类的内部进行前置声明:
class A { public: class B: // 正确 int64_t Age; class B {}; };
如果make老是编译不过,用ldd命令查看缺少一些动态链接库;但是在/usr/local/lib或其他目录里面又能找到这些动态链接库;
-
方法一
在linux下用命令
ldconfig来更新环境依赖;在macos下用命令
update_dyld_shared_cache来更新环境以来
Lambda引用捕获局部变量时,由于离开作用域导致局部变量释放,从而导致“悬挂引用”问题。
std::function<void()> f()
{
int a = 1;
auto bak = [&](){
a++;
std::cout << a << std::endl;
};
return bak;
}
int main()
{
auto bak = f();
bak();
}-
方法一
禁用引用捕获局部变量。
TODO
多线程访问迭代器,或者删除容器元素导致迭代器失效...