All datastructures and typedefs shared among the ViennaRNA Package can be found here. More…
// typedefs typedef struct vrna_basepair_s vrna_basepair_t typedef struct vrna_elem_prob_s vrna_plist_t typedef struct vrna_bp_stack_s vrna_bp_stack_t typedef struct vrna_cpair_s vrna_cpair_t typedef struct vrna_sect_s vrna_sect_t typedef struct vrna_data_linear_s vrna_data_lin_t typedef struct vrna_color_s vrna_color_t typedef double FLT_OR_DBL typedef struct vrna_basepair_s PAIR typedef struct vrna_elem_prob_s plist typedef struct vrna_cpair_s cpair typedef struct vrna_sect_s sect typedef struct vrna_bp_stack_s bondT typedef struct pu_contrib pu_contrib typedef struct interact interact typedef struct pu_out pu_out typedef struct constrain constrain typedef struct node folden typedef struct dupVar dupVar // structs struct constrain struct dupVar struct duplexT struct interact struct node struct pu_contrib struct pu_out struct snoopT struct vrna_basepair_s struct vrna_bp_stack_s struct vrna_color_s struct vrna_cpair_s struct vrna_data_linear_s struct vrna_sect_s // global functions void vrna_C11_features (void)
typedef struct vrna_basepair_s vrna_basepair_t
typedef struct vrna_elem_prob_s vrna_plist_t
typedef struct vrna_bp_stack_s vrna_bp_stack_t
typedef struct vrna_cpair_s vrna_cpair_t
typedef struct vrna_sect_s vrna_sect_t
typedef double FLT_OR_DBL
typedef struct vrna_basepair_s PAIR
typedef struct vrna_elem_prob_s plist
typedef struct vrna_cpair_s cpair
typedef struct vrna_bp_stack_s bondT
typedef struct pu_contrib pu_contrib
typedef struct interact interact
typedef struct pu_out pu_out
typedef struct constrain constrain
typedef struct node folden
typedef struct dupVar dupVar
void vrna_C11_features (void)
By default, several data structures of our new v3.0 API use C11/C++11 features, such as unnamed unions, unnamed structs. However, these features can be deactivated at compile time to allow building the library and executables with compilers that do not support these features.
Now, the problem arises that once our static library is compiled and a third-party application is supposed to link against it, it needs to know, at compile time, how to correctly address particular data structures. This is usually implicitely taken care of through the API exposed in our header files. Unfortunately, we had some preprocessor directives in our header files that changed the API depending on the capabilities of the compiler the third-party application is build with. This in turn prohibited the use of an RNAlib compiled without C11/C++11 support in a program that compiles/links with enabled C11/C++11 support and vice-versa.
Therefore, we introduce this dummy symbol which can be used to check, whether the static library was build with C11/C++11 features.
v2.2.9
Note
If the symbol is present, the library was build with enabled C11/C++11 features support and no action is required. However, if the symbol is missing in RNAlib >= 2.2.9, programs that link to RNAlib must define a pre-processor identifier VRNA_DISABLE_C11_FEATURES before including any ViennaRNA Package header file, for instance by adding a CPPFLAG
CPPFLAGS+=-DVRNA_DISABLE_C11_FEATURES