libobs: Fix template errors on non-MS compilers
Because apparently Microsoft's compilers are bad at following language specs.
This commit is contained in:
parent
52cc1d533e
commit
2f13d92d25
@ -119,22 +119,33 @@ class OBSRef : public OBSRefAutoRelease<T, release> {
|
||||
inline OBSRef &Replace(T valIn)
|
||||
{
|
||||
addref(valIn);
|
||||
release(val);
|
||||
val = valIn;
|
||||
release(this->val);
|
||||
this->val = valIn;
|
||||
return *this;
|
||||
}
|
||||
|
||||
struct TakeOwnership {
|
||||
};
|
||||
inline OBSRef(T val, TakeOwnership) : OBSRefAutoRelease(val) {}
|
||||
inline OBSRef(T val_, TakeOwnership)
|
||||
: OBSRefAutoRelease<T, release>::OBSRefAutoRelease(val_)
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
inline OBSRef() : OBSRefAutoRelease(nullptr) {}
|
||||
inline OBSRef(const OBSRef &ref) : OBSRefAutoRelease(ref.val)
|
||||
inline OBSRef()
|
||||
: OBSRefAutoRelease<T, release>::OBSRefAutoRelease(nullptr)
|
||||
{
|
||||
addref(val);
|
||||
}
|
||||
inline OBSRef(T val_) : OBSRefAutoRelease(val_) { addref(val); }
|
||||
inline OBSRef(const OBSRef &ref)
|
||||
: OBSRefAutoRelease<T, release>::OBSRefAutoRelease(ref.val)
|
||||
{
|
||||
addref(this->val);
|
||||
}
|
||||
inline OBSRef(T val_)
|
||||
: OBSRefAutoRelease<T, release>::OBSRefAutoRelease(val_)
|
||||
{
|
||||
addref(this->val);
|
||||
}
|
||||
|
||||
inline OBSRef &operator=(const OBSRef &ref) { return Replace(ref.val); }
|
||||
inline OBSRef &operator=(T valIn) { return Replace(valIn); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user