<commit_before>/*Copyright 2010 <NAME>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.*/

#ifndef GUTIL_MACROS_H
#define GUTIL_MACROS_H

// Here are some useful macros for you to use:


// Use this to succinctly declare property accessors
//   It declares a Get and Set method for the provided variable type and name,
//   and also a unique private variable to hold the value
#define PROPERTY( name, type ) \
private: \
    type _p_##name; \
public: \
    inline type Get##name() const{ return _p_##name; } \
    inline void Set##name(const type &value){ _p_##name = value; } \
    enum{}


#define PROTECTED_PROPERTY( name, type ) \
private: \
    type _p_##name; \
protected: \<commit_msg>Added property macro for pointers<commit_after>/*Copyright 2010 <NAME>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.*/

#ifndef GUTIL_MACROS_H
#define GUTIL_MACROS_H

// Here are some useful macros for you to use:


// Use this to succinctly declare property accessors
//   It declares a Get and Set method for the provided variable type and name,
//   and also a unique private variable to hold the value
#define PROPERTY( name, type ) \
private: \
    type _p_##name; \
public: \
    inline type Get##name() const{ return _p_##name; } \
    inline void Set##name(const type &value){ _p_##name = value; } \
    enum{}

#define PROPERTY_POINTER( name, ptr_type ) \
private: \
    ptr_type *_p_##name; \
public: \
    inline ptr_type *Get##name() const{ return _p_##name; } \
    inline void Set##name(ptr_type *value){ _p_##name = value; } \
    enum{}


#define PROTECTED_PROPERTY( name, type ) \
private: \
    type _p_##name; \
protected: \
{'fraction_non_alphanumeric': 0.08841698841698842, 'fraction_numerical': 0.006177606177606178, 'mean_word_length': 3.7716390423572745, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1493247', 'n_tokens_mistral': 776, 'n_tokens_neox': 746, 'n_words': 335}