member 'ATOMIC_MEMORY_ORDER_METHOD' of type 'const std::memory_order' is const qualified
215 /////////////////////////////////////////
216 // Declare class constants.
217 /////////////////////////////////////////
218 const std::memory_order ATOMIC_MEMORY_ORDER_METHOD = std::memory_order_relaxed;219
220 /////////////////////////////////////////
221 // Declare private member variables.
member 'm_nMaxMetricsHistorySize' of type 'const unsigned long' is const qualified
38 std::chrono::high_resolution_clock::time_point m_tLastUpdateTime;
39
40 // Define class constants.
41 const long unsigned int m_nMaxMetricsHistorySize = 100; 42
43 /******************************************************************************
44 * @brief This method is used to calculate the IPS stats. Highest, lowest, and 1
member 'ClearWaypointsCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
194 * @author clayjay3 ([email protected])
195 * @date 2024-03-03
196 ******************************************************************************/
197 const std::function<void(const rovecomm::RoveCommPacket<uint8_t>&, const sockaddr_in&)> ClearWaypointsCallback =198 [this](const rovecomm::RoveCommPacket<uint8_t>& stPacket, const sockaddr_in& stdAddr)
199 {
200 // Not using this.
member 'AddObjectLegCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
167 * @author clayjay3 ([email protected])
168 * @date 2024-03-03
169 ******************************************************************************/
170 const std::function<void(const rovecomm::RoveCommPacket<double>&, const sockaddr_in&)> AddObjectLegCallback =171 [this](const rovecomm::RoveCommPacket<double>& stPacket, const sockaddr_in& stdAddr)
172 {
173 // Not using this.
member 'AddMarkerLegCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
140 * @author clayjay3 ([email protected])
141 * @date 2024-03-03
142 ******************************************************************************/
143 const std::function<void(const rovecomm::RoveCommPacket<double>&, const sockaddr_in&)> AddMarkerLegCallback =144 [this](const rovecomm::RoveCommPacket<double>& stPacket, const sockaddr_in& stdAddr)
145 {
146 // Not using this.
member 'AddPositionLegCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
110 * @author clayjay3 ([email protected])
111 * @date 2024-03-03
112 ******************************************************************************/
113 const std::function<void(const rovecomm::RoveCommPacket<double>&, const sockaddr_in&)> AddPositionLegCallback =114 [this](const rovecomm::RoveCommPacket<double>& stPacket, const sockaddr_in& stdAddr)
115 {
116 // Not using this.
member 'PMSCellVoltageCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
118 * @author clayjay3 ([email protected])
119 * @date 2024-04-04
120 ******************************************************************************/
121 const std::function<void(const rovecomm::RoveCommPacket<float>&, const sockaddr_in&)> PMSCellVoltageCallback =122 [this](const rovecomm::RoveCommPacket<float>& stPacket, const sockaddr_in& stdAddr)
123 {
124 // Not using this.
member 'AutonomyStopCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
96 * @author clayjay3 ([email protected])
97 * @date 2024-03-15
98 ******************************************************************************/
99 const std::function<void(const rovecomm::RoveCommPacket<uint8_t>&, const sockaddr_in&)> AutonomyStopCallback =100 [this](const rovecomm::RoveCommPacket<uint8_t>& stPacket, const sockaddr_in& stdAddr)
101 {
102 // Not using this.
member 'AutonomyStartCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
74 * @author clayjay3 ([email protected])
75 * @date 2024-03-15
76 ******************************************************************************/
77 const std::function<void(const rovecomm::RoveCommPacket<uint8_t>&, const sockaddr_in&)> AutonomyStartCallback = 78 [this](const rovecomm::RoveCommPacket<uint8_t>& stPacket, const sockaddr_in& stdAddr)
79 {
80 // Not using this.
member 'ProcessCompassData' of type 'const std::function<void (const int &, const int &)>' is const qualified
173 * @author clayjay3 ([email protected]), Jason Pittman ([email protected])
174 * @date 2024-03-03
175 ******************************************************************************/
176 const std::function<void(const rovecomm::RoveCommPacket<float>&, const sockaddr_in&)> ProcessCompassData =177 [this](const rovecomm::RoveCommPacket<float>& stPacket, const sockaddr_in& stdAddr)
178 {
179 // Not using this.
member 'ProcessAccuracyData' of type 'const std::function<void (const int &, const int &)>' is const qualified
137 * @author clayjay3 ([email protected])
138 * @date 2024-03-03
139 ******************************************************************************/
140 const std::function<void(const rovecomm::RoveCommPacket<float>&, const sockaddr_in&)> ProcessAccuracyData =141 [this](const rovecomm::RoveCommPacket<float>& stPacket, const sockaddr_in& stdAddr)
142 {
143 // Not using this.
member 'ProcessGPSData' of type 'const std::function<void (const int &, const int &)>' is const qualified
90 * @author clayjay3 ([email protected])
91 * @date 2024-03-03
92 ******************************************************************************/
93 const std::function<void(const rovecomm::RoveCommPacket<double>&, const sockaddr_in&)> ProcessGPSData = 94 [this](const rovecomm::RoveCommPacket<double>& stPacket, const sockaddr_in& stdAddr)
95 {
96 // Not using this.
member 'SetMaxSpeedCallback' of type 'const std::function<void (const int &, const int &)>' is const qualified
54 * @author clayjay3 ([email protected])
55 * @date 2024-03-03
56 ******************************************************************************/
57 const std::function<void(const rovecomm::RoveCommPacket<float>&, const sockaddr_in&)> SetMaxSpeedCallback =58 [this](const rovecomm::RoveCommPacket<float>& stPacket, const sockaddr_in& stdAddr)
59 {
60 // Not using this.
Description
Const or reference data members are only allowed to be initialized by the constructor of the class, and never after. And unlike in other languages, they are still instance dependent types. Having such members is rarely useful, and makes the class only copy-constructible but not copy-assignable.
That is to say, const data members will result in implicit deletion of copy and move assignment constructors.
If it was intended to be a constant value attached to the class
or struct
type itself consider using a static const member.
Bad practice
class Foo {
private:
const int bar;
int& ref_mem;
public:
Foo(int& ref_param): bar(10), ref_mem(ref_param) {}
};
Recommended
class Foo {
private:
static const int bar = 10;
std::unique_ptr<int> mem;
public:
Foo(int param) {
bar = std::make_unique<int>(param);
}
};