Вы можете эмулировать передачу массивов фиксированного размера по значению, как это.

рудно понятьtypedef шаблон для массивов.

typedef char Char10[10];
void fun (Char10 a)  // not passing reference (interested in pass by value)
{
  if(typeid(Char10) == typeid(char*))
    throw 0;  // <--- never happens
}

int main ()
{
  char a[10];  fun(a);  // ok
  char b[11];  fun(b);  // why works ?
}

Почему разные размеры массива по значению принимаютсяfun() ? Находятсяchar[10] а такжеchar[11] не разные типы?

редактировать: Для тех, кто говорит, что он распадается на указатель, смотрите мой отредактированный кодchar[10] а такжеchar* не похоже

Ответы на вопрос(8)

Ваш ответ на вопрос