/usr/share/doc/NTL/pair.txt is in libntl-dev 5.4.2-4.1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | /**************************************************************************\
MODULE: pair
SUMMARY:
Macros are defined providing template-like classes for pairs.
The macro NTL_pair_decl(S,T,pair_S_T) declares a class pair_S_T whose
implementation can be instatntiated with NTL_pair_impl(S,T,pair_S_T). It is
presumed that the underlying types have a default constructor, a copy
constructor, and assignment operator, and a destructor (this is
normally the case for most types).
If S and T support I/O operator << and >>, then pair_S_T can be made
to support these operators as well using NTL_pair_io_decl(S,T,pair_S_T) and
NTL_pair_io_impl(S,T,pair_S_T).
The same goes for the equaltity operators == and != using
NTL_pair_eq_decl(S,T,pair_S_T) and NTL_pair_eq_impl(S,T,pair_S,T).
The decalaration
pair_S_T p;
creates a pair object using the default constructors for S and T. The
member p.a is the first component (of type S) and the member p.b is
the second component (of type T).
\**************************************************************************/
#include <NTL/tools.h>
class pair_S_T {
public:
S a;
T b;
pair_S_T();
// default constructor...invokes default constructors for S and T
pair_S_T(const pair_S_T& x); // copy
pair_S_T& operator=(const pair_S_T& x); // assignment
pair_S_T(const S& x, const T& y); // initialize with (x, y)
~pair_S_T();
// destructor...invokes destructors for S and T
};
pair_S_T cons(const S& x, const T& y);
// returns pair_S_T(x, y)
/**************************************************************************\
Input/Output
The I/O operators can be declared with NTL_pair_io_decl(S,T,pair_S_T), and
implemented using NTL_pair_io_impl(S,T,pair_S_T).
Elements are read and written using the underlying I/O
operators << and >> for S and T.
The I/O format for a pair_a_b is
[a b]
\**************************************************************************/
istream& operator>>(istream&, pair_S_T&);
ostream& operator<<(ostream&, const pair_S_T&);
/**************************************************************************\
Equality Testing
The equality testing operators == and != can be declared with
NTL_pair_eq_decl(S,T,pair_S_T) and implemented with
NTL_pair_eq_impl(S,T,pair_S,T). The tests are performed using
the underlying operator == for S and T.
\**************************************************************************/
long operator==(const pair_S_T& x, const pair_S_T& y);
long operator!=(const pair_S_T& x, const pair_S_T& y);
|