ddddfang's Blog.

caffe

字数统计: 132阅读时长: 1 min
2019/01/30 Share

关于 caffe的单例模式

Caffe的common.hpp文件中

1
2
3
4
5
6
7
8
9
class Caffe {
public:
~Caffe();
static Caffe& Get(); //通过Get() new Caffe()返回单实例(注意new 只可以由本类的成员函数调用了,因为构造函数是私有的)
//
private:
Caffe(); //这里这样是防止其他类 new Caffe
//
};

然后在cpp实现中:

1
2
3
4
5
6
7
8
static boost::thread_specific_ptr<Caffe> thread_instance_;     //静态变量用于存放static caffe类

Caffe& Caffe::Get() {
if (!thread_instance_.get()) {
thread_instance_.reset(new Caffe());
}
return *(thread_instance_.get());
}

以后用的时候就这样:直接 Caffe::xxx

1
Caffe::set_mode(Caffe::CPU);

CATALOG
  1. 1. 关于 caffe的单例模式