[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 21d8d5e: Befriend more narrowly
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master 21d8d5e: Befriend more narrowly |
Date: |
Tue, 19 Jan 2021 15:04:38 -0500 (EST) |
branch: master
commit 21d8d5ec8715306b5b5cd49af95f72d4a861d8cb
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Befriend more narrowly
See:
https://lists.nongnu.org/archive/html/lmi/2021-01/msg00006.html
---
Speed_gcc_i686-w64-mingw32 | 12 ++++++------
Speed_gcc_x86_64-pc-linux-gnu | 12 ++++++------
Speed_gcc_x86_64-w64-mingw32 | 12 ++++++------
any_member.hpp | 18 ++++++++++--------
4 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/Speed_gcc_i686-w64-mingw32 b/Speed_gcc_i686-w64-mingw32
index cfb749f..0ef4f39 100644
--- a/Speed_gcc_i686-w64-mingw32
+++ b/Speed_gcc_i686-w64-mingw32
@@ -1,7 +1,7 @@
Test speed:
- naic, no solve : 5.244e-02 s mean; 52015 us least of 20 runs
- naic, specamt solve : 9.343e-02 s mean; 92665 us least of 11 runs
- naic, ee prem solve : 8.574e-02 s mean; 85253 us least of 12 runs
- finra, no solve : 2.275e-02 s mean; 21555 us least of 44 runs
- finra, specamt solve: 5.958e-02 s mean; 58773 us least of 17 runs
- finra, ee prem solve: 5.560e-02 s mean; 54771 us least of 18 runs
+ naic, no solve : 5.230e-02 s mean; 52049 us least of 20 runs
+ naic, specamt solve : 9.288e-02 s mean; 92504 us least of 11 runs
+ naic, ee prem solve : 8.521e-02 s mean; 84843 us least of 12 runs
+ finra, no solve : 2.267e-02 s mean; 21715 us least of 45 runs
+ finra, specamt solve: 5.912e-02 s mean; 58920 us least of 17 runs
+ finra, ee prem solve: 5.499e-02 s mean; 54843 us least of 19 runs
diff --git a/Speed_gcc_x86_64-pc-linux-gnu b/Speed_gcc_x86_64-pc-linux-gnu
index aedbb5f..e24d505 100644
--- a/Speed_gcc_x86_64-pc-linux-gnu
+++ b/Speed_gcc_x86_64-pc-linux-gnu
@@ -1,7 +1,7 @@
Test speed:
- naic, no solve : 1.981e-02 s mean; 18713 us least of 51 runs
- naic, specamt solve : 3.313e-02 s mean; 32640 us least of 31 runs
- naic, ee prem solve : 3.044e-02 s mean; 29950 us least of 33 runs
- finra, no solve : 7.627e-03 s mean; 7194 us least of 100 runs
- finra, specamt solve: 2.051e-02 s mean; 20047 us least of 49 runs
- finra, ee prem solve: 1.918e-02 s mean; 18550 us least of 53 runs
+ naic, no solve : 1.931e-02 s mean; 18603 us least of 52 runs
+ naic, specamt solve : 3.349e-02 s mean; 32661 us least of 30 runs
+ naic, ee prem solve : 3.070e-02 s mean; 29998 us least of 33 runs
+ finra, no solve : 7.805e-03 s mean; 7343 us least of 100 runs
+ finra, specamt solve: 2.070e-02 s mean; 19991 us least of 49 runs
+ finra, ee prem solve: 1.939e-02 s mean; 18827 us least of 52 runs
diff --git a/Speed_gcc_x86_64-w64-mingw32 b/Speed_gcc_x86_64-w64-mingw32
index 16222b3..c71751c 100644
--- a/Speed_gcc_x86_64-w64-mingw32
+++ b/Speed_gcc_x86_64-w64-mingw32
@@ -1,7 +1,7 @@
Test speed:
- naic, no solve : 2.679e-02 s mean; 26410 us least of 38 runs
- naic, specamt solve : 4.213e-02 s mean; 41548 us least of 24 runs
- naic, ee prem solve : 3.923e-02 s mean; 38721 us least of 26 runs
- finra, no solve : 1.468e-02 s mean; 14383 us least of 69 runs
- finra, specamt solve: 2.881e-02 s mean; 28406 us least of 35 runs
- finra, ee prem solve: 2.739e-02 s mean; 26940 us least of 37 runs
+ naic, no solve : 2.675e-02 s mean; 26450 us least of 38 runs
+ naic, specamt solve : 4.205e-02 s mean; 41529 us least of 24 runs
+ naic, ee prem solve : 3.904e-02 s mean; 38621 us least of 26 runs
+ finra, no solve : 1.460e-02 s mean; 14275 us least of 69 runs
+ finra, specamt solve: 2.875e-02 s mean; 28409 us least of 35 runs
+ finra, ee prem solve: 2.731e-02 s mean; 27011 us least of 37 runs
diff --git a/any_member.hpp b/any_member.hpp
index 0bceddc..11ab6c2 100644
--- a/any_member.hpp
+++ b/any_member.hpp
@@ -105,6 +105,11 @@ class placeholder
inline placeholder::~placeholder() = default;
+// Forward declaration of class any_member.
+
+template<typename ClassType>
+class any_member;
+
// Definition of class holder.
template<typename ClassType, typename ValueType>
@@ -113,7 +118,7 @@ class holder final
{
// Friendship is extended to class any_member only to support its
// cast operations.
- template<typename> friend class any_member;
+ friend class any_member<ClassType>;
public:
holder(ClassType*, ValueType const&);
@@ -214,13 +219,6 @@ void* holder<ClassType,ValueType>::defraud() const
}
#endif // defined LMI_MSC
-// Definition of class any_member.
-
-// This class is necessarily Assignable, so that a std::map can hold it.
-
-template<typename ClassType>
-class any_member;
-
template<typename MemberType, typename ClassType>
MemberType* exact_cast(any_member<ClassType>&);
@@ -229,6 +227,10 @@ MemberType* member_cast(any_member<ClassType>&);
struct any_member_test;
+// Definition of class any_member.
+
+// This class is necessarily Assignable, so that a std::map can hold it.
+
template<typename ClassType>
class any_member final
:public any_entity
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [lmi] master 21d8d5e: Befriend more narrowly,
Greg Chicares <=