Clean-up code to satisfy GCC's pedantic mode requirements. Add fix for Clang not working with GCC 5 C++ library (https://llvm.org/bugs/show_bug.cgi?id=23529)

This commit is contained in:
Marko Zivanovic
2015-11-25 15:22:13 +01:00
parent d1759caf1c
commit aecbc92030
8 changed files with 33 additions and 16 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ endif()
if(UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra -pedantic")
add_definitions(-std=c++11)
add_definitions(-std=c++14)
endif()
if(WIN32)
+2
View File
@@ -0,0 +1,2 @@
*
!.gitignore
+3 -3
View File
@@ -136,9 +136,9 @@ namespace version {
/// Copy version data from another Basic_version to this one.
Basic_version& operator=(const Basic_version&);
const int major() const; ///< Get major version.
const int minor() const; ///< Get minor version.
const int patch() const; ///< Get patch version.
int major() const; ///< Get major version.
int minor() const; ///< Get minor version.
int patch() const; ///< Get patch version.
const std::string prerelease() const; ///< Get prerelease version string.
const std::string build() const; ///< Get build version string.
+7 -6
View File
@@ -24,6 +24,7 @@ SOFTWARE.
#pragma once
#include <sstream>
#include "version.h"
namespace version {
@@ -46,11 +47,11 @@ namespace version {
template<typename Parser, typename Comparator>
Basic_version<Parser, Comparator>::Basic_version(Parser p, Comparator c)
: parser_(p), comparator_(c), ver_(parser_.parse("0.0.0")) {};
: parser_(p), comparator_(c), ver_(parser_.parse("0.0.0")) {}
template<typename Parser, typename Comparator>
Basic_version<Parser, Comparator>::Basic_version(const std::string& v, Parser p, Comparator c)
: parser_(p), comparator_(c), ver_(parser_.parse(v)) {};
: parser_(p), comparator_(c), ver_(parser_.parse(v)) {}
template<typename Parser, typename Comparator>
Basic_version<Parser, Comparator>::Basic_version(const Basic_version<Parser, Comparator>&) = default;
@@ -60,17 +61,17 @@ namespace version {
const Basic_version<Parser, Comparator>&) = default;
template<typename Parser, typename Comparator>
const int Basic_version<Parser, Comparator>::major() const {
int Basic_version<Parser, Comparator>::major() const {
return ver_.major;
}
template<typename Parser, typename Comparator>
const int Basic_version<Parser, Comparator>::minor() const {
int Basic_version<Parser, Comparator>::minor() const {
return ver_.minor;
}
template<typename Parser, typename Comparator>
const int Basic_version<Parser, Comparator>::patch() const {
int Basic_version<Parser, Comparator>::patch() const {
return ver_.patch;
}
@@ -139,4 +140,4 @@ namespace version {
const Basic_version<Parser, Comparator>& r) {
return !(l > r);
}
}
}
+2 -2
View File
@@ -72,7 +72,7 @@ namespace version {
};
// Compare prerelease identifiers based on their types.
int compare_prerel_identifiers(const Prerelease_identifier& l, const Prerelease_identifier& r) {
inline int compare_prerel_identifiers(const Prerelease_identifier& l, const Prerelease_identifier& r) {
auto cmp = comparators.at({ l.second, r.second });
return cmp(l.first, r.first);
}
@@ -107,4 +107,4 @@ namespace version {
return l.prerelease_ids.size() > r.prerelease_ids.size() ? 1 : -1;
}
}
}
+3 -3
View File
@@ -9,19 +9,19 @@ include_directories(
${Boost_INCLUDE_DIRS}
)
add_executable(semver200_parser_tests semver200_parser_tests.cpp)
add_executable(semver200_parser_tests semver200_parser_tests.cpp clang_fixes.cpp)
target_link_libraries(semver200_parser_tests
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
semver
)
add_executable(semver200_comparator_tests semver200_comparator_tests.cpp)
add_executable(semver200_comparator_tests semver200_comparator_tests.cpp clang_fixes.cpp)
target_link_libraries(semver200_comparator_tests
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
semver
)
add_executable(semver200_version_tests semver200_version_tests.cpp)
add_executable(semver200_version_tests semver200_version_tests.cpp clang_fixes.cpp)
target_link_libraries(semver200_version_tests
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
semver
+14
View File
@@ -0,0 +1,14 @@
#ifdef __clang__
#include <string>
#include <boost/test/unit_test.hpp>
namespace boost { namespace unit_test { namespace ut_detail {
std::string normalize_test_case_name(const_string name) {
return ( name[0] == '&' ? std::string(name.begin()+1, name.size()-1) : std::string(name.begin(), name.size() ));
}
}}}
#endif
+1 -1
View File
@@ -102,4 +102,4 @@ BOOST_AUTO_TEST_CASE(compare_build) {
EQ("1.0.0", "1.0.0+build.1.2.3");
EQ("1.0.0+ZZZ", "1.0.0+build.1.2.3");
EQ("1.0.0+100", "1.0.0+200");
}
}