// Test: align_func_proto_span with mixed empty/comment/PP lines

class ComplexAPI {
public:
    VeryLongReturnType complex_func_one();
    unsigned int complex_func_two();
#ifdef PLATFORM_A
    // Platform specific function
    double complex_func_three();
    
    // Another comment
    short complex_func_four();
#endif
#ifdef PLATFORM_B
    // Multiple lines here
    long int complex_func_five();
    // Comment line 1
    // Comment line 2
    // Comment line 3
    unsigned long complex_func_six();
    
    
    // Two empty + comment
    int complex_func_seven();
#endif
    
    void final_func_eight();
};

class AnotherAPI
{
public:
        VeryLongReturnType another_func_nine();


    int short_ten();

        VeryLongReturnType long_named_func_eleven();
#if 1
#if 1
#if 1
    int twelve();
#endif
#endif
#endif

        VeryLongReturnType extra_long_func_thirteen();
    // cmt 1
    // cmt 2
    // cmt 3
    // cmt 4
    int fn_fourteen();
};
