Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / include / details / ie_no_copy.hpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 /**
6  * @brief header file for no_copy class
7  * @file ie_no_copy.hpp
8  */
9 #pragma once
10
11 namespace InferenceEngine {
12 namespace details {
13 /**
14  * @brief This class is used for objects returned from the shared library factory to prevent copying
15  */
16 class no_copy {
17 protected:
18     /**
19      * @brief A default constructor
20      */
21     no_copy() = default;
22
23     /**
24      * @brief A default destructor
25      */
26     virtual ~no_copy() = default;
27
28     /**
29      * @brief A removed copy constructor
30      */
31     no_copy(no_copy const &) = delete;
32
33     /**
34      * @brief A removed assign operator
35      */
36     no_copy &operator=(no_copy const &) = delete;
37
38     /**
39      * @brief A removed move constructor
40      */
41     no_copy(no_copy &&) = delete;
42
43     /**
44      * @brief A removed move operator
45      */
46     no_copy &operator=(no_copy &&) = delete;
47 };
48 }  // namespace details
49 }  // namespace InferenceEngine