/** @brief Class A */
class A
{
public:
    /**
     * @brief Left shift - will be missing b and c.
     *
     * @param a First variable.
     * @param b Second variable.
     * @param c Third variable.
     */
    virtual int left(const std::string &a, size_t b = 3<<3, size_t c = 2);

    /**
     * @brief Right shift.
     *
     * @param a First variable.
     * @param b Second variable.
     * @param c Third variable.
     */
    virtual int right(const std::string &a, size_t b = 3>>3, size_t c = 2);
    /**
     * @brief Left shift in parens.
     *
     * @param a First variable.
     * @param b Second variable.
     * @param c Third variable.
     */
    virtual int leftParen(const std::string &a, size_t b = (3<<3), size_t c = 2);

    /**
     * @brief Right shift in parens.
     *
     * @param a First variable.
     * @param b Second variable.
     * @param c Third variable.
     */
    virtual int right(const std::string &a, size_t b = (3>>3), size_t c = 2);
};
