MRPT 2.0 includes several fundamental changes, most of them related to API clean ups and the introduction of C++14 as the minimum supported version of the language.
Existing user applications may need to be adapted to continue compiling and working as usual after updating to MRPT 2.*:
Mandatory changes
PROJECT
: std::shared_ptr<>
instead of those based on stlplus
. Required changes:ptr.clear()
–> ptr.reset()
. Also, notice that the former stlplus
semantics of clear()
deleting all copies of the object, as hold by different smart pointers, is no longer maintained. There is no longer such a possibility, since the C++11 standard does not allow it to happen (and it makes sense in this way).ptr.clear_unique()
–> ptr.reset()
. (Read this note above)ptr.make_unique()
does no longer exists, and does not make sense (read above).ptr.pointer()
–> ptr.get()
CFooPtr
to the more standard CFoo::Ptr
, with a new pointer-to-const version CFoo::ConstPtr
.CFoo::Ptr
smart pointers. Refer to changelog of mrpt 1.5.4.std::make_shared<CFoo>()
, or mrpt::make_aligned_shared<CFoo>()
if the class must be memory-aligned (typically, if it contains Eigen matrices). The arguments of Create()
are now perfectly-forwarded to the class ctor, so the parameter list must exactly match any of the available ctors.mrpt::synch::CCriticalSection cs;
–> std::mutex cs;
mrpt::synch::CCriticalSectionLocker lock(&cs);
–> std::lock_guard<std::mutex> lock(cs);
mrpt::system::TThreadHandle h = mrpt::system::createThread(...);
–> std::thread h = std::thread(...);
mrpt::system::sleep(5);
–> std::this_thread::sleep_for(5ms);
mrpt::synch::CSemaphore sem; sem.waitForSignal(timeout); sem.release();
–> std::promise<void> sem; auto fut = sem.get_future(); fut.wait_for(...); sem.set_value();
mrpt::utils::CObject::duplicate()
has been removed, use the equivalent (redundant) mrpt::utils::CObject::clone()
.mrpt::utils::net
, sockets: have been moved to its own new module [mrpt-comms] under namespace mrpt::comms
.mrpt::math::randomGenerator
–> mrpt::math::getRandomGenerator()
mrpt::global_settings
old static variables have been replaced by getter/setter functions.Optional changes
Foo::ConstPtr
smart pointers when possible instead of its non-const counterpart. Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019 |