c++

Operations on arbitrary value types

This article describes a way, in C#, to allow the addition of arbitrary value types which have a + operator defined for them. In essence it allows the following code: public T Add(T val1, T val2) { return val1 + val2; } This code does not compile as there is no guarantee that the T type has a definition for the '+' operator, but th...

Why destructor is not called on exception?

I expected A::~A() to be called in this program, but it isn't: #include <iostream> struct A { ~A() { std::cout << "~A()" << std::endl; } }; void f() { A a; throw "spam"; } int main() { f(); } However, if I change last line to int main() try { f(); } catch (...) { throw; } then A::~A() is called. I am compiling with "Micr...

Is it correct to export data members? (C++)

As the title suggests, is it correct or valid to import/export static data from within a C++ class? I found out my problem - the author of the class I was looking at was trying to export writable static data which isn't supported on this platform. Many thanks for the responses however. ...

Are there gotchas using varargs with reference parameters

I have this piece of code (summarized)... AnsiString working(AnsiString format,...) { va_list argptr; AnsiString buff; va_start(argptr, format); buff.vprintf(format.c_str(), argptr); va_end(argptr); return buff; } And, on the basis that pass by reference is preferred where possible, I changed it thusly. Ansi...

Volume Control Number of Channels XP different than Vista

When I run this code: MIXERLINE MixerLine; memset( &MixerLine, 0, sizeof(MIXERLINE) ); MixerLine.cbStruct = sizeof(MIXERLINE); MixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT; mmResult = mixerGetLineInfo( (HMIXEROBJ)m_dwMixerHandle, &MixerLine, MIXER_GETLINEINFOF_COMPONENTTYPE ); Under XP MixerLine.cChannels comes back...

Setting up a Programming Environment in Linux

I recently started using Linux as my primary OS. What are the tools that I will need to set up a complete programming environment in Linux for C and C++? ...

C++'s "placement new"

Has anyone here ever used C++'s "placement new"? If so, what for? It looks to me like it would only be useful on memory-mapped hardware. ...

multiset, map and hash map complexity

Hallo everybody, I would like to know the complexity in Big O notation of the STL multiset, map and hash map classes when: inserting entries accessing entries retrieving entries comparing entries ...

XML-RPC library for C++

What libraries are available for writing xml-rpc clients in native C++ or C? ...

Adding Boost makes Debug build depend on "non-D" MSVC runtime DLLs

I have an annoying problem which I might be able to somehow circumvent, but on the other hand would much rather be on top of it and understand what exactly is going on, since it looks like this stuff is really here to stay. Here's the story: I have a simple OpenGL app which works fine: never a major problem in compiling, linking, or run...

In a multi-threaded C++ app, do I need a mutex to protect a simple boolean?

I have a multi-threaded C++ app which does 3D rendering with the OpenSceneGraph library. I'm planning to kick off OSG's render loop as a separate thread using boost::threads, passing a data structure containing shared state in to the thread. I'm trying to avoid anything too heavyweight (like mutexes) for synchronization, as the render lo...

What's the scope of the "using" declaration in C++?

I'm using the 'using' declaration in C++ to add std::string and std::vector to the local namespace (to save typing unnecessary 'std::'s). using std::string; using std::vector; class Foo { /*...*/ }; What is the scope on this declaration? If I do this in a header, will it inject these 'using' declarations into every cpp file that inc...

C++ example of Coding Horror or Brilliant Idea?

At a previous employer, we were writing binary messages that had to go "over the wire" to other computers. Each message had a standard header something like: class Header { int type; int payloadLength; }; All of the data was contiguous (header, immediately followed by data). We wanted to get to the payload given that we had ...

How to create an empty DOMElement

I am using Xerces-c in my project, and would like to create a single DOMElement without having to create a whole new DOMDocument. Is such a thing possible? ...

Adding unit tests to an existing project

My question is quite relevant to something asked before but I need some practical advice. I have "Working effectively with legacy code" in my hands and I 'm using advice from the book as I read it in the project I 'm working on. The project is a C++ application that consists of a few libraries but the major portion of the code is compil...

Clearing parser state of a bison generated parser

I am using a C lexer that is Flex-generated, and a C++ parser that is Bison-generated. I have modified the parser to acccept only string input. I am calling the parser function yyparse() in a loop, and reading line by line of user input. I stop the loop if the input is "quit". The problem I am facing is that when input doesn't match an...

Linux Programming environment configuration.

The other day I set up an unbuntu installation in a VM and went to gather the tools and libraries I figured I would need for programming moslty in C++. I had a problem though, where to put things such as 3rd party source libraries, etc. From what I can gather, a lot of source distributions assume that a lot of their dependencies are alr...

Repeated Multiple Definition Errors from including same header in multiple cpps

So, no matter what I seem to do, I cannot seem to avoid having Dev C++ spew out numerous Multiple Definition errors as a result of me including the same header file in multiple source code files in the same project. I'd strongly prefer to avoid having to dump all my source code into one file and only include the header once, as that's g...

Having trouble linking a static library C++

I've figured out how to set VC++ to compile code into a .lib file instead of a .exe, but I'm having trouble getting a lib to link together with my other .obj files. Here is how I have the library and application folders set up. (I'm not sure if this is right) AppFolder App.sln App.ncb *.h *.cpp Debug *.obj App.exe ...

Timer in a win32 service

Hello all, Can someone please point me to the easiest way to have a timer in a Win32 service? I suppose I could create a dummy window for this purpose or have a second thread do tick counts, but what's best? Is there a more elegant way? Thanks in advance. ...