Last active
March 9, 2021 03:04
-
-
Save octavifs/5362297 to your computer and use it in GitHub Desktop.
Converts C++ std::map to boost::python::dict
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Converts a C++ map to a python dict | |
template <class K, class V> | |
boost::python::dict toPythonDict(std::map<K, V> map) { | |
typename std::map<K, V>::iterator iter; | |
boost::python::dict dictionary; | |
for (iter = map.begin(); iter != map.end(); ++iter) { | |
dictionary[iter->first] = iter->second; | |
} | |
return dictionary; | |
} |
i think auto is better than typename std::map<K, V>::iterator iter;
addressing comment: iterator doesn't work with const argument here. Code works fine in snippet, though I'm passing by ref.
@AntonBrunyee, of course it is not working, because you need a const_iterator over iterator.
How to use this function?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I would rather put const std::map<K,V>& map as a parameter, that is a const ref. It won't change the code but can greatly help the compiler to optimize the code.