• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1$$ This is a pump file for generating file templates.  Pump is a python
2$$ script that is part of the Google Test suite of utilities.  Description
3$$ can be found here:
4$$
5$$ http://code.google.com/p/googletest/wiki/PumpManual
6$$
7
8$var MAX_ARITY = 6
9
10// Copyright (c) 2011 The Chromium Authors. All rights reserved.
11// Use of this source code is governed by a BSD-style license that can be
12// found in the LICENSE file.
13
14// Specializations of FunctionTraits<> for Windows specific calling
15// conventions.  Please see base/bind_internal.h for more info.
16
17#ifndef BASE_BIND_INTERNAL_WIN_H_
18#define BASE_BIND_INTERNAL_WIN_H_
19#pragma once
20
21namespace base {
22namespace internal {
23
24template <typename Sig>
25struct FunctionTraits;
26
27$range ARITY 0..MAX_ARITY
28$for ARITY [[
29$range ARG 1..ARITY
30
31// __stdcall Function: Arity $(ARITY).
32template <typename R[[]]
33$if ARITY > 0[[, ]] $for ARG , [[typename X$(ARG)]]>
34struct FunctionTraits<R(__stdcall *)($for ARG , [[X$(ARG)]])> {
35  typedef R (*NormalizedSig)($for ARG , [[X$(ARG)]]);
36  typedef false_type IsMethod;
37
38$if ARITY > 0 [[
39
40  // Target type for each bound parameter.
41
42$for ARG [[
43  typedef X$(ARG) B$(ARG);
44
45]]  $$ for ARG
46]]  $$ if ARITY > 0
47};
48
49// __fastcall Function: Arity $(ARITY).
50template <typename R[[]]
51$if ARITY > 0[[, ]] $for ARG , [[typename X$(ARG)]]>
52struct FunctionTraits<R(__fastcall *)($for ARG , [[X$(ARG)]])> {
53  typedef R (*NormalizedSig)($for ARG , [[X$(ARG)]]);
54  typedef false_type IsMethod;
55
56$if ARITY > 0 [[
57
58  // Target type for each bound parameter.
59
60$for ARG [[
61  typedef X$(ARG) B$(ARG);
62
63]]  $$ for ARG
64]]  $$ if ARITY > 0
65};
66
67]]  $$for ARITY
68
69}  // namespace internal
70}  // namespace base
71
72#endif  // BASE_BIND_INTERNAL_WIN_H_
73