framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
common.hpp
Go to the documentation of this file.
1 // Copyright (C) 2012 iwg molw5
2 // For conditions of distribution and use, see copyright notice in COPYING
3 
13 #pragma once
14 
16 
17 namespace framework
18 {
19  namespace serializable
20  {
24  template <typename Name, typename Object, typename... Args>
26  auto get (Object const& t, Args&&... args) -> decltype(interface <Name> (t).get(std::forward <Args> (args)...))
27  {
28  return interface <Name> (t).get(std::forward <Args> (args)...);
29  }
30 
34  template <typename Name, typename Object, typename... Args>
36  auto set (Object& t, Args&&... args) -> decltype(interface <Name> (t).set(std::forward <Args> (args)...))
37  {
38  return interface <Name> (t).set(std::forward <Args> (args)...);
39  }
40 
44  template <typename Name, typename Object, typename... Args>
46  auto check (Object const& t, Args&&... args) -> decltype(interface <Name> (t).check(std::forward <Args> (args)...))
47  {
48  return interface <Name> (t).check(std::forward <Args> (args)...);
49  }
50 
54  template <typename Name, typename Object, typename... Args>
56  auto clear (Object& t, Args&&... args) -> decltype(interface <Name> (t).clear(std::forward <Args> (args)...))
57  {
58  return interface <Name> (t).clear(std::forward <Args> (args)...);
59  }
60  }
61 }