I am having this struct :-

    struct COMPILETIME_BM_PRE
    {   
void initialisebmBc(S,C,I,int k)( const S pattern ,ref I[C] bmBc){
                static if  ( k< ASIZE ){
                        bmBc[ALPHABET[k]] = size;
                        initialisebmBc!(S,C,I,k+1)(   pattern ,bmBc);
                 }
             }
void initialisebmBc(S,C,I,int k : ASIZE)( const S pattern ,ref I[C] bmBc){}

        
void calculatebmBc(S,C,I,int i)( const S pattern ,ref I[C] bmBc)
        {
                static if ( i < size -1 )
                     bmBc[pattern[i]] = size -i-1;

                calculatebmBc!(S,C,I,i+1)(pattern ,bmBc);
        }

        I[C]  preBmBc(S ,C,I)( const S  pattern ,ref I[C] bmBc){

                this.initialisebmBc!(S,C,I,0)(   pattern ,bmBc);
                this.calculatebmBc!(S,C,I,0)(pattern ,bmBc);
                return bmBc;
        }
    }

In another module I use the struct as below :-

        int[char] bmBc;                 
        COMPILETIME_BM_PRE bmh ;
        enum  bmBc1 = bmh.preBmBc!(string ,char,int)(   pattern ,  bmBc);

On last line , I get the error message : `Error: variable bmh cannot be read at compile time` , yet I thought this value would be evaluated at compiletime.

Reply via email to