我有一个问题,理解为什么某个隐式转换不能像我期望的那样工作。我有以下类运算符wchar_t **()未能提供向const的隐式转换wchar_t ** - 为什么?
ref class ManagedWStringArrayWrapper
{
wchar_t** m_pointer;
public:
operator wchar_t**()
{
return m_pointer;
}
};
我想这也会隐式转换为常量wchar_t ** - 但它不会。有人能告诉我为什么吗?从T**
到T const**
你能否提供一个你如何使用该操作符的示例? – 2012-01-10 10:57:17
关于此问题,C++常见问题解答有一个条目:http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17 – 2012-01-10 10:57:17
+1这很有趣。对于单层间接寻址(wchar_t *),const wchar_t *()运算符允许隐式转换。它仅在失败时出现多层间接寻址。 Joys of C++。 – adelphus 2012-01-10 11:07:03