CodeSonar C++ API
[For improved navigation, enable JavaScript.]
cs_tplt_instantiations.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023, an unpublished work by CodeSecure, Inc.
3  * ALL RIGHTS RESERVED
4  *
5  * Copyright (c) 2013-2023, an unpublished work by GrammaTech, Inc.
6  * ALL RIGHTS RESERVED
7  *
8  * This software is furnished under a license and may be used and
9  * copied only in accordance with the terms of such license and the
10  * inclusion of the above copyright notice. This software or any
11  * other copies thereof may not be provided or otherwise made
12  * available to any other person. Title to and ownership of the
13  * software is retained by CodeSecure, Inc.
14  */
15 
16 /* This file is...touchy.
17  *
18  * Basically, we want to have a single set of typedefs that get used
19  * by both the actual compiler and swig. In order to make the actual
20  * compiler work, these need to be forward declarations. This
21  * *mostly* works for SWIG, except for the mutable_set type. The
22  * mutable_set type is really tricky because it uses mixins, which
23  * creates certain circular references that SWIG chokes on, unless we
24  * delay these template expansions until after both classes are
25  * defined.
26  *
27  * SWIG's std::vector integration doesn't work right if the
28  * std::vectors are %template instantiated after being used. So we
29  * can't just do all the swig template instantiations at the very end.
30  *
31  * So we process this file THREE TIMES. Once for the real compiler
32  * (early), once for swig to handle everything but mutable_set, and
33  * finally again at the end for swig to handle mutable set. The
34  * macros invoked have different definitions during the two rounds.
35  */
36 
37 
38 /* This file uses one or more template classes: we
39  * use DOXYGEN_CLASS_ALIAS to apply their eventual typedef'd name here
40  * for ease of reference in documentation and DOXYGEN_IGNORE to hide
41  * certain implementation details from doxygen. */
43 #if !defined(DOXYGEN_IGNORE)
44 #define DOXYGEN_IGNORE(x) x
45 #endif
46 
49 /* doxygen needs these here, but all other applications will use the
50  * definitions in cs_types.hpp */
51 #if DOXYGEN_ONLY
52 namespace cs{
54 #define PASS1(td) td
55 #define CS_TPLT_TYPEDEF(name, ...) typedef __VA_ARGS__ name
56 #define CS_TPLT_TYPEDEF_NODCTOR_PAIR(name, ...) typedef __VA_ARGS__ name
57 #endif
58 
59 
70  CS_TPLT_TYPEDEF_NODCTOR_PAIR(int_pair, std::pair<csuint32, csuint32>);
71 
72 
73 
79 
86  CS_TPLT_TYPEDEF_NODCTOR_PAIR(position_range,
87  std::pair< std::pair<csuint32, csuint32>,
88  std::pair<csuint32, csuint32> >);
89 
92  CS_TPLT_TYPEDEF(string_vector, std::vector<std::string>);
93 
100  CS_TPLT_TYPEDEF_NODCTOR_PAIR(sfileinst_line_column, std::pair<cs::sfileinst, std::pair<cs::line_number, cs::column_number> >);
101 
102 
107  CS_TPLT_TYPEDEF_NODCTOR_PAIR(sfileinst_line_pair, std::pair<cs::sfileinst, cs::line_number>);
108 
109 
114  CS_TPLT_TYPEDEF_NODCTOR_PAIR(sfile_line_pair, std::pair<cs::sfile, cs::line_number>);
115 
130  CS_TPLT_TYPEDEF_NODCTOR_PAIR(cfg_edge, std::pair<cs::point, cs::edge_label>);
131 
149  CS_TPLT_TYPEDEF_NODCTOR_PAIR(basic_block_cfg_edge, std::pair<cs::basic_block, cs::edge_label>);
175  CS_TPLT_TYPEDEF_NODCTOR_PAIR(labeled_pdg_edge, std::pair<cs::point, cs::pdg_edge_label>);
196  CS_TPLT_TYPEDEF_NODCTOR_PAIR(pdg_edge, std::pair<cs::point, cs::pdg_edge_kind>);
201  CS_TPLT_TYPEDEF(procedure_vector, std::vector<cs::procedure>);
202 
203 
206  CS_TPLT_TYPEDEF(procedure_vector_vector, std::vector<std::vector<cs::procedure> >);
207 
208 
211  CS_TPLT_TYPEDEF(compunit_vector, std::vector<cs::compunit>);
212 
213 
214  CS_SET_TYPEDEFS(point, mutable_set)
215 
216  CS_SET_TYPEDEFS(symbol, mutable_set)
217 
218  CS_SET_TYPEDEFS(cfg_edge, immutable_set)
219 
220 
221  CS_SET_TYPEDEFS(basic_block, mutable_set)
225  CS_SET_TYPEDEFS(basic_block_cfg_edge, immutable_set)
228  CS_SET_TYPEDEFS(int_pair, mutable_set)
230 
231  CS_SET_TYPEDEFS(pdg_edge, immutable_set)
235  CS_SET_TYPEDEFS(labeled_pdg_edge, immutable_set)
247  CS_TPLT_TYPEDEF_NODCTOR_PAIR(sfileinst_int_pair_set_pair, std::pair<cs::sfileinst, cs::int_pair_set>);
249 
257  CS_TPLT_TYPEDEF_NODCTOR_PAIR(procedure_and_points, std::pair<cs::procedure, cs::point_set>);
258 
259 
262  CS_TPLT_TYPEDEF(procedure_and_points_vector, std::vector<cs::procedure_and_points>);
264 
272  CS_TPLT_TYPEDEF_NODCTOR_PAIR(compunit_points, std::pair<cs::compunit, cs::procedure_and_points_vector>);
274 
282  CS_TPLT_TYPEDEF_NODCTOR_PAIR(compunit_points_pair, std::pair<cs::compunit, cs::point_set>);
283 
284 
287  CS_TPLT_TYPEDEF(compunit_points_pair_vector, std::vector<cs::compunit_points_pair>);
289 
294  CS_TPLT_TYPEDEF(compunit_points_vector, std::vector<cs::compunit_points>);
295 
296 
299  CS_TPLT_TYPEDEF(xr_kind_vector, std::vector<cs::xr_kind>);
300 
301 
304  CS_TPLT_TYPEDEF(xr_role_vector, std::vector<cs::xr_role>);
305 
306 
309  CS_TPLT_TYPEDEF(xr_kind_role_vector, std::vector<cs::xr_kind_role>);
310 
311 
318  CS_TPLT_TYPEDEF_NODCTOR_PAIR(xr_kind_role_pair, std::pair<cs::xr_kind, cs::xr_role>);
319 
320 
323  CS_TPLT_TYPEDEF(language_vector, std::vector<cs::language>);
324 
325 
334  CS_TPLT_TYPEDEF_NODCTOR_PAIR(exceptional_return, std::pair<cs::point, std::string>);
335 
336 
345  PASS1(typedef exceptional_return exceptional_exit);
346 
350  CS_TPLT_TYPEDEF(exceptional_return_vector, std::vector<cs::exceptional_return>);
351 
352 
355  PASS1(typedef std::vector<cs::exceptional_exit> exceptional_exit_vector);
356 
357 
360  CS_TPLT_TYPEDEF(sfileinst_vector, std::vector<cs::sfileinst>);
361 
362 
365  CS_TPLT_TYPEDEF(line_number_vector, std::vector<cs::line_number>);
366 
367 
368 DOXYGEN_IGNORE(
369  PASS1(template<> class set_mixin<mutable_set<basic_block> >{
370  protected:
371  set_mixin(){}
372  });
373  )
374 
375 
376 
379  CS_TPLT_TYPEDEF(ast_field_vector, std::vector<cs::ast_field>);
380 
389  CS_TPLT_TYPEDEF_NODCTOR_PAIR(string_ast_field_pair, std::pair<std::string, cs::ast_field>);
390 
391 
394  CS_TPLT_TYPEDEF(ast_binding_vector, std::vector<cs::string_ast_field_pair>);
395 
396 
399  CS_TPLT_TYPEDEF(ast_vector, std::vector<cs::ast>);
400 
401 
404  CS_TPLT_TYPEDEF(ast_class_vector, std::vector<cs::ast_class>);
406 
412  /* not currently used */
413  CS_TPLT_TYPEDEF_NODCTOR_PAIR(predsucc_filter_pair, std::pair<cs::predsucc_filter_directive, cs::pdg_edge_kind>);
421  CS_TPLT_TYPEDEF_NODCTOR_PAIR(filtered_predsucc_return_pair, std::pair<cs::point_set, bool>);
441  CS_TPLT_TYPEDEF_NODCTOR_PAIR(interest_set, std::pair<std::string, cs::point_set>);
448  CS_TPLT_TYPEDEF(interest_set_vector, std::vector<cs::interest_set>);
460  CS_TPLT_TYPEDEF_NODCTOR_PAIR(amc_valuation,
461  std::pair<cs::symbol, cs::value_set>);
474  CS_TPLT_TYPEDEF_NODCTOR_PAIR(amc_context,
475  std::pair<cs::calling_context, cs::amc>);
485  CS_TPLT_TYPEDEF(procedure_name_to_model_vector,
486  std::vector<cs::string_pair>);
487 
502  CS_ITER_TYPEDEF(ast_iterator, cs::ast_iterator_policy);
503 
513  CS_ITER_TYPEDEF(compunit_global_iterator, cs::compunit_global_iterator_policy);
514 
524  CS_ITER_TYPEDEF(compunit_procedure_iterator, cs::compunit_procedure_iterator_policy);
525 
535  CS_ITER_TYPEDEF(directory_children_iterator, cs::directory_children_iterator_policy);
536 
546  CS_ITER_TYPEDEF(directory_files_iterator, cs::directory_files_iterator_policy);
547 
557  CS_ITER_TYPEDEF(procedure_call_sites_iterator, cs::procedure_call_sites_iterator_policy);
558 
568  CS_ITER_TYPEDEF(procedure_callers_iterator, cs::procedure_callers_iterator_policy);
569 
586  CS_ITER_TYPEDEF(procedure_locals_iterator, cs::procedure_locals_iterator_policy);
587 
597  CS_ITER_TYPEDEF(project_compunits_iterator, cs::project_compunits_iterator_policy);
598 
608  CS_ITER_TYPEDEF(project_procedures_iterator, cs::project_procedures_iterator_policy);
609 
620  CS_ITER_TYPEDEF(project_root_directories_iterator, cs::project_root_directories_iterator_policy);
621 
631  CS_ITER_TYPEDEF(project_sfiles_iterator, cs::project_sfiles_iterator_policy);
632 
642  CS_ITER_TYPEDEF(sfile_instance_iterator, cs::sfile_instance_iterator_policy);
643 
653  CS_ITER_TYPEDEF(sfileinst_children_iterator, cs::sfileinst_children_iterator_policy);
654 
669  CS_ITER_TYPEDEF(sfileinst_color_map_iterator, cs::sfileinst_color_map_iterator_policy);
670 
679  CS_ITER_TYPEDEF(symbol_universe_iterator, cs::symbol_universe_iterator_policy);
680 
689  CS_ITER_TYPEDEF(xr_definition_iterator, cs::xr_definition_iterator_policy);
690 
708  CS_ITER_TYPEDEF(xr_intra_definition_iterator, cs::xr_intra_definition_iterator_policy);
709 
718  CS_ITER_TYPEDEF(xr_occurrence_iterator, cs::xr_occurrence_iterator_policy);
719 
728  CS_ITER_TYPEDEF(xr_homonym_iterator, cs::xr_homonym_iterator_policy);
729 
738  CS_ITER_TYPEDEF(xr_query_iterator, cs::xr_query_iterator_policy);
739 
750  CS_ITER_TYPEDEF(amc_context_iterator, cs::amc_context_iterator_policy);
751 
761  CS_ITER_TYPEDEF(amc_iterator, cs::amc_iterator_policy);
765  CS_METRIC_ITER_TYPEDEF(compunit_metric_iterator, cs::metric_iterator_policy<cs::compunit >);
766  PASS1(CS_TPLT_TYPEDEF(compunit_metric, cs::metric<cs::compunit >);
767  CS_TPLT_TYPEDEF(compunit_metric_manager, cs::metric_manager<cs::compunit >);)
768 
769  CS_METRIC_ITER_TYPEDEF(procedure_metric_iterator, cs::metric_iterator_policy<cs::procedure >);
770  PASS1(CS_TPLT_TYPEDEF(procedure_metric, cs::metric<cs::procedure >);
771  CS_TPLT_TYPEDEF(procedure_metric_manager, cs::metric_manager<cs::procedure >);)
772 
773  CS_METRIC_ITER_TYPEDEF(project_metric_iterator, cs::metric_iterator_policy<cs::project >);
774  PASS1(CS_TPLT_TYPEDEF(project_metric, cs::metric<cs::project >);
775  CS_TPLT_TYPEDEF(project_metric_manager, cs::metric_manager<cs::project >);)
776 
777  CS_METRIC_ITER_TYPEDEF(sfile_metric_iterator, cs::metric_iterator_policy<cs::sfile >);
778  PASS1(CS_TPLT_TYPEDEF(sfile_metric, cs::metric<cs::sfile >);
779  CS_TPLT_TYPEDEF(sfile_metric_manager, cs::metric_manager<cs::sfile >);)
780 
784  DOX_METRIC_TYPEDEFS(compunit)
785  DOX_METRIC_TYPEDEFS(procedure)
786  DOX_METRIC_TYPEDEFS(project)
787  DOX_METRIC_TYPEDEFS(sfile)
792 /* doxygen needs these here, but all other applications will use the
793  * definitions in cs_types.hpp */
794 #if DOXYGEN_ONLY
795 #undef PASS1(td)
796 #undef CS_TPLT_TYPEDEF
797 #undef CS_TPLT_TYPEDEF_NODCTOR_PAIR
798 } /* namespace cs */
799 #endif
cs_line line_number
A line number in a source file (sfile) or source file instance (sfileinst).
Definition: cs_types.hpp:387
std::pair< cs::xr_kind, cs::xr_role > xr_kind_role_pair
A std::pair (k, r) where:
Definition: cs_tplt_instantiations.hpp:378
cs::project_root_directories_iterator_policy
Definition: cs_project.hpp:158
cs::ast_iterator_policy
Definition: cs_ast_decl.hpp:795
Namespace for CodeSonar/CodeSurfer API.
Definition: cs_ast.hpp:33
std::vector< std::vector< cs::procedure > > procedure_vector_vector
A std::vector of procedure_vector.
Definition: cs_tplt_instantiations.hpp:206
cs::compunit_global_iterator_policy
Definition: cs_compunit.hpp:50
std::pair< cs::sfileinst, std::pair< cs::line_number, cs::column_number > > sfileinst_line_column
A std::pair (sfi, loc) where:
Definition: cs_tplt_instantiations.hpp:100
std::pair< std::string, cs::ast_field > string_ast_field_pair
A std::pair (name, field) representing a binding from one pattern variable to an ast_field.
Definition: cs_tplt_instantiations.hpp:449
std::pair< cs::point, cs::edge_label > cfg_edge
A std::pair (p, el) where:
Definition: cs_tplt_instantiations.hpp:130
std::vector< cs::xr_kind_role > xr_kind_role_vector
A std::vector of xr_kind_role.
Definition: cs_tplt_instantiations.hpp:369
std::pair< cs::sfileinst, cs::line_number > sfileinst_line_pair
A std::pair (sfi, line) where:
Definition: cs_tplt_instantiations.hpp:107
cs::sfile_instance_iterator_policy
Definition: cs_sfile_decl.hpp:55
Iterator over the include-tree children (sfileinst) of a source file instance.
Definition: cs_tplt_instantiations.hpp:1035
A CodeSonar or CodeSurfer project.
Definition: cs_project.hpp:392
cs::procedure_call_sites_iterator_policy
Definition: cs_procedure_decl.hpp:95
A function or variable.
Definition: cs_symbol_decl.hpp:243
cs::set_mixin
Definition: cs_set.hpp:30
Iterator over the definitions (xr_tuple) of a token.
Definition: cs_tplt_instantiations.hpp:1140
cs::xr_occurrence_iterator_policy
Definition: cs_xref.hpp:406
Iterator over all the source files (sfile) in a project.
Definition: cs_tplt_instantiations.hpp:967
cs::xr_query_iterator_policy
Definition: cs_xref.hpp:1672
std::vector< cs::ast_class > ast_class_vector
A std::vector of ast_class.
Definition: cs_tplt_instantiations.hpp:464
cs::project_compunits_iterator_policy
Definition: cs_project.hpp:114
std
Definition: cs_ast_decl.hpp:67
A single program point.
Definition: cs_point_decl.hpp:66
cs::directory_children_iterator_policy
Definition: cs_directory_decl.hpp:36
cs::project_sfiles_iterator_policy
Definition: cs_project.hpp:136
Iterator over the files (sfile) immediately contained in a directory (directory). ...
Definition: cs_tplt_instantiations.hpp:721
Iterator over the procedures (procedure) in a compilation unit (compunit).
Definition: cs_tplt_instantiations.hpp:653
std::vector< cs::procedure_and_points > procedure_and_points_vector
A std::vector of procedure_and_points.
Definition: cs_tplt_instantiations.hpp:322
std::pair< cs::procedure, cs::point_set > procedure_and_points
A std::pair (p, ps) where:
Definition: cs_tplt_instantiations.hpp:317
std::pair< cs::point, std::string > exceptional_return
A std::pair (p, s) where:
Definition: cs_tplt_instantiations.hpp:394
cs::xr_intra_definition_iterator_policy
Definition: cs_xref.hpp:733
std::vector< cs::procedure > procedure_vector
A std::vector of procedure.
Definition: cs_tplt_instantiations.hpp:201
Iterator over the definitions (xr_tuple) of a token.
Definition: cs_tplt_instantiations.hpp:1182
std::vector< cs::xr_role > xr_role_vector
A std::vector of xr_role.
Definition: cs_tplt_instantiations.hpp:364
Iterator over all the compilation units (compunit) in a project.
Definition: cs_tplt_instantiations.hpp:864
std::pair< cs::sfile, cs::line_number > sfile_line_pair
A std::pair (sf, line) where:
Definition: cs_tplt_instantiations.hpp:114
A single procedure/function/method.
Definition: cs_procedure_decl.hpp:173
cs::procedure_locals_iterator_policy
Definition: cs_procedure_decl.hpp:29
cs::xr_homonym_iterator_policy
Definition: cs_xref.hpp:571
std::vector< cs::xr_kind > xr_kind_vector
A std::vector of xr_kind.
Definition: cs_tplt_instantiations.hpp:359
std::pair< cs::compunit, cs::point_set > compunit_points_pair
A std::pair (c, ps) where:
Definition: cs_tplt_instantiations.hpp:342
std::vector< cs::language > language_vector
A std::vector of language.
Definition: cs_tplt_instantiations.hpp:383
cs::directory_files_iterator_policy
Definition: cs_directory_decl.hpp:58
A set of points (point).
Definition: cs_tplt_instantiations.hpp:214
Iterator over the call sites (point of kind point_kind::CALL_SITE) whose target is a particular proce...
Definition: cs_tplt_instantiations.hpp:789
Used to store pairs of integers, each of which represents a range of locations in a source file...
Definition: cs_tplt_instantiations.hpp:273
Iterator over the homonyms (xr_tuple) of a token.
Definition: cs_tplt_instantiations.hpp:1248
std::vector< cs::sfileinst > sfileinst_vector
A std::vector of sfileinst.
Definition: cs_tplt_instantiations.hpp:420
Iterator over the results (xr_tuple) of an xr_query.
Definition: cs_tplt_instantiations.hpp:1281
std::pair< cs::sfileinst, cs::int_pair_set > sfileinst_int_pair_set_pair
std::pair (sfi, ips) where:
Definition: cs_tplt_instantiations.hpp:307
std::vector< cs::string_ast_field_pair > ast_binding_vector
A std::vector of ast_binding.
Definition: cs_tplt_instantiations.hpp:454
Iterator over the spans (position_range) of a specific syntax_kind within a source file instance (sfi...
Definition: cs_tplt_instantiations.hpp:1074
std::vector< cs::compunit_points > compunit_points_vector
A std::vector of compunit_points.
Definition: cs_tplt_instantiations.hpp:354
Iterator over the occurrences (xr_tuple) of a token.
Definition: cs_tplt_instantiations.hpp:1215
A source file.
Definition: cs_sfile_decl.hpp:98
Iterator over the immediate subdirectories (directory) of a directory (directory).
Definition: cs_tplt_instantiations.hpp:687
std::vector< std::string > string_vector
A std::vector of std::string.
Definition: cs_tplt_instantiations.hpp:92
std::vector< cs::ast > ast_vector
A std::vector of ast.
Definition: cs_tplt_instantiations.hpp:459
std::vector< cs::compunit > compunit_vector
A std::vector of compilation units (compunit).
Definition: cs_tplt_instantiations.hpp:211
cs::project_procedures_iterator_policy
Definition: cs_project.hpp:92
Enumeration class: identifies the source language the compilation unit is in.
Definition: cs_language.hpp:15
cs::mutable_set
A set that can be modified.
Definition: cs_iterator_adapter.hpp:42
std::pair< cs::compunit, cs::procedure_and_points_vector > compunit_points
A std::pair (c, ppv) where:
Definition: cs_tplt_instantiations.hpp:332
cs::symbol_universe_iterator_policy
Definition: cs_project.hpp:70
Iterator over the local variables (symbol) that are declared in a procedure.
Definition: cs_tplt_instantiations.hpp:830
Iterator over all the procedures (procedure) in a project.
Definition: cs_tplt_instantiations.hpp:898
A source file instance.
Definition: cs_sfileinst_decl.hpp:302
std::vector< cs::string_pair > procedure_name_to_model_vector
A std::vector of string_pair, representing a map from a function name or call address to the way that fu...
Definition: cs_tplt_instantiations.hpp:546
Enumeration class: describes the kind of a (non-keyword) token.
Definition: cs_xr_kind_role.hpp:31
cs::xr_definition_iterator_policy
Definition: cs_xref.hpp:352
Iterator over the global symbols (symbol) in a compilation unit (compunit).
Definition: cs_tplt_instantiations.hpp:619
Iterator over all the symbols (symbol) in a project.
Definition: cs_tplt_instantiations.hpp:1107
std::pair< std::pair< csuint32, csuint32 >, std::pair< csuint32, csuint32 > > position_range
A std::pair of line_and_column_number, designating the beginning and end of a span in a source file inst...
Definition: cs_tplt_instantiations.hpp:88
std::vector< cs::line_number > line_number_vector
A std::vector of line_number.
Definition: cs_tplt_instantiations.hpp:425
A compilation unit.
Definition: cs_compunit_decl.hpp:70
Iterator over the set of root directories(directory) in a project (deduced by inspecting all source f...
Definition: cs_tplt_instantiations.hpp:933
cs::sfileinst_children_iterator_policy
Definition: cs_sfileinst_decl.hpp:62
cs::compunit_procedure_iterator_policy
Definition: cs_compunit.hpp:28
int_pair line_and_column_number
An int_pair in which the first element represents a line number in a source file instance, and the second element represents a column (that is, character position) in that line.
Definition: cs_tplt_instantiations.hpp:78
Enumeration class: describes the role that a token is playing at a particular occurrence of that toke...
Definition: cs_xr_kind_role.hpp:48
cs::sfileinst_color_map_iterator_policy
Definition: cs_sfileinst_decl.hpp:109
exceptional_return exceptional_exit
A std::pair (p, s) where:
Definition: cs_tplt_instantiations.hpp:405
Iterator over the instances (sfileinst) of a source file (sfile).
Definition: cs_tplt_instantiations.hpp:1001
Iterator over the call sites (point of kind point_kind::CALL_SITE) in a procedure.
Definition: cs_tplt_instantiations.hpp:755
std::vector< cs::compunit_points_pair > compunit_points_pair_vector
A std::vector of compunit_points_pair.
Definition: cs_tplt_instantiations.hpp:347
cs::immutable_set
A set that cannot be modified.
Definition: cs_iterator_adapter.hpp:43
Enumeration class: describes a valid token kind-role (kind-usage) pair.
Definition: cs_xr_kind_role.hpp:67
Iterator over the Abstract Syntax Trees (ASTs, ast) in the tree rooted at a particular ast...
Definition: cs_tplt_instantiations.hpp:585
std::vector< cs::ast_field > ast_field_vector
A std::vector of ast_field.
Definition: cs_tplt_instantiations.hpp:439
cs::procedure_callers_iterator_policy
Definition: cs_procedure_decl.hpp:125
std::pair< csuint32, csuint32 > int_pair
A std::pair of integers, used to represent a range of locations in a compilation unit.
Definition: cs_tplt_instantiations.hpp:70
std::vector< cs::exceptional_exit > exceptional_exit_vector
A std::vector of exceptional_exit.
Definition: cs_tplt_instantiations.hpp:415
std::vector< cs::exceptional_return > exceptional_return_vector
A std::vector of exceptional_return.
Definition: cs_tplt_instantiations.hpp:410