You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A C++ library implementing value_ptr - a smart-pointer with value-semantics.
Value types are simple and intuitive. Unfortunately sometimes an implementation detail requires us to use pointers.
The standard library demonstrates how handy smart-pointers can be for encoding ownership and lifetime semantics, but none of the smart-pointers implement value-semantics.
This is why valuable::value_ptr was made.
Example
#include<string>
#include<valuable/value_ptr.hpp>usingnamespacestd;usingnamespacevaluable;structTree {
string const name;
value_ptr<Tree> left;
value_ptr<Tree> right;
Tree(
string const& name,
value_ptr<Tree> const& left = value_ptr<Tree>{},
value_ptr<Tree> const& right = value_ptr<Tree>{})
: name{name}
, left{left}
, right{right}
{}
};
intmain() {
Tree root = Tree{
"root",
Tree{"l"}
Tree{"r"}
};
root.left = root; // copy of root assigned to left
root.right = root; // and we don't have cyclic references
}
You can also use Qt Creator for development. There's no need to build Google Test as it is built along with the test project. In the Build Steps, add the Google Test Git checkout path to the additional qmake arguments: