Witam
Napisałem szablon prostej funkcji do szybkiego tworzenia tablicy dwuwymiarowej na stercie( w postaci wskaźnika do tablicy wskaźników).
Nagłówek;
#ifndef 2D_TABLE_H_INCLUDED
#define 2D_TABLE_H_INCLUDED
template<typename T>
T** make_2dtable(int l,int c )
{
T**t=new T*[l];
int i;
for(i=0;i<l;++i)
t[i]=new T[c];
return t;
}
template<typename T>
T** make_2dtable(int l,int c,const T& val )
{
T**t=new T*[l];
int i,j;
for(i=0;i<l;++i)
t[i]=new T[c];
for(i=0;i<l;++i)
for(j=0;j<c;++j)
t[i][j]=val;
return t;
}
#endif // 2D_TABLE_H_INCLUDED
Test w main
#include "2d_table.h"
int main()
{
int**t1=make_2dtable(10,10,0); //ma zwrócic wskaznik do tablicy 10x10 wypelnionej zerami
int**t2=make_2dtable<int>(10,10) //wskaźnik do niezainicjalizowanej zadnymi wartosciami tablicy
return 0;
}
Nie chce się skompilować. Czepia się nagłówka podając błąd -macro names must be identifiers
W czym kompilator widzi problem :-O. Ide jakie używam to od dziś code::block wcześniej dev. W obydwóch to samo.