नहीं मिला निम्न कोड के लिएस्थिर constexpr सदस्य समारोह
#include <array>
template<unsigned MaxP, typename type>
struct kernel
{
static constexpr unsigned max_pole(unsigned P)
{ return P>MaxP? MaxP:P; }
template<unsigned P>
using array = std::array<type,max_pole(P)>; // wrong?
template<unsigned P>
static void do_something(array<P> const&, array<P>&);
};
जीसीसी 4.7.0 (छ ++ -c -std = C++ 11) देता है
error: ‘max_pole’ was not declared in this scope
इस है सही (कंपाइलर का व्यवहार)? ध्यान दें कि यदि मैं संकेतित लाइन पर kernel::max_pole
के साथ max_pole
को हल करके हल करता हूं, तो यह ठीक से संकलित करता है।
संपादित बगजिला की रिपोर्ट की गई, बग C++/55992 के रूप में स्वीकार कर लिया, http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55992 देखते हैं। जीसीसी 4.7.एक्स और 4.8.0 के साथ भी होता है।
बस परीक्षण किया गया: 'g ++ 4.7.2' के लिए किसी के पास एक नया संस्करण 4.8 है? शायद यह एक बग है जो तय किया गया था ... – leemes