Sponsored Content
Top Forums Programming Dynamically enumerating the members of a C++ struct Post 302811593 by Corona688 on Thursday 23rd of May 2013 06:10:11 PM
Old 05-23-2013
Instead of having one big structure with hardcoded members like x.ytypeofvalue, have a container holding many structures with two members, name and value. You can store this in many kinds of data structures like lists, maps, vectors, arrays, most anything iterable.

Code:
#include <map>
#include <string>

#define foreach(var, container)                 \
                for(typeof((container).begin()) var = (container).begin(); \
                var != (container).end(); \
                ++var)

int main(void)
{
        std::map<std::string,std::string> mydata;

        mydata["a"]="b";
        mydata["c"]="d";

        foreach(x, mydata)
        {
                cout << (*x).first <<" "<<(*x).second<<"\b";
        }
}

 

9 More Discussions You Might Find Interesting

1. Programming

save a struct

hi all , can i save a structure in c in a file? how ? help me , thx. :) (2 Replies)
Discussion started by: kall_ANSI
2 Replies

2. Programming

struct tm problem

I receive an integer as argument for a function. within function definition i want it to be of type struct tm. eg.. main() { int a; ...... } function(...,..,a,..) int a; { struct tm tm; if(!a) ^ time(&a); ^ ... (4 Replies)
Discussion started by: bankpro
4 Replies

3. Programming

Enumerating hardware

I am trying to enumerate all hardware (plugged in devices) and I am using lshal source code from here: Cross Reference: /onnv/onnv-gate/usr/src/cmd/hal/tools/lshal.c and is missing information about plugged in monitors, and mouse and houppgae TV card. They came out in gnome device manager,... (0 Replies)
Discussion started by: gyula
0 Replies

4. Linux

GCOV : struct bb

Hi, I am working on gcov.Meaning, analysing the functionality of gcov. There is one structure called "struct bb". I am not sure, how struct bb members are getting assigned values. If anyone knows how it is happening pls let me know. Thanks in advance. --Vichu (0 Replies)
Discussion started by: Vichu
0 Replies

5. UNIX for Dummies Questions & Answers

How to access a struct within a struct?

Can someone tell me how to do this? Just a thought that entered my mind when learning about structs. First thought was: struct one { struct two; } struct two { three; } one->two->three would this be how you would access "three"? (1 Reply)
Discussion started by: unbelievable21
1 Replies

6. UNIX for Dummies Questions & Answers

struct winsize

what is struct winsize used for? i tried looking it up, but no luck. (0 Replies)
Discussion started by: l flipboi l
0 Replies

7. Programming

Using pointers to struct members as args to functions

In a well-known book on the C language, there is an example of an efficient method for using a struct member as an argument to a function. (I'm a C noob, but I believe the correct terminology might be: use call-by-reference instead of call-by-value.) The function is printf. Anyway, here's a... (5 Replies)
Discussion started by: uiop44
5 Replies

8. Programming

Storing C++-struct in file - problem when adding new item in struct

Hi, I have received an application that stores some properties in a file. The existing struct looks like this: struct TData { UINT uSizeIncludingStrings; // copy of Telnet data struct UINT uSize; // basic properties: TCHAR szHost; //defined in Sshconfig UINT iPortNr; TCHAR... (2 Replies)
Discussion started by: Powerponken
2 Replies

9. Programming

Get struct definition

I have many headers with huge amount of structures in them, typical one looks like this: $ cat a.h struct Rec1 { int f1; int f2; }; struct Rec2 { char r1; char r2; }; struct Rec3 { int f1; float k1; float ... (6 Replies)
Discussion started by: migurus
6 Replies
SYSTEMD-NSPAWN(1)						  systemd-nspawn						 SYSTEMD-NSPAWN(1)

NAME
systemd-nspawn - Spawn a namespace container for debugging, testing and building SYNOPSIS
systemd-nspawn [OPTIONS...] [COMMAND] [ARGS...] DESCRIPTION
systemd-nspawn may be used to run a command or OS in a light-weight namespace container. In many ways it is similar to chroot(1), but more powerful since it fully virtualizes the file system hierarchy, as well as the process tree, the various IPC subsystems and the host and domain name. systemd-nspawn limits access to various kernel interfaces in the container to read-only, such as /sys, /proc/sys or /sys/fs/selinux. Network interfaces and the system clock may not be changed from within the container. Device nodes may not be created. The host system cannot be rebooted and kernel modules may not be loaded from within the container. Note that even though these security precautions are taken systemd-nspawn is not suitable for secure container setups. Many of the security features may be circumvented and are hence primarily useful to avoid accidental changes to the host system from the container. The intended use of this program is debugging and testing as well as building of packages, distributions and software involved with boot and systems management. In contrast to chroot(1) systemd-nspawn may be used to boot full Linux-based operating systems in a container. Use a tool like debootstrap(8) or mock(1) to set up an OS directory tree suitable as file system hierarchy for systemd-nspawn containers. Note that systemd-nspawn will mount file systems private to the container to /dev, /run and similar. These will not be visible outside of the container, and their contents will be lost when the container exits. Note that running two systemd-nspawn containers from the same directory tree will not make processes in them see each other. The PID namespace separation of the two containers is complete and the containers will share very few runtime objects except for the underlying file system. OPTIONS
If no arguments are passed the container is set up and a shell started in it, otherwise the passed command and arguments are executed in it. The following options are understood: --help, -h Prints a short help text and exits. --directory=, -D Directory to use as file system root for the namespace container. If omitted the current directory will be used. --user=, -u Run the command under specified user, create home directory and cd into it. As rest of systemd-nspawn, this is not the security feature and limits against accidental changes only. --private-network Turn off networking in the container. This makes all network interfaces unavailable in the container, with the exception of the loopback device. EXAMPLE 1 # debootstrap --arch=amd64 unstable debian-tree/ # systemd-nspawn -D debian-tree/ This installs a minimal Debian unstable distribution into the directory debian-tree/ and then spawns a shell in a namespace container in it. EXAMPLE 2 # mock --init # systemd-nspawn -D /var/lib/mock/fedora-rawhide-x86_64/root/ /sbin/init systemd.log_level=debug This installs a minimal Fedora distribution into a subdirectory of /var/lib/mock/ and then boots an OS in a namespace container in it, with systemd as init system, configured for debug logging. EXIT STATUS
The exit code of the program executed in the container is returned. SEE ALSO
systemd(1), chroot(1), debootstrap(8), mock(1) AUTHOR
Lennart Poettering <lennart@poettering.net> Developer systemd 10/07/2013 SYSTEMD-NSPAWN(1)
All times are GMT -4. The time now is 11:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy