Code:template<unsigned int size>class foo { private: char arr[size]; public: //returns a reference to arr char (&getArr())[size] { return arr; } //want to provide a cast operator to cast foo to a reference to a static char array of length size. syntax seems to follow the same rules as above, but the compiler doesn't like it. is this possible? operator char (&())[size] { return arr; } }