名称空间从C 中的Include File继承
Namespace inherited from include file in C++
对于统计包,我需要包括一个数值计算库,然后选择了armadillo。我想将所有依赖关系保留在一个"包装器"文件中(能够轻松切换数值库(。目前,包装器到armadillo,称为mixt_LinAlg.h
仅包含:
#ifndef MIXT_LINALG_H
#define MIXT_LINALG_H
#include "mixt_Typedef.h"
#include <armadillo>
using namespace arma;
namespace mixt {
template<typename T>
using Matrix = Mat<T>;
template<typename T>
using Vector = Col<T>;
template<typename T>
using RowVector = Row<T>;
}
#endif // MIXT_LINALG_H
这样,如果我导入此标头,则可以访问Matrix
,Vector
和RowVector
模板类,而无需直接导入Armadillo。现在,在Armadillo中,有一个函数arma::approx_equal
,例如,该功能为两个Col<T>
,并返回bool
。
如果我简单地使用approx_equal
而不是arma::approx_equal
调用此功能,则它会在MacOS上与Clang一起编译。但是,当我在Ubuntu上使用GCC编译时,它抱怨它找不到approx_equal
。
如何使approx_equal
可用于任何包含mixt_LinAlg.h
的文件,而无需在包括文件中引用arma
名称空间?
在您自己的名称空间中添加到标题中的 approx_equal
,该命名空间围绕arma::approx_equal
或任何其他实现。
换句话说,将类似的东西添加到armadillo的标题:
... my_namespace::approx_equal (...) {
return arma::approx_equal(...);
}
您必须为您要切换的每个实现都有这些包装器之一。
相关文章:
- 我在 #include < bits/stdc++h.> 放置时出错"No such file or directory"
- QtCreator 中的"Fatal Error C1083: Cannot open include file"
- 名称空间从C 中的Include File继承
- Boost C++ Libaries in Visual Studio 2017 C++ Project - "Cannot open include file"
- PCC-S-02015, "unable to open include file"
- "Fatal error C1083: Cannot open include file"但我已将目录添加到项目中
- GMOCK 叮当讨厌的错误"/usr/include/limits.h:123:16: fatal error: 'limits.h' file not found"
- KDevelop 会自动在 #include < file.h 中的 # 后插入一个空格>
- 包括新文件夹中的头文件 "cannot open include file - no such file or directory"
- 必须包含存在 file.h "#include "的所有"file.o"文件" "
- #include <file> #include < file.h> - 有什么区别?
- "Error C1083: Cannot open include file"但我有包含文件的路径
- 如何 #include "file.cpp"
- 错误"Cannot open include file",但它不包含在代码中
- Qt创建者:"Cannot open include file: 'windows.h'"
- 尽管路径设置正确,但错误"C1083 cannot open include file gecode/int.hh"
- 如何修复涡轮增压c ++错误"Cannot open include file: graphics.h: no such files or director"
- 尝试构建现有项目,很多"Cannot open include file: 'StdAfx.h': No such file or directory"
- C++ Windows 命令提示符 C1083 "Cannot open include file: 'Magick++.h' No such file or directory"
- Visual Studio 在调试中编译,失败 发布 ( "Cannot open include file" )