Sfoglia il codice sorgente

process: start refining process_adaptor

skypjack 8 mesi fa
parent
commit
ffbc5519c1

+ 1 - 1
src/entt/process/process.hpp

@@ -287,7 +287,7 @@ private:
  * @tparam Func Actual type of process.
  * @tparam Delta Type to use to provide elapsed time.
  */
-template<typename Func, typename Delta>
+template<typename Delta, typename Func>
 struct process_adaptor: public basic_process<Delta>, private Func {
     /*! @brief Process constructor token. */
     using token_type = typename basic_process<Delta>::token_type;

+ 2 - 2
src/entt/process/scheduler.hpp

@@ -259,7 +259,7 @@ public:
      */
     template<typename Func>
     basic_scheduler &attach(Func &&func) {
-        using Proc = process_adaptor<std::decay_t<Func>, Delta>;
+        using Proc = process_adaptor<Delta, std::decay_t<Func>>;
         return attach<Proc>(std::forward<Func>(func));
     }
 
@@ -288,7 +288,7 @@ public:
      */
     template<typename Func>
     basic_scheduler &then(Func &&func) {
-        using Proc = process_adaptor<std::decay_t<Func>, Delta>;
+        using Proc = process_adaptor<Delta, std::decay_t<Func>>;
         return then<Proc>(std::forward<Func>(func));
     }
 

+ 3 - 3
test/entt/process/process.cpp

@@ -192,7 +192,7 @@ TEST(ProcessAdaptor, Resolved) {
         resolve();
     };
 
-    auto process = entt::basic_process<std::uint64_t>::allocate<entt::process_adaptor<decltype(lambda), std::uint64_t>>(std::allocator<void>{}, lambda);
+    auto process = entt::basic_process<std::uint64_t>::allocate<entt::process_adaptor<std::uint64_t, decltype(lambda)>>(std::allocator<void>{}, lambda);
 
     process->tick(0);
     process->tick(0);
@@ -209,7 +209,7 @@ TEST(ProcessAdaptor, Rejected) {
         rejected();
     };
 
-    auto process = entt::basic_process<std::uint64_t>::allocate<entt::process_adaptor<decltype(lambda), std::uint64_t>>(std::allocator<void>{}, lambda);
+    auto process = entt::basic_process<std::uint64_t>::allocate<entt::process_adaptor<std::uint64_t, decltype(lambda)>>(std::allocator<void>{}, lambda);
 
     process->tick(0);
     process->tick(0);
@@ -225,7 +225,7 @@ TEST(ProcessAdaptor, Data) {
         resolve();
     };
 
-    auto process = entt::basic_process<std::uint64_t>::allocate<entt::process_adaptor<decltype(lambda), std::uint64_t>>(std::allocator<void>{}, lambda);
+    auto process = entt::basic_process<std::uint64_t>::allocate<entt::process_adaptor<std::uint64_t, decltype(lambda)>>(std::allocator<void>{}, lambda);
 
     process->tick(0, &value);