Объявление переменных внутри циклов, хорошая практика или плохая практика?

Вопрос 1: Является ли объявление переменной внутри цикла хорошей или плохой практикой?

Я читал другие темы о том, есть ли проблема с производительностью (большинство сказали нет), и что вы всегда должны объявлять переменные как можно ближе к месту их использования. Что мне интересно, так это то, следует ли этого избегать или это действительно предпочтительнее.

Пример:

for(int counter = 0; counter <= 10; counter++)
{
   string someString = "testing";

   cout << someString;
}

Вопрос 2: Понимают ли большинство компиляторов, что переменная уже была объявлена, и просто пропускают эту часть, или она фактически создает место для нее в памяти каждый раз?

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

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