setprecision и пространство имен строк - PullRequest
0 голосов
/ 27 июня 2018

Как получается, когда я делаю

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;

1 Ответ

0 голосов
/ 27 июня 2018

Это просто потому, что функции, которые вы пытаетесь использовать, определены в их файлах библиотеки. В C, C ++ вы должны написать # include , чтобы включить библиотеку в вашу программу и использовать ее функции.

...