c_cpp 创造资源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 创造资源相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <bitset>
#include <vector>
#include <map>
#include <algorithm>
#include <memory>
template<typename Creator, typename Destructor, typename... Arguments>
auto make_resource(Creator c, Destructor d, Arguments&&... args){
auto r = c(std::forward<Arguments>(args)...);
if (!r) {throw std::runtime_error{"Unable to create resource"};}
typedef typename std::decay<decltype(*r)>::type ResourceType;
return std::unique_ptr<ResourceType, void(*)(ResourceType*)>(r,d);
}
class Foo {
private:
int _a;
public:
Foo(int a){
std::cout << "constructor Foo\n";
_a = a;
}
~Foo(){
std::cout << "destructor Foo\n";
}
int getA(){
return _a;
}
};
Foo *createFoo(int a) {
std::cout << "createFoo\n";
return new Foo(a);
}
void deleteFoo(Foo* foo){
std::cout << "deleteFoo\n";
delete foo;
}
int main() {
auto foo = make_resource(createFoo, deleteFoo, 20);
std::cout << foo->getA() << '\n';
return 0;
}
以上是关于c_cpp 创造资源的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 人力资源阵列左转
c_cpp 人力资源道路和图书馆
c_cpp 设有Ñ个活动的集合E = {1,2,...,N},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源每个。活动i都有一个要求使用该资源的起始时
“云计算”将创造未来互联网新生活(幸福的云家人)
Atitit 华为管理者内训书系 以奋斗者为本 华为公司人力资源管理纲要 attilax读后感
人脉经营