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