Bug 512214 - Implemeting methods of inner class with separate definition of template class results in wrong function names
Summary: Implemeting methods of inner class with separate definition of template class...
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-refactoring (show other bugs)
Version: 9.2.0   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-15 06:32 EST by Yan Pas CLA
Modified: 2020-09-04 15:20 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yan Pas CLA 2017-02-15 06:32:51 EST
Code:
template <typename T>
class Test {
public:
	class Inner;
};

template <typename T>
class Test<T>::Inner
{
	void foo(int a);
};

void xx() {
	Test<int>::Inner i;
}

After implemeting foo it has following prototype:
template<typename T>
inline void Test<T>::Inner<T>::foo(int a) {
}

But the correct one is:
template<typename T>
inline void Test<T>::Inner::foo(int a) {
}