class CoreExport modestacker : public classbase
{
private:
- InspIRCd* ServerInstance;
-
/** The mode sequence and its parameters
*/
std::deque<std::string> sequence;
* @param add True if the stack is adding modes,
* false if it is removing them
*/
- modestacker(InspIRCd* Instance, bool add);
+ modestacker(bool add);
/** Push a modeletter and its parameter onto the stack.
* No checking is performed as to if this mode actually
* characters. As specified below, this function
* should be called in a loop until it returns zero,
* indicating there are no more modes to return.
- * @param result The deque to populate. This will
+ * @param result The vector to populate. This will not
* be cleared before it is used.
* @param max_line_size The maximum size of the line
* to build, in characters, seperate to MAXMODES.
* returns 0, in case there are multiple lines of
* mode changes to be obtained.
*/
- int GetStackedLine(std::deque<std::string> &result, int max_line_size = 360);
+ int GetStackedLine(std::vector<std::string> &result, int max_line_size = 360);
+
+ /** deprecated compatability interface - TODO remove */
+ int GetStackedLine(std::deque<std::string> &result, int max_line_size = 360) {
+ std::vector<std::string> r;
+ int n = GetStackedLine(r, max_line_size);
+ result.clear();
+ result.insert(result.end(), r.begin(), r.end());
+ return n;
+ }
};
/** irc::tokenstream reads a string formatted as per RFC1459 and RFC2812.
}
/** Hashing stuff is totally different on vc++'s hash_map implementation, so to save a buttload of
- * #ifdefs we'll just do it all at once
+ * #ifdefs we'll just do it all at once. Except, of course, with TR1, when it's the same as GCC.
*/
BEGIN_HASHMAP_NAMESPACE
/** Hashing function to hash irc::string
*/
-#ifdef WINDOWS
+#if defined(WINDOWS) && !defined(HAS_TR1_UNORDERED)
template<> class CoreExport hash_compare<irc::string, std::less<irc::string> >
{
public:
* @param s A string to hash
* @return The hash value
*/
- size_t operator()(const irc::string &s) const;
+ size_t CoreExport operator()(const irc::string &s) const;
};
/* XXX FIXME: Implement a hash function overriding std::string's that works with TR1! */
#ifdef HASHMAP_DEPRECATED
struct insensitive
#else
- template<> struct hash<std::string>
+ CoreExport template<> struct hash<std::string>
#endif
{
- size_t operator()(const std::string &s) const;
+ size_t CoreExport operator()(const std::string &s) const;
};
#endif