Skip to content

Commit 70b9adf

Browse files
committed
Clean up type traits
1 parent e36fd6b commit 70b9adf

16 files changed

+159
-467
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Queryosity
22

3-
![Version](https://img.shields.io/badge/Version-0.3.0-blue.svg)
3+
![Version](https://img.shields.io/badge/Version-0.3.1-blue.svg)
44
![C++ Standard](https://img.shields.io/badge/C++-17-blue.svg)
55
[![Ubuntu](https://github.com/taehyounpark/analogical/actions/workflows/ubuntu.yml/badge.svg?branch=master)](https://github.com/taehyounpark/analogical/actions/workflows/ubuntu.yml)
66
[![macOS](https://github.com/taehyounpark/analogical/actions/workflows/macos.yml/badge.svg?branch=master)](https://github.com/taehyounpark/analogical/actions/workflows/macos.yml)
@@ -88,7 +88,7 @@ cmake --build .
8888
cmake --install .
8989
```
9090
```cmake
91-
find_package(queryosity 0.3.0 REQUIRED)
91+
find_package(queryosity 0.3.1 REQUIRED)
9292
...
9393
add_library(Analysis ...)
9494
...

include/queryosity/.clang-format

Lines changed: 0 additions & 225 deletions
This file was deleted.

include/queryosity/interface/column.h

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -200,35 +200,13 @@ template <typename Fn> struct deduce_equation;
200200

201201
template <typename Ret, typename... Args>
202202
struct deduce_equation<std::function<Ret(Args...)>> {
203-
using type = column::equation<std::decay_t<Ret>(
204-
std::remove_const_t<std::remove_reference_t<Args>>...)>;
203+
using type = column::equation<std::decay_t<Ret>(std::decay_t<Args>...)>;
205204
};
206205

207206
template <typename Fn>
208207
using equation_t = typename deduce_equation<
209208
typename column::expression<Fn>::function_type>::type;
210209

211-
// evaluate traits
212-
template <typename T, typename = void> struct evaluator_traits;
213-
214-
template <typename T>
215-
struct evaluator_traits<T,
216-
typename std::enable_if_t<
217-
queryosity::column::template is_definition_v<T>>> {
218-
using evaluator_type = typename column::template evaluator<T>;
219-
};
220-
221-
template <typename Fn>
222-
struct evaluator_traits<
223-
Fn, typename std::enable_if_t<
224-
!queryosity::column::template is_definition_v<Fn>>> {
225-
using evaluator_type = typename queryosity::column::template evaluator<
226-
queryosity::column::template equation_t<Fn>>;
227-
};
228-
229-
template <typename T>
230-
using evaluator_t = typename evaluator_traits<T>::evaluator_type;
231-
232210
template <typename T> using evaluated_t = typename T::evaluated_type;
233211

234212
template <typename T>

include/queryosity/interface/column_computation.h

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010

1111
namespace queryosity {
1212

13-
class column::computation {
13+
namespace column {
14+
15+
class computation {
1416

1517
public:
1618
computation() = default;
@@ -28,14 +30,14 @@ class column::computation {
2830

2931
template <typename Def, typename... Args>
3032
auto define(Args const &...vars) const
31-
-> std::unique_ptr<queryosity::column::template evaluator_t<Def>>;
33+
-> std::unique_ptr<evaluator<Def>>;
3234

3335
template <typename Ret, typename... Args>
3436
auto equate(std::function<Ret(Args...)> fn) const -> std::unique_ptr<
35-
queryosity::column::template evaluator_t<std::function<Ret(Args...)>>>;
37+
evaluator<equation<std::decay_t<Ret>(std::decay_t<Args>...)>>>;
3638

3739
template <typename Def, typename... Cols>
38-
auto evaluate(column::evaluator<Def> &calc, Cols const &...cols) -> Def *;
40+
auto evaluate(evaluator<Def> &calc, Cols const &...cols) -> Def *;
3941

4042
protected:
4143
template <typename Col> auto add_column(std::unique_ptr<Col> col) -> Col *;
@@ -44,6 +46,8 @@ class column::computation {
4446
std::vector<std::unique_ptr<column::node>> m_columns;
4547
};
4648

49+
}
50+
4751
} // namespace queryosity
4852

4953
#include "column_conversion.h"
@@ -77,21 +81,21 @@ auto queryosity::column::computation::convert(Col const &col)
7781

7882
template <typename Def, typename... Args>
7983
auto queryosity::column::computation::define(Args const &...args) const
80-
-> std::unique_ptr<queryosity::column::template evaluator_t<Def>> {
81-
return std::make_unique<column::evaluator<Def>>(args...);
84+
-> std::unique_ptr<evaluator<Def>> {
85+
return std::make_unique<evaluator<Def>>(args...);
8286
}
8387

8488
template <typename Ret, typename... Args>
8589
auto queryosity::column::computation::equate(std::function<Ret(Args...)> fn)
8690
const -> std::unique_ptr<
87-
queryosity::column::template evaluator_t<std::function<Ret(Args...)>>> {
91+
evaluator<equation<std::decay_t<Ret>(std::decay_t<Args>...)>>> {
8892
return std::make_unique<
89-
queryosity::column::template evaluator_t<std::function<Ret(Args...)>>>(
93+
evaluator<equation<std::decay_t<Ret>(std::decay_t<Args>...)>>>(
9094
fn);
9195
}
9296

9397
template <typename Def, typename... Cols>
94-
auto queryosity::column::computation::evaluate(column::evaluator<Def> &calc,
98+
auto queryosity::column::computation::evaluate(evaluator<Def> &calc,
9599
Cols const &...cols) -> Def * {
96100
auto defn = calc._evaluate(cols...);
97101
return this->add_column(std::move(defn));

include/queryosity/interface/column_definition.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ template <typename Def> class column::definition {
7070
auto _define(dataflow &df) const;
7171

7272
protected:
73-
std::function<todo<evaluator_t<Def>>(dataflow &)> m_define;
73+
std::function<todo<evaluator<Def>>(dataflow &)> m_define;
7474
};
7575

7676
} // namespace queryosity

include/queryosity/interface/column_equation.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class equation<Out(Ins...)> : public definition<Out(Ins...)> {
2929
};
3030

3131
template <typename Fn>
32-
auto make_equation(Fn fn) -> std::unique_ptr<column::template equation_t<Fn>>;
32+
auto make_equation(Fn fn) -> std::unique_ptr<column::equation_t<Fn>>;
3333

3434
} // namespace column
3535

@@ -47,6 +47,6 @@ Out queryosity::column::equation<Out(Ins...)>::evaluate(
4747

4848
template <typename Fn>
4949
auto queryosity::column::make_equation(Fn fn)
50-
-> std::unique_ptr<queryosity::column::template equation_t<Fn>> {
51-
return std::make_unique<queryosity::column::template equation_t<Fn>>(fn);
50+
-> std::unique_ptr<queryosity::column::equation_t<Fn>> {
51+
return std::make_unique<queryosity::column::equation_t<Fn>>(fn);
5252
}

0 commit comments

Comments
 (0)