| .. title:: clang-tidy - modernize-make-shared |
| |
| modernize-make-shared |
| ===================== |
| |
| This check finds the creation of ``std::shared_ptr`` objects by explicitly |
| calling the constructor and a ``new`` expression, and replaces it with a call |
| to ``std::make_shared``. |
| |
| .. code-block:: c++ |
| |
| auto my_ptr = std::shared_ptr<MyPair>(new MyPair(1, 2)); |
| |
| // becomes |
| |
| auto my_ptr = std::make_shared<MyPair>(1, 2); |
| |
| This check also finds calls to ``std::shared_ptr::reset()`` with a ``new`` |
| expression, and replaces it with a call to ``std::make_shared``. |
| |
| .. code-block:: c++ |
| |
| my_ptr.reset(new MyPair(1, 2)); |
| |
| // becomes |
| |
| my_ptr = std::make_shared<MyPair>(1, 2); |
| |
| Options |
| ------- |
| |
| .. option:: MakeSmartPtrFunction |
| |
| A string specifying the name of make-shared-ptr function. Default is |
| `std::make_shared`. |
| |
| .. option:: MakeSmartPtrFunctionHeader |
| |
| A string specifying the corresponding header of make-shared-ptr function. |
| Default is `memory`. |
| |
| .. option:: IncludeStyle |
| |
| A string specifying which include-style is used, `llvm` or `google`. Default |
| is `llvm`. |
| |
| .. option:: IgnoreMacros |
| |
| If set to non-zero, the check will not give warnings inside macros. Default |
| is `1`. |