Linux Eclipse C++ Local Namespaces and "std::"
linux eclipse c++ local namespaces and "std::"
我正在尝试我的第一个c++项目,我想我是从小的开始的。我正在使用Eclipse Luna,并试图在我所能的任何地方采用默认的构建环境。我怀疑下面的代码很幼稚,但你必须从某处开始。
我最终会有4个co/子项目:
- 静态库的命令行接口
- "。so"lib,它将被动态加载到另一个第三方应用程序中,并使用静态lib
- 上面提到的静态库,用于完成合并后应用程序的后端工作。
- 一个实用程序类(现在可能是一个小库),用于其他子项目通用的实用程序类和函数。
关于最佳实践、名称空间等,我有很多问题想问,但我将长话短说。
我有以下c++头文件:
/*
* Utilities.h
*
*/
#ifndef UTILITIES_H_
#define UTILITIES_H_
// A
namespace UserTrackingUtilities {
// B
#include <string>
#include <exception>
using namespace std;
class MyException: public std::exception {
public:
MyException(std::string ss) : s(ss) {
}
~MyException() throw () {
} // Updated
std::string s;
const char* what() const throw () {
return s.c_str();
}
};
}
#endif /* UTILITIES_H_ */
这是一个异常实用程序(在不同的StackOverflow线程中发现),我在我自己的命名空间中包装-我认为。
Eclipse显示了这个头文件的几个问题。我从一个开始:它不像std::string
结构。无论我把#include
s和/或using
语句放在A
或B
点,都没有关系。
我也在Linux GCC和ADT工具链中尝试过。
欢迎指教和建议
#include <string>
#include <exception>
应该在
之前namespace UserTrackingUtilities {
顺便说一句:
如果你使用using namespace std
,你可以写string
而不是std::string
。
但我建议不要使用 using namespace std
,以避免名称冲突和歧义。
更新:
下面是一个简单的例子:
#include <iostream>
#include <string>
#include <exception>
namespace UserTrackingUtilities {
class MyException: public std::exception {
public:
MyException(std::string ss) : s(ss) {
}
~MyException() throw () {
} // Updated
std::string s;
const char* what() const throw () {
return s.c_str();
}
};
}
int main()
{
UserTrackingUtilities::MyException ex("Hello World");
std::cout << ex.what() << std::endl;
return 0;
}
相关文章:
- std::visit and std::variant usage
- Visual Studio 2019 C++ and std::filesystem
- Threads with Classes and std::packaged_task
- Cython C++ and std::map handling
- C++20 with u8, char8_t and std::string
- std :: set and std :: unordered_set构造元素与emplace()如何
- 混合std :: wcout and std :: cout会犯错,什么错
- std::is_same and std::get together
- C++ concepts and std::cout
- Use boost strand and std::mutex
- STD :: MAP,STD :: set and std :: Priority_queue中的比较器
- C++ - vsprintf_s and std::string?
- is_assignable and std::unique_ptr
- 使用std :: future and std ::通过非std ::螺纹承诺安全吗?
- std::experimental::ostream_joiner and std::pair
- 为什么BOOST :: fileSystem :: path and std :: filesystem ::路径含量含
- unique_ptr push_back and std::list
- 为什么要使用std ::少用作默认函数来比较std :: map and std :: set中的键
- 使用std :: bind and std ::功能
- vector::push_back and std::move