साथ इस कोड (कोई निदान के साथ) बजना3.7.1 साथ संकलित लेकिन जीसीसी5.3.0 (live example) के साथ विफल:खाका जीसीसी के साथ दोस्ती त्रुटि संकलन लेकिन नहीं बजना
#include <iostream>
template<typename T>
struct A {
void foo()
{
static_cast<T*>(this)->implementation();
}
};
struct Crtp : A<Crtp> {
template<typename T>
friend struct A;
private:
void implementation() { std::cout << "implementation()\n"; }
};
int main()
{
Crtp c;
c.foo();
}
main.cpp:13:16: error: specialization of 'A' after instantiation friend struct A;
कौन सा सही है और क्यों:
जीसीसी के त्रुटि संदेश निम्न है? क्या यह जीसीसी/क्लैंग का एक बग है?
आप सही हैं। इसके अलावा, जीसीसी में कई [मित्र मुद्दे] हैं (https://gcc.gnu.org/bugzilla/showdependencytree.cgi?id=65608&hide_resolved=1)। – akakatak