By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
449,154 Members | 1,041 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 449,154 IT Pros & Developers. It's quick & easy.

allocator: No such file or directory

P: n/a
Hi,

I'm following the example in "C++ Templates: The Complete Guide",
section 5.4 Template Template Parameters.

It's basics/stack8.hpp example has a statement of "#include <allocator>",
but I got an error for it.

$ cat -n allocator.cc
1 #include <allocator>
2
3 template< typename ALLOC = std::allocator<ELEM2
4 class c {};
5
6 template <typename T,
7 template <typename ELEM,
8 typename ALLOC = std::allocator<ELEM
9 class CONT = std::deque>
10 class Stack {
11 }
12
13 int main()
14 {
15 }

$ g++ -g allocator.cc -o allocator
allocator.cc:1:23: error: allocator: No such file or directory
[...]

How to fix the above allocator.cc so that it compiles fine?

Thanks.

FYI, why template template:

5.4 Template Template Parameters

It can be useful to allow a template parameter itself to be a class
template. Again, our stack class template can be used as an example. To
use a different internal container for stacks, the application programmer
has to specify the element type twice. Thus, to specify the type of the
internal container, you have to pass the type of the container and the
type of its elements again:

Stack<int,std::vector<int vStack; // integer stack that uses a vector

Using template template parameters allows you to declare the Stack class
template by specifying the type of the container without respecifying the
type of its elements:

stack<int,std::vectorvStack; // integer stack that uses a vector

To do this you must specify the second template parameter as a template
template parameter...
Aug 12 '08 #1
Share this Question
Share on Google+
2 Replies


P: n/a
On Tue, 12 Aug 2008 16:07:20 -0500, * Tong * wrote:
Hi,

I'm following the example in "C++ Templates: The Complete Guide",
section 5.4 Template Template Parameters.

It's basics/stack8.hpp example has a statement of "#include <allocator>",
but I got an error for it.

$ cat -n allocator.cc
1 #include <allocator>
2
3 template< typename ALLOC = std::allocator<ELEM2
4 class c {};
5
6 template <typename T,
7 template <typename ELEM,
8 typename ALLOC = std::allocator<ELEM
9 class CONT = std::deque>
10 class Stack {
11 }
12
13 int main()
14 {
15 }

$ g++ -g allocator.cc -o allocator
allocator.cc:1:23: error: allocator: No such file or directory
[...]

How to fix the above allocator.cc so that it compiles fine?

Thanks.
My g++:

$ g++ --version
g++ (GCC) 4.2.3 (Debian 4.2.3-1)
FYI, why template template:

5.4 Template Template Parameters

It can be useful to allow a template parameter itself to be a class
template. Again, our stack class template can be used as an example. To
use a different internal container for stacks, the application programmer
has to specify the element type twice. Thus, to specify the type of the
internal container, you have to pass the type of the container and the
type of its elements again:

Stack<int,std::vector<int vStack; // integer stack that uses a vector

Using template template parameters allows you to declare the Stack class
template by specifying the type of the container without respecifying the
type of its elements:

stack<int,std::vectorvStack; // integer stack that uses a vector

To do this you must specify the second template parameter as a template
template parameter...
Aug 12 '08 #2

P: n/a
On Aug 12, 5:07*pm, * Tong * <sun_tong_...@users.sourceforge.net>
wrote:
Hi,

I'm following the example in "C++ Templates: The Complete Guide",
section 5.4 Template Template Parameters.

It's basics/stack8.hpp example has a statement of "#include <allocator>",
but I got an error for it.
[snip]
allocator.cc:1:23: error: allocator: No such file or directory
[...]

How to fix the above allocator.cc so that it compiles fine?
Use <memoryinstead.

Cheers! --M
Aug 12 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.