The general assembly shall not pass local or special laws in the following cases: For the assessment and collection of taxes for state, county, or road purposes; For laying out, opening, and working roads or highways; For changing the names of persons; For the incorporation of cities and towns; For vacating roads, town plats, streets, alleys, or public squares; For locating or changing county seats.
In all the cases above enumerated, and in all other cases where a general law can be made applicable, all laws shall be general, and of uniform operation throughout the state; and no law changing the boundary lines of any county shall have effect until upon being submitted to the people of the counties affected by the change, at a general election, it shall be approved by a majority of the votes in each county, cast for and against it.