Comments (5)
@sagaceilo, thank you very much for the report. I'll look into it asap, maybe over the week-end. Would you have a small sample that reproduces the issue? Also what happens, is it a build issue? Also are you using the latest version, I added support for non-copyable objects a couple weeks ago.
from sparsepp.
Hey!
Here is example:
#if 1
# define SPP_NO_EXCEPTIONS
# define SPP_NO_RTTI
# include <sparsepp/sparsepp.h>
template <typename HashType, typename ObjType>
using THashMap = spp::sparse_hash_map<HashType, ObjType>;
#endif
#if 0
# include <sparsehash/sparse_hash_map>
template <typename HashType, typename ObjType>
using THashMap = ::google::sparse_hash_map<HashType, ObjType>;
#endif
#if 0
# include <unordered_map>
template <typename HashType, typename ObjType>
using THashMap = std::unordered_map<HashType, ObjType>;
#endif
class CNonCopyable
{
public:
CNonCopyable( CNonCopyable const & ) = delete;
const CNonCopyable& operator=( CNonCopyable const & ) = delete;
CNonCopyable() = default;
};
struct Probe : CNonCopyable
{
Probe() {}
Probe( Probe && other ) {}
void operator=( Probe && other ) {}
};
void main() {
THashMap<uint64_t,Probe> probes;
probes.insert( { 0, Probe() } );
for( auto& it : probes ) {}
}
I've tried cut as many non revelant code I've could. Hope that You will find this helpful. It runs and compiles using std::unordered_map.
from sparsepp.
Thank you @sagaceilo , your sample program is very useful. Somehow, using my versions of gcc and clang (4.8.3 and 3.8 on linux), your sample as-is does not compile even when using std::unordered_map, because of the insert with the initializer_list.
However, it does build with a simple change, replacing:
probes.insert( { 0, Probe() } );
with:
probes.insert( THashMap<uint64_t, Probe>::value_type(27, Probe()) );
I did update sparsepp a few minutes ago, and now your updated sample builds as well with sparsepp. Please let me know if this version is OK with you.
from sparsepp.
Now it works like a charm :) Thank you ;)
from sparsepp.
Great, thanks for letting me know, closing the issue.
from sparsepp.
Related Issues (20)
- Support operator[] with rvalue HOT 1
- When hashing on vector HOT 13
- Help me to serialize/deserialize sparse_hash_map<int , vector< std::string > > HOT 1
- missing return value in function spp_sptr& operator=(spp_sptr &&o) ? HOT 1
- SIGSEGV on using move-assigned-from hash set HOT 3
- Unable to create map for value type with deleted copy constructor HOT 2
- Can't insert std::tuple: spp uses deleted constructor/destructor HOT 1
- Lookup non-present keys becomes very slow. HOT 1
- Do you support C++11 stateful allocators? HOT 1
- Default allocator doesn't throw and caller doesn't check for NULL HOT 1
- SEGV after moving hash_map HOT 2
- conan package HOT 2
- sparse_hash_map<uint32_t, uint64_t> takes more memory than sparse_hash_map<uint64_t, uint64_t> HOT 1
- memcpy can happen with null "source" parameter HOT 6
- class-memaccess warning when compiling with GCC 8 or later HOT 1
- Problem when compiling on macOS catalina HOT 6
- Can sparse_hash_map support unique_ptr?
- Compiler warning on realloc call within sparsepp. HOT 1
- Error when compile: is not a special member function which can be defaulted HOT 2
- Missing return value. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sparsepp.