473,473 Members | 1,963 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Should templates be included in pch files?

I thought that including template headers such as <vector> in the pch is not
useful.
Templates can’t be compiled without the template arguments so there is no
way to pre compile them.

Is this true?

Also, it seems that this could actually be bad since it will significantly
increase the size of the pch file which I would think could slow the
compilation processes due to the additional memory overhead.

Am I correct?

Dec 24 '05 #1
3 1513
Scythen wrote:
I thought that including template headers such as <vector> in the pch
is not useful.
Templates can't be compiled without the template arguments so there
is no way to pre compile them.

Is this true?

Also, it seems that this could actually be bad since it will
significantly increase the size of the pch file which I would think
could slow the compilation processes due to the additional memory
overhead.

Am I correct?


You can put anything you want in the headers that are used to build the .pch
file, including templates.

Think of the PCH file as "Pre Parsed Header" instead of "Pre Compiled
Header" and it'll make perfect sense. The PCH file is really nothing more
than a dump of the compiler front-end's heap after parsing all of the text
in the "pre compiled" headers.

-cd
Dec 24 '05 #2
Ok, that makes sense.

But even so, would template files not greatly increase the amount of data in
the PCH. More so than non template code?

I’m trying to figure out what is making a particular project have very long
compile times and also get random "Fatal Error C1055: compiler limit : out of
keys" errors.

I thought I was on to something when I found that the PCH is over 60 Mb in
size but maybe not.
Dec 24 '05 #3
Scythen wrote:
Ok, that makes sense.

But even so, would template files not greatly increase the amount of
data in the PCH. More so than non template code?
Perhaps. Perhaps not. I wouldn't think templates should be any more space
consuming in the front-end than non-template code of the same size and
complexity.

I'm trying to figure out what is making a particular project have
very long compile times and also get random "Fatal Error C1055:
compiler limit : out of keys" errors.
very long compile times are usually due to deep recursion during template
instantiation.

On the C1055 error, MSDN has this to say:

compiler limit : out of keys

The source file contains too many symbols. The compiler ran out of hash keys
for the symbol table.

Possible solutions

Split the source file into smaller files.
Eliminate unnecessary header files.
Reuse temporary and global variables instead of creating new ones
I thought I was on to something when I found that the PCH is over 60
Mb in size but maybe not.


That's large, but not enormous.

-cd
Dec 24 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Martman | last post by:
Can someone point me to a good resource explaining how and why to use templates in php. I am new to php and wondering if these so called templates are just include files or what. And I have read...
7
by: Steven C. | last post by:
When you compile a cpp program that includes a template class in a .h file where does the compiled code go for that templated class? If it went in the obj for the cpp program seems to me you could...
5
by: Christian Christmann | last post by:
Hi, I want to implement an graph using templates. In my header file I define the templates node and edge: template <class NODE> class GNode { NODE *info; public: GraphNode();
0
by: AntonB | last post by:
I am using Visual Studio 2005 Beta1 and get the following errors when building a .NET class library (called TryDLLPr in the example below). Any advice on what's wrong will be greatly appreciated. ...
3
by: Lars Netzel | last post by:
In VB6 I remember finding templates for forms like "About " and "Licence Agreemenet" and so on when creating a new Form. Where are they in .NET, not included? Can you download Froms like that,...
4
by: Steven T. Hatton | last post by:
<quote url="http://www.informit.com/guides/content.asp?g=cplusplus&seqNum=53&rl=1"> exported Templates Last updated Sep 6, 2006. exported Templates The separate compilation model enables...
14
by: aaragon | last post by:
Hi everyone, I've been writing some code and so far I have all the code written in the .h files in order to avoid the linker errors. I'm using templates. I wanted to move the implementations to...
4
by: zfareed | last post by:
#include <iostream> #include <fstream> using namespace std; template<class ItemType> class SortedList { private:
2
by: Sunil Varma | last post by:
Hi, I'm trying to write template functions and use them. Is it possible to declare a template function in a .h file and define it in a .cpp file. Ex: //temp_func.h
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.