Nou*_*jik 4 c++ readability namespaces visual-studio name-lookup
我是新手C++并且有C. 对我来说很难采用的一件事是频繁使用作用域运算符,例如std::,我会通过将其放在using namespace std源代码的开头来避免使用它,但很多人不使用这种方法,因为他们认为这将来可能会咬他们。
另外,visual-studio还沿着范围运算符显示错误/警告消息,例如
cannot convert from 'std::vector<int,std::allocator<_Ty>> *' to 'std::shared_ptr<std::vector<int,std::allocator<_Ty>>>'
Run Code Online (Sandbox Code Playgroud)
虽然上面的消息很冗长,但是读起来很痛苦(?)。我认为如果采用这种形式,阅读起来会很简单
cannot convert from 'vector<int,allocator<_Ty>> *' to 'shared_ptr<vector<int,allocator<_Ty>>>'
Run Code Online (Sandbox Code Playgroud)
1) 为什么每个人都使用std::, cout, cin?endl为什么有人会把这些标签用于其他目的呢?
2)他们在 Visual Studio 中的解决方法是不向我显示带有前缀的错误/消息/语法突出显示吗std::?
尽管正如评论中指出的那样, code likeusing namespace std;被认为是不好的做法std::cout,但是您可以通过在语句中指定单独的作用域元素来避免在代码 like 中重复使用名称空间前缀using。
像这样的东西:
using std::cout; //
using std::cin; // You can, from then on, just use 'cout', 'cin' and 'endl'
using std::endl; //
Run Code Online (Sandbox Code Playgroud)
对于非常常见的元素(如上面代码中列出的元素),您可以将相关行放入using头文件中 - 通常是用于构建预编译头的“全局”头。