user2896120 user2896120 - 1 year ago 64
C++ Question

Template file not working correctly in CodeLite?

Every time I create a new project in my workplace I run into the problem with templates. For example, I'll create a new class, which CodeLite will create a .h file and a .cpp file for me, and then I'll change that .cpp file into a .template by renaming the file. It sometimes works, and sometimes doesn't. Sometimes I have to clean my workplace for it to work, other times I need to exit out of CodeLite and reopen it. This time these solutions are not working for me, but maybe I am missing something. Here's my code:

.h file

#ifndef TABLE1_H
#define TABLE1_H
#include <cstdlib> // Provides size_t

namespace main_savitch_12A
template <class RecordType>
class table
// MEMBER CONSTANT -- See Appendix E if this fails to compile.
static const std::size_t CAPACITY = 811;
table( );
void insert(const RecordType& entry);
void remove(int key);
bool is_present(int key) const;
void find(int key, bool& found, RecordType& result) const;
std::size_t size( ) const { return used; }
// MEMBER CONSTANTS -- These are used in the key field of special records.
static const int NEVER_USED = -1;
static const int PREVIOUSLY_USED = -2;
RecordType data[CAPACITY];
std::size_t used;
std::size_t hash(int key) const;
std::size_t next_index(std::size_t index) const;
void find_index(int key, bool& found, std::size_t& index) const;
bool never_used(std::size_t index) const;
bool is_vacant(std::size_t index) const;
#include "table1.template" // Include the implementation.

.template file

template<class RecordType>
used = 32;

main file

#include <stdio.h>
#include "table1.h"
int main(int argc, char **argv)
printf("hello world\n");
return 0;

My template and my .h files are called table1. The error I am getting when I run the program is in the template file. It reads: "table does not name a type" How can I fix this issue?

Answer Source

In your template implementation your are missing the namespace, use this:

template <class RecordType> 
    used = 32;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download