Итак, я все время пытаюсь сократить using namespace std
, так как теперь я немного понимаю, какие конфликты это может вызвать в коде, и хотя я не собираюсь использовать чужой код в ближайшее время, Я хочу научиться использовать передовые практики ...
Но мне все еще не нравится, как выглядит код, когда вы разбрасываете по нему операторы области видимости, один совет, который я натолкнулся, - использовать typedefs
чтобы немного изменить внешний вид, я написал следующее:
#include <iostream>
#include <fstream>
#include <string>
typedef std::cout std_cout;
typedef std::endl std_endl;
typedef std::string std_string;
typedef std::fstream std_fstream;
typedef std::ios std_ios;
Теперь, когда я набираю это, все нормально, за исключением первых двух строк (во втором блоке кода), которые дают мне variable "std::cout" is not a type name
и function template "std::endl" is not a type name
сообщения об ошибках соответственно.
Теперь, если бы я должен был заменить все typedef
с #define
с, первоначально проблема, казалось бы, была решена, но затем я бы закончил с многочисленными синтаксическими ошибками в каждой строке, содержащей одно из этих определений. (Кроме того, я знаю, что #define
также проблематичен c, как и using namespace std
, поэтому я стараюсь и этого избегать)
Чтобы еще больше усложнить ситуацию, первая строка (в тот же блок), который является одной из двух проблемных строк c здесь, является одной прямой, идентичной той, которую я видел в многочисленных источниках в Интернете, поэтому я не знаю, что правильно больше ...
Как правильно определить тип данных?
Заранее спасибо.