c++

create std::string from char* in a safe way

I have a char* p, which points to a 0-terminated string. How do I create a C++ string from it in an exception-safe way? Here is an unsafe version: string foo() { char *p = get_string(); string str( p ); free( p ); return str; } An obvious solution would be to try-catch - any easier ways? ...

What is the lifetime of a static variable in a C++ function?

If a variable is declared as static in a function's scope it is only initialized once and retains its value between function calls, we all know that but what exactly is its lifetime? When do its constructor and destructor get called? void foo() { static string plonk = "When will I die?"; } P.S. For those who want to know why I...

CFile Error On Windows Ce

I am using Windows CE 4.2 and MS Embedded VC++ 4.0. The following code gives me the error Access to [file name] was denied., and it creates the file but does not write anything to it. CString tmp; tmp.Format(_T("%s%d"), mFileName, ++ctr); TRY { mFile.Open(tmp, CFile::modeCreate); mFile.Write(&data[ctr%2], 1); mFile.Close(); } CA...

I want to convert std::string into a const wchar_t *

Is there any method? My computer is AMD64, ::std::string str; BOOL loadU(const wchar_t* lpszPathName, int flag = 0); when I used: loadU(&str); the VS2005 compiler says: Error 7 error C2664:: cannot convert parameter 1 from 'std::string *__w64 ' to 'const wchar_t *' How can I do it ? ...

Edit Registry Values

Hi, I want to change the registry values on the pocketPC. I ran the following code: if(enabled) { dwData = 120; } if(RegSetValueEx(HKEY_LOCAL_MACHINE, _T("System\\CurrentControlSet\\Control\\Power\\Timeouts\\BattSuspendTimeout"), 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD))) { return FALSE; } but it doesn't shange the regist...

'\0' related problem..

Looking at this loop that copies one c-string to another: void strcpyr(char *s, char *t) { while(*s++=*t++)// Why does this work? ; } Why do we not check for the '\0' character in the while loop, like this? while((*s++=*r++)!='\0').. How does the first loop terminate? ...

Problem to porting managed c++ from vs2003 to vs2008

In trying to port my managed c++ project from vs2003 to vs2008. I have added oldSyntax flag. But I still get error sourceanotations.h. ...

Which standard c++ classes cannot be reimplemented in c++?

I was looking through the plans for C++0x and came upon std::initializer_list for implementing initializer lists in user classes. This class could not be implemented in C++ without using itself, or else using some "compiler magic". If it could, it wouldn't be needed since whatever technique you used to implement initializer_list could ...

What is the Performance, Safety, and Alignment of a Data member hidden in an embedded char array in a C++ Class?

I have seen a codebase recently that I fear is violating alignment constraints. I've scrubbed it to produce a minimal example, given below. Briefly, the players are: Pool. This is a class which allocates memory efficiently, for some definition of 'efficient'. Pool is guaranteed to return a chunk of memory that is aligned for the reques...

Getting the name of the current method in c++

Is there a (standardized) way to get the name of the current method using c++? Using GNU GCC you can do this by using the macro __FUNCTION__ and __PRETTY_FUNCTION__ (surrounded by 2 underscores), however, this is of course non portable. Is there a way to do this in standard c++ or a way to make it portable? ...

Is it safe to assume that STL vector storage is always contiguous?

If you have an STL vector which has been resized, is it safe to take the address of element 0 and assume the rest of the vector will follow in memory? e.g. vector<char> vc(100); // do some stuff with vc vc.resize(200); char* p = &vc[0]; // do stuff with *p ...

stl::multimap - how do i get groups of data ?

Multimap essentially has groups of data sorted by the key. I want a method by which I could access these individual groups and get their aggregate values. For example, in a std::multimap< string, int > I store {"Group1", 1}, {"Group1", 2}, {"Group1", 3}, {"Group2", 10}, {"Group2", 11}, {"Group2", 12} Having stored these values, ...

How Do I Use Eclipse to Debug a C++ Program on Linux?

I don't use Eclipse as an IDE, and have no interest in doing so. However, I do like its source-level debugging. Is there any way I can use it to debug a C++ Linux app without going through the ritual of creating a project? (In effect, can I just use it like a frontend to gdb?) If not, what are the steps I need to follow to create a p...

How can I experiment with garbage collection?

I'm interested in how garbage collection works. I've read up on how some work such as mark-and-sweep, stop-and-copy, generational GC, etc... I'd like to experiment with implementing some of these and comparing their behaviors. What's a good way to get started experimenting with my own? Ideally something in C, Java or Python (although the...

My C++ ActiveMQ client can send messages, but not receive messages

I have the ActiveMQ-CPP 2.2.1 Visual Studio 2005 project compiling and running. In the console window, it shows the messages are being sent, though they're not being received. I can both send and receive messages with ActiveMQ-CPP 2.0.1, but not 2.2.1. I'm new to ActiveMQ and don't even know where to begin troubleshooting. Any though...

Finding composite numbers

I have a range of random numbers. The range is actually determined by the user but it will be up to 1000 integers. They are placed in this: vector<int> n and the values are inserted like this: srand(1); for (i = 0; i < n; i++) v[i] = rand() % n; I'm creating a separate function to find all the non-prime values. Here is what I...

Thread safety of Matlab engine API

I have discovered through trial and error that the MATLAB engine function is not completely thread safe. Does anyone know the rules? Discovered through trial and error: On Windows, the connection to MATLAB is via COM, so the COM Apartment threading rules apply. All calls must occur in the same thread, but multiple connections can occ...

What would you ask Stroustrup?

I'm going to a talk by Bjarne Stroustrup. Does someone have a good question to ask him? ...

c++ adding method to class defined in header file

I'm wondering if it is possible to add methods in main program to an existing class defined in header file. For example: There is class CFun defined in file CFun.hpp, but in our party.cpp we want to add a method void hello() {cout << "hello" << endl;};without editing CFun.hpp Obviously (unfortunately) construction: #include "CFun.hpp" ...

Double Negation in C++ code.

I just came onto a project with a pretty huge code base. I'm mostly dealing with C++ and a lot of the code they write uses double negation for their boolean logic. if (!!variable && (!!api.lookup("some-string"))) { do_some_stuff(); } I know these guys are intelligent programmers, it's obvious they aren't doing this by acci...