const

C++ find method is not const?

I've written a method that I'd like to declare as const, but the compiler complains. I traced through and found that this part of the method was causing the difficulty: bool ClassA::MethodA(int x) { bool y = false; if(find(myList.begin(), myList.end(), x) != myList.end()) { y = true; } return y; } There is ...

is const (c++) optional?

according to some tutorials i read a while back, the "const" declaration makes a variable "constant" ie it cannot change later. But i find this const declaration abit inconveniencing since the compiler sometimes gives errors like "cannot convert const int to int" or something like that. and i find myself cheating by removing it anyway...

C++ new line not translating

First off, I'm a complete beginner at C++. I'm coding something using an API, and would like to pass text containing new lines to it, and have it print out the new lines at the other end. If I hardcode whatever I want it to print out, like so printInApp("Hello\nWorld"); it does come out as separate lines in the other end, but if I r...

Is it undefined behavior in the case of the private functions call in the initializer list?

Consider the following code: struct Calc { Calc(const Arg1 & arg1, const Arg2 & arg2, /* */ const ArgN & argn) : arg1(arg1), arg2(arg2), /* */ argn(argn), coef1(get_coef1()), coef2(get_coef2()) { } int Calc1(); int Calc2(); int Calc3(); private: const Arg1 & arg1; const Arg2 & arg2; // ... const...

Dynamic memory inside a struct

Hello, I'm editing a piece of code, that is part of a big project, that uses "const's" to initialize a bunch of arrays. Because I want to parametrize these const's I have to adapt the code to use "malloc" in order to allocate the memory. Unfortunately there is a problem with structs: I'm not able to allocate dynamic memory in the struct...

Delphi constants and references

I want to pass constant references to functions in delphi, so I am sure that the referenced object won't change and to save time and memory. So I want to declare a function like function foo(var const Value : Bar) : Boolean; however this is not allowed. I thought constant values would be automatically sent as references. However I fou...

Cannot initialize non-const reference from convertible type

Hi, I cannot initialize a non-const reference to type T1 from a convertible type T2. However, I can with a const reference. long l; const long long &const_ref = l; // fine long long &ref = l; // error: invalid initialization of reference of // type 'long long int&' from expression of type ...

Should a method that waits for a change of state be const?

In a multithreaded scenario, I have a method like this: bool WaitForChange( time_duration WaitTime ) const; This method waits either until the state of the object has changed and returns true, or until the timeout times out (how do you say that?) and returns false. My intuition is, that const is to protect against unwanted side-effec...

const object in c++

I have a question on constant objects. In the following program: class const_check{ int a; public: const_check(int i); void print() const; void print2(); }; const_check::const_check(int i):a(i) {} void const_check::print() const { int a=19; cout<<"The value in a is:"<<a; } void const_check::print2() { int ...

C: External const ints in a array of const struct

I am getting an error message "expression must have constant value" when initializing an array of structures with an external constant integer. File1.c: const unsigned char data1[] = { 0x65, 0xF0, 0xA8, 0x5F, 0x5F, 0x5F, 0x5F, 0x31, 0x32, 0x2E, 0x31, 0xF1, 0x63, 0x4D, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x20,...

C++ constant reference lifetime

hello I have code that looks like this: class T {}; class container { const T &first, T &second; container(const T&first, const T & second); }; class adapter : T {}; container(adapter(), adapter()); I thought lifetime of constant reference would be lifetime of container. However, it appears otherwise, adapter object is destroyed...

static, define, and const in C

Hi, I've read that static variables are used inside function when one doesn't want the variable value to change/initialize each time the function is called. But what about defining a variable static in the main program before "main" e.g. #include <stdio.h> static double m = 30000; int main(void) { value = m * 2 + 3; } Here the varia...

Return a dynamic string from std::exception's `what`

I'm convinced at this point that I should be creating subclasses of std::exception for all my exception throwing needs. Now I'm looking at how to override the what method. The situation that I'm facing, it would be really handy if the string what returns be dynamic. Some pieces of code parse an XML file for example, and adding a positio...

return value (not a reference) from the function, bound to a const reference in the calling function; how is its lifetime extended to the scope of the calling function ?

"If you return a value (not a reference) from the function, then bind it to a const reference in the calling function, its lifetime would be extended to the scope of the calling function." So: CASE A const BoundingBox Player::GetBoundingBox(void) { return BoundingBox( &GetBoundingSphere() ); } Returns a value of type const Boundi...

Allow member to be const while still supporting operator= on the class

I have several members in my class which are const and can therefore only be initialised via the initialiser list like so: class MyItemT { public: MyItemT(const MyPacketT& aMyPacket, const MyInfoT& aMyInfo) : mMyPacket(aMyPacket), mMyInfo(aMyInfo) { } private: const MyPacketT mMyPacket; const MyInf...

Difference between const reference and normal parameter

void DoWork(int n); void DoWork(const int &n); Whats the diff ...

How to initialize a static const map in c++?

Hi, I need just dictionary or asociative array string => int. There is type map C++ for this case. But I need make one map in my class make for all instances(-> static) and this map cannot be changed(-> const); I have found this way with boost library std::map<int, char> example = boost::assign::map_list_of(1, 'a') (2, 'b') (3...

Please help with C++ syntax for const accessor by reference.

Right now my implementation returns the thing by value. The member m_MyObj itself is not const - it's value changes depending on what the user selects with a Combo Box. I am no C++ guru, but I want to do this right. If I simply stick a & in front of GetChosenSourceSystem in both decl. and impl., I get one sort of compiler error. If I do ...

How to create pointer-to-mutable-member?

Consider the following code: struct Foo { mutable int m; template<int Foo::* member> void change_member() const { this->*member = 12; // Error: you cannot assign to a variable that is const } void g() const { change_member<&Foo::m>(); } }; Compiler generates an error message. The thing is that th...

Why are there defined constants and declared constants in CPP?

Why are there two ways to "declare" constants in CPP? Which is better, or should I write, which of them should I use when? #define MYCON 100 const int MYCON=100 ...