code: func (m *Meta) detectTouchedFlags() {
  	switch {
  	case m.fs == nil:
  		return // not using CLI flags at all
  	case m.detectedTouchedFlags:
  		return // already did this
  	case !m.fs.Parsed():
  		panic("detectTouchedFlags should be called after flags are parsed")
  	}
  	m.detectedTouchedFlags = true
  
  	fields := m.fieldsMap()
  
  	m.fs.Visit(func(f *flag.Flag) {
  		if ptr := fields[strings.Replace(f.Name, "-", "_", -1)]; ptr != nil {
  			m.touch(ptr)
  		}
  	})
  }
docs: // detectTouchedFlags is called after flags are parsed to figure out what flags
  // were explicitly set and what were left at their defaults.
  //
  // It updates Meta with information about touched flags which is later used
  // by PopulateFromTouchedIn and WasTouched functions.