c++ - Set default comparison type in Template -


i want set default class type default comparison type in template , want compares 2 character strings using templates, did write code it’s giving error. code , error given below,

class casesencmp{ public:      static int isequal(char x, char y){        return x==y;    } };  template<typename c=casesencmp> int compare(char* str1, char* str2){   for(int i=0; i<strlen(str1) && i<strlen(str2); i++)     if(!c::isequal(str1[i], str2[i]))         return str1[i]-str2[i];   return strlen(str1)-strlen(str2);  }  main(){ char *x = "hello", *y = "hello"; compare(x,y);    } 

but when have added prototype of template, works

template<typename c> 

compiler gives error

error: default template arguments may not used in function templates without -std=c++11 or -std=gnu++11| 

also when try type casting in main function using code, works

compare<casesencmp>(x,y); 

but want set default policy

i faced issue in code::blocks. tackle issue have enable

-std=c++11 

into compiler. in case of code::blocks have follow given below instructions.

settings->compiler->compiler flags...look , check option "have g++ follow c++11 iso c++ language standard". if doesn't check box above c++0x standard.


Comments

Popular posts from this blog

google chrome - Developer tools - How to inspect the elements which are added momentarily (by JQuery)? -

angularjs - Showing an empty as first option in select tag -

php - Cloud9 cloud IDE and CakePHP -