From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23433 invoked by alias); 30 Jan 2012 13:35:16 -0000 Received: (qmail 23346 invoked by uid 22791); 30 Jan 2012 13:35:15 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 30 Jan 2012 13:35:00 +0000 From: "joseph.h.garvin at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/52032] Function and class attributes should optionally take a bool parameter enabling them Date: Mon, 30 Jan 2012 13:43:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: joseph.h.garvin at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Status Resolution Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-01/txt/msg03509.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52032 Joseph Garvin changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|WONTFIX | --- Comment #2 from Joseph Garvin 2012-01-30 13:34:55 UTC --- You can use template specialization to choose between two variants, but that only solves half the problem (choosing attributes based on template metaprogramming). The verbosity is still huge. For variable attributes it may not be as big a deal, but for class/struct attributes changing them means redefining the entire class/struct including all of its methods. Being able to pass true/false to change the packed'ness of a struct would be a lot nicer than copy and pasting a class definition, changing the name, adjusting the specialization of each method, and then trying to remember to keep two versions of every method in sync (or dealing with the cognitive overhead of having both versions dispatch to another layer so that they can share their code).