Closed pya789 closed 2 months ago
额很奇怪 其他位置使用的std::make_unique没有影响
额 不知道什么情况 莫名其妙的又好了。。。
@pya789
std::unique_ptr
与 co::unique
不会冲突。
报错原因应该是:用户代码访问了未初始化的 coost 全局变量。一般只要保证让 coost 内部的全局变量先于用户全局变量初始化,就不会有问题。
用户可以用 co::make_static
创建全局对象:
std::string* s = co::make_static<std::string>(“hello”);
std::string& x = *co::make_static<std::string>(“hello”);
由 coost 接管用户的全局对象,就不会出现上述报错问题。
@pya789
std::unique_ptr
与co::unique
不会冲突。报错原因应该是:用户代码访问了未初始化的 coost 全局变量。一般只要保证让 coost 内部的全局变量先于用户全局变量初始化,就不会有问题。
用户可以用
co::make_static
创建全局对象:std::string* s = co::make_static<std::string>(“hello”); std::string& x = *co::make_static<std::string>(“hello”);
由 coost 接管用户的全局对象,就不会出现上述报错问题。
感谢你的指点😊
和std::unique一起使用时会报错: Program received signal SIGSEGV, Segmentation fault. 0x00000000004aabae in operator[] (i=, this=0x705dc0) at /home/coost/include/co/table.h:33
33 T& operator[](size_t i) {
loadSQLiteDB的实现。改成co内置的unique没有内存报错了,之前使用std::unique_ptr时就会触发上面的报错