Как получается, когда я делаю
using std::string;
Я получаю сообщение об ошибке, но после добавления строки ошибка не выдается. То же самое с std::setprecision
.
#include <string>
using std::string; //Throws error when string library not included
#include <iomanip>
using std::setprecsion; //Throw error when iomanip library not included
int main()
{
//stuff
}
Когда я пропускаю препроцессор #include
, почему он выдает ошибку, говоря, что string
или setprecision
не является частью std namespace
, но когда я добавляю библиотеки, они этого не делают? Они как-то добавляются в пространство имен std после включения библиотек?
Это будет похоже на скобочную запись в JavaScript ?
var obj = {
one: 1
};
obj['two'] = 2;