我使用boost :: multi_index視覺sutdio 2010年,這似乎與升壓:: const_mem_fun和虛擬類方法使用時崩潰:visual C++ 2010內部錯誤boost :: multi_index?
class Node
{
public:
virtual const std::string& getValue() const {return m_strValue;}
protected:
std::string m_strValue;
private:
struct byValue{};
typedef boost::multi_index_container<
boost::shared_ptr<Node>,
boost::multi_index::indexed_by<
boost::multi_index::random_access<>,
boost::multi_index::ordered_non_unique<
boost::multi_index::tag<byValue>,
boost::multi_index::const_mem_fun<Node, const std::string& , &Node::getValue>
>
>
> NodeList;
};
編譯這個時候,視覺碰撞用這種消息的:
fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'msc1.cpp', line 1420)
1> To work around this problem, try simplifying or changing the program near the locations listed above.
1> Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
但是如果Node :: getValue不是虛擬的,編譯就沒問題。 有沒有辦法解決這個問題?