Upgrade to C++14
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@ project(biboumi)
|
|||||||
set(${PROJECT_NAME}_VERSION_MAJOR 0)
|
set(${PROJECT_NAME}_VERSION_MAJOR 0)
|
||||||
set(${PROJECT_NAME}_VERSION_MINOR 1)
|
set(${PROJECT_NAME}_VERSION_MINOR 1)
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic -Wall -Wextra")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -pedantic -Wall -Wextra")
|
||||||
|
|
||||||
# Define a __FILENAME__ macro to get the filename of each file, instead of
|
# Define a __FILENAME__ macro to get the filename of each file, instead of
|
||||||
# the full path as in __FILE__
|
# the full path as in __FILE__
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Libraries:
|
|||||||
if you are packaging biboumi in a distribution with Systemd.
|
if you are packaging biboumi in a distribution with Systemd.
|
||||||
|
|
||||||
Tools:
|
Tools:
|
||||||
- A C++11 compiler.
|
- A C++14 compiler.
|
||||||
- CMake
|
- CMake
|
||||||
- ronn (optional) to build the man page
|
- ronn (optional) to build the man page
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Biboumi is an XMPP gateway that connects to IRC servers and translates
|
|||||||
between the two protocols. It can be used to access IRC channels using any
|
between the two protocols. It can be used to access IRC channels using any
|
||||||
XMPP client as if these channels were XMPP MUCs.
|
XMPP client as if these channels were XMPP MUCs.
|
||||||
|
|
||||||
It is written in modern C++11 and makes great efforts to have as little
|
It is written in modern C++14 and makes great efforts to have as little
|
||||||
dependencies and to be as simple as possible.
|
dependencies and to be as simple as possible.
|
||||||
|
|
||||||
The goal is to provide a way to access most of IRC features using any XMPP
|
The goal is to provide a way to access most of IRC features using any XMPP
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
#include <bridge/colors.hpp>
|
#include <bridge/colors.hpp>
|
||||||
#include <xmpp/xmpp_stanza.hpp>
|
#include <xmpp/xmpp_stanza.hpp>
|
||||||
#include <utils/make_unique.hpp>
|
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
#include <utils/make_unique.hpp>
|
|
||||||
#include <config/config.hpp>
|
#include <config/config.hpp>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#include <irc/irc_channel.hpp>
|
#include <irc/irc_channel.hpp>
|
||||||
#include <utils/make_unique.hpp>
|
|
||||||
|
|
||||||
IrcChannel::IrcChannel():
|
IrcChannel::IrcChannel():
|
||||||
joined(false),
|
joined(false),
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
#include <bridge/bridge.hpp>
|
#include <bridge/bridge.hpp>
|
||||||
#include <irc/irc_user.hpp>
|
#include <irc/irc_user.hpp>
|
||||||
|
|
||||||
#include <utils/make_unique.hpp>
|
|
||||||
#include <logger/logger.hpp>
|
#include <logger/logger.hpp>
|
||||||
#include <utils/tolower.hpp>
|
#include <utils/tolower.hpp>
|
||||||
#include <utils/split.hpp>
|
#include <utils/split.hpp>
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
#include <utils/make_unique.hpp>
|
|
||||||
#include <logger/logger.hpp>
|
#include <logger/logger.hpp>
|
||||||
#include <config/config.hpp>
|
#include <config/config.hpp>
|
||||||
|
|
||||||
|
|||||||
@@ -1,78 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012 Nathan L. Binkert <nate@binkert.org>
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
||||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
||||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
||||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MAKE_UNIQUE_HH__
|
|
||||||
#define __MAKE_UNIQUE_HH__
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
namespace std {
|
|
||||||
namespace detail {
|
|
||||||
|
|
||||||
// helper to construct a non-array unique_ptr
|
|
||||||
template <typename T>
|
|
||||||
struct make_unique_helper {
|
|
||||||
typedef std::unique_ptr<T> unique_ptr;
|
|
||||||
|
|
||||||
template <typename... Args>
|
|
||||||
static inline unique_ptr make(Args&&... args) {
|
|
||||||
return unique_ptr(new T(std::forward<Args>(args)...));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// helper to construct an array unique_ptr
|
|
||||||
template<typename T>
|
|
||||||
struct make_unique_helper<T[]> {
|
|
||||||
typedef std::unique_ptr<T[]> unique_ptr;
|
|
||||||
|
|
||||||
template <typename... Args>
|
|
||||||
static inline unique_ptr make(Args&&... args) {
|
|
||||||
return unique_ptr(new T[sizeof...(Args)]{std::forward<Args>(args)...});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// helper to construct an array unique_ptr with specified extent
|
|
||||||
template<typename T, std::size_t N>
|
|
||||||
struct make_unique_helper<T[N]> {
|
|
||||||
typedef std::unique_ptr<T[]> unique_ptr;
|
|
||||||
|
|
||||||
template <typename... Args>
|
|
||||||
static inline unique_ptr make(Args&&... args) {
|
|
||||||
static_assert(N >= sizeof...(Args),
|
|
||||||
"For make_unique<T[N]> N must be as largs as the number of arguments");
|
|
||||||
return unique_ptr(new T[N]{std::forward<Args>(args)...});
|
|
||||||
}
|
|
||||||
|
|
||||||
#if __GNUC__ == 4 && __GNUC_MINOR__ <= 6
|
|
||||||
// G++ 4.6 has an ICE when you have no arguments
|
|
||||||
static inline unique_ptr make() {
|
|
||||||
return unique_ptr(new T[N]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
template <typename T, typename... Args>
|
|
||||||
inline typename detail::make_unique_helper<T>::unique_ptr
|
|
||||||
make_unique(Args&&... args) {
|
|
||||||
return detail::make_unique_helper<T>::make(std::forward<Args>(args)...);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace std
|
|
||||||
|
|
||||||
#endif // __MAKE_UNIQUE_HH__
|
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
#include <utils/make_unique.hpp>
|
|
||||||
#include <utils/scopeguard.hpp>
|
#include <utils/scopeguard.hpp>
|
||||||
#include <logger/logger.hpp>
|
#include <logger/logger.hpp>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user