当我编写 C++ 代码时,我尝试使用 ausing <X>
来避免过多的污染。在 Crypto++ 中,它在一种情况下给我带来了问题。案例是 CryptoPP 命名空间中的 ASN1 命名空间(它只出现在一个地方)。
这是 Crypto++ 中的声明:http ://www.cryptopp.com/docs/ref/oids_8h_source.html 。
例如,我可以使用以下secp256r1
曲线:
CryptoPP::ASN1::secp256r1();
但是,我还没有想出一种使用 using 来声明它的方法。当我尝试:
#include <cryptopp/asn.h>
#include <cryptopp/oids.h>
using CryptoPP::ASN1;
它最终导致error: namespace ‘CryptoPP::ASN1’ not allowed in using-declaration
,然后error: ‘ASN1’ has not been declared
在以下(我都尝试过):
ECIES<ECP>::Decryptor d1(prng, secp256r1());
ECIES<ECP>::Decryptor d2(prng, ASN1::secp256r1());
using
当有多个命名空间时,如何使用语句?
$ g++ -version
i686-apple-darwin11-llvm-g++-4.2