diff --git a/build/codeblocks/nana.cbp b/build/codeblocks/nana.cbp
index 49f61ad7..e0d020a6 100644
--- a/build/codeblocks/nana.cbp
+++ b/build/codeblocks/nana.cbp
@@ -119,7 +119,6 @@
-
diff --git a/build/vc2013/nana.vcxproj b/build/vc2013/nana.vcxproj
index 01db0e79..82ed86e6 100644
--- a/build/vc2013/nana.vcxproj
+++ b/build/vc2013/nana.vcxproj
@@ -256,7 +256,6 @@
-
diff --git a/build/vc2013/nana.vcxproj.filters b/build/vc2013/nana.vcxproj.filters
index d2c700e8..1d5d8d11 100644
--- a/build/vc2013/nana.vcxproj.filters
+++ b/build/vc2013/nana.vcxproj.filters
@@ -291,9 +291,6 @@
Source Files\nana
-
- Source Files\nana
-
Source Files\nana
diff --git a/build/vc2015/nana.vcxproj b/build/vc2015/nana.vcxproj
index 89ceaaa3..139797f3 100644
--- a/build/vc2015/nana.vcxproj
+++ b/build/vc2015/nana.vcxproj
@@ -249,7 +249,6 @@
-
diff --git a/build/vc2015/nana.vcxproj.filters b/build/vc2015/nana.vcxproj.filters
index 8130c2bc..9781e955 100644
--- a/build/vc2015/nana.vcxproj.filters
+++ b/build/vc2015/nana.vcxproj.filters
@@ -69,9 +69,6 @@
Source Files
-
- Source Files
-
Source Files
diff --git a/include/nana/filesystem/filesystem.hpp b/include/nana/filesystem/filesystem.hpp
index 4cea3916..6425f922 100644
--- a/include/nana/filesystem/filesystem.hpp
+++ b/include/nana/filesystem/filesystem.hpp
@@ -1,7 +1,7 @@
/*
* A ISO C++ filesystem Implementation
* Nana C++ Library(http://www.nanapro.org)
- * Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
+ * Copyright(C) 2003-2016 Jinhao(cnjinhao@hotmail.com)
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
diff --git a/include/nana/traits.hpp b/include/nana/traits.hpp
index d1c5c56e..ae27f9ff 100644
--- a/include/nana/traits.hpp
+++ b/include/nana/traits.hpp
@@ -1,6 +1,6 @@
/*
* Traits Implementation
- * Copyright(C) 2003-2013 Jinhao(cnjinhao@hotmail.com)
+ * Copyright(C) 2003-2016 Jinhao(cnjinhao@hotmail.com)
*
* @file: nana/traits.hpp
*/
@@ -13,502 +13,24 @@ namespace nana
{
class null_type{};
- //The class noncopyable and nonmovable will be deprecated while the compiler
- //supports the deleted functions
- struct noncopyable
+ /// Prevent a class to be copyable
+ class noncopyable
{
noncopyable(const noncopyable&) = delete;
noncopyable& operator=(const noncopyable&) = delete;
- noncopyable();
+ protected:
+ noncopyable() = default;
};
- struct nonmovable
+ /// Prevent a class to be movable
+ class nonmovable
{
nonmovable(nonmovable&&) = delete;
nonmovable& operator=(nonmovable&&) = delete;
- nonmovable();
+ protected:
+ nonmovable() = default;
};
- namespace traits
- {
- //traits types for const-volatile specifier
-
- struct no_specifier{};
- struct const_specifier{};
- struct volatile_specifier{};
- struct const_volatile_specifier{};
-
- template
- struct cv_specifier
- {
- typedef no_specifier value_type;
- };
-
- template
- struct cv_specifier
- {
- typedef const_specifier value_type;
- };
-
- template
- struct cv_specifier
- {
- typedef volatile_specifier value_type;
- };
-
- template
- struct cv_specifier
- {
- typedef const_volatile_specifier value_type;
- };
-
- template
- struct is_function_pointer
- : public std::integral_constant::value && std::is_function::type>::value>
- {};
-
- //The traits of pointer to member function
- template
- struct mfptr_traits
- {
- typedef void function();
- typedef void return_type;
- typedef void concept_type;
- enum{parameter = 0};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef return_type function();
- enum{parameter = 0};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef return_type function();
- enum{parameter = 0};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef return_type function();
- enum{parameter = 0};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef return_type function();
- enum{parameter = 0};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P param0_type;
- typedef return_type function(param0_type);
- enum{parameter = 1};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P param0_type;
- typedef return_type function(param0_type);
- enum{parameter = 1};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P param0_type;
- typedef return_type function(param0_type);
- enum{parameter = 1};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef return_type function(param0_type, param1_type);
- enum{parameter = 2};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef return_type function(param0_type, param1_type);
- enum{parameter = 2};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef return_type function(param0_type, param1_type);
- enum{parameter = 2};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef return_type function(param0_type, param1_type, param2_type);
- enum{parameter =3};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef return_type function(param0_type, param1_type, param2_type);
- enum{parameter =3};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef return_type function(param0_type, param1_type, param2_type);
- enum{parameter =3};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef return_type function(param0_type, param1_type, param2_type);
- enum{parameter =3};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type);
- enum{parameter = 4};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type);
- enum{parameter = 4};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type);
- enum{parameter = 4};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type);
- enum{parameter = 4};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef P4 param4_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type, param4_type);
- enum{parameter = 5};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef P4 param4_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type, param4_type);
- enum{parameter = 5};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef P4 param4_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type, param4_type);
- enum{parameter = 5};
- };
-
- template
- struct mfptr_traits
- {
- typedef Concept concept_type;
- typedef R return_type;
- typedef P0 param0_type;
- typedef P1 param1_type;
- typedef P2 param2_type;
- typedef P3 param3_type;
- typedef P4 param4_type;
- typedef return_type function(param0_type, param1_type, param2_type, param3_type, param4_type);
- enum{parameter = 5};
- };
-
-
-
- template
- struct make_mf
- {
- typedef int type;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)();
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)() const;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)() volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)() const volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0);
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0) const;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0) volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0) const volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1);
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1) const;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1) volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1) const volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2);
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2) const;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2) volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2) const volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3);
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3) const;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3) volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3) const volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4);
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4) const;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4) volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4) const volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4, P5);
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4, P5) const;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4, P5) volatile;
- };
-
- template
- struct make_mf
- {
- typedef R(Concept::*type)(P0, P1, P2, P3, P4, P5) const volatile;
- };
- }//end namespace traits
-
namespace meta
{
template< typename Param0 = null_type, typename Param1 = null_type,
diff --git a/source/filesystem/filesystem.cpp b/source/filesystem/filesystem.cpp
index af9f11ea..471c718e 100644
--- a/source/filesystem/filesystem.cpp
+++ b/source/filesystem/filesystem.cpp
@@ -1,6 +1,6 @@
/*
* A ISO C++ FileSystem Implementation
- * Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
+ * Copyright(C) 2003-2016 Jinhao(cnjinhao@hotmail.com)
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
diff --git a/source/traits.cpp b/source/traits.cpp
deleted file mode 100644
index 591d4f76..00000000
--- a/source/traits.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Traits Implementation
- * Copyright(C) 2003-2013 Jinhao(cnjinhao@hotmail.com)
- *
- * @file: source/traits.cpp
- */
-
-#include
-
-namespace nana
-{
- //class noncopyable
- noncopyable::noncopyable(){}
- //end class noncopyable
-
- //class nonmovable
- nonmovable::nonmovable(){}
- //end class nonmovable
-
-}//end namespace nana