c++

Why can't you define new types in a C++ template argument?

I'm creating a library to allow OCaml/Haskell-like algebraic data types and pattern matching. The algebraic data types are implemented using a class similar to Boost.Variant. I would like to be able to define new types (the constructor) in the template arguments, but I get an error. I'm using my own type with variadic templates, but I'll...

Why does std queue not define a swap method specialisation

I've read that all stl containers provide a specialisation of the swap algorithm so as to avoid calling the copy constructor and two assignment operations that the default method uses. However, when I thought it would be nice to use a queue in some code I was working on I noticed that (unlike vector and deque) queue doesn't provide this ...

access overloaded operator in c++

I have overloaded the [] operator in my class. here is the implementation Node* List::operator [](int index) const{ Node* p = head_; for (int i = 0; i < index; i++){ p = p->link(); } return p; } I have another function in the class in which I want to access the Node* returned. one of the lines is if ((n ...

Function template specialization format

What is the reason for the second brackets <> in the following function template: template<> void doh::operator()<>(int i) This came up in SO question where it was suggested that there are brackets missing after operator(), however I could not find the explanation. I understand the meaning if it was a type specialization (full specia...

How do you determine the size of an object in C++

For example, say I have a class Temp: class Temp { public: int function1(int foo) { return 1; } void function2(int bar) { foobar = bar; } private: int foobar; }; When I create an object of class Temp, how would I calculate how much space it needs, and how is it represented in memory (e.g.| 4 bytes for foobar| 8 bytes for function1 | ...

How to redefine clog to tee to original clog and a log file?

Hello, I saw a useful start here: http://www.cs.technion.ac.il/~imaman/programs/teestream.html And it works great to make a new stream which goes to both clog and a log file. However, if I try to redefine clog to be the new stream it does not work because the new stream has the same rdbuf() as clog so the following has no effect: cl...

avoid printscreen function rendering texts

I´m looking to implement a way to avoid the user taking a screenshot from one desktop application. Yes, this seems to be weird asking for that, but we need it. I tried to use OpenGL (SDL_tff) to render the text, but it seems that doesn't stop the user from taking the screenshot. Please, does anybody have some clever idea about how to do...

How do I import modules in boost::python embedded python code?

Hello, I'm using boost::python to embed some python code into an app. I was able to get print statements or other expressions to be evaluated properly, but when I try to import modules, it is not importing and application is exiting. Further the globals() function call in the embedded code gives a runtime error too. #include <boost/pyth...

Matching arbitrary number of words in PCRE regex into strings

Hello, I am using PCRE for some regex parsing and I need to search a string for words in a specific pattern (let's say all words in a string of words separated by commas) and put them into a string vector. How would I go about doing that? ...

Matching order in PCRE

Hello, How can I set which order to match things in a PCRE regular expression? I have a dynamic regular expression that a user can supply that is used to extract two values from a string and stores them in two strings. However, there are cases where the two values can be in the string in reverse order, so the first (\w+) or whatever ne...

C++ Qt: bitwise operations

Hi! I'm working on a little project for college, and I need to model transmission over network, and to impment and visualize different sorts of error correction algorithms. My improvized packet consists of one quint8: I need to convert it into a bit array, like QBitArray, append a check bit to it, trasfer it over UDP, check the success o...

Implementing Semaphores, locks and condition variables

I wanted to know how to go about implementing semaphores, locks and condition variables in C/C++. I am learning OS concepts but want to get around implementing the concepts in C. Any tutorials? ...

What is the fastest Dijkstra implementation you know (in C++)?

I did recently attach the 3rd version of Dijkstra algorithm for shortest path of single source into my project. I realize that there are many different implementations which vary strongly in performance and also do vary in the quality of result in large graphs. With my data set (> 100.000 vertices) the runtime varies from 20 minutes to...

C/C++ goto

Hi everybody! I want to declare an array of "jumplabels". Then I want to jump to a "jumplabel" in this array. But I have not any idea how to do this. It should look like the following code: function() { "gotolabel" s[3]; s[0] = s0; s[1] = s1; s[2] = s2; s0: .... goto s[v]; s1: .... goto s[v]; ...

Resizing dynamic stack allocations in C++

Hi, I'm writing a small ray tracer using bounding volume hierarchies to accelerate ray tracing. Long story short, I have a binary tree and I might need to visit multiple leafs. Current I have a node with two children left and right, then during travel() if some condition, in this example intersect(), the children are visited: class Bo...

How to I authenticate with a ISA proxy from my application seemlessly?

I am trying to us Qt to access a website and download updates, the problem is that one install base is using a Microsoft ISA proxy server which requires authentication. Qt gives me a function to supply a username and password: http://doc.trolltech.com/4.5/qnetworkaccessmanager.html#proxyAuthenticationRequired However other applications...

c++ fopen is returning a file * with <bad ptr>'s

I copied this code from the libjpeg example and im passing it standard files; FILE *soureFile; if ((soureFile = fopen(sourceFilename, "rb")) == NULL) { fprintf(stderr, "can't open %s\n", sourceFilename); exit(1); } jpeg_stdio_src(&jpegDecompress, soureFile); jpeg_read_header(&jpegDecompress, true); It results in a file pointe...

"class not registered" which class?

Consider this code: try { ISomeObject pObj(__uuidof(SomeClass)); ISomeObject pObj2(__uuidof(SomeOtherClass)); } catch ( _com_error& e ) { // Log what failed } I.e. I have a block of code which instanciates my objects. Sometimes (a bad install) it failes because some class wasn't properly registered. (I don't have a partic...

C++/C object->isOnStack()

I would like to be able to determine if a pointer is on the stack or not at runtime for a number of reasons. Like if I pass it into a function call, I can determine whether I need to clone it or not. or whether I need to delete it. In Microsft C (VC 6,7,8) is there a way to bounds check a pointer to see if it in on the stack or not? I ...

Overwriting vs allocation/deallocation - efficiency

I am writing a C++ application which will require a block of memory (about 1000 bytes) as a temporary buffer for some text processing. The operation may be repeated up to 10,000 times a second. Could anybody confirm that it would be more expensive to allocate the memory each time I need the buffer (i.e. new with a smart pointer, memory ...