help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Where does g++ keep temporary template source


From: brian
Subject: Where does g++ keep temporary template source
Date: 20 Aug 2005 06:37:19 -0700
User-agent: G2/0.2

I made a recent change to a class (we'll call it MyClass) within a
custom library in which the set_value(const wstring&, ValueType)
function was split into two functions: set_value(const wstring&) and
set_value_type(ValueType). ValueType is either 0 or 1 (it's an
enumeration type).

One of the applications that links to this class creates an
auto_ptr<MyClass> variable. For example:

wsstring          new_value;
ValueType         value_type(Document_Type);
auto_ptr<MyClass> my_class_ptr;

Within the now-failing downstream applicatin, I converted former calls
(that used to work) from:

set_value(new_value, value_type)

to be split into two calls as follows:

set_value(new_value);
set_value_type(value_type);

Putting print statements insice the set_value() and set_value_type()
member functions show that set_value_type() is never called and
set_value() is called but the object's value type is some large
arbitrary number and not 0 or 1 (it's properly initialized in the
constructor to 0 and properly propogated by the copy ctor and
assignment ops).

It's as if the auto_ptr<MyClass> somehow left the old interface laying
around, and calls to the new interface are somehow directed to the old
interface (and the second ValueType seems to be picking up whatever's
on the stack). The basic class is very simple and all inspection seems
to point to some tempplate-oriented save area that I am not clearing
out before recompiling everything with the new interface.

I've deleted all the .a and .o for that library and all of the
applications that use it. The applications and test drivers within the
same directory as this MyClass class work flawlessly. Any thoughts on
what further I need to clean up before recompiling applications that
were originally compiled with the old interface? I've never seen
something like this before, and I am currently stumped as to the exact
topic to query in either the docs or on Google Groups.

I'm using g++/gcc 3.4 on Fedora Core 3 on AMD 64 (x86_64... yay! It
rocks!)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]