C ++中的命名空间别名 [英] Namespace alias in c++

查看:50
本文介绍了C ++中的命名空间别名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用c ++ 11,而我需要c ++ 17库中的一些类.使用从中添加了类的boost时,我希望执行以下操作:

I use c++11 while I need some classes from c++17 library. When using boost from which classes were added I wish to do the following:

#if __cplusplus < CPP17
using std::any = boost::any;  
#endif

不允许使用此类别名.扩展标准命名空间也会导致不确定的行为.我希望我的代码看起来与C ++版本相同.有没有明确的方法?

Such alias is not allowed. Also extending the std namespace causes undefined behaviour. I wish my code to look the same regardles of the c++ version. Is there a clear way?

推荐答案

明确的方法是为其添加自定义名称.

The clear way is to add a customized name for it.

#if __cplusplus < CPP17
using my_any = boost::any;
#else
using my_any = std::any;    
#endif

// using my_any...

这篇关于C ++中的命名空间别名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆