Allow assigning nil to any pointer

This commit is contained in:
2025-02-04 13:28:09 +01:00
parent aab16e4941
commit 8b654ed138
6 changed files with 108 additions and 192 deletions

View File

@ -12,27 +12,6 @@ namespace elna
{
namespace boot
{
/**
* Generic language entity information.
*/
template<typename T>
class info
{
public:
T payload;
info(T payload)
: payload(payload)
{
}
};
template<typename T>
std::shared_ptr<info<T>> make_info(T payload)
{
return std::make_shared<info<T>>(info(payload));
}
/**
* Symbol table.
*/
@ -40,7 +19,7 @@ namespace boot
class symbol_table
{
public:
using symbol_ptr = std::shared_ptr<info<T>>;
using symbol_ptr = T;
using iterator = typename std::unordered_map<std::string, symbol_ptr>::iterator;
using const_iterator = typename std::unordered_map<std::string, symbol_ptr>::const_iterator;