<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libzypp: zypp/base/Easy.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libzypp  <span id="projectnumber">17.9.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('Easy_8h_source.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">Easy.h</div> </div> </div><!--header--> <div class="contents"> <a href="Easy_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*---------------------------------------------------------------------\</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">| ____ _ __ __ ___ |</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">| |__ / \ / / . \ . \ |</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">| / / \ V /| _/ _/ |</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">| / /__ | | | | | | |</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">| /_____||_| |_| |_| |</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">| |</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">\---------------------------------------------------------------------*/</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#ifndef ZYPP_BASE_EASY_H</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#define ZYPP_BASE_EASY_H</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <cstdio></span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifndef __GXX_EXPERIMENTAL_CXX0X__</span></div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="Easy_8h.html#a7887338b8a0727becb37d8061fcbfc0e"> 27</a></span> <span class="preprocessor">#define for_(IT,BEG,END) for ( __typeof__(BEG) IT = BEG, _for_end = END; IT != _for_end; ++IT )</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define for_(IT,BEG,END) for ( auto IT = BEG, _for_end = END; IT != _for_end; ++IT )</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="Easy_8h.html#af0ff297568cc3ea25c31940e5493e666"> 31</a></span> <span class="preprocessor">#define for_each_(IT,CONT) for_( IT, (CONT).begin(), (CONT).end() )</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="Easy_8h.html#a51d11a451024ed71a6cfd13da9d7e16e"> 40</a></span> <span class="preprocessor">#define arrayBegin(A) (&A[0])</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="Easy_8h.html#abb08d90dc40063dbc1ad530a96a1b5d9"> 41</a></span> <span class="preprocessor">#define arraySize(A) (sizeof(A)/sizeof(*A))</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="Easy_8h.html#acc5d6511303d9dd6982667c5166fc14f"> 42</a></span> <span class="preprocessor">#define arrayEnd(A) (&A[0] + arraySize(A))</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="Easy_8h.html#afe38b77334294e5f0f41c3225ef83dbe"> 50</a></span> <span class="preprocessor">#define defConstStr(FNC,STR) inline const std::string & FNC { static const std::string val( STR ); return val; }</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="Easy_8h.html#adbba0f726fc66d7100916c683b7568ae"> 52</a></span> <span class="preprocessor">#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if GCC_VERSION < 40600 || not defined(__GXX_EXPERIMENTAL_CXX0X__)</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="Easy_8h.html#ab979d9d4b4923f7c54d6caa6e1a61936"> 54</a></span> <span class="preprocessor">#define nullptr NULL</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="Easy_8h.html#a21cf67b80be4e286a7e86e055341b67d"> 58</a></span> <span class="preprocessor">#define NON_COPYABLE(CLASS) \</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"> CLASS( const CLASS & ) = delete; \</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"> CLASS & operator=( const CLASS & ) = delete</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="Easy_8h.html#a0567f843037be2b69f1d021ba8ae18f8"> 63</a></span> <span class="preprocessor">#define DEFAULT_COPYABLE(CLASS) \</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"> CLASS( const CLASS & ) = default; \</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"> CLASS & operator=( const CLASS & ) = default</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#ifndef SWIG // Swig treats it as syntax error</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="Easy_8h.html#af37d5ea5e279e14de6189c881896a818"> 69</a></span> <span class="preprocessor">#define NON_MOVABLE(CLASS) \</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> CLASS( CLASS && ) = delete; \</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> CLASS & operator=( CLASS && ) = delete</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="Easy_8h.html#a7f88d3c54d8afed6d95d67ca8210603d"> 74</a></span> <span class="preprocessor">#define DEFAULT_MOVABLE(CLASS) \</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"> CLASS( CLASS && ) = default; \</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"> CLASS & operator=( CLASS && ) = default</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#define NON_MOVABLE(CLASS)</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#define DEFAULT_MOVABLE(CLASS)</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="Easy_8h.html#a80afdbc73e6244f136c2fb4bc3b2fc76"> 83</a></span> <span class="preprocessor">#define NON_COPYABLE_BUT_MOVE( CLASS ) \</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"> NON_COPYABLE(CLASS); \</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"> DEFAULT_MOVABLE(CLASS)</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="Easy_8h.html#a03714e2a975a2f53a0be6fc48e4d50a2"> 88</a></span> <span class="preprocessor">#define NON_MOVABLE_BUT_COPY( CLASS ) \</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"> NON_MOVABLE(CLASS); \</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"> DEFAULT_COPYABLE(CLASS)</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">namespace </span><a class="code" href="namespacezypp.html">zypp</a></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> { </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> } <span class="comment">// namespace zypp</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"></span><span class="preprocessor">#endif // ZYPP_BASE_EASY_H</span></div><div class="ttc" id="namespacezypp_html"><div class="ttname"><a href="namespacezypp.html">zypp</a></div><div class="ttdoc">Easy-to use interface to the ZYPP dependency resolver.</div><div class="ttdef"><b>Definition:</b> <a href="CodePitfalls_8doc_source.html#l00001">CodePitfalls.doc:1</a></div></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="dir_c187b43c6f283d9fc95eff3f44ce072a.html">zypp</a></li><li class="navelem"><a class="el" href="dir_76651d3a0256a4372f696a008d71ee69.html">base</a></li><li class="navelem"><a class="el" href="Easy_8h.html">Easy.h</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> </ul> </div> </body> </html>