Changeset 6ba9ba for src/Actions/Action_impl_pre.hpp
- Timestamp:
- Jun 13, 2012, 5:39:24 PM (13 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- 2aad5a
- Parents:
- ab2ebe
- git-author:
- Frederik Heber <heber@…> (06/05/12 14:59:10)
- git-committer:
- Frederik Heber <heber@…> (06/13/12 17:39:24)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Actions/Action_impl_pre.hpp
rab2ebe r6ba9ba 37 37 #include <boost/preprocessor/comparison/equal.hpp> 38 38 #include <boost/preprocessor/comparison/not_equal.hpp> 39 #include <boost/preprocessor/control/expr_if.hpp> 39 40 #include <boost/preprocessor/control/if.hpp> 40 41 #include <boost/preprocessor/debug/assert.hpp> 41 42 #include <boost/preprocessor/iteration/local.hpp> 43 #include <boost/preprocessor/list/adt.hpp> 42 44 #include <boost/preprocessor/punctuation/comma_if.hpp> 43 45 #include <boost/preprocessor/repetition/repeat.hpp> … … 76 78 #define MAXSTATETYPES BOOST_PP_SEQ_SIZE(statetypes) 77 79 #endif 80 #ifndef paramdefaults 81 #define MAXPARAMDEFAULTS 0 82 // this is required for valid_print "else part" 83 #define sequencer(z,n,data) \ 84 BOOST_PP_SEQ_PUSH_BACK( data, NOPARAM_DEFAULT) 85 #define paramdefaults BOOST_PP_REPEAT( MAXPARAMTYPES, sequencer, BOOST_PP_SEQ_NIL ) 86 #else 87 #define MAXPARAMDEFAULTS BOOST_PP_SEQ_SIZE(paramdefaults) 88 #endif 89 #define PARAM_DEFAULT(x) \ 90 (x, BOOST_PP_NIL) 78 91 79 92 // check user has given name and category … … 128 141 ); 129 142 130 // print an initialiser list, i.e. "var( token, valid )(,)"131 #define valid_print(z,n,TOKENLIST, VARLIST, VALIDLIST ) \143 // print an initialiser list, i.e. "var( token, valid (,default) )(,)" 144 #define valid_print(z,n,TOKENLIST, VARLIST, VALIDLIST, DEFAULTLIST) \ 132 145 BOOST_PP_COMMA_IF(n) \ 133 146 BOOST_PP_SEQ_ELEM(n, VARLIST) \ … … 136 149 , \ 137 150 BOOST_PP_SEQ_ELEM(n, VALIDLIST) \ 151 BOOST_PP_COMMA_IF( BOOST_PP_NOT( BOOST_PP_LIST_IS_NIL( BOOST_PP_SEQ_ELEM(n, DEFAULTLIST) ) ) ) \ 152 BOOST_PP_EXPR_IF( \ 153 BOOST_PP_NOT( BOOST_PP_LIST_IS_NIL( BOOST_PP_SEQ_ELEM(n, DEFAULTLIST) ) ), \ 154 BOOST_PP_LIST_FIRST( BOOST_PP_SEQ_ELEM(n, DEFAULTLIST) )) \ 138 155 ) 139 156 140 // print an initialiser list, i.e. "var( token, valid)(,)"157 // print an initialiser list, i.e. "var( valid . var )(,)" 141 158 #define validcopy_print(z,n,TOKENLIST, VARLIST, VALID) \ 142 159 BOOST_PP_COMMA_IF(n) \ … … 230 247 #if defined paramtokens && defined paramreferences && defined paramvalids 231 248 : 232 #define BOOST_PP_LOCAL_MACRO(n) valid_print(~, n, paramtokens, paramreferences, paramvalids )249 #define BOOST_PP_LOCAL_MACRO(n) valid_print(~, n, paramtokens, paramreferences, paramvalids, paramdefaults) 233 250 #define BOOST_PP_LOCAL_LIMITS (0, MAXPARAMTYPES-1) 234 251 #include BOOST_PP_LOCAL_ITERATE() … … 309 326 #undef paramdefaults 310 327 #undef MAXPARAMTYPES 328 #undef MAXPARAMDEFAULTS 311 329 #undef statetypes 312 330 #undef statereferences 313 331 #undef MAXSTATETYPES 332 #undef PARAM_DEFAULT 314 333 315 334 #undef type2string … … 319 338 #undef type_list 320 339 #undef dialog_print 340 #undef sequencer 321 341 #undef valid_print 322 342 #undef validcopy_print
Note:
See TracChangeset
for help on using the changeset viewer.