isocpp / isocpp/CppCoreGuidelines
F.5 exception on inline template class member functions is incorrect
Open
@jwakely is already working on this.
Since Mar 13, 2017.
- Dominant language
- CSS
- Stars
- 45.3k
- Forks
- 5.6k
- PR merge metrics
- No merged PRs in 30d
Description
Typically the following code
#include <iostream>
template <typename X>
struct foo
{
X x;
X get();
};
template <typename X>
X foo<X>::get()
{
return x;
}
int main(void)
{
foo<int> x = {3};
std::cout << x.get() << std::endl;
}
is not the same as
#include <iostream>
template <typename X>
struct foo
{
X x;
X get() {
return x;
}
};
int main(void)
{
foo<int> x = {3};
std::cout << x.get() << std::endl;
}
One uses an inline function and one does not. Template functions do not have to be inline.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.