Я попытался следующие:Когда я использую typedef или использую для int, сколько это еще int?
using Idx = int;
array<Value, N> arr;
for(Idx i = 0; i < N; i ++){
arr[i].doSomething();
}
Я ожидал, что компилятор будет выдавать предупреждение или сообщение об ошибке при попытке использовать Idx
, как если бы это был int
. Но это не так.
Итак, когда я использую using
или typedef
для псевдонима типа A в качестве B, являются ли переменными типа B еще и типа A, и наоборот? Таким образом, безопасность типа не может быть достигнута путем переименования типа, когда он выглядит одинаково, но имеет другое значение.
(Это связано со следующим вопросом я недавно спросил: How to make types for indexing)
Ключевое слово здесь - это слово [* "alias" *] (http://en.wiktionary.org/wiki/alias), что означает 'Idx' (в вашем случае) - просто другое имя для' int'. –
Еще 100% int – user763305