[BUG]: support wrapping template specializations
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7
- Forks
- 3
- Avg merge
- 18h 33m
- Merged PRs (30d)
- 7
Description
Problem description
Going to ignore these for now since it causes issues and it'll be annoying to address, but here's what needs to be done?
- needs to include __classname.hpp
- use bind___classname(m, name) as a member variable
- from it's bind__classname_specialization needs to call the bind___classname methods in addition to doing whatever binding it needs to do
- require 'rename' (generate an auto name in create-gen?)
The example below breaks by overwriting the original template class .hpp
Operating System
Linux
Installed Python Packages
No response
Reproducible example code
#pragma once
// basic template
template <typename T>
struct TBasic
{
virtual ~TBasic() {}
T getT() { return t; }
virtual void setT(const T &t) { this->t = t; }
T t;
};
// basic specialization
// - TODO: ignored for now since this is annoying
template <>
struct TBasic<int> {
int add5() { return t + 5; }
};
Contributor guide
No contributing guide indexed for this repository
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.
Research direction
Start by locating the generator entry point referred to as create-gen and the code that emits __classname.hpp, bind___classname, and bind__classname_specialization. Reproduce the reported overwrite with the provided TBasic template and specialization; done means specializations preserve the original template binding and satisfy the listed include, member-binding, delegation, and rename requirements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100