Description:
Technical discussion of the C++ language. (Moderated)
|
|
|
istringstream constructor performance
|
| |
I have written some C style static methods that convert strings to doubles, ints, longs, etc. using the C++ string stream objects. Each of the converter methods use a locally constructed istringstream object which uses the >> operator to make the conversions. A typical method looks like: double ToDouble( const string & str)... more »
|
|
std::vector of const values
|
| |
Hi all, I have run into this problem a few times and was hoping there was a more elegant solution than what I was doing. Suppose I have the following code: ...void doStuff( const std::vector< const int* >& ints ) { for( size_t i = 0; i != ints.size(); ++i ) std::cout << *ints[ i ] << std::endl;... more »
|
|
Question on goto with try/catch
|
| |
A project I am working on has large amounts of code written in this style: void MyClass::MyFunction() { try { // code here if(something bad happened) goto label; } catch(...) { // exception handling here. } label: // Run cleanup code - deallocate memory, etc.... more »
|
|
Copy C'tor - doubt
|
| |
I have a situation where I'm required to generate a copy of an object. I have simplified the class into a tiny one, but in reality its a huge class with multiple struct types as data member. Here is my simplified class: class AB { private: int a; public: AB(int ar): a(ar){}... more »
|
|
Boost release 1.41.0 available
|
| |
Release 1.41.0 of the Boost C++ Libraries is now available. These open-source libraries work well with the C++ Standard Library, and are usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use. This release contains one new library and numerous bug fixes for... more »
|
|
type erasure problem, correctly up casting from void*
|
| |
Hi, I have a system which handles arbitrary types, and to be able to invoke the correct functions I use type erasure with a void* argument. This works dandy most of the time, save for when the type inherits from multiple types, in which case it naturally fails spectacularly. So, somehow I must either change the interface to not use void*, in... more »
|
|
stack corruption in release
|
| |
Hi all, i'm working on a big program, wich is an awful mix of C and C++. I'm on windows XP, with Visual Studio 2008 SP1. This program works fine in debug mode. But in release mode, there is a crash without any message, and the catch() block don't catch nothing. I located the function where the crash occurs. In this function, if i... more »
|
|
Better way to call member function using function pointer?
|
| |
Hi, Following is isolated code reproducing the issue I encountered while using function pointers: ////////////////////////////// //////////////// ...using namespace std; class Sample { public: Sample() { funPtrs["fun1"] = &Sample::fun1; funPtrs["fun2"] = &Sample::fun2; funPtrs["fun3"] = &Sample::fun3;... more »
|
|
problem with default argument with template args
|
| |
I cannot see what is wrong with the code below: template<class A, class B> class Arg { public: Arg() {}; ...template<class A, class B> class User { public: User(const char* username, Arg<A,B> arg = Arg<A,B>(), bool flag = false) { }; ...gcc fails to compile it. The error output is:... more »
|
|
if(T p = a()) + else = Bah!
|
| |
Sometimes the C++ syntax really leaves me baffled: ///////////////////////// typedef int T; T a() { return 0; ...int main() { if(T p = a()) { p; // in scope, not null - compiles OK } else { p; // in scope - compiles OK } p; // out of scope - error: undeclared identifier // Note that an inverse condition, where p would... more »
|
|
|