Visit Our UNIX and Linux User Community


Problems with template instantiation in C++


 
Thread Tools Search this Thread
Top Forums Programming Problems with template instantiation in C++
# 8  
Old 09-15-2009
I'm sorry that I'm answering only now, have been on vacation.

Quote:
and instantiated in line 253.
What are you trying to do in line 253? Call the function? It looks like a wrongly declared function, e.g.
Code:
template istream

doesn't make any sense.
The same thing applies to the code from line 276 onwards.

If you want to instantiate the functions, which simply means calling a templated function with specific data types substituted for the template parameters, you have to pass the actual parameters as you would normally do.

A correct version of intended call starting in line 276 would look like this:
Code:
// Only because istream is a typedef of an instantiation
// of the basic_istream template, the following function
// call is correct.
/* typedef basic_istream<char, char_traits<char> > istream; */

istream& refToIstream = control
/*
    // This part (the explicit template arguments
    // specification) is superfluous, because
    // the data types can be derived from the
    // actual parameters.
    <char, char_traits<char>,                     
    <char, char_traits<char>> >
*/
// This parameters are actual parameters.
// So you must not specify their types.
(
    ...
);

# 9  
Old 09-16-2009
Dear Gunther,

your hint was a great help for me to find a entry point to solve the problem.

The main problem was, that the template use_facet<..> returns a const
reference to a facet. The first error was, that I invoked a non const member
to this class. The second mistake was, that I use the assign operator for references, that doesn't work.

Thanks Martin.
# 10  
Old 09-16-2009
I'm glad, if I could help.

May I ask in which kind of application this code is used?
# 11  
Old 09-17-2009
Quote:
I'm glad, if I could help.

May I ask in which kind of application this code is used?
Dear Gunther,

I want to write an application, what can process any EDIFACT message. This message type is segmented. At any token, that appears in the stream,
a arbitrarly action should take place.

But in my time frame, I will need some month too, to get running the application.

Greeting Martin.

Previous Thread | Next Thread
Test Your Knowledge in Computers #288
Difficulty: Easy
In Linux, Logical Volume Manager (LVM) is a device mapper target that provides sound card I/O management for the Linux kernel.
True or False?

6 More Discussions You Might Find Interesting

1. Programming

Calling template at once

Hello Again, I am just wanted to know if we can call the Template using "require_once" at PHP? Any views around happy to discuss. Thanks in Advance (2 Replies)
Discussion started by: AimyThomas
2 Replies

2. Programming

C++ template error

I get some compiling errors about template instantiation :wall: , but I can't find where the syntax errors happens. Can some help me? template<typename Type> class SingleList; template<typename Type> class SingleListNode{ private: friend class SingleList<Type>; SingleListNode() :... (1 Reply)
Discussion started by: 915086731
1 Replies

3. Shell Programming and Scripting

Help with template like solution

hi experts, i'm trying to do this: file1 is a template. might have kinds of 'funny' characters. sample: <body> <form> <p><input type="text" name="abc"/></p> &nbsp; <p><my_content></p> </form> </body> file2 is a file that contains lots of text. this might be very big. might have... (2 Replies)
Discussion started by: xjohnu
2 Replies

4. Programming

Template problem ...

Hi all, Need your help. I am doing a simple template program , getting some error ... here is the code #include <iostream> #include <stdio.h> #include <stdlib.h> #include<iostream> #include<string> #include <sstream> using namespace std; class Base_class { public: Base_class(){... (1 Reply)
Discussion started by: amartya_sock
1 Replies

5. UNIX for Dummies Questions & Answers

vi calling template

Hello. I want to copy temp files when I make a new file by vi. For example, 09:32:52 ~/ $ mkdir test 09:33:03 ~/ $ cd test/ 09:33:09 ~/test/ $ ls 09:33:16 ~/test/ $ vi test.cpp 09:34:37 ~/test/ $ cat test.cpp #include <iostream> int main() { } 09:34:48 ~/test/ $ vi test.bash 09:35:19... (1 Reply)
Discussion started by: Euler04
1 Replies

6. Programming

About template constraints

Hi, i have class template, 1)can i override the copy constructor 2)can we have virtual function in class template if not plz tel why? I tried , compile error comes for me... Thanks Sarwan (0 Replies)
Discussion started by: sarwan
0 Replies

Featured Tech Videos