#include <iostream>
using namespace std;
template <typename T1, typename T2>
void TesteFunc(T1 Matriz1, T2 Matriz2, ...)
{
Matriz1[0] = 0;
// Outras coisas
}
const char* teste = "Ola";
char MatTeste[] = { 0 };
int main()
{
TesteFunc<const char*&, char*>(teste, MatTeste);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4Kdm9pZCBUZXN0ZUZ1bmMoVDEgTWF0cml6MSwgVDIgTWF0cml6MiwgLi4uKQp7CiAgICBNYXRyaXoxWzBdID0gMDsKICAgIC8vIE91dHJhcyBjb2lzYXMKfQoKY29uc3QgY2hhciogdGVzdGUgPSAiT2xhIjsKCmNoYXIgTWF0VGVzdGVbXSA9IHsgMCB9OwoKaW50IG1haW4oKQp7CiAgICBUZXN0ZUZ1bmM8Y29uc3QgY2hhciomLCBjaGFyKj4odGVzdGUsIE1hdFRlc3RlKTsKfQ==
prog.cpp: In instantiation of ‘void TesteFunc(T1, T2, ...) [with T1 = const char*&; T2 = char*]’:
prog.cpp:17:51: required from here
prog.cpp:7:16: error: assignment of read-only location ‘* Matriz1’
Matriz1[0] = 0;
~~~~~~~~~~~^~~